دليل

WSL (Windows Subsystem for Linux): ما هو، وكيف تثبّته وتهيّئه داخل Windows

آخر تحديث: · Skillaria.Top

WSL (Windows Subsystem for Linux) ميزة مدمجة في Windows 10 وWindows 11 تشغّل توزيعة Linux حقيقية دون آلة افتراضية منفصلة أو تشغيل مزدوج. تُثبَّت بأمر واحد هو wsl --install في PowerShell بصلاحيات المسؤول، وتأتي افتراضياً بـ WSL 2 مع Ubuntu، حيث تعمل نواة Linux حقيقية داخل آلة افتراضية خفيفة.

Windows Subsystem for Linux (WSL، نظام Windows الفرعي للينكس) مكوّن في Windows 10 وWindows 11 يتيح تشغيل توزيعة Linux داخل Windows مباشرة: واجهة bash وapt وssh وgrep وDocker وأي أدوات طرفية. لا حاجة إلى تثبيت VirtualBox أو تقسيم القرص لنظام ثانٍ، إذ تُفتح Ubuntu كنافذة طرفية عادية في ثوانٍ. فيما يلي الفرق بين WSL 1 وWSL 2، وكيفية تثبيت النظام الفرعي، والعمل مع الملفات وVS Code والتطبيقات الرسومية، وحل الأخطاء الشائعة.

ما هو WSL في Linux وWindows

باختصار، WSL وسيلة للحصول على بيئة Linux كاملة للتطوير والتعلم دون مغادرة Windows. تثبّت توزيعة (Ubuntu أو Debian أو openSUSE أو Kali أو AlmaLinux وغيرها) من سطر الأوامر أو من Microsoft Store، ثم تعمل فيها كما تعمل على خادم: مستخدمون وصلاحيات وحزم وخدمات.

ومن المهم أن تعرف ما لا يفعله WSL. ليس طبقة محاكاة مثل Cygwin، ولا مجموعة أدوات مُنقولة إلى Windows: في WSL 2 تعمل نواة Linux حقيقية من تطوير Microsoft. لذلك تعمل الملفات التنفيذية الخاصة بـ Linux دون إعادة ترجمة، والمهارات المكتسبة في WSL تنتقل مباشرة إلى خادم حقيقي.

المهام النموذجية لهذا النظام الفرعي:

  • تعلم Linux وسطر الأوامر دون حاسوب منفصل؛
  • تطوير الويب عندما يعمل الإنتاج على Linux (Python وNode.js وPHP وGo)؛
  • Docker Desktop، فهو يستخدم WSL 2 محركاً له؛
  • الاتصال بالخوادم عبر SSH وكتابة سكربتات bash والعمل مع git في بيئة مألوفة.

WSL 1 وWSL 2: ما الفرق

للنظام الفرعي بنيتان. WSL 1 يترجم استدعاءات النظام الخاصة بـ Linux إلى استدعاءات لنواة Windows، ولا توجد فيه نواة Linux منفصلة. أما WSL 2 فيشغّل نواة Linux حقيقية داخل آلة افتراضية خفيفة مبنية على Hyper-V، تبدأ خلال ثوانٍ وتدير ذاكرتها بنفسها.

المعيارWSL 1WSL 2
النواةلا توجد، ترجمة لاستدعاءات النظامنواة Linux حقيقية
توافق استدعاءات النظامجزئيكامل
Docker وsystemdلانعم
السرعة في ملفات Linux (~/)أقلعالية
السرعة في ملفات Windows (/mnt/c)عاليةأقل بوضوح
يتطلب المحاكاة الافتراضية (Virtualization)لانعم
الشبكةمشتركة مع Windowsشبكة افتراضية خاصة (NAT افتراضياً)

في معظم السيناريوهات اختر WSL 2، فهو الإعداد الافتراضي. يصبح WSL 1 مفيداً إذا تعذّر تفعيل المحاكاة الافتراضية (مثلاً عندما تعمل Windows نفسها داخل آلة افتراضية دون محاكاة افتراضية متداخلة)، أو إذا كان المشروع يجب أن يبقى على قرص Windows ويعمل معه باستمرار.

كيفية تثبيت WSL في Windows 10 وWindows 11

في Windows 11 وWindows 10 الإصدار 2004 وما بعده (البناء 19041 فأعلى)، يتلخص التثبيت في أمر واحد. افتح PowerShell أو Windows Terminal بصلاحيات المسؤول ونفّذ:

wsl --install

يفعّل الأمر مكونات Windows اللازمة، ويحمّل نواة WSL 2، ويثبّت Ubuntu. بعد إعادة التشغيل تفتح نافذة التوزيعة، فاختر اسم مستخدم وكلمة مرور لنظام Linux. هذه البيانات مستقلة عن حساب Windows، وكلمة المرور ستحتاجها مع sudo.

Enter new UNIX username: alex
New password:
Retype new password:
passwd: password updated successfully
Installation successful!

حدّث الحزم فوراً كما تفعل على أي خادم جديد:

sudo apt update && sudo apt upgrade -y

كيف تختار التوزيعة

تُثبَّت Ubuntu افتراضياً، لكن يمكنك اختيار توزيعة أخرى. قائمة المتاح:

wsl --list --online

تثبيت توزيعة محددة باسمها من هذه القائمة:

wsl --install -d Debian

إذا كان WSL مثبتاً مسبقاً، فالأمر يضيف التوزيعة الجديدة فقط. ويمكنك الاحتفاظ بعدة أنظمة في وقت واحد، مثلاً Ubuntu للعمل وKali للتجارب.

التحقق من الإصدار: wsl -l -v

لعرض التوزيعات المثبتة وحالتها وإصدار WSL الذي تستخدمه:

wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Running         2
  Debian    Stopped         2

تشير النجمة إلى التوزيعة الافتراضية، وهي التي تُشغَّل بالأمر wsl دون معاملات. ويمكن تغييرها بالأمر: wsl --set-default Debian.

كيفية تحويل WSL 1 إلى WSL 2

تُحدَّد نسخة التثبيتات الجديدة بالأمر:

wsl --set-default-version 2

أما التوزيعة المثبتة مسبقاً فتُحوَّل على حدة (البيانات تبقى، لكن العملية قد تستغرق عدة دقائق):

wsl --set-version Ubuntu 2

التحويل العكسي: wsl --set-version Ubuntu 1.

أوامر إدارة WSL المفيدة

الأمرما يفعله
wslفتح التوزيعة الافتراضية
wsl -d Debianفتح توزيعة محددة
wsl --shutdownإيقاف جميع التوزيعات والآلة الافتراضية لـ WSL 2
wsl --terminate Ubuntuإيقاف توزيعة واحدة
wsl --updateتحديث WSL والنواة
wsl --statusالإصدار الافتراضي والحالة العامة
wsl --export Ubuntu ubuntu.tarنسخة احتياطية من التوزيعة في أرشيف
wsl --import Ubuntu2 D:\wsl\u2 ubuntu.tarاستعادة التوزيعة أو نسخها
wsl --unregister Ubuntuحذف التوزيعة مع جميع بياناتها

انتبه مع --unregister: الملفات داخل التوزيعة تُحذف دون سلة مهملات. قبل ذلك نفّذ --export.

الملفات بين Windows وLinux

تُركَّب أقراص Windows تلقائياً داخل WSL في المجلد /mnt: القرص C: يظهر بوصفه /mnt/c، والقرص D: يظهر بوصفه /mnt/d.

cd /mnt/c/Users/alex/Downloads
ls -l
cp report.csv ~/projects/

وفي الاتجاه المعاكس تظهر ملفات Linux في مستكشف Windows عبر المسار الشبكي \\wsl$\Ubuntu (وفي Windows 11 أيضاً \\wsl.localhost\Ubuntu)، وفي قسم «Linux» بالشريط الجانبي. لفتح المجلد الحالي في المستكشف بسرعة:

explorer.exe .

يمكن من WSL تشغيل برامج Windows (notepad.exe وcode)، ومن PowerShell تنفيذ أوامر Linux عبر البادئة: wsl ls -la. ولتحويل المسارات بين النظامين توجد الأداة wslpath:

wslpath 'C:\Users\alex'
/mnt/c/Users/alex

القاعدة الأهم للأداء في WSL 2: احفظ المشاريع داخل نظام ملفات Linux (~/projects) لا في /mnt/c. الوصول إلى أقراص Windows يمر عبر بروتوكول شبكي، وعمليات مثل git status أو npm install على مشروع كبير تصبح أبطأ بكثير هناك.

VS Code وWSL

يستطيع Visual Studio Code العمل مع WSL كأنه جهاز بعيد: الواجهة تبقى في Windows، بينما تُنفَّذ الطرفية والإضافات والمفسرات والمُصحِّح داخل Linux. يلزم لذلك إضافة WSL من Microsoft. ثم من طرفية التوزيعة انتقل إلى مجلد المشروع ونفّذ:

cd ~/projects/site
code .

عند التشغيل الأول يثبّت VS Code الجزء الخادم داخل Linux تلقائياً. ويظهر في الزاوية اليسرى السفلى مؤشر «WSL: Ubuntu»، فيعني ذلك أن كل ما تشغّله من الطرفية المدمجة يعمل داخل Linux. أما الإضافات مثل Python أو ESLint فيجب تثبيتها «في WSL»، وسيعرض VS Code زراً لذلك.

التطبيقات الرسومية في WSL (WSLg)

في Windows 11 والإصدارات الحديثة من WSL على Windows 10 يوجد WSLg، وهو دعم جاهز للتطبيقات الرسومية في Linux دون إعداد خادم X. ثبّت البرنامج كالمعتاد، وستظهر نافذته بجانب نوافذ Windows، ويظهر اختصاره في قائمة «ابدأ».

sudo apt install gedit -y
gedit ~/.bashrc &

يدعم WSLg الأنظمة X11 وWayland، والصوت، والحافظة. ومع ذلك فهو ليس بديلاً عن سطح مكتب Linux الكامل للعمل اليومي: فـ WSL مصمم لتطبيقات منفردة لا لتشغيل GNOME أو KDE بالكامل.

systemd وموارد WSL 2

تدعم الإصدارات الحديثة من WSL 2 نظام systemd، وهو مفعّل افتراضياً في التثبيتات الجديدة لـ Ubuntu. إذا لم يكن مفعّلاً فأضف إلى الملف /etc/wsl.conf داخل التوزيعة:

[boot]
systemd=true

ثم أعد تشغيل النظام الفرعي من PowerShell بالأمر wsl --shutdown. بعدها تعمل systemctl والخدمات مثل nginx أو PostgreSQL.

ويمكن تحديد الذاكرة والمعالجات التي تستخدمها الآلة الافتراضية لـ WSL 2 من ملف %UserProfile%\.wslconfig على جانب Windows:

[wsl2]
memory=4GB
processors=2

تُطبَّق الإعدادات بعد تنفيذ wsl --shutdown.

أخطاء شائعة عند تثبيت WSL

الخطأ 0x80370102

النص الكامل: «تعذّر تشغيل الآلة الافتراضية لأن مكوناً مطلوباً غير مثبت» (WslRegisterDistribution failed with error: 0x80370102). السبب في الغالب واحد: WSL 2 لا يستطيع تشغيل الآلة الافتراضية. تحقق بالترتيب:

  1. هل المحاكاة الافتراضية العتادية مفعّلة في BIOS/UEFI: Intel VT-x (Intel Virtualization Technology) أو AMD-V (SVM Mode)؟ تظهر الحالة في Task Manager ← «Performance» ← CPU ← «Virtualization: Enabled».
  2. هل مكوّن «منصة الآلة الافتراضية» مفعّل؟
  3. هل المُشرف (hypervisor) معطّل في مُحمّل الإقلاع؟

تُفعَّل المكونات من PowerShell بصلاحيات المسؤول:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
bcdedit /set hypervisorlaunchtype auto

بعد ذلك أعد تشغيل الحاسوب. وإذا كنت تعمل داخل آلة افتراضية، فيجب تفعيل المحاكاة الافتراضية المتداخلة (nested virtualization) على المضيف، أو استخدم WSL 1.

مشكلات أخرى شائعة

  • 0x800701bc: نواة WSL 2 غير محدّثة. نفّذ wsl --update.
  • الأمر wsl --install يعرض المساعدة فقط: WSL مثبت مسبقاً؛ أضف توزيعة بالأمر wsl --install -d Ubuntu.
  • لا يوجد إنترنت داخل WSL عند تشغيل VPN: برنامج VPN يعترض مسارات الشبكة الافتراضية. في Windows 11 يساعد وضع networkingMode=mirrored في قسم [wsl2] بملف .wslconfig.
  • WSL يستهلك مساحة كبيرة: القرص الافتراضي ext4.vhdx يكبر، لكنه لا ينكمش تلقائياً بعد حذف الملفات. يمكن تصغيره يدوياً أو نقل التوزيعة عبر --export و--import.
  • نسيت كلمة مرور Linux: ادخل كمستخدم root من PowerShell بالأمر wsl -u root، ثم نفّذ passwd alex.

WSL أم الآلة الافتراضية أم التشغيل المزدوج

WSL ليس الطريقة الوحيدة للحصول على Linux على حاسوب يعمل بـ Windows. والاختيار يعتمد على المهمة.

الخيارالمزاياالعيوبمتى تختاره
WSL 2تشغيل في ثوانٍ، ملفات مشتركة، VS Code، Dockerلا يوجد سطح مكتب كامل، وخصوصيات في الشبكة والأقراصالتطوير، تعلم سطر الأوامر، السكربتات
آلة افتراضية (VirtualBox أو Hyper-V أو VMware)عزل كامل، لقطات، أي توزيعة وسطح مكتب، بطاقة شبكة خاصةأثقل، والموارد تُخصَّص مسبقاًبيئة تجريبية لخادم، تجارب الشبكة والإقلاع وتقسيم الأقراص
تشغيل مزدوج (Dual boot)كامل قوة العتاد، رسوميات وتعريفات أصليةإعادة تشغيل للتبديل، ومخاطر عند تقسيم القرصLinux كنظام أساسي، والألعاب ومهام GPU على Linux

لتعلم Linux من الصفر يكفي WSL عادةً: الملفات والصلاحيات والعمليات والحزم وسكربتات bash وSSH تعمل كما على الخادم. وتحتاج إلى آلة افتراضية حين تصل إلى أمور تختلف في WSL، مثل مُحمّل الإقلاع وتقسيم الأقراص الفيزيائية وواجهات الشبكة وجدار الحماية على مستوى المضيف.

الخلاصة

يمنحك Windows Subsystem for Linux نظام Linux حقيقياً داخل Windows بأمر واحد هو wsl --install. اختر WSL 2، وتحقق من الإصدارات بالأمر wsl -l -v، واحتفظ بالمشاريع في ~/ لا في /mnt/c، واربط VS Code بإضافة WSL. وإذا فشل التثبيت بالخطأ 0x80370102 فعّل المحاكاة الافتراضية في BIOS ومكوّن «منصة الآلة الافتراضية». وبهذا الإعداد تبدأ الممارسة في دورة Linux.

الأسئلة الشائعة

هل WSL مجاني؟

نعم. يأتي WSL مع Windows 10 وWindows 11 في جميع الإصدارات، بما فيها Home، والتوزيعات مجانية أيضاً.

هل يمكن تشغيل Docker في WSL؟

نعم، لكن في WSL 2 فقط. يمكنك تثبيت Docker Desktop مع محرك WSL 2، أو تثبيت Docker Engine داخل التوزيعة مباشرة كما على خادم Ubuntu عادي.

أين تُخزَّن ملفات توزيعة WSL فعلياً؟

في WSL 2 تُخزَّن في قرص افتراضي من نوع ext4.vhdx داخل ملف تعريف المستخدم في Windows. لا حاجة لفتحه مباشرة، استخدم المسار \\wsl$\ في المستكشف.

كيف أزيل WSL بالكامل؟

احذف التوزيعات بالأمر wsl --unregister <الاسم>، ثم احذف تطبيق «Windows Subsystem for Linux» من قسم «التطبيقات المثبتة»، وعطّل مكونات Windows عند الحاجة.

هل يمكن نقل WSL إلى قرص آخر؟

نعم: wsl --export Ubuntu ubuntu.tar ثم wsl --unregister Ubuntu ثم wsl --import Ubuntu D:\wsl\ubuntu ubuntu.tar. وفي الإصدارات الجديدة يوجد أيضاً الأمر wsl --manage Ubuntu --move.

تعلّم هذا الموضوع بالفيديو

يُشرح هذا الموضوع بالتفصيل مع التطبيق العملي في دورة «Linux: с нуля до уверенного администрирования».

الانتقال إلى الدورة