قابلیت WSL امکان اجرای مستقیم توزیعهای لینوکس مانند اوبونتو را بدون نیاز به بوت دوگانه در ویندوز فراهم میکند.
ویژگی 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 Containers
یکی از قابلیتهای جدید WSL، پشتیبانی مستقیم از کانتینرهای لینوکسی است. با WSL Containers امکان ساخت، اجرا و مدیریت کانتینرهای لینوکسی مستقیماً در ویندوز فراهم شده است.
قابلیت WSL Containers با ابزار خط فرمان wslc.exe در WSL ارائه میشود و میتوان از آن برای انجام عملیات مختلف روی کانتینرها استفاده کرد. مایکروسافت همچنین یک API برای استفادهی برنامههای ویندوزی از کانتینرهای لینوکسی ارائه کرده است.
در نسخهی جدید WSL، قابلیتهای مختلفی برای مدیریت چرخهی عمر کانتینرها، شبکه و بررسی وضعیت محیط اضافه شده است که ازجمله میتوان به موارد زیر اشاره کرد:
- wslc container restart برای راهاندازی مجدد کانتینر
- wslc container cp برای کپی فایلها به داخل یا خارج کانتینر
- wslc system info برای مشاهده وضعیت کلی محیط کانتینرها
- wslc network connect و wslc network disconnect برای اتصال و قطع اتصال کانتینرها از شبکه
- پشتیبانی از Health Check کانتینرها
- پشتیبانی از Mount هنگام ایجاد یا اجرای کانتینر
- امکان تعیین محل ذخیرهسازی کانتینرها
قابلیت WSL Containers بیشتر برای توسعهدهندگان و افرادی کاربرد دارد که با کانتینرها کار میکنند و میخواهند بدون افزودن ابزارهای جداگانه، محیط کانتینری لینوکس را در کنار WSL داشته باشند. مایکروسافت همچنین پشتیبانی از WSL Containers را در ابزارهایی مانند VS Code گسترش داده است.
نکتهی مهم اینکه WSL Containers با WSL تفاوت دارد؛ WSL همچنان محیط اجرای توزیعهای لینوکس است و WSL Containers قابلیت اجرای کانتینرهای لینوکسی را به آن اضافه میکند.
چند دستور کاربردی WSL
برای مدیریت روزمرهی WSL، چند دستور بیشتر از بقیه کاربرد دارند که آنها را در ادامه آوردهایم:
- بهروزرسانی WSL:
wsl --update- خاموش کردن کامل محیطهای WSL:
wsl --shutdown- مشاهدهی توزیعهای لینوکسی نصبشده:
wsl -l -v- اجرای توزیع لینوکسی موردنظر:
wsl -d Ubuntu- بررسی وضعیت محیط کانتینری:
wslc system infoدستورات فوق برای بهروزرسانی، بررسی وضعیت و مدیریت توزیعهای لینوکس در WSL استفاده میشوند.
آیا WSL فقط برای برنامهنویسان است؟
خیر. هر کاربری که به ابزارها یا دستورات لینوکس نیاز داشته باشد میتواند از WSL استفاده کند؛ بااینحال بیشترین کاربرد آن در توسعهی نرمافزار، کار با Git، اجرای ابزارهای خط فرمان و ساخت محیطهای توسعه لینوکسی در ویندوز است.
حتی اجرای برخی برنامههای گرافیکی لینوکس نیز در WSL 2 پشتیبانی میشود و این برنامهها میتوانند در کنار نرمافزارهای ویندوزی اجرا شوند.
کدام بهتر است؟ WSL 1 یا WSL 2
در نسخهی اول WSL، ترجمهی فراخوانیهای سیستم لینوکس به ویندوز بخش مهمی از معماری بود، اما WSL 2 از هستهی واقعی لینوکس در ماشین مجازی سبک استفاده میکند. به همین دلیل WSL 2 برای بسیاری از کاربردهای مدرن توسعهی نرمافزار، انتخاب پیشفرض ویندوز است.
مایکروسافت نیز در نصبهای جدید ویندوز، WSL 2 را بهعنوان نوع پیشفرض توزیع لینوکس تنظیم میکند.
ابزار WSL چه تفاوتی با ماشین مجازی دارد؟
در ماشین مجازی، معمولا یک سیستمعامل کامل را با کمک نرمافزارهایی مثل VMware یا VirtualBox اجرا میکنید و منابع سختافزاری بیشتری درگیر میشوند. WSL با هدف ادغام بسیار نزدیکتر لینوکس و ویندوز طراحی شده است و WSL 2 نیز از ماشین مجازی سبک و مدیریتشده برای اجرای هستهی لینوکس بهره میبرد. به همین دلیل، WSL برای کاربرانی مناسب است که بیشتر برای ابزارهای توسعه و خط فرمان بهدنبال اجرای لینوکس در ویندوز هستند، نه اینکه یک دسکتاپ لینوکسی کامل را جایگزین ویندوز کنند.