يقول باحث Google إن تصميم نواة Windows NT لا يزال يقزم Linux

📅 2026-09-27

الملخص:

قامت لوري كيرك، الباحثة التي عملت كمهندس عكسي في Microsoft لمدة أربع سنوات وتعمل الآن في Google، بإعادة إشعال الجدل الذي دام عقودًا من الزمن بين Windows وLinux. صرحت علنًا أن نواة Windows NT لا تزال "معجزة هندسية" من منظور التصميم الهندسي، بل إنها تقزم Linux في العديد من الجوانب. كما طرحت أيضًا سيناريو تاريخي بديل جريء إلى حد ما: إذا أطلقت Microsoft "Open NT" في أوائل القرن الحادي والعشرين والذي سمح للمؤسسات الكبيرة بالتعديل والاشتقاق بحرية، فإن بيئة الحوسبة السحابية والخادم اليوم قد تقدم مشهدًا مختلفًا تمامًا.

Google-rsearcher-Laurie-Kirk-argues-Windows-NT-kernel-outclasses-Linux.jpg

أكدت كيرك أن ما أعجبها لم يكن قائمة "ابدأ" أو Copilot أو إعلانات Windows 11، بل بنية NT kernel الأساسية لنظام Windows. إنها تعتقد أن NT قد أنشأ نموذج كائن ونظام أمان كاملين نسبيًا منذ البداية، بينما أضاف Linux آليات أمان تدريجيًا مثل القدرات ومساحات الأسماء وSELinux على أساس Unix التقليدي، لذلك يبدو أكثر تشتتًا بشكل عام.

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

يعد Windows NT في الواقع الأساس التقني لجميع إصدارات Windows الرئيسية منذ عام 1993، بما في ذلك Windows 11 الحالي. قامت Microsoft بتعيين Dave Cutler في عام 1988، والذي كان في السابق مسؤولاً عن تطوير نظام تشغيل VMS في DEC. وفقًا لمايكروسوفت، أمضى فريق صغير من مهندسي DEC السابقين بقيادة كاتلر حوالي ستة أشهر في تطوير المواصفات قبل البدء فعليًا في كتابة التعليمات البرمجية. تضمنت الأهداف الأولية إمكانية النقل ودعم المعالجات المتعددة وشهادة الأمان على مستوى C2.

Windows-NT-Workstation.jpg

وشارك أيضًا في المناقشة مهندس Microsoft المتقاعد ديف بلامر. وأشار إلى أن NT ليست المرة الأولى التي يصمم فيها Cutler نواة نظام التشغيل من الصفر. لقد شارك سابقًا في RSX-11M وVMS، لذا فإن NT هي في الواقع المرة الثالثة التي يقوم فيها Cutler ببناء نواة من الصفر.

ومع ذلك، لا يقوم NT ببساطة باستبدال VMS بواجهة Windows. كان يُطلق عليه في الأصل اسم NT OS/2، وهو نظام تشغيل يركز على قابلية النقل. تم تطويره لأول مرة لمعالج Intel i860، ثم انتقل بعد ذلك إلى بنية MIPS. قامت Microsoft في النهاية بتغيير اتجاه المنتج الرئيسي لـ NT من OS/2 إلى Win32. كانت الخلفية المهمة هي أن Windows 3.1 باع 16 مليون نسخة في ستة أشهر فقط.

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

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

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

يعتقد كيرك أن طريقة الإدارة الموحدة نسبيًا لموارد النظام المختلفة هي طريقة أنيقة للغاية وهي أيضًا إحدى المزايا المهمة لبنية NT.

يعتمد نموذج أمان NT أيضًا على الموارد والهويات والأذونات. بعد تسجيل دخول المستخدم إلى Windows، يقوم النظام بإنشاء رمز وصول، والذي يحتوي على معرف أمان المستخدم SID، ومجموعة المستخدمين التي ينتمي إليها، وأذونات النظام ذات الصلة. عادةً ما تحصل العمليات التي يبدأها المستخدمون على رموز الوصول المقابلة، وكل كائن يمكن حمايته لديه واصف أمان، والذي يتضمن قائمة التحكم في الوصول التي تحدد معرفات الأمان (SIDs) التي يمكنها الحصول على الأذونات أو التي يجب رفضها.

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

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

أحد انتقادات كيرك الرئيسية لنظام التشغيل Linux هو أن Linux يستخدم آليات تعاون متعددة لإدارة الأمان والأذونات. تضمنت الأسئلة التي أثارتها UID، وGID، وACL، ومجموعات cgroup، وسياسات الأمان المختلفة، وSELinux، وأذونات نظام الملفات، وما إلى ذلك، واعتقدت أن هناك نقصًا في مخطط علاقة الأذونات الموحد والبديهي بين هذه الآليات.

Windows-NT-Machine.jpg

ومع ذلك، يعد هذا التعقيد أيضًا جزءًا من الطريقة التي تم بها تصميم Linux. يتم استخدام UID وGID لتحديد المستخدمين ومجموعات المستخدمين، بينما تكون أذونات الملفات وقائمة التحكم بالوصول (ACL) مسؤولة عن حماية الملفات. يمكن للقدرات فصل إمكانيات حسابات الجذر التقليدية، مثل السماح لخادم الويب بربط المنفذ 80 دون الحصول على أذونات الجذر الكاملة. تسمح مساحات الأسماء للعمليات برؤية عمليات تثبيت نظام الملفات أو العمليات أو بيئات الشبكة المستقلة. تكنولوجيا الحاويات مبنية على هذه الآلية. مجموعات التحكم مسؤولة عن الحد من استخدام الموارد مثل وحدة المعالجة المركزية والذاكرة، ويمكن لـ SELinux ووحدات أمان Linux الأخرى فرض سياسات أمان إضافية على هذا الأساس.

تمت بالفعل إضافة العديد من آليات Linux هذه تدريجيًا أثناء تطوير النواة. على سبيل المثال، تم اقتراح SELinux في الأصل من قبل وكالة الأمن القومي الأمريكية في شكل تصحيح مستقل في عام 2001. قام Linux بعد ذلك بإنشاء إطار عمل وحدة أمان Linux بحيث يمكن الوصول إلى نماذج الأمان المختلفة من خلال خطافات kernel الموحدة. اليوم، تدعم نواة Linux بالفعل آليات أمنية متعددة مثل SELinux، وAppArmor، وSmack، وTOMOYO، وLandlock.

لذلك، هناك بالفعل اختلافات كبيرة في فلسفات التصميم لنظامي التشغيل. يميل NT إلى مركزية الإدارة حول نموذج كائن موحد، بينما يولي Linux المزيد من الاهتمام لقابلية التركيب، مما يسمح للآليات المختلفة بتولي مهام مختلفة، ويسمح للتوزيعات والمسؤولين وسيناريوهات التطبيق بدمج نفسها.

يعتقد كيرك أن هذا الاختلاف يستحق إعادة النظر فيه بشكل خاص اليوم مع التطور السريع لعملاء الذكاء الاصطناعي. وكان السؤال الأساسي الذي أثارته هو: "ما الذي يُسمح لعامل الذكاء الاصطناعي أن يفعله بالضبط؟"

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

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

في الواقع، قدم Linux المزيد والمزيد من الأدوات لحل هذه المشكلة. يسمح Landlock الذي تمت إضافته في Linux 5.13 حتى للعمليات التي لا تتمتع بامتيازات بالحد بشكل فعال من نظام الملفات وموارد الشبكة التي يمكنها الوصول إليها. يمكن توريث هذه الحدود للعمليات الفرعية ولا يمكن تشديدها إلا بشكل أكبر، ولا يمكن تخفيفها من خلال العملية الفرعية. من خلال الجمع بين seccomp ومساحات الأسماء ومجموعات cgroup وآليات LSM المختلفة، يستطيع Linux أيضًا عزل عملاء الذكاء الاصطناعي بشكل صارم.

إن مايكروسوفت نفسها تتحرك في اتجاه مماثل. أعلنت Microsoft عن Microsoft Execution Containers، أو MXC، في مؤتمر 2026 Build، مما يسمح للمطورين بالإعلان عن الموارد التي يمكن لعامل الذكاء الاصطناعي الوصول إليها، ولنظام Windows لفرض هذه القيود أثناء وقت التشغيل. يمكن لـ MXC أيضًا إنشاء حسابات مستخدمين مستقلة للوكلاء، مما يسمح للنظام بإحالة كل عملية يقوم بها الوكيل إلى هوية محددة. تستخدم مساحة عمل الوكيل الموجودة في Windows 11 أيضًا قائمة التحكم بالوصول (ACL) لتقييد حسابات الوكلاء بحيث لا تتجاوز أذوناتهم أذونات المستخدم.

بمعنى آخر، تستخدم Microsoft الآن آليات NT التقليدية مثل SIDs ورموز الوصول وقوائم ACL لحل مشكلة أذونات وكيل AI. هذا هو بالضبط ما يعتقد كيرك أن بنية NT لها مزايا. ومع ذلك، هذا لا يعني أن Microsoft أثبتت أن Linux غير قادر على استخدام عملاء الذكاء الاصطناعي. وبينما تعمل مايكروسوفت نفسها على تطوير نظام التشغيل الخاص بها القائم على الذكاء الاصطناعي، فقد حذرت أيضًا من أن عملاء الذكاء الاصطناعي قد يخلقون برامج ضارة ومخاطر أمنية جديدة.

Former-Microsoft-reverse-engineer-argues-Windows-NT-kernel-outclasses-Linux.jpg

ثم اقترح كيرك فكرته التاريخية البديلة الأكثر إثارة للاهتمام: يجب على ميكروسوفت أن تطلق "Open NT" في ذلك الوقت.

لا يحتاج نظام Open NT الذي تصورته بالضرورة إلى أن يكون مفتوحًا تمامًا مثل برنامج GPL، ولكنه يسمح للمؤسسات الكبيرة بتعديل مكونات معينة في النواة مع الحفاظ على معايير الأمان والتوافق الأساسية التي وضعتها Microsoft. على سبيل المثال، عندما كانت أمازون تقوم ببناء منصة الحوسبة السحابية EC2 في الأيام الأولى، كان بإمكانها اشتقاق إصدار يسمى "AmazonNT" من Open NT وتعديل المجدول أو مكدس الشبكة أو مخصص الذاكرة من تلقاء نفسها، مع الاستمرار في الامتثال لمواصفات التوافق والأمان الأساسية التي حددتها Microsoft.

في الواقع، جربت مايكروسوفت بالفعل نموذجًا مشابهًا إلى حد ما في الماضي. لقد أتاح برنامج Microsoft Shared Source إمكانية الوصول إلى التعليمات البرمجية المصدر لـ Windows لحوالي 1600 من عملاء المؤسسات والجامعات والوكالات الحكومية. في عام 2001، أصبحت وزارة الداخلية النمساوية أول حكومة أوروبية تحصل على الكود المصدري لنظام التشغيل Windows XP.

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

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

لقد شكك مطورو Linux في رؤية Open NT من زاوية أخرى. يعتقد David Airlie، الذي شارك منذ فترة طويلة في تطوير النظام الفرعي لرسومات Linux kernel، أن المشكلة الحقيقية تكمن في التكلفة طويلة المدى لصيانة فرع kernel. حتى لو كان الكود المصدري مفتوحًا بالكامل، إذا كانت الشركات لا تزال بحاجة إلى الحفاظ على مديري الذاكرة أو المجدولين المعدلين الخاصين بها بعد 20 عامًا، فيجب عليهم الاستمرار في الاستثمار في فرق هندسية مخصصة.

أشار إيرلي إلى أن عددًا كبيرًا من الشركات حاولت تفرع إصدارات Linux، ولكن بعد بضع سنوات غالبًا ما تجد أن تكلفة صيانة فروعها الخاصة مرتفعة للغاية، وتختار في النهاية إرسال التغييرات مرة أخرى إلى الخط الرئيسي. السبب وراء إمكانية وجود تطبيقات JVM المختلفة في نظام Java البيئي لفترة طويلة هو أن لديهم عملاء تجاريين واضحين ومصادر إيرادات واضحة وراءهم؛ في حين أن فرع NT الذي يخدم المؤسسات الداخلية فقط قد يكون من الصعب عليه تحمل مثل هذه التكاليف على المدى الطويل.

إذا قامت Amazon بتعديل برنامج جدولة NT، فيجب إعادة دمج الإصلاحات الأمنية التي تصدرها Microsoft كل شهر واختبارها والتحقق منها. كلما مر وقت أطول، أصبح هذا الفرع أقرب إلى فريق نواة نظام التشغيل الذي يحتاج إلى الصيانة بشكل مستقل. يهدف نموذج Linux إلى إرسال عدد كبير من التغييرات التي تطلبها المؤسسات إلى الخط الرئيسي قدر الإمكان، ويتم صيانتها بشكل مشترك من قبل المجتمع بأكمله.

إن NT في حد ذاته لا يخلو من الأمتعة التاريخية. أشار بعض المهندسين إلى أن التصميم المتسق لنظام VMS لم يتم نقله بالكامل إلى NT الحديث. يعد سجل Windows منذ فترة طويلة أحد مكونات النظام الأكثر إثارة للجدل بين المهندسين.

Agents-running-in-Linux.jpg

ينشأ جدل آخر من نظام الرسومات. أثناء فترة نظام التشغيل Windows NT 4.0، قامت Microsoft بنقل مدير النوافذ وGDI وبرامج تشغيل الرسومات إلى مساحة kernel لتحسين أداء الرسومات. وهذا يعني أن برنامج تشغيل الرسومات الذي به مشكلات خطيرة يمكن أن يتسبب بشكل مباشر في تعطل نظام التشغيل بأكمله. ثم أضاف Windows 2000 عددًا كبيرًا من الآليات مثل Windows Driver Model، وPlug and Play، وإدارة الطاقة، وWMI، وكائنات المهمة.

لذلك، لم تعد نواة NT في Windows 11 اليوم هي نفس النواة التي كانت عليها عندما تم إصدار NT 3.1 لأول مرة في عام 1993. ما أشاد به كيرك حقًا هو بعض المفاهيم المعمارية الأساسية عندما تم تأسيس NT، بدلاً من التفكير في أن جميع تصميمات Windows الحديثة تتفوق بطبيعتها على Linux.

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

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

وفي الوقت نفسه، ذكر كيرك أيضًا BSD. إنها تعتقد أنه إذا تم إعادة تصميم نواة نظام التشغيل اليوم، بالإضافة إلى NT، فقد تظهر أيضًا بنية تشبه BSD. إنها تعتقد أن الهيكل العام لـ BSD أنيق نسبيًا، ولديه آليات عزل مثل Jails في أيامه الأولى.

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

من هذا المنظور، ما يناقشه كيرك حقًا ليس من هو الأفضل في جميع السيناريوهات، Windows أو Linux، بل مسألة أساسية أكثر: كيف يجب أن يمثل نظام التشغيل "الأذونات" ويتحكم فيها.

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

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

لم يصبح نظام التشغيل Windows NT هو اللاعب المهيمن في عالم الخوادم والحوسبة السحابية، وقد اتخذ Linux هذا الموقف في النهاية. ومع ذلك، فقد مر أكثر من 30 عامًا منذ ظهور NT 3.1. لا يزال Windows يستخدم مفاهيم التصميم الأصلية للكائنات والمقابض ورموز الوصول وقوائم ACL، وتبدأ Microsoft الآن في استخدام هذه الآليات لحل مشكلة عزل الأذونات لوكلاء الذكاء الاصطناعي.

لذلك، فإن "Open NT" الذي تصوره لوري كيرك قد لا يكون موجودًا إلا في التاريخ الخيالي إلى الأبد، ولكن مع بدء أجهزة الكمبيوتر في أداء المزيد والمزيد من المهام للبشر، تواجه جميع أنظمة التشغيل مشكلة حقيقية متزايدة: عندما تبدأ البرامج في التصرف نيابة عن البشر، إلى أي مدى يجب أن نسمح لها بالذهاب؟

الوسوم ذات الصلة

مقالات مشابهة

التعليقات

0/500
Captcha (click to refresh)
لا توجد تعليقات