ما هي أدوات Coreutils لويندوز؟
أدوات Coreutils هي مجموعة من الأوامر الأساسية التي نجدها في جميع توزيعات لينكس، مثل ls و pwd و echo و sort. هذه الأدوات هي نسخ معدلة من الأوامر التقليدية في أنظمة يونكس، وتضم أكثر من 100 أداة مختلفة. تعتبر هذه الأدوات أساسية لدرجة أن توزيعات لينكس يمكن أن تُسمى أيضاً بتوزيعات GNU/Linux بسبب اعتمادها عليها.
إذا لم تكن بعض التوزيعات تحتوي على Coreutils افتراضياً، فإنها غالباً ما تعتمد على بدائل خفيفة مثل BusyBox لتنفيذ الأوامر الأساسية. كما أن بعض الأوامر تُنفذ داخل غلاف الأوامر نفسه (shell) كأوامر مدمجة (built-ins) لتسريع تنفيذها.
على الرغم من أن GNU Coreutils هو الإصدار الأكثر شيوعاً، إلا أن هناك إصدارات أخرى مثل uutils المكتوبة بلغة Rust، والتي تزداد شعبيتها بسبب مزاياها في الأمان وإدارة الذاكرة. именно هذا الإصدار هو الذي قامت مايكروسوفت بدمجه في سطر أوامر ويندوز (Command Prompt و PowerShell).

تثبيت أدوات Coreutils لويندوز
تثبيت هذه الأدوات كان سهلاً للغاية باستخدام أداة WinGet، وهي أداة إدارة الحزم في ويندوز تشبه apt أو pacman في لينكس. لم يكن هناك حاجة لكتابة sudo، حيث فتحت الأداة نافذة UAC تلقائياً للحصول على صلاحيات المسؤول.
استخدام أدوات Coreutils على ويندوز: هل ستنجح؟
بعد التثبيت، جرب الكاتب استخدام بعض الأوامر في PowerShell، لكن سرعان ما واجه مشكلة كبيرة: قامت مايكروسوفت بتهيئة العديد من الأوامر الشائعة في PowerShell لتتناسب مع أوامر لينكس، مثل ls و pwd. هذا أدى إلى تعارضات كثيرة بين أوامر Coreutils الجديدة والأوامر المهيأة مسبقاً في PowerShell.

حتى أن صفحة GitHub الرسمية لأدوات Coreutils تقوم بذكر هذه التعارضات بوضوح. معظم الأوامر تتعارض مع الأوامر المهيأة في PowerShell، مما يعني أن المستخدمين الذين يرغبون في استخدام هذه الأدوات سيتعين عليهم التبديل إلى سطر الأوامر القديم (Command Prompt).
لماذا Command Prompt؟
Command Prompt هو سطر الأوامر القديم في ويندوز، والذي يعود تاريخه إلى عام 1993 مع إصدار ويندوز NT 3.1. على الرغم من أنه أصبح جزءاً أساسياً في Windows Terminal، إلا أنه لم يعد الواجهة الرئيسية لسطر الأوامر في ويندوز، حيث تحل PowerShell محله.

على الرغم من إعلان مايكروسوفت عن deprecated سطر الأوامر القديم لصالح PowerShell، إلا أنه لا يزال مستخدماً في العديد من البرامج الخلفية (background tasks) ولن يختفي قريباً.
عند استخدام هذه الأدوات في Command Prompt، شعرت بأنها تعمل كما هو متوقع، حيث نفذت الأوامر مثل ls و cat بسلاسة.
لماذا سأبقى مع WSL؟
على الرغم من أن مايكروسوفت تهدف من وراء هذه الأدوات إلى تسهيل الانتقال بين أوامر ويندوز ولينكس، إلا أن العيوب الكثيرة لهذه الأدوات تجعل الكاتب يفضل البقاء مع نظام WSL.
WSL يفعل نفس الوظيفة بشكل أفضل
نظام WSL هو بالفعل الحل الأمثل لتشغيل أوامر لينكس على ويندوز. فهو يسمح بتثبيت توزيعات لينكس مثل Ubuntu و Debian و Fedora بسهولة، ويمكنMix بين أوامر ويندوز ولينكس بسلاسة.
على سبيل المثال، يمكنك تشغيل أوامر لينكس من PowerShell أو تشغيل أوامر ويندوز من داخل بيئة لينكس باستخدام لاحقة.exe. هذا يعني أن أدوات Coreutils لا تضيف الكثير من الوظائف الجديدة للمستخدمين الذين اعتادوا على لينكس ولديهم WSL مثبتاً بالفعل.
الاعتماد على Command Prompt: مشكلة كبيرة
أكبر مشكلة في هذه الأدوات هي اعتمادها على Command Prompt القديم. على الرغم من أن مايكروسوفت ستحافظ عليه بسبب دعمها للتقنيات القديمة، إلا أنه ليس الأولوية الرئيسية. PowerShell و WSL هما الواجهتان الرئيسيتان لسطر الأوامر في ويندوز.
الأمر الأكثر سوءاً هو أن Command Prompt لا يدعم تعدد المهام (multitasking) أو التحكم في العمليات (job control) أو تعدد الجلسات (terminal multiplexing). بدلاً من ذلك، يفضل الكاتب استخدام PowerShell أو حتى غلاف لينكس كامل مع دعم كامل للمهام المتعددة.
لماذا تعود مايكروسوفت إلى جذورها؟
هناك تقليد طويل لاستخدام أوامر يونكس في دوس وويندوز، يعود إلى ثمانينيات القرن الماضي عندما كانت مايكروسوفت تخطط لجعل نظام Xenix (نسخة يونكس من مايكروسوفت) مستقبل الشركة. حتى أن مايكروسوفت قامت بتعديل أوامر دوس لتعمل بشكل أقرب إلى أوامر يونكس استعداداً لهذا التحول. لكن التاريخ سلك مسارات أخرى، والآن تعود مايكروسوفت لمحاولة دمج لينكس وويندوز من جديد.
الخاتمة: سأبقى مع WSL
بعض الأفكار تبدو جيدة حتى تجربها. أحببت فكرة تشغيل أوامر يونكس من سطر أوامر ويندوز، لكن هذه الأدوات تحتاج إلى العمل على PowerShell لتكون قابلة للاستخدام حقاً. ربما في الإصدارات المستقبلية، تستطيع مايكروسوفت التخلص من التعارضات وجعل هذه الأدوات أكثر فائدة. في الوقت الحالي، سأبقى مع WSL لجسر الفجوة بين لينكس وويندوز.