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

از ویکی‌پدیا، دانشنامهٔ آزاد
Windows Subsystem for Linux
Bash running on Windows 10
Bash running on Windows 10
نام‌های دیگرWSL
توسعه‌دهنده(ها)مایکروسافت
انتشار ابتدایی۲ اوت ۲۰۱۶؛ ۷ سال پیش (۲۰۱۶-02}})
انتشار پایدار
WSL 2 2.0.9
۱۱ نوامبر ۲۰۲۳؛ ۵ ماه پیش (۲۰۲۳-11}})[۱]
انتشار آزمایشی
WSL 2 2.0.1
۲۵ سپتامبر ۲۰۲۳؛ ۶ ماه پیش (۲۰۲۳-25}})[۲]
مخزن
سیستم‌عاملویندوز ۱۰, Windows 10 LTSB/LTSC, ویندوز سرور ۲۰۱۶, ویندوز سرور ۲۰۱۹, ویندوز ۱۱, ویندوز سرور ۲۰۲۲
جایگزین برایWindows Services for UNIX
گونهCompatibility layer, Virtualization
پروانهSubsystem: Proprietary commercial software;
Linux kernel: GNU GPLv2 (only) with some code under compatible GPL variants or under permissive licenses like BSD, MIT
وبگاه

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 به‌طور پیش فرض برای همه کاربران ویندوز ۱۰ در دسترس نیست. می‌توان آن را با پیوستن به برنامه ویندوز اینسایدر یا به صورت دستی از طریق فروشگاه مایکروسافت یا Wingسامانه مدیریت بسته ویندوز (winget) نصب کرد.

تاریخچه[ویرایش]

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

در حالی که پروژه‌های قبلی مایکروسافت و سیگوین‌های جانبی بر ایجاد محیط‌های منحصربه‌فرد شبیه به یونیکس بر اساس استاندارد 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 تسریع‌شده سخت‌افزاری بهره‌مند شوید.[۲۹]

منابع[ویرایش]

  1. "Release 2.0.9 · microsoft/WSL". GitHub (به انگلیسی). Retrieved 2023-11-18.
  2. "Release 2.0.1 · microsoft/WSL". GitHub (به انگلیسی). Retrieved 2023-09-27.
  3. {{cite book}}: Empty citation (help)
  4. June 2021, Darren Allan 23 (23 June 2021). "Windows 11 could seamlessly run graphical Linux apps". TechRadar (به انگلیسی). Retrieved 2021-06-29.
  5. Craig Loewen (2019-05-06). "Announcing WSL 2". Windows Command Line Tools For Developers.
  6. mscraigloewen. "About WSL 2". docs.microsoft.com.
  7. "WSL 2 Post BUILD FAQ". Windows Command Line Tools For Developers. 2019-05-14.
  8. Bright, Peter (6 April 2016). "Why Microsoft needed to make Windows run Linux software". Ars Technica. Condé Nast.
  9. kexugit (۲۰۱۶-۰۴-۲۲). «Windows Subsystem for Linux Overview». learn.microsoft.com (به انگلیسی). دریافت‌شده در ۲۰۲۴-۰۱-۲۵.
  10. Raj، Tara (۲۰۱۷-۱۰-۱۲). «What's new in WSL in Windows 10 Fall Creators Update». Windows Command Line (به انگلیسی). دریافت‌شده در ۲۰۲۴-۰۱-۲۵.
  11. «Will Microsoft love Linux to death? Shuttleworth and Stallman on whether Windows 10 is free software's friend | TechRepublic». web.archive.org. ۲۰۲۲-۱۲-۰۱. بایگانی‌شده از اصلی در ۱ دسامبر ۲۰۲۲. دریافت‌شده در ۲۰۲۴-۰۱-۲۵.
  12. OS internals: Technical deep-dive into operating system innovations - BRK3365, retrieved 2024-01-25
  13. craigloewen-msft (۲۰۲۳-۱۲-۱۵). «Comparing WSL Versions». learn.microsoft.com (به انگلیسی). دریافت‌شده در ۲۰۲۴-۰۱-۲۵.
  14. Loewen، Craig (۲۰۱۹-۰۵-۰۶). «Announcing WSL 2». Windows Command Line (به انگلیسی). دریافت‌شده در ۲۰۲۴-۰۱-۲۵.
  15. Loewen، Craig (۲۰۲۰-۰۳-۱۳). «WSL 2 will be generally available in Windows 10, version 2004». Windows Command Line (به انگلیسی). دریافت‌شده در ۲۰۲۴-۰۱-۲۵.
  16. Citrin، Tyler (۲۰۲۰-۰۸-۲۰). «WSL 2 Support is coming to Windows 10 Versions 1903 and 1909». Windows Command Line (به انگلیسی). دریافت‌شده در ۲۰۲۴-۰۱-۲۵.
  17. Blog، Windows Developer؛ Rahrig، Clarke (۲۰۲۰-۰۶-۱۷). «GPU accelerated ML training inside the Windows Subsystem for Linux». Windows Developer Blog (به انگلیسی). دریافت‌شده در ۲۰۲۴-۰۱-۲۵.
  18. Loewen، Craig (۲۰۲۱-۰۴-۲۱). «The Initial Preview of GUI app support is now available for the Windows Subsystem for Linux». Windows Command Line (به انگلیسی). دریافت‌شده در ۲۰۲۴-۰۱-۲۵.
  19. Loewen، Craig (۲۰۲۱-۰۴-۲۱). «The Initial Preview of GUI app support is now available for the Windows Subsystem for Linux». Windows Command Line (به انگلیسی). دریافت‌شده در ۲۰۲۴-۰۱-۲۵.
  20. "New Windows 10 test build adds first preview of Linux GUI apps on WSL". ZDNET (به انگلیسی). Retrieved 2024-01-25.
  21. craigloewen-msft. «FAQ's about Windows Subsystem for Linux». learn.microsoft.com (به انگلیسی). دریافت‌شده در ۲۰۲۴-۰۱-۲۵.
  22. craigloewen-msft. «FAQ's about Windows Subsystem for Linux». learn.microsoft.com (به انگلیسی). دریافت‌شده در ۲۰۲۴-۰۱-۲۵.
  23. Loewen، Craig (۲۰۱۹-۰۵-۰۶). «Announcing WSL 2». Windows Command Line (به انگلیسی). دریافت‌شده در ۲۰۲۴-۰۱-۲۵.
  24. craigloewen-msft (۲۰۲۳-۱۱-۱۰). «Advanced settings configuration in WSL». learn.microsoft.com (به انگلیسی). دریافت‌شده در ۲۰۲۴-۰۱-۲۵.
  25. Windows Subsystem for Linux interoperability with Windows
  26. Welcome to WSLg, Microsoft, 2021-11-07, retrieved 2021-11-07
  27. Abrams, Lawrence (2021-05-29). "Hands on with WSLg: Running Linux GUI apps in Windows 10". Bleeping Computer. Retrieved 2021-05-30.
  28. Salter, Jim (2021-10-07). "The best part of Windows 11 is a revamped Windows Subsystem for Linux". Ars Technica (به انگلیسی). Retrieved 2021-11-07.
  29. Welcome to WSLg, Microsoft, 2021-11-07, retrieved 2021-11-07