اگر برنامهنویس هستید و با ویندوز کار میکنید، احتمالاً بارها با این مشکل روبرو شدهاید که ابزارهای توسعه لینوکسی روی ویندوز یا کار نمیکنند یا تجربه ضعیفتری دارند. قابلیت WSL در ویندوز، راه حلی است که مایکروسافت برای همین مشکل ارائه داده؛ امکانی که اجازه میدهد یک محیط لینوکس واقعی را مستقیماً داخل ویندوز اجرا کنید، بدون نیاز به ماشین مجازی یا بوت دوگانه.
در این نوشته به صورت جامع خواهیم دید که WSL چیست، چرا ساخته شد، چه کاربردی دارد و چطور آن را نصب، راهاندازی و استفاده کنیم. این آموزش هم برای مبتدیها و هم برای کاربران میانی مفید است.
فهرست مطالب
WSL چیست؟
کلمه WSL مخفف Windows Subsystem for Linux است؛ یک لایه سازگاری که مایکروسافت در ویندوز ۱۰ و ۱۱ تعبیه کرده و به شما اجازه میدهد توزیعهای لینوکسی مثل اوبونتو، دبیان، کالی و آرچ را مستقیماً در ویندوز اجرا کنید.
WSL یک ماشین مجازی کامل نیست. در نسخه اول (WSL1) از یک لایه ترجمه syscall استفاده میشد، اما در نسخه دوم (WSL2) از یک کرنل لینوکس واقعی که داخل یک ماشین مجازی سبکوزن اجرا میشود بهره میبرد. نتیجه این است که میتوانید دستورهای لینوکس را اجرا کنید، پکیج نصب کنید، اسکریپت بنویسید و محیط توسعه کامل لینوکسی داشته باشید؛ همه اینها از داخل ویندوز!
چرا WSL ساخته شد؟
تا پیش از WSL، برنامهنویسانی که روی ویندوز کار میکردند گزینههای محدودی داشتند:
- بوت دوگانه: نصب لینوکس در کنار ویندوز روی یک هارد (پیچیده و زمانبر)
- ماشین مجازی (VM): مصرف بالای رم و پردازنده (تجربهای کُند)
- ابزارهایی مانند Cygwin / MinGW: شبیهسازی ناقص محیط لینوکس (ناسازگاری با بسیاری از ابزارها)
مایکروسافت در سال ۲۰۱۶ با شعار «Microsoft Loves Linux» رویکرد خود را تغییر داد. با رشد سریع توسعه وب، DevOps، یادگیری ماشین و ابزارهایی مثل پایتون، داکر و گیت که در لینوکس بهترین عملکرد را دارند، مایکروسافت تصمیم گرفت به جای رقابت با لینوکس، آن را در دل ویندوز جای دهد.
در نتیجه WSL1 در سال ۲۰۱۶ معرفی شد و ۳ سال بعد یعنی در سال ۲۰۱۹، نسخه دوم آن یعنی WSL2 با کرنل لینوکس واقعی، سرعت بالاتر و سازگاری کاملتر جایگزین آن شد.
چرا به WSL در ویندوز نیاز داریم؟
WSL برای گروههای مختلفی از کاربران ارزش واقعی دارد:
برای برنامهنویسان
- اجرای ابزارهایی مثل
bashوgitوmakeوcurlوsshبدون مشکل - مدیریت محیطهای پایتون با
venvوpipدقیقاً مثل لینوکس - اجرای پروژههای جنگو، فلسک و FastAPI بدون تنظیمات پیچیده
- استفاده از ابزارهایی مانند
npmوnodeوyarnدر محیط لینوکسی
برای DevOps و سیستم ادمینها
- تست اسکریپتهای bash و shell مستقیماً روی ویندوز
- استفاده از داکر با یکپارچگی کامل از طریق WSL2
- اجرای دستورات SSH و ابزارهای شبکهای لینوکسی
برای دانشجویان و سایر افراد در حال یادگیری
- یادگیری دستورات لینوکس بدون نیاز به نصب جداگانه
- تمرین محیطهای سرور واقعی روی لپتاپ شخصی
- آمادگی برای کار با سرورهای ابری (AWS و غیره)
تفاوت WSL1 و WSL2
قبل از نصب WSL در ویندوز، باید بدانید نسخه ۱ و ۲ آن چه تفاوتی دارند:
| ویژگی | WSL1 | WSL2 |
|---|---|---|
| نوع معماری | ترجمه Syscall | کرنل لینوکس واقعی (VM سبک) |
| سازگاری با نرمافزارها | متوسط | عالی (تقریباً ۱۰۰٪) |
| سرعت فایلسیستم لینوکس | سریعتر (روی NTFS) | خیلی سریعتر (روی ext4 داخلی) |
| پشتیبانی از داکر | محدود | کامل |
| پشتیبانی از GUI | ندارد | دارد (WSLg) |
توصیه مهم: توصیه میشود همیشه از WSL2 استفاده کنید مگر اینکه دلیل خاصی برای WSL1 داشته باشید.
پیشنیازهای نصب WSL
قبل از نصب WSL در ویندوز، موارد زیر را بررسی کنید:
- ویندوز ۱۰ نسخه ۲۰۰۴ (Build 19041) یا بالاتر — یا ویندوز ۱۱
- معماری ۶۴ بیتی — تقریباً همه کامپیوترهای مدرن این شرط را دارند
- فعال بودن Virtualization در BIOS — برای WSL2 ضروری است
- اتصال به اینترنت — برای دانلود توزیع لینوکس
برای بررسی نسخه ویندوز، کلیدهای Win + R را بزنید، winver را تایپ کرده و اینتر بزنید.
نصب WSL در ویندوز
نصب ساده WSL در ویندوز ۱۰/۱۱
مایکروسافت در نسخههای جدید ویندوز نصب WSL را بسیار ساده کرده است. کافی است یک دستور اجرا کنید:
مرحله ۱) باز کردن ترمینال با دسترسی ادمین: روی منوی استارت ویندوز راست کلیک کنید، گزینه Windows PowerShell (Admin) یا Terminal (Admin) را انتخاب کنید.
مرحله ۲) اجرای دستور نصب: دستور زیر را اجرا کنید:
wsl --install
این دستور به صورت خودکار:
- ویژگیهای مورد نیاز ویندوز را فعال میکند
- کرنل لینوکس را دانلود و نصب میکند
- WSL2 را به عنوان پیشفرض تنظیم میکند
- توزیع اوبونتو را نصب میکند (پیشفرض)
مرحله ۳) ریستارت کامپیوتر: پس از اتمام نصب، سیستم را ریستارت کنید. بعد از بوت مجدد، اوبونتو به صورت خودکار باز میشود و از شما میخواهد نام کاربری و رمز عبور تنظیم کنید.
نکته تکمیلی: اگر میخواهید توزیع خاصی نصب کنید، ابتدا لیست توزیعهای موجود را ببینید:
wsl --list --online
سپس توزیع دلخواه را نصب کنید. مثلاً برای دبیان:
wsl --install -d Debian
در زمان نوشتن این آموزش، توزیعهای لینوکسی زیر توسط WSL پشتیبانی میشوند:
- توزیع Debian
- توزیع Arch Linux
- توزیع openSUSE
- توزیع Kali Linux
- توزیع Fedora نسخه 43 و 44
- توزیع Ubuntu نسخه 22 تا 26
- توزیع SUSE-Linux نسخه 15 و 16
- توزیع AlmaLinux نسخه 8 تا 10
- توزیع Oracle Linux نسخه 7 تا 9
نصب دستی WSL در ویندوزهای قدیمیتر
اگر روی نسخههای قدیمیتر ویندوز ۱۰ هستید، باید مراحلی را به صورت دستی طی کنید:
مرحله ۱) باز کردن ترمینال با دسترسی ادمین: روی منوی استارت ویندوز راست کلیک کنید، گزینه Windows PowerShell (Admin) یا Terminal (Admin) را انتخاب کنید.
مرحله ۲) فعالسازی ویژگیهای موردنیاز: این دستورها در محیط ترمینال خود وارد کنید تا ویژگیهای موردنیاز برای استفاده از WSL در ویندوز شما فعال شوند:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
مرحله ۳) دانلود و نصب کرنل WSL2: از سایت رسمی مایکروسافت، بسته بهروزرسانی کرنل لینوکس را متناسب با سیستم خود (amd64 یا arm64) دانلود و نصب کنید:
مرحله ۴) تنظیم WSL2 به عنوان پیشفرض:
wsl --set-default-version 2
مرحله ۵) نصب اوبونتو از Store مایکروسافت: برنامه Store مایکروسافت را باز کنید، «Ubuntu» یا توزیع لینوکسی دلخواه خود را جستجو کرده و آن را نصب کنید.

اولین اجرا و تنظیمات اولیه
پس از نصب، اوبونتو را از منوی استارت ویندوز باز کنید. در اولین اجرا:
- چند دقیقه صبر کنید تا فایلها extract شوند
- یک نام کاربری وارد کنید (میتواند با نام ویندوز فرق داشته باشد)
- یک رمز عبور برای این کاربر تنظیم کنید (در هنگام تایپ چیزی نمایش داده نمیشود که طبیعی است)
پس از این مراحل، شما داخل شِل لینوکس هستید و آماده کار!
نحوه اجرا و کار با WSL در ویندوز
روشهای باز کردن WSL
- تایپ
wslدر پاورشِل ویندوز یا CMD - باز کردن اوبونتو یا هر توزیع نصبشده دیگر از منوی استارت ویندوز
- باز کردن ترمینال ویندوز و انتخاب پروفایل توزیع لینوکسی
دستورات مدیریتی مهم WSL
این دستورات را در ترمینال ویندوز خود اجرا کنید (نه داخل WSL):
# مشاهده توزیعهای نصبشده
wsl --list --verbose
# اجرای یک توزیع خاص
wsl -d Ubuntu
# خاموش کردن
wsl --shutdown
# بهروزرسانی کرنل
wsl --update
# بررسی وضعیت
wsl --status
دسترسی به فایلهای ویندوز از WSL
یکی از قابلیتهای مهم WSL در ویندوز، دسترسی دوطرفه به فایلسیستم است.
دسترسی به فایلهای ویندوز از داخل WSL
درایوهای ویندوزی شما در مسیر /mnt/ داخل WSL قرار میگیرند:
# change directory to C drive
cd /mnt/c
# change directory to Desktop
cd /mnt/c/Users/YourUsername/Desktop
دسترسی به فایلهای WSL از داخل ویندوز
برای دسترسی به فایلهای WSL از داخل ویندوز خود، کافیست در نوار آدرس File Explorer ویندوزتان تایپ کنید:
\\wsl$\Ubuntu\home\yourusername
دقت کنید که نام توزیع و نام کاربری خود را در این متن، باید جایگزین کنید.
تذکر مهم: برای عملکرد بهتر، پروژههای خود را داخل فایلسیستم لینوکس (مثلاً /projects/~) نگه دارید، نه روی درایو ویندوز. سرعت I/O داخل WSL2 بسیار بیشتر است.
همچنین میتوانید از داخل WSL با دستور زیر، پوشه فعلی را در File Explorer ویندوز باز کنید.
explorer.exe .
اجرای برنامههای گرافیکی لینوکس
در ویندوز ۱۱ و نسخههای جدید ویندوز ۱۰، قابلیت WSLg به صورت پیشفرض فعال است. این قابلیت اجازه میدهد برنامههای گرافیکی لینوکسی که GUI دارند را مستقیماً روی دسکتاپ ویندوز اجرا کنید. مثلاً میتوانید ادیتور متنی gedit را با دستور زیر در لینوکس خود نصب و آن را اجرا کنید
# install gedit
sudo apt install gedit -y
# run gedit GUI in windows
gedit
پنجره gedit مستقیماً روی دسکتاپ ویندوز شما باز میشود!
نکات کاربردی و بهینهسازی WSL
تنظیم wslconfig برای کنترل منابع
قابلیت WSL در ویندوز، دو نوع فایل تنظیمات کلی دارد که میتوانید گزینههای مختلفی را با آنها تنظیم کنید. فایل wslconfig. که تنظیمات عمومی WSL برای همه توزیعهای نصب شده است و فایلهای wsl.conf که تنظیمات را به ازای هر توزیع خاص، تعریف میکند.
یکی از کاربردهای فایل wslconfig. این است که میتوانید منابع اختصاص یافته به WSL را تنظیم کنید:
[wsl2]
memory=4GB
processors=2
swap=2GB
این فایل در پوشه اختصاصی حساب کاربری ویندوز شما قرار دارد:
C:\Users\%UserProfile%\.wslconfig
دقت کنید که پس از هر بار تغییر در فایل wslconfig.، باید یک بار WSL را خاموش و مجدداً روشن کنید.
توصیه فنی: مایکروسافت توصیه میکند به جای ویرایش فایل wslconfig.، تنظیمات WSL را از طریق گزینه WSL Settings که در منوی استارت ویندوز وجود دارد، انجام دهید.
بکاپگیری و بازنشانی بکاپ
با استفاده از دستور زیر، میتوانید از توزیع دلخواه خود یک فایل بکاپ تهیه کنید:
wsl --export Ubuntu C:\backup\ubuntu-backup.tar
همچنین میتوانید با دستور زیر، بکاپی که در مرحله قبل گرفتید را مجدداً restore کنید:
wsl --import Ubuntu C:\WSL\Ubuntu C:\backup\ubuntu-backup.tar
رفع کُندی سرعت فایلهای ویندوزی
اگرچه میتوانید به فایلهای ویندوز از داخل WSL دسترسی داشته باشید ولی حین کار بر روی یک پروژه، توصیه میشود فایلهای خود را در فایلسیستم لینوکس نگه دارید، نه در /mnt/c/. دسترسی cross-filesystem کُند است.
یکپارچهسازی WSL با VS Code
یکی از بهترین ویژگیهای WSL در ویندوز، یکپارچگی عالی با ادیتور محبوب VS Code است. با نصب افزونه رسمی WSL در VS Code، میتوانید مستقیماً فایلهای لینوکسی را ویرایش کنید:
- VS Code را نصب کنید.
- افزونه رسمی «WSL» را از مارکت رسمی VS Code نصب کنید.
- از داخل WSL، در پوشه پروژه تایپ کنید:
. code - VS Code به صورت خودکار با بکاِند لینوکسی باز میشود.
این روش به شما محیط ویرایش ویندوزی با قدرت اجرایی لینوکسی میدهد.
همبستگی WSL و داکر
داکر دسکتاپ در ویندوز از WSL2 به عنوان بکاِند استفاده میکند. این یکپارچگی مزایای زیادی دارد:
- اجرای کانتینرهای لینوکسی با کارایی بالا
- دسترسی مستقیم به داکر از داخل WSL
- مصرف رم کمتر نسبت به اجرای داکر در یک VM کامل
کافی است داکر دسکتاپ را نصب کنید و در تنظیمات، گزینه Use the WSL2 based engine را فعال کنید.
پرسشهای متداول
-
آیا WSL در ویندوز رایگان است؟
بله، WSL کاملاً رایگان است و بخشی از ویندوز ۱۰ و ۱۱ است. توزیعهای لینوکسی موجود در فروشگاه مایکروسافت (مثل اوبونتو و دبیان) نیز رایگان هستند. هیچ هزینهای برای استفاده از WSL وجود ندارد.
-
آیا WSL جایگزین ماشین مجازی (VM) میشود؟
برای اکثر کارهای توسعه، بله. WSL2 برای برنامهنویسی، اجرای ابزارهای CLI و حتی داکر کاملاً کافیست. اما اگر نیاز دارید یک محیط لینوکسی کاملاً ایزوله با رابط گرافیکی مستقل داشته باشید یا سیستم عامل دیگری مثل ویندوز XP را تست کنید، ماشین مجازی هنوز گزینه بهتری است.
-
آیا WSL روی ویندوز ۱۰ هم کار میکند؟
بله، اما باید حداقل روی نسخه ۲۰۰۴ (Build 19041) یا بالاتر باشید. نسخههای قدیمیتر ویندوز ۱۰ فقط از WSL1 پشتیبانی میکنند. برای بررسی نسخه، دستور winver را اجرا کنید.
-
آیا میتوان در WSL برنامههای گرافیکی لینوکس را اجرا کرد؟
بله، در ویندوز ۱۱ و نسخههای جدید ویندوز ۱۰ با قابلیت WSLg این امکان وجود دارد. WSLg یک X Server توکار دارد که اجرای برنامههایی مثل gedit و GIMP یا حتی IDE های لینوکسی را روی دسکتاپ ویندوز ممکن میسازد.
-
آیا WSL برای برنامهنویسی پایتون و جنگو مناسب است؟
کاملاً بله. WSL یکی از بهترین محیطها برای توسعه پایتون و جنگو روی ویندوز است. تمام ابزارهای لازم داخل WSL با کمترین مشکل کار میکنند و تجربهای نزدیک به سرور واقعی لینوکسی دارید.
-
آیا WSL به اینترنت دسترسی دارد؟
بله. WSL به طور پیشفرض از اتصال اینترنت ویندوز استفاده میکند. میتوانید از داخل WSL پکیج دانلود کنید، با curl و wget درخواست HTTP ارسال کنید و کاملاً به شبکه دسترسی داشته باشید.
-
چطور فایلهای ویندوز را در WSL باز کنم؟
درایوهای ویندوز در مسیرهایی مانند /mnt/c/ و /mnt/d/ و غیره قابل دسترسی هستند.
قابلیت WSL در ویندوز یکی از بهترین ابزارهایی است که مایکروسافت در سالهای اخیر ارائه داده است. اگر روی ویندوز کار میکنید اما نیاز به محیط لینوکسی دارید، WSL2 بدون تردید بهترین انتخاب است؛ بدون کندیهای بالاسری ناشی از ماشین مجازی و بدون نیاز به بوت دوگانه. از نصب با یک دستور ساده گرفته تا اجرای پروژههای مختلف، کار با داکر و حتی اجرای برنامههای گرافیکی، WSL ابزار قدرتمندی برای هر برنامهنویس ویندوزی است.