ویژگی Windows Subsystem for Linux یا WSL یکی از مهم‌ترین ابزارهای ویندوز برای اجرای محیط لینوکس بدون نیاز به نصب دو سیستم‌عامل یا استفاده از ماشین مجازی است. با WSL می‌توانید توزیع‌هایی مانند اوبونتو و دبیان را در کنار ویندوز اجرا کنید و به ابزارهایی مثل Bash ،Git، پایتون، Node.js و بسیاری از برنامه‌های لینوکسی دسترسی داشته باشید.

قابلیت WSL برای برنامه‌نویسان و کاربرانی که به ابزارهای لینوکس نیاز دارند بسیار کاربردی است. در ادامه می‌بینیم WSL چیست، WSL 2 چه تفاوتی با نسخه‌ی اول دارد و چگونه لینوکس را روی ویندوز نصب کنیم.

ابزار WSL چیست و چه کاربردی دارد؟

ویژگی WSL مخفف Windows Subsystem for Linux و به معنی «زیرسیستم ویندوز برای لینوکس» است. این قابلیت به ویندوز اجازه می‌دهد توزیع لینوکسی موردنظر کاربر را در کنار برنامه‌های معمول ویندوز اجرا کنید؛ بنابراین برای استفاده از ابزارهای لینوکسی لازم نیست سیستم را هر بار به لینوکس بوت کنید.

در WSL 2، ویندوز از فناوری مجازی‌سازی بهره می‌برد و هسته‌ی لینوکس را داخل ماشین مجازی بسیار سبک اجرا می‌کند. این معماری در مقایسه با WSL 1 سازگاری کامل‌تری با فراخوانی‌های سیستمی لینوکس دارد و عملکرد فایل‌سیستم لینوکس نیز بهبود یافته است.

برای مثال، می‌توانید پروژه‌ی Node.js را در محیط لینوکس اجرا و از apt برای نصب بسته‌ها استفاده کنید و هم‌زمان مرورگر، VS Code و سایر برنامه‌های ویندوزی خود را باز نگه دارید.

آموزش نصب WSL در ویندوز ۱۱

ساده‌ترین روش برای نصب WSL در ویندوز ۱۱ استفاده از پاورشل (Powershell) است و البته می‌توان از همین روش در ویندوز ۱۰ نیز استفاده کرد. دستور wsl --install قابلیت‌های موردنیاز را فعال، WSL را نصب و توزیع اوبونتو را نیز به‌طور پیش‌فرض دریافت می‌کند.

مراحل نصب:

  • منوی Start را باز کنید و PowerShell را با گزینه‌ی Run as administrator اجرا کنید.
  • دستور زیر را وارد کنید:
wsl --install
  • در صورت درخواست، ویندوز را ری‌استارت کنید.
  • پس از راه‌اندازی مجدد، اوبونتو اجرا می‌شود و از شما می‌خواهد نام کاربری و رمز عبور لینوکس تعیین کنید.
  • برای مشاهده‌ی توزیع‌های قابل نصب نیز می‌توانید از دستور زیر استفاده کنید:
wsl --list --online
  • سپس برای نصب توزیع غیر از اوبونتو، نام آن را به دستور نصب اضافه کنید:
wsl --install -d Debian

نام دقیق توزیع را از فهرست نمایش‌داده‌شده توسط دستور قبلی انتخاب کنید.

چگونه WSL را اجرا کنیم؟

بعد از نصب WSL، ساده‌ترین روش اجرای لینوکس باز کردن توزیع نصب‌شده از منوی Start است. همچنین می‌توانید پاورشل یا CMD را باز و دستور زیر را اجرا کنید:

wsl

برای مشاهده‌ی وضعیت توزیع‌های نصب‌شده و اینکه هرکدام از WSL 1 یا WSL 2 استفاده می‌کنند، دستور زیر را اجرا کنید:

wsl -l -v

برای تغییر نسخه‌ی یک توزیع نیز می‌توانید از این دستور استفاده کنید:

wsl --set-version Ubuntu 2

و برای قرار دادن WSL 2 به‌عنوان نسخه‌ی پیش‌فرض توزیع‌های جدید:

wsl --set-default-version 2

این دستورات و گزینه‌های مدیریتی اصلی WSL در مستندات مایکروسافت ارائه شده‌اند.

نصب برنامه‌های لینوکس در WSL

بعد از ورود به اوبونتو، محیطی مشابه ترمینال لینوکس معمولی خواهید داشت. در اوبونتو می‌توانید فهرست بسته‌ها را با apt به‌روزرسانی و برنامه‌های موردنیاز را نصب کنید.

برای نمونه:

sudo apt update sudo apt install git

با روش فوق می‌توانید ابزارهای مختلف برنامه‌نویسی و سروری را نصب و از داخل محیط لینوکس اجرا کنید.

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

یکی از مزیت‌های مهم WSL، امکان ارتباط بین فایل‌های دو سیستم‌عامل است. در محیط لینوکس، درایو C ویندوز معمولاً در مسیر /mnt/c/ قابل دسترسی است؛ بنابراین برای رسیدن به فایل‌های ویندوز می‌توانید از مسیرهایی مانند /mnt/c/Users/Username/ استفاده کنید.

مایکروسافت توصیه می‌کند برای پروژه‌هایی که ابزارهای لینوکسی روی آن‌ها اجرا می‌شوند فایل‌ها را در فایل‌سیستم خود WSL، مثلاً داخل /home/username/ نگه دارید. استفاده‌ی مداوم از پروژه‌های ذخیره‌شده در /mnt/c/ می‌تواند عملکرد عملیات فایل را کاهش دهد.

از طرف دیگر، می‌توانید فایل‌های محیط لینوکس را از File Explorer ویندوز نیز مشاهده کنید و از داخل WSL دستور زیر را برای باز کردن پوشه فعلی در فایل اکسپلورر اجرا کنید:

explorer.exe .

استفاده از WSL در VS Code

ترکیب WSL و Visual Studio Code یکی از کاربردهای مهم این قابلیت است. با نصب افزونه‌ی WSL، محیط گرافیکی VS Code در ویندوز باقی می‌ماند، اما کد، ابزارهای توسعه و بسیاری از فرایندهای پروژه در محیط لینوکس اجرا می‌شوند.

برای باز کردن پوشه‌ی فعلی در VS Code، کافی است داخل WSL بنویسید:

code .

این روش برای توسعه‌ی پروژه‌های Node.js، پایتون، Git و ابزارهای لینوکسی بسیار کاربردی است.

چند دستور کاربردی WSL

برای مدیریت روزمره‌ی WSL، چند دستور بیشتر از بقیه کاربرد دارند که آن‌ها را در ادامه آورده‌ایم:

  • به‌روزرسانی WSL:
wsl --update
  • خاموش کردن کامل محیط‌های WSL:
wsl --shutdown
  • مشاهده‌ی توزیع‌های لینوکسی نصب‌شده:
wsl -l -v
  • اجرای توزیع لینوکسی موردنظر:
wsl -d Ubuntu

دستورات فوق برای به‌روزرسانی، بررسی وضعیت و مدیریت توزیع‌های لینوکس در WSL استفاده می‌شوند.

آیا WSL فقط برای برنامه‌نویسان است؟

خیر. هر کاربری که به ابزارها یا دستورات لینوکس نیاز داشته باشد می‌تواند از WSL استفاده کند؛ بااین‌حال بیشترین کاربرد آن در توسعه‌ی نرم‌افزار، کار با Git، اجرای ابزارهای خط فرمان و ساخت محیط‌های توسعه لینوکسی در ویندوز است.

حتی اجرای برخی برنامه‌های گرافیکی لینوکس نیز در WSL 2 پشتیبانی می‌شود و این برنامه‌ها می‌توانند در کنار نرم‌افزارهای ویندوزی اجرا شوند.

کدام بهتر است؟ WSL 1 یا WSL 2

در نسخه‌ی اول WSL، ترجمه‌ی فراخوانی‌های سیستم لینوکس به ویندوز بخش مهمی از معماری بود، اما WSL 2 از هسته‌ی واقعی لینوکس در ماشین مجازی سبک استفاده می‌کند. به همین دلیل WSL 2 برای بسیاری از کاربردهای مدرن توسعه‌ی نرم‌افزار، انتخاب پیش‌فرض ویندوز است.

مایکروسافت نیز در نصب‌های جدید ویندوز، WSL 2 را به‌عنوان نوع پیش‌فرض توزیع لینوکس تنظیم می‌کند.

ابزار WSL چه تفاوتی با ماشین مجازی دارد؟

در ماشین مجازی، معمولا یک سیستم‌عامل کامل را با کمک نرم‌افزارهایی مثل VMware یا VirtualBox اجرا می‌کنید و منابع سخت‌افزاری بیشتری درگیر می‌شوند. WSL با هدف ادغام بسیار نزدیک‌تر لینوکس و ویندوز طراحی شده است و WSL 2 نیز از ماشین مجازی سبک و مدیریت‌شده برای اجرای هسته‌ی لینوکس بهره می‌برد. به همین دلیل، WSL برای کاربرانی مناسب است که بیشتر برای ابزارهای توسعه و خط فرمان به‌دنبال اجرای لینوکس در ویندوز هستند، نه اینکه یک دسکتاپ لینوکسی کامل را جایگزین ویندوز کنند.