زیر سیستم ویندوز برای لینوکس

**Windows Subsystem for Linux** (**WSL**) یکی از ویژگی‌های ویندوز است که به توسعه‌دهندگان اجازه می‌دهد تا یک محیط لینوکس را بدون نیاز به ماشین مجازی جداگانه یا بوت دوگانه اجرا کنند. دو نسخه از WSL وجود دارد: WSL 1 و WSL 2. نسخه WSL 1 اولین بار در ۲ اوت ۲۰۱۶ منتشر شد و به عنوان یک لایه سازگاری برای اجرای فایل‌های اجرای پذیر لینوکس (در قالب ELF) با اجرای تماس به سامانه در لینوکس بر روی هسته ویندوز عمل می‌کند. این ویژگی در ویندوز ۱۰، ویندوز ۱۱، ویندوز سرور ۲۰۱۶، ویندوز سرور ۲۰۱۹ و ویندوز سرور ۲۰۲۲ در دسترس است.

در ماه مه ۲۰۱۹، نسخه 2 WSLمعرفی شد، که تغییرات مهمی مانند هسته واقعی لینوکس را از طریق زیرمجموعه ای از ویژگی‌های Hyper-V معرفی کرد. WSL 2 با WSL 1 تفاوت‌های بسیاری دارد زیرا WSL 2 در داخل یک ماشین مجازی مدیریت شده اجرا می‌شود که هسته کامل لینوکس را پیاده‌سازی می‌کند. در نتیجه، WSL 2 با تعداد بیشتری باینری لینوکس نسبت به WSL 1 سازگار است، زیرا همه syscalها در WSL 1 پیاده‌سازی نشده‌اند. از ژوئن ۲۰۱۹، WSL 2 از طریق برنامه ویندوز اینسایدر از جمله نسخه هوم در دسترس کاربران ویندوز ۱۰ قرار گرفت. WSL به‌طور پیش فرض برای همه کاربران ویندوز ۱۰ در دسترس نیست. می‌توان آن را با پیوستن به برنامه ویندوز اینسایدر یا به صورت دستی از طریق فروشگاه مایکروسافت یا سامانه مدیریت بسته ویندوز (winget) نصب کرد.

## تاریخچه
اولین تلاش مایکروسافت برای دستیابی به سازگاری شبه یونیکس در ویندوز با زیرسیستم مایکروسافت POSIX آغاز شد که توسط خدمات ویندوز برای یونیکس از طریق ام‌کی‌اس و اینتریکس جایگزین شد، که در نهایت با انتشار ویندوز ۸٫۱ این ابزار نیز منسوخ شد. فناوری زیرسیستم برای لینوکس از پروژه منتشر نشده ویندوز ۱۰ موبایل سرچشمه گرفته است که برخی از برنامه‌های اندروید را قادر می‌سازد تا روی ویندوز ۱۰ موبایل اجرا شوند. این ابزار اولین بار در نسخه ۱۴۳۱۶ ویندوز اینسایدر ۱۰ در دسترس قرار گرفت.

در حالی که پروژه‌های قبلی مایکروسافت و سیگوین‌های جانبی بر ایجاد محیط‌های منحصربه‌فرد شبیه به یونیکس بر اساس استاندارد POSIX تمرکز داشتند، هدف WSL سازگاری با لینوکس در سطح بومی است. طراحی اولیه WSL به جای قرار دادن عملکردهای غیر بومی در فراخوانی‌های سیستم Win32 مانند Cygwin، از مدیران اجرایی هسته NT ویندوز استفاده کرد تا برنامه‌های لینوکس را به‌عنوان فرآیندهای خاص و منزوی (معروف به "فرآیندهای pico") متصل به حالت هسته استفاده کند. ارائه‌دهندگان pico" به‌عنوان کنترل‌کننده‌های فراخوان و اکسپشن‌های سیستم اختصاصی، متمایز از فرایند عادی NT هستند، و ترجیح می‌دهند تا جایی که ممکن است از فرمان‌ها هستهٔ NT موجود استفاده کنند.

نسخه بتای WSL در ویندوز ۱۰ نسخه ۱۶۰۷ در ۲ اوت ۲۰۱۶ معرفی شد. در ابتدا تنها اوبونتو (با Bash به عنوان پوسته پیش‌فرض) پشتیبانی می‌شد. WSL دیگر در ویندوز ۱۰ نسخه ۱۷۰۹ (به‌روزرسانی Fall Creators)، که در ۱۷ اکتبر ۲۰۱۷ منتشر شد، از حالت بتا خارج شد. پس از این به‌روزرسانی WSL چندین توزیع لینوکس را پشتیبانی می‌کرد و توزیع‌های پشتیبانی شده برای نصب در فروشگاه ویندوز در دسترس بودند.

در سال ۲۰۱۷ ریچارد استالمن ابراز نگرانی کرد که ادغام عملکرد لینوکس در ویندوز تنها مانع توسعه نرم‌افزار آزاد خواهد شد و تلاش‌هایی مانند WSL را «گامی به عقب در کمپین آزادی» خواند.

اگرچه WSL (از طریق این طراحی اولیه) بسیار سریعتر و مسلماً بسیار محبوبتر از پروژه‌های قبلی UNIX-on-Windows بود، مهندسان کرنل ویندوز در تلاش برای افزایش عملکرد WSL و سازگاری syscall با با هستهٔ NT ویندوز دچار مشکل شدند و برای حل این مشکل تلاش کردند تا در هسته NT تغییرات ایجاد کنند تا به درستی با API لینوکس کار کند. در کنفرانس مایکروسافت Ignite در سال ۲۰۱۸، مهندسان مایکروسافت یک نمای کلی از فناوری جدید Hyper-V VM «سبک» برای کانتینرسازی ارائه کردند که در آن یک هسته مجازی‌سازی شده می‌تواند مستقیماً از منابع اولیه NT در سیستم عامل میزبان استفاده کند.در سال ۲۰۱۹، مایکروسافت یک معماری WSL کاملاً بازطراحی شده یا همان WSL 2 را با استفاده از این فناوری مجازی سازی سبک، دارای هسته لینوکس واقعی اما سفارشی سازی شده اعلام کرد و ادعا کرد که سازگاری کامل با syscall را دارد.مایکروسافت WSL 2 را در ۶ می ۲۰۱۹ معرفی کرد.و با ویندوز ۱۰ نسخه ۲۰۰۴ عرضه شد.همچنین در ویندوز ۱۰ نسخه ۱۹۰۳ و ۱۹۰۹ پشتیبانی می‌شود.

پشتیبانی از کارت گرافیک در WSL 2 برای اجرای یادگیری ماشینی با کمک کارت گرافیک در نسخه ۲۰۱۵۰ ویندوز معرفی شد. پشتیبانی از رابط کاربری گرافیکی برای WSL 2 برای اجرای برنامه‌های لینوکس با رابط‌های گرافیکی کاربر (GUI) در بیلد ویندوز ۲۱۳۶۴ معرفی شد. هر دوی آنها در ویندوز ۱۱ نیز عرضه می‌شوند.

در آوریل ۲۰۲۱، مایکروسافت نسخه آزمایشی جدید ویندوز ۱۰ را منتشر کرد که شامل قابلیت اجرای برنامه‌ها با رابط کاربری گرافیکی لینوکس (GUI) با استفاده از WSL 2 و CBL-Mariner است.زیرسیستم ویندوز برای رابط کاربری گرافیکی لینوکس (WSLg) به‌طور رسمی در کنفرانس Microsoft Build 2021 منتشر شد. و در ویندوز اینسایدر نسخه ۲۱۳۶۴ یا بالاتر قابل استفاده است.

## قابلیت‌ها
WSL در ویندوز سرور ۲۰۱۹ و در نسخه‌های ویندوز ۱۰ از نسخه ۱۶۰۷ فقط در نسخه‌های ۶۴ بیتی در دسترس است.

مایکروسافت WSL را به عنوان «در درجه اول ابزاری برای توسعه دهندگان - به ویژه توسعه دهندگان وب و کسانی که روی پروژه‌های منبع باز یا با آنها کار می‌کنند» در توسعه می‌دهد.در سپتامبر ۲۰۱۸، مایکروسافت اعلام کرد «WSL به منابع کمتری (CPU، حافظه و فضای ذخیره‌سازی) نسبت به یک ماشین مجازی کامل نیاز دارد» (که قبل از WSL ساده‌ترین راه برای اجرای نرم‌افزار لینوکس در محیط ویندوز بود)، در حالی که به کاربران نیز اجازه می‌دهد که از فایل‌های خود در هردو محیط لینوکس و ویندوز استفاده کنند.

اولین نسخه WSL یک رابط هسته سازگار با فرمان‌ها لینوکس را ارائه می‌دهد که حاوی هیچ قسمتی از کد هسته لینوکس نیست، که سپس می‌تواند فضای کاربری یک توزیع لینوکس را در این محیط اجرا کند، مانند اوبونتو، اوپن سوزه، دیبان و کالی. چنین فضای کاربری ممکن است شامل یک پوسته گنو Bash و زبان فرمان، با ابزارهای خط فرمان بومی گنو (sed, awk، و غیره)، مفسرهای زبان برنامه‌نویسی (Ruby, Python و غیره) و حتی برنامه‌های گرافیکی (با استفاده از یک سرور X11) باشد.

این معماری در WSL 2، با یک هسته لینوکس در یک محیط ماشین مجازی سبک، جایگزین شد.

### wsl.exe
دستور `wsl.exe` برای مدیریت توزیع‌ها در WSL در خط فرمان استفاده می‌شود. این دستور می‌تواند توزیع‌های موجود را فهرست کند، توزیع پیش‌فرض تنظیم کند و توزیع‌ها را حذف کند. این دستور همچنین می‌تواند برای اجرای باینری‌های لینوکس از خط فرمان ویندوز یا پاورشل استفاده شود. `wsl.exe` جایگزین `lxrun.exe` می‌شود که از ویندوز ۱۰ ۱۸۰۳ و بعد از آن منسوخ شده است.

### WSLg
زیرسیستم ویندوز برای رابط کاربری گرافیکی لینوکس (WSLg) با هدف اضافه کردن پشتیبانی از اجرای برنامه‌های دارای رابط کاربری گرافیکی لینوکس (X11 و ویلند) در ویندوز در یک تجربه دسکتاپ کاملاً یکپارچه ساخته شده است. WSLg به‌طور رسمی در کنفرانس مایکروسافت بیلد ۲۰۲۱ منتشر شد و در بیلد ۲۱۳۶۴ ویندوز ۱۰ اینسایدر یا جدیدتر اضافه شد. با این حال، با معرفی ویندوز ۱۱، WSLg در نهایت با یک بیلد غیر اینسایدر از ویندوز عرضه می‌شود و از رابط گرافیکی و صدا در برنامه‌های WSL پشتیبانی می‌کند. FreeRDP برای رمزگذاری تمام ارتباطاتی که از سرور RDP (در وستون) به RDP کاربر (mstsc در ویندوز) بر اساس مشخصات پروتکل RDP می‌رود استفاده می‌شود.

پیش نیازهای اجرای WSLg عبارتند از:
* ویندوز ۱۱ یا ویندوز ۱۰ نسخه اینسایدر ۲۱۳۶۲–۲۱۳۹۰
* سیستمی با قابلیت گرافیک مجازی (vGPU) فعال برای WSL توصیه می‌شود، زیرا به شما امکان می‌دهد از رندر OpenGL تسریع‌شده سخت‌افزاری بهره‌مند شوید.

## منابع

رده:اجزای ویندوز
رده:دستورهای ویندوز
رده:لایه‌های سازگاری
رده:نرم‌افزارهای ۲۰۱۶ (میلادی)
رده:نرم‌افزارهای مجازی‌سازی
رده:ویندوز ۱۰