استخدام نظام WSL للمهام غير الواضحة

  • يوفر WSL 2 بيئة لينكس شبه كاملة داخل نظام ويندوز، مع أداء جيد وتوافق عالٍ وتأثير محدود نسبيًا على النظام المضيف.
  • عادة ما تأتي المشاكل الرئيسية لـ WSL من الشبكة (DNS، VPN، جدار الحماية المؤسسي) والافتراضية، ولكن جميعها تقريبًا لها حلول معروفة.
  • يُعد WSL مثاليًا لتطوير واختبار المشاريع المصممة لنظام Linux (Docker، والخوادم، وقواعد البيانات) مع الحفاظ على سير العمل الكلاسيكي لنظام Windows.
  • عندما لا تعود هناك حاجة إلى WSL، فمن الممكن إلغاء تثبيت التوزيعات والميزات الاختيارية لترك نظام التشغيل Windows كما كان من قبل.

استخدام نظام WSL للمهام غير الواضحة

WSL، وDocker، وLinux، والآلات الافتراضية... يبدو عالماً معقداً لمن يعملون على مشاريع تطوير ويندوز. يسمع العديد من المطورين أشياء رائعة عن... نظام Windows الفرعي لنظام Linuxلكن عندما يجلسون أمام جهاز الكمبيوتر، لا يكون واضحاً لهم ما هي المشكلة الحقيقية التي سيحلها، وما هي المخاطر التي ينطوي عليها، أو كيفية تنظيف كل شيء بعد ذلك.

سنتناول في هذه المقالة نظرة فاحصة على ماهية WSL، وما هي أهدافها التي تتجاوز ما هو واضح، وقبل كل شيء، كيفية استخدامه بطريقة تقلل من "فوضى" تثبيت نظام التشغيل Windows الخاص بك قدر الإمكانسنرى أيضًا متى قد تكون مهتمًا بتغيير الأمور واستخدام نظام لينكس كنظامك الرئيسي، وترك نظام ويندوز في جهاز افتراضي.

ما هي رابطة محترفي ركوب الأمواج (WSL) تحديداً، ولماذا يتحدث عنها الكثير من الناس؟

WSL تعني نظام ويندوز الفرعي لنظام لينكس، وهو النظام الفرعي لنظام ويندوز لتشغيل توزيعات لينكس مدمج ضمن نظامي التشغيل ويندوز 10 و11. فكرة مايكروسوفت بسيطة: أن تمنحك بيئة لينكس "حقيقية" دون إجبارك على استخدام نظام تشغيل مزدوج أو إعداد جهاز افتراضي كلاسيكي باستخدام VirtualBox أو VMware.

عمليًا، باستخدام WSL يمكنك تشغيل توزيعة مثل أوبونتو أو ديبيان أو كالي جنبًا إلى جنب مع ويندوز، ومشاركة الملفات بين النظامين، و تشغيل أدوات لينكس النموذجية (bash، ssh، apt، Python، Node، Docker...) دون مغادرة سطح المكتب المعتاد. كل ذلك مع درجة عالية من التكامل مع النظام المضيف.

منذ إطلاقها، أثارت WSL آراءً متباينة للغاية. يعتبرها بعض المطورين نجاحًا باهرًا وسببًا مقنعًا لمواصلة استخدام ويندوز. بينما يراها آخرون، وخاصة من مجتمع لينكس الأكثر أصالة، مجرد مناورة من جانب "التبني والتوسيع والإطفاء" للحفاظ على هيمنة مايكروسوفت على أجهزة سطح المكتبوبغض النظر عن الجدل، فإن الحقيقة هي أن WSL قد غيرت طريقة عمل العديد من المطورين.

الإصدار الموصى به حاليًا هو WSL 2لم يعد الأمر مجرد طبقة توافق؛ بل يستخدم آلة افتراضية خفيفة الوزن بنواة لينكس حقيقية. وتؤكد مايكروسوفت أنها "ليست آلة افتراضية تقليدية" لأنها تقوم بإنشائها وتهيئتها وتحسينها نيابةً عنك، ولكنها في جوهرها تعتمد على تقنيات المحاكاة الافتراضية مثل Hyper-V.

وسل

مقارنة بين WSL 1 و WSL 2 والمتطلبات التي يجب مراعاتها

من المهم اليوم فهم الفرق بين تصنيف WSL 1 وتصنيف WSL 2، وخاصة فيما يتعلق بقضايا الأداء والتوافق ومتطلبات الأجهزةقام نظام WSL 1 بترجمة استدعاءات نظام Linux إلى Windows؛ وقد نجح في العديد من الأمور، لكنه فشل في التوافق مع الأدوات الأكثر تقدمًا.

مع نظام WSL 2، تُغير مايكروسوفت نهجها: يقوم بتشغيل نواة لينكس كاملة داخل آلة افتراضية عالية التحسينهذا يحسن التوافق بشكل كبير (Docker، وأنظمة ملفات Linux النموذجية، وما إلى ذلك) ومعظم البرامج التي تعمل على نظام Linux "الحقيقي" تعمل أيضًا داخل WSL 2.

الجانب السلبي هو أن WSL 2 لديه المزيد من التبعيات. يتطلب دعم المحاكاة الافتراضية لوحدة المعالجة المركزية و SLAT (ترجمة عناوين المستوى الثاني).تتوفر هذه الميزة في المعالجات الحديثة نسبيًا (مثل معالجات Intel Nehalem وما بعدها، ومعالجات AMD Opteron وما بعدها). أما المعالجات القديمة، مثل بعض معالجات Core 2 Duo، فلن تتمكن من استخدام WSL 2 حتى مع تفعيل جميع الميزات.

بالإضافة إلى ذلك، لاستخدام WSL 2، تحتاج إلى إصدار حديث بما فيه الكفاية من نظام التشغيل Windows: ويندوز 10 الإصدار 1903 (النسخة 18362) أو أحدث، أو ويندوز 11في الأنظمة القديمة، عليك الالتزام بنظام WSL 1، مع قيوده. وهذا يعني، بطريقة ما، ما زلتَ تُعاني من متطلبات ودورات حياة نظام التشغيل ويندوزإذا لم يعد جهازك مدعومًا، فسيتوقف دعم نظام WSL أيضًا.

إعداد سريع لدوري WSL والقرارات الأولية

في الإصدارات الحالية من نظام التشغيل ويندوز، قامت مايكروسوفت بتبسيط العملية بشكل كبير. من خلال وحدة تحكم PowerShell بصلاحيات المسؤول، ما عليك سوى تشغيل الأمر التالي: سيقوم الأمر wsl –install بتثبيت WSL ونظام Ubuntu افتراضي.يقوم النظام نفسه بتنزيل المكونات الضرورية والتوزيعة من متجر مايكروسوفت.

أثناء عملية التشغيل الأولى للتوزيعة، سيُطلب منك إنشاء اسم مستخدم وكلمة مرور لنظام لينكسهذا المستخدم هو حسابك الرئيسي داخل التوزيعة، وهو مستقل تمامًا عن حساب Windows الخاص بك، مما يساعد في الحفاظ على مستوى معين من العزل.

إذا كنت ترغب في التعمق أكثر، يمكنك سرد جميع التوزيعات المتاحة باستخدام قائمة wsl على الإنترنت واختر، على سبيل المثال، دبيان، أو كالي، أو أوبن سوزي، أو غيرها من توزيعات أوبونتو. يتم التثبيت باستخدام wsl –install -d اسم التوزيع وكل توزيعة تعيش في "صندوق" معزول خاص بها.

بشكل افتراضي، في الأنظمة الجديدة، يتم تنفيذ أمر wsl –install نفسه قم بتهيئة WSL 2 كإصدار أساسيلكن يمكنك ضمان ذلك باستخدام الأمر `wsl --set-default-version 2`. إذا كانت لديك توزيعات تم إنشاؤها باستخدام WSL 1، فيمكنك ترحيلها بشكل فردي باستخدام wsl –set-version DISTRIBUTION_NAME 2، على حساب وقت تحويل قصير.

وسل

كيف يؤثر نظام WSL على نظام ويندوز الخاص بك وأين يخزن الملفات

ربما يكون أحد أهم مخاوفك هو مدى "ازدحام" نظام ويندوز الخاص بك بنظام WSL، وأين ينتهي المطاف بكل ما تقوم بتثبيته على لينكس. الأمر الأساسي هو... يتم تخزين كل توزيعة من توزيعات WSL في مجلد بيانات المستخدم ضمن %LocalAppData%\Packagesوإذا كنت تفضل إدارة الملفات خارج مستكشف الملفات الكلاسيكي، فيمكنك استخدام مديري الملفات البديلينلا يقوم بتوزيع الملفات في جميع أنحاء القرص كما تفعل عملية تثبيت نظام لينكس التقليدية.

يوجد داخل هذا المجلد دليل LocalState يحتوي على قرص افتراضي (VHDX) يحتوي على نظام ملفات لينكس بالكامل: /، /home، /var، إلخ.بمعنى آخر، خادم الويب، وDocker، وقواعد البيانات، وشفرة المشروع - كل شيء موجود داخل هذا الحاوية. طالما أنك لا تُجري أي تغييرات على أي شيء خارجها، فإن التأثير على مسارات Windows النموذجية يكون ضئيلاً.

ومع ذلك، يتطلب نظام WSL تفعيل بعض ميزات النظام: "نظام ويندوز الفرعي لنظام لينكس" و، بالنسبة لنظام ويندوز الفرعي 2، "منصة الآلة الافتراضية"يمكن القيام بذلك عبر PowerShell (باستخدام الأمر Enable-WindowsOptionalFeature) أو من خلال واجهة المستخدم الرسومية "تشغيل ميزات Windows أو إيقاف تشغيلها". كما يتم تثبيته أيضًا. نواة لينكس لنظام WSL في %SystemRoot%\System32\lxss\tools.

تصبح هذه المكونات جزءًا من نظام التشغيل ويندوز بمجرد تفعيلها، لذا إذا كنت ترغب في أي وقت في... اترك النظام كما لو أنك لم تلمس WSL مطلقًاستحتاج إلى إلغاء تثبيت التوزيعات، وتعطيل الميزات الاختيارية، وإذا لزم الأمر، إزالة حزمة النواة. إنها ليست عملية بسيطة كحذف مجلد فقط، ولكنها ليست معقدة للغاية أيضاً.

ضع في اعتبارك أيضًا أن WSL يقوم بإنشاء واجهة شبكة افتراضية، ويضبط قواعد جدار الحماية، وفي حالة WSL 2، يعتمد على خدمات مثل ICS (مشاركة اتصال الإنترنت) وHNS لإدارة NAT الداخلي وDNS وDHCPكل هذا واضح في العمليات اليومية، ولكنه يفسر سبب تعارض بعض شبكات VPN أو جدران الحماية الخاصة بالشركات أحيانًا مع WSL.

استخدام WSL لتطوير الويب والمهام الأقل وضوحًا

بعيدًا عن الحاجة المعتادة إلى "أريد استخدام Bash على نظام Windows"، يتألق WSL عندما تحتاج إلى أعد إنشاء بيئات إنتاج لينكس دون مغادرة سطح مكتب ويندوز الخاص بكعلى سبيل المثال، الحالة التي ذكرتها: مشروع مفتوح المصدر يستخدم Docker و Flask و ArangoDB وخدمات الواجهة الخلفية الأخرى.

بدلاً من المعاناة مع إصدارات ويندوز الغريبة أو Docker Desktop على نظام ويندوز الأصلي (والذي كان تاريخياً أمراً مؤلماً للغاية)، يمكنك تثبيت المجموعة الكاملة مباشرة داخل توزيعة WSL الخاصة بك. يعمل Docker بشكل طبيعي على نواة WSL 2تعمل خدمات لينكس كما لو كانت على خادم حقيقي، وتستمر في استخدام VS Code أو أدوات رسومية أخرى من نظام التشغيل ويندوز.

وهناك أيضاً مزايا أقل وضوحاً. يمكنك الركض برامج إدارة النظام، وأدوات سطر الأوامر الخاصة بنظام لينكس، وإصدارات جيدة من Node وNVM، ومديري الحزم مثل aptوبشكل عام، يشمل ذلك النظام البيئي الكامل للأدوات المساعدة التي اعتاد مطورو الخوادم على استخدامها.

بفضل تكامل نظام الملفات، يقوم نظام WSL بتثبيت أقراص Windows الخاصة بك تحت /mnt (على سبيل المثال، /mnt/c لمحرك الأقراص C:). وهذا يسمح لك بـ قم بتحرير الكود باستخدام محرر النصوص الخاص بنظام ويندوز، ثم قم بتشغيله داخل نظام لينكس دون تكرار المشاريع..

ومن الأمور الأخرى المثيرة للاهتمام إمكانية التشغيل البيني من الجانب الآخر: فمن خلال سطر أوامر لينكس، يمكنك استدعاء ملفات تنفيذية لنظام التشغيل Windows مثل notepad.exe أو powershell.exe أو أي ملف تنفيذي خاص بالنظامإذا كان متغير PATH الخاص بك يتضمن مسارات Win32 مثل /mnt/c/Windows/System32، فإن كتابة اسم الملف القابل للتنفيذ سيؤدي إلى تشغيله، إلا إذا قام shell الخاص بك عن طريق الخطأ بالكتابة فوق PATH.

وسل

ويندوز تيرمينال: الشريك الأمثل لنظام WSL

لجعل تجربة استخدام نظام WSL أكثر راحة، توصي مايكروسوفت باستخدام ويندوز تيرمينال (ويندوز تيرمينال باللغة الإسبانية)إنه تطبيق حديث يسمح لك بفتح علامات التبويب من مختلف أنواع الصدف: PowerShell وCMD، والأهم من ذلك، كل توزيعة من توزيعات WSL الخاصة بك.

باستخدام Windows Terminal، يمكنك إنشاء جلسات Ubuntu أو Debian أو Kali من برنامج واحد، مع علامات تبويب ولوحات، وتكوين اختصارات لوحة المفاتيح، و تخصيص الخطوط والألوان والملفات الشخصية دون الحاجة إلى إدارة آلاف نوافذ cmd.exe المنفصلة. علاوة على ذلك، يُغني عن استخدام أدوات قديمة مثل PuTTY لاتصالات SSH، حيث يمكنك الاتصال بالخوادم البعيدة مباشرةً من توزيعة WSL.

تتمثل آلية العمل النموذجية للعديد من المطورين على نظام التشغيل ويندوز اليوم فيما يلي: كتابة الكود في VS Code، والطرفية الرئيسية في Windows Terminal، والخلفية والأدوات داخل WSLيوفر هذا المزيج تجربة قريبة جدًا من العمل على نظام macOS أو مباشرة على توزيعة لينكس المكتبية.

مشاكل الشبكة، ونظام أسماء النطاقات (DNS)، وشبكة VPN، وغيرها من المشاكل في WSL

عادةً ما يُسبب نظام WSL 2 معظم المشاكل في الشبكة: عند استخدام جهاز افتراضي خفيف الوزن، يعتمد ذلك على محول افتراضي، وقواعد جدار الحماية، وNAT داخلي صغير والتي تتعارض أحيانًا مع إعدادات الشركات، أو الشبكات الافتراضية الخاصة (VPN)، أو برامج مكافحة الفيروسات المزودة بجدران حماية، أو سياسات الأمان الصارمة.

المشكلة الشائعة هي أن لا تتوفر خدمة الإنترنت على أجهزة الكمبيوتر الخاصة بشركة WSLفي العديد من نطاقات Active Directory، تحظر قواعد جدار الحماية المُعرّفة من قِبل المؤسسة القواعد المحلية. ولأن الاستثناء الذي يُنشئه HNS للسماح بحركة مرور DNS من بطاقة الشبكة الظاهرية WSL هو استثناء محلي، فإنه يُتجاوز. إذا تم ضبط `AllowLocalFirewallRules` أو `AllowInboundRules` على `False` في الملف التعريفي المُناسب (باستخدام `Get-NetFirewallProfile`)، فلن يتمكن WSL من تحليل أسماء النطاقات.

يكمن الحل في قيام المسؤول بتحديد قاعدة مؤسسية مناسبة. أو، بدلاً من ذلك، قم بتمكين نفق DNS الخاص بـ WSL باستخدام خيار dnsTunneling التجريبي في ملف .wslconfig. تتيح هذه الميزة إرسال استعلامات نظام أسماء النطاقات (DNS) الداخلية لنظام Linux مباشرةً إلى محلل Windows عبر طبقة المحاكاة الافتراضية، دون الحاجة إلى حزم الشبكة التقليدية التي قد تتعارض مع جدار الحماية.

بعض الشبكات الافتراضية الخاصة (VPN) تسبب مشاكل أيضاً. هناك حالات معروفة مع Cisco AnyConnect، عملاء OpenVPN، حلول مثل ZScaler، McAfee Safe Connect أو Bitdefender تُعدّل هذه البرامج المسارات، أو NRPT، أو الخوادم الوكيلة بطريقة تُعطّل NAT أو تُعيق حركة مرور WSL. أحيانًا يكون الحل هو تفعيل networkingMode=mirrored، وأحيانًا أخرى تعطيل dnsTunneling، أو حتى تعديل إعدادات autoProxy بحيث يتناسب عكس HTTP_PROXY/HTTPS_PROXY داخل Linux مع سيناريو استخدامك.

في وضع NAT الكلاسيكي توجد قيود مثل: لا يمكنك تحديد سوى ثلاثة خوادم DNS في /etc/resolv.confيُساعد dnsTunneling أيضًا في حلّ هذه المشكلة: يستخدم نظام Linux جميع خوادم DNS المُهيأة بواسطة Windows. علاوة على ذلك، تُعالج لاحقات DNS بشكل مختلف اعتمادًا على ما إذا كنت تستخدم NAT فقط، أو NAT مع DNS tunneling، أو الوضع المُنعكس. في الوضع المُنعكس، تنعكس جميع لاحقات DNS الخاصة بـ Windows في بحث resolv.conf ويتم تحديثها تلقائيًا عند تغييرها على الجهاز المُضيف.

التوافق مع Docker والحاويات داخل WSL

كان أحد الأسباب الرئيسية لاعتماد WSL 2 هو التحسين الجذري لتجربة Docker. الفكرة الرسمية من مايكروسوفت وDocker هي أن يستخدم Docker Desktop نظام WSL 2 كخادم خلفي، بدلاً من استخدام Hyper-V المباشر أو محركه القديم.

ومع ذلك، ليس كل شيء مثالياً. فقد تم اكتشاف مشاكل، على سبيل المثال، عندما يمكنك استخدام وضع الشبكة المتطابقة (networkingMode=mirrored) وتشغيل الحاويات باستخدام المنافذ المنشورةفي هذه الحالات، قد يفشل Docker Desktop في إنشاء هذه الحاويات إذا كنت تستخدم مساحة اسم الشبكة الافتراضية. الحل المؤقت هو تشغيل الحاويات باستخدام `--network host` أو إضافة المنافذ التي بها مشكلة إلى `ignoredPorts` في ملف `.wslconfig`.

وهناك أيضاً حوادث تتعلق بالحاويات التي تحمل مدير الشبكة أو خدمات الشبكة المعقدة النشطة الأخرى قد تمنع هذه البرامج تكوين شبكة WSL من العمل بشكل صحيح، خاصةً بالنسبة للاتصالات العائدة إلى المضيف. توصي مايكروسوفت بتعطيل هذا النوع من البرامج عندما لا تكون ضرورية للغاية.

إذا أضافت بيئة شركتك، بالإضافة إلى ذلك، وكيل HTTP/S وقمت بتمكين خاصية autoProxy في WSL، فستظهر متغيرات مثل HTTP_PROXY و HTTPS_PROXY و NO_PROXY و WSL_PAC_URLلاحظ أن المتغيرات التي يُعرّفها المستخدم لها الأولوية على المتغيرات المُنشأة تلقائيًا. لا يدعم نظام لينكس خاصية PAC بشكلٍ أصلي، لذا قد تحتاج إلى تعديل البرامج النصية أو تعطيل هذه الخاصية.

الأخطاء الشائعة في توزيعة لينكس وكيفية حلها

بمجرد الدخول إلى التوزيعة، قد تظهر مشاكل لينكس المعتادة، ويتفاقم بعضها بسبب خصائص نظام WSL. ومن الأمثلة الكلاسيكية على ذلك ما يلي: لم يتم العثور على أوامر Windows مثل powershell.exe أو notepad.exe عن طريق استدعائها من bash مع رسالة "الأمر غير موجود".

في معظم الحالات، يرجع ذلك إلى برنامج بدء التشغيل (مثل /etc/profile في دبيان). إعادة تعريف PATH دون مراعاة القيمة التي يمررها WSLقد يؤدي هذا إلى فقدان مسارات مثل /mnt/c/Windows ومواقع مشابهة. الحل الأمثل هو عدم استبدال متغير PATH، بل توسيعه، أو ببساطة حذف الأسطر المُسببة للمشكلة. يُنصح أيضًا بالتأكد من أن `appendWindowsPath=false` في `/etc/wsl.conf`.

مشكلة أخرى متكررة هي أخطاء الترقية باستخدام apt-get المتعلقة بخدمات udev والنظام هذه الميزات غير مدعومة في نظام WSL، لأنه ليس نظامًا متكاملًا مع تهيئة تقليدية. الحل المعتاد هو تثبيت سكربت policy-rc.d في المسار /usr/sbin، والذي يُعيد رمز الخروج 101 لمنع بدء تشغيل الخدمات، وإضافة صلاحيات التنفيذ، واستخدام dpkg-divert لإعادة توجيه /sbin/initctl إلى /bin/true.

يتميز بروتوكول SSH أيضاً بخصائصه الفريدة. فإذا واجهت، عند محاولة الاتصال بخادم بعيد، تحذيرات مثل "ملف المفتاح الخاص غير محمي!" وصلاحيات 0777، فمن المرجح أن أنت تقوم بحفظ المفاتيح في دليل مثبت من نظام التشغيل ويندوز مع صلاحيات متساهلة للغاية. لكي يدير نظام WSL صلاحيات POSIX على ملفات Windows بشكل صحيح، يُنصح بإضافة قسم إلى الملف /etc/wsl.conf يتضمن خيارات مثل metadata,uid=1000,gid=1000,umask=0022.

على العكس من ذلك، إذا قمتَ بإعداد خادم OpenSSH ضمن توزيعة WSL الخاصة بك، وعند الاتصال من نظام Windows، رأيتَ رسالة "تم إغلاق الاتصال بواسطة 127.0.0.1 المنفذ 22"، فتحقق من السجلات عن طريق تشغيل sshd في وضع التصحيح، وتأكد من ذلك. توجد مفاتيح مضيف في /etc/ssh لم يتم حذفهاإذا كانت مفقودة، فيمكن إعادة إنشائها أو ببساطة، يمكن حذف حزمة openssh-server وإعادة تثبيتها.

استخدام WSL في الإصدارات القديمة من Windows والإصدار القديم

في فرق مع إصدارات قديمة جدًا من نظام التشغيل ويندوز 10 (تحديث المبدعين، تحديث الذكرى السنوية) يُعد دعم WSL محدودًا للغاية. فقد استخدم bash.exe وlxrun، بالإضافة إلى تطبيق أقل تطورًا. تختلف الأوامر والمسارات. كانت أوامر لينكس تُمرر باستخدام bash -c، وكانت التوزيعات تُخزن في %LocalAppData%\lxss، وكان التوافق مع ويندوز بدائيًا.

إذا كنت قادمًا من تلك المرحلة ولا تزال تستخدم "الإصدار القديم" من WSL، فإن مايكروسوفت توصي انقل بياناتك إلى توزيعة حديثة من المتجر ثم قم بإلغاء تثبيت الإصدار القديم. يمكنك القيام بذلك باستخدام الأمر wsl –unregister Legacy أو عن طريق حذف مجلد %LocalAppData%\lxss يدويًا (كن حذرًا، فهذا يحذف جميع محتويات نظام لينكس القديمة).

في تلك الأنظمة، ميزات مثل WSL 2، دعم رسمي لتطبيقات لينكس الرسومية، التكامل مع Docker Desktop، وتبسيط عملية تثبيت wsl --install هذه الميزات غير متوفرة. إذا كان جهازك يدعم ذلك، فمن الأفضل الترقية إلى إصدار حديث. أو يمكنك الترقية مباشرةً إلى نظام التشغيل Windows 11 للاستفادة من أحدث إصدار من النظام الفرعي.

على أي حال، إذا كنت ترغب قبل كل شيء في تقليل التأثير على نظام التشغيل ويندوز أو إذا كان جهاز الكمبيوتر الخاص بك متأخرًا من حيث المتطلبات، فهناك بديل قوي بشكل متزايد: استخدم نظام لينكس كنظام رئيسي، واجعل نظام ويندوز يعمل على جهاز افتراضي. (على سبيل المثال، باستخدام VirtualBox أو VMware أو GNOME Boxes). بهذه الطريقة تتجنب الاعتماد على المتطلبات المتزايدة لنظام التشغيل Windows 11، وتحافظ على عمر جهازك لفترة أطول.

جدولة المهام في لينكس باستخدام Crontab
المادة ذات الصلة:
جدولة المهام في لينكس باستخدام Crontab