XNU
XNU ("X ليس يونكس") هو نواة نظام تشغيل الكمبيوتر (OS) التي طورتها شركة Apple Inc. منذ ديسمبر 1996 لاستخدامها في نظام التشغيل Mac OS X (الآن macOS ) وتم إصدارها كبرنامج مجاني ومفتوح المصدر كجزء من نظام التشغيل Darwin ، والذي، بالإضافة إلى كونه أساسًا لنظام macOS، فهو أيضًا أساس لأنظمة iOS و iPadOS و watchOS و visionOS و tvOS . [ 2 ]
طُوِّر نظام التشغيل XNU في الأصل بواسطة شركة NeXT لنظام التشغيل NeXTSTEP . وكان عبارة عن نواة هجينة مشتقة من الإصدار 2.5 من نواة Mach ، التي طُوِّرت في جامعة كارنيجي ميلون ، والتي تضمنت الجزء الأكبر من نواة 4.3BSD المعدلة للعمل فوق عناصر Mach الأساسية، بالإضافة إلى واجهة برمجة تطبيقات (API) مكتوبة بلغة Objective-C لكتابة برامج التشغيل تُسمى DriverKit. [ 3 ]
بعد استحواذ شركة Apple على NeXT، تم تحديث النواة باستخدام التعليمات البرمجية المشتقة من OSF MK 7.3 من OSF ، [ 4 ] ومشروع FreeBSD ، وتم استبدال DriverKit بواجهة برمجة تطبيقات جديدة على مجموعة فرعية محدودة من C++ [ 5 ] (استنادًا إلى Embedded C++ ) [ 6 ] تسمى IOKit.
حصل نظام macOS على شهادة UNIX في عام 2007 مع إصدار Mac OS X 10.5 Leopard [ 7 ] بموجب مواصفات UNIX الموحدة (SUS) من قِبل مجموعة Open Group. [ 8 ] على الرغم من ذلك، احتفظت Apple بالاسم الأصلي "XNU"، الذي يرمز إلى "X ليس UNIX"، وهو اسم متبقٍ من أصول NeXTSTEP قبل حصول macOS على شهادة UNIX. وقد أدى ذلك إلى ارتباك، حيث يوحي الاسم بأن XNU منفصل عن UNIX، على الرغم من أن macOS، ككل، معترف به رسميًا كنظام تشغيل UNIX. [ 1 ]
تصميم النواة
XNU عبارة عن نواة هجينة ، تحتوي على ميزات كل من النوى المتجانسة والنوى المصغرة . [ 9 ]
اعتبارًا من يوليو 2026 يعمل نظام XNU على معالجات ARM64 و x86-64 . أُزيل دعم معالجات PowerPC بدءًا من نواة نظام التشغيل Mac OS X Snow Leopard . كما أُزيل دعم معالجات IA-32 بدءًا من نواة نظام التشغيل Mac OS X Lion ، ودعم معالجات ARM ذات 32 بت بدءًا من نظام التشغيل iOS 11. أُزيل دعم معالجات x86-64 بدءًا من نواة نظام التشغيل macOS Golden Gate ، ولكنه لا يزال موجودًا في نواة الإصدار الحالي macOS Tahoe .
ماخ
تعتمد نواة XNU على نواة Open Software Foundation Mach 7.3 المعدلة بشكل كبير (الهجينة). [ 4 ] OSF MK 7.3 هي نواة مصغرة [ 10 ] تتضمن التعليمات البرمجية القابلة للتطبيق من نواة Mach 4 بجامعة يوتا ومن العديد من متغيرات Mach 3.0 المتفرعة من نواة Mach 3.0 المصغرة الأصلية لجامعة كارنيجي ميلون .
لا يستخدم نظام XNU برنامج Mach كنواة مصغرة، بل يدمج أنظمة فرعية أخرى (مثل نظام BSD ) كجزء من النواة، بدلاً من استخدامه كخدمة في مساحة المستخدم . يُستخدم Mach في XNU لإدارة الذاكرة الافتراضية ، وتسهيل الاتصال بين العمليات (IPC)، وإجراء عمليات الإدخال/الإخراج (I/O) مع وحدة التحكم. [ 11 ]
يستطيع OSF MK 7.3 تشغيل نواة نظام التشغيل كعمليات منفصلة، مما يسمح بمرونة كبيرة (يمكنه تشغيل العديد من أنظمة التشغيل بالتوازي فوق نواة Mach)، ولكن هذا غالبًا ما يقلل الأداء بسبب عمليات تبديل سياق وضع النواة/المستخدم التي تستغرق وقتًا طويلاً والعبء الزائد الناجم عن تعيين أو نسخ الرسائل بين مساحات عناوين النواة ومساحات عناوين برامج الخدمة.
حصلت آبل على ترخيص OSF MK 7.3 من مؤسسة البرمجيات المفتوحة (OSF)، وحاولت تبسيط بعض المهام من خلال دمج وظائف BSD في النواة إلى جانب كود Mach. والنتيجة هي نواة OSF MK 7.3 معدلة بشكل كبير (هجينة).
بي إس دي
يُوفر جزء توزيعة برمجيات بيركلي ( BSD) من نواة النظام واجهة برمجة تطبيقات نظام التشغيل المحمول ( POSIX ) (API، استدعاءات نظام BSD)، ونموذج عمليات يونكس المبني على مهام Mach، وسياسات الأمان الأساسية، ومعرفات المستخدمين والمجموعات، والأذونات، ومجموعة بروتوكولات الشبكة (البروتوكولات)، وشفرة نظام الملفات الافتراضي (بما في ذلك طبقة تسجيل مستقلة عن نظام الملفات )، والعديد من أنظمة الملفات المحلية مثل نظام الملفات الهرمي (HFS، و HFS Plus (HFS+)) ونظام ملفات أبل (APFS)، وعميل وخادم نظام ملفات الشبكة (NFS)، وإطار التشفير، ونظام الاتصال بين العمليات (IPC) في نظام يونكس 5 ، ونظام التدقيق الفرعي، والتحكم الإلزامي في الوصول ، وبعض بدائيات القفل. [ 12 ] تمت مزامنة شفرة BSD الموجودة في XNU مؤخرًا مع شفرة نواة FreeBSD . وعلى الرغم من تعديل جزء كبير منها بشكل ملحوظ، إلا أن تبادل الشفرة لا يزال قائمًا بين أبل ومشروع FreeBSD حتى عام 2009.[ 13 ] أول شيء يحدث بعد أن يقوم Mach بتهيئة BSD هو تهيئة تخصيص الذاكرة . [ 14 ]
K32/K64
يأتي نظام XNU في نظام التشغيل Mac OS X Snow Leopard ، الإصدار 10.6 ( داروين الإصدار 10)، بنسختين: نسخة 32 بت تُسمى K32، ونسخة 64 بت تُسمى K64 . [ 15 ] يمكن لنسخة K32 تشغيل تطبيقات 64 بت في مساحة المستخدم . [ 16 ] الجديد في نظام التشغيل Mac OS X 10.6 هو إمكانية تشغيل XNU في مساحة نواة 64 بت . كانت K32 هي النواة الافتراضية لنظام 10.6 Server عند استخدامها على جميع الأجهزة باستثناء طرازات Mac Pro و Xserve من عام 2008 فصاعدًا [ 17 ] ، ويمكنها تشغيل تطبيقات 64 بت. تتميز K64 بعدة مزايا مقارنةً بـ K32: [ 18 ]
- يمكن إدارة أكثر من 32 جيجابايت من ذاكرة الوصول العشوائي، حيث أن خريطة الذاكرة ستستهلك مساحة كبيرة بشكل غير متناسب من مساحة النواة 32 بت.
- يمكن أن تكون أحجام مخزن التخزين المؤقت أكبر مما تسمح به مساحة النواة 32 بت، مما قد يؤدي إلى زيادة أداء الإدخال/الإخراج.
- يتم تحسين الأداء عند استخدام أجهزة الشبكات عالية الأداء أو وحدات معالجة الرسومات المتعددة (GPUs)، حيث يمكن للنواة تعيين جميع الأجهزة في مساحة 64 بت حتى لو كان لدى العديد منها مخازن مؤقتة كبيرة جدًا للوصول المباشر إلى الذاكرة (DMA).
يؤدي الضغط المستمر على الزرين 6 و 4 أثناء تشغيل الجهاز إلى تشغيل نظام K64 على الأجهزة التي تدعم نواة 64 بت. [ 19 ] يستطيع نظام K64 تشغيل تطبيقات 32 بت، ولكنه لا يستطيع تشغيل ملحقات نواة 32 بت (KEXTs)، لذا يجب نقل هذه الملحقات إلى نظام K64 لكي يتم تحميلها.
يوفر XNU في نظام التشغيل OS X Mountain Lion (10.8) والإصدارات الأحدث نواة 64 بت فقط.
IOKit
IOKit هو إطار عمل لبرامج تشغيل الأجهزة ، مكتوب بلغة فرعية من لغة C++ مبنية على Embedded C++، ويفتقر إلى ميزات مثل الاستثناءات ، والوراثة المتعددة ، والقوالب . [ 6 ] بفضل تصميمه الموجه للكائنات ، يوفر إطار العمل ميزات مشتركة بين جميع فئات برامج التشغيل، مما يُسهّل كتابة برامج تشغيل الأجهزة في وقت أقل وباستخدام كود أقل. يدعم IOKit تعدد الخيوط، وهو آمن للاستخدام مع المعالجة المتعددة المتناظرة (SMP)، ويتيح إمكانية توصيل الأجهزة أثناء التشغيل، بالإضافة إلى التكوين التلقائي والديناميكي للأجهزة.
يمكن برمجة العديد من برامج التشغيل للعمل في وضع المستخدم ، مما يُعزز استقرار النظام. في حال تعطل برنامج تشغيل يعمل في وضع المستخدم، فلن يؤدي ذلك إلى تعطل النواة. أما في حال تعطل برنامج تشغيل يعمل في وضع النواة، فسيؤدي ذلك إلى تعطل النواة. من أمثلة برامج التشغيل التي تعمل في وضع النواة: برامج تشغيل محولات الأقراص ومحولات الشبكة، وبرامج تشغيل الرسومات، وبرامج تشغيل وحدات تحكم المضيف USB و FireWire ، وبرامج تشغيل برامج الآلات الافتراضية مثل VirtualBox و Parallels Desktop for Mac و VMware Fusion . في نظام macOS Catalina والإصدارات اللاحقة، يسمح DriverKit بتشغيل بعض هذه الأنواع من برامج التشغيل في وضع المستخدم. [ 20 ]
انظر أيضاً
- النواة (نظام التشغيل)
- مساعد صوتي/مرئي
- mkLinux
- OSF/1
- داروين (نظام تشغيل) – نظام تشغيل مفتوح المصدر أصدرته شركة أبل، مع نواة XNU
- نظام التشغيل macOS – نظام تشغيل أصدرته شركة Apple، ويعتمد على نواة XNU
مراجع
- 1 2 "علامة تجارية مفتوحة" .
- ↑ "نقل تطبيقات يونكس/لينكس إلى نظام التشغيل ماك أو إس إكس: مسرد المصطلحات" . شركة أبل للكمبيوتر. 2005. تم الاطلاع عليه في 7 يونيو 2017 .
- ↑ "ملف README الخاص بشفرة مصدر XNU على GitHub" . GitHub . 16 ديسمبر 2021.
- 1 2 ماجي، جيم. جلسة WWDC 2000 رقم 106 - نظام التشغيل ماك أو إس إكس: النواة . 14 دقيقة. مؤرشف من الأصل في 21 ديسمبر 2021.
- ↑ "مكتبة libkern C++ Runtime" . إرشادات تصميم برامج تشغيل الأجهزة IOKit .
- 1 2 أميت سينغ. "XNU: النواة" . ما هو نظام التشغيل Mac OS X؟ مجموعة أدوات الإدخال/الإخراج. مؤرشف من الأصل في 19 أبريل 2019. تم الاسترجاع في 9 سبتمبر 2011.
تستخدم مجموعة أدوات الإدخال/الإخراج مجموعة فرعية محدودة من لغة C++
. - ↑ "العلامة التجارية المفتوحة" . www.opengroup.org .
- ↑ ماكاي، ديف (21 أكتوبر 2019). "هل نظام macOS هو نظام يونكس؟ (وماذا يعني ذلك؟)" . موقع How-To Geek . تم الاطلاع عليه في 12 مارس 2025 .
- ↑ "نسمي هذا تجوّل النواة: كيف أعادت آبل ترتيب نواة XNU الخاصة بها باستخدام الجيوب المعزولة" . ذا ريجستر . 8 مارس 2025.
- ↑ ويلز، دوغلاس م. (1994). بيئة نظام تشغيل موثوقة وقابلة للتوسع وفي الوقت الحقيقي (ملف PDF) . مؤتمر IEEE للتقنيات والتطبيقات ذات الاستخدام المزدوج لعام 1994. S2CID 5205380. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 22 أغسطس 2017.
- ↑ أميت سينغ. "XNU: النواة" . ما هو نظام التشغيل Mac OS X؟ . Mach. مؤرشف من الأصل في 19 أبريل 2019. تم الاسترجاع في 9 سبتمبر 2011 .
- ↑ واتسون، روبرت (2 أغسطس 2008). "ردًا على: ملخص مناصرة نظام فري بي إس دي، المجلد 248، العدد 1" . قائمة بريدية لمناصرة نظام فري بي إس دي . تم الاطلاع عليه في 24 أكتوبر 2013 .
- ↑ "تقرير حالة FreeBSD الفصلي (Grand Central Dispatch – منفذ FreeBSD)" . أبريل 2009. تم الاطلاع عليه في 24 أكتوبر 2013 .
- ↑ أميت سينغ. "XNU: النواة" . ما هو نظام التشغيل Mac OS X؟ . BSD. مؤرشف من الأصل في 19 أبريل 2019. تم الاسترجاع في 9 سبتمبر 2011 .
- ↑ نظام التشغيل ماك أو إس إكس 10.6 سنو ليوبارد: مراجعة موقع آرس تكنيكا، الصفحة 5
- ↑ سيراكوزا، جون (31 أغسطس 2009). "نظام التشغيل ماك أو إس إكس 10.6 سنو ليوبارد: مراجعة آرس تكنيكا" . آرس تكنيكا .
أخيرًا، يجدر التذكير بما يلي: يُرجى العلم أنه ليس من الضروري تشغيل نواة 64 بت لتشغيل تطبيقات 64 بت أو تثبيت أكثر من 4 جيجابايت من ذاكرة الوصول العشوائي (RAM) في جهاز ماك الخاص بك. تعمل التطبيقات بشكل ممتاز في وضع 64 بت على نواة 32 بت، وحتى في الإصدارات السابقة من نظام التشغيل ماك أو إس إكس، كان من الممكن تثبيت والاستفادة من أكثر من 4 جيجابايت من ذاكرة الوصول العشوائي (RAM).
- ↑ نظام التشغيل Mac OS X Server الإصدار 10.6: أجهزة Mac التي تستخدم نواة 64 بت
- ↑ "ما الجديد في نظام التشغيل Mac OS X: Mac OS X v10.6" . مطورو Apple . شركة Apple.
- ↑ نظام التشغيل Mac OS X Server الإصدار 10.6: بدء التشغيل باستخدام نواة 32 بت أو 64 بت
- ↑ "DriverKit" . مطور Apple .
روابط خارجية
- xnu على GitHub ، المستودع الرسمي
- XNU: النواة في Wayback Machine (مؤرشفة في 2 يونيو 2020) - نظرة عامة على مكونات XNU، كتبها أميت سينغ في ديسمبر 2003
- داخل نواة نظام التشغيل Mac OS X – "تهدف هذه المحاضرة إلى إزالة الالتباس من خلال عرض تفاصيل نواة نظام التشغيل Mac OS X" (ديسمبر 2007)
- نظام التشغيل iOS
- ماخ (نواة)
- نوى متجانسة
- نظام التشغيل macOS
- برنامج يستخدم ترخيص Apple للمصادر العامة
