هسته پیوندی

ساختاری برای هسته سیستم عامل است که هم ویژگی های ریزهسته و هم ویژگی های هسته یکپارچه را با هم دارد . مدل های سنتی مورد استفاده در هسته سیستم عامل ها ، مدل های هسته یکپارچه و ریز هسته بوده اند ( Exo-Kernel , Nano-Kernel حالات کوچکتری از ریز هسته هستند ) . هسته های ترکیبی یا Hybrid Kernel به خاطر شباهتش به مدل یکپارچه ، بحث برانگیز بوده است

بررسی اجمالی 
دسته‌بندی‌های هسته‌های سنتی هسته‌های یکپارچه و ریز هسته هستند (با نانو هسته‌ها و اگزو هسته‌ها که به عنوان نسخه‌های شدیدتر از ریزهسته‌ها دیده می‌شوند). طبقه «ترکیبی» به دلیل شباهت هسته‌های ترکیبی و هسته‌های یکپارچه معمولی بحث‌برانگیز است. این اصطلاح توسط لینوس توروالدز به عنوان بازاریابی ساده رد شد.

مثال‌ها

هسته NT 

یکی از نمونه‌های برجسته هسته ترکیبی، هسته Windows NT مایکروسافت است که تمام سیستم عامل‌ها را در خانواده ویندوز NT اعم از ویندوز ۱۰ و ویندوز سرور ۲۰۱۹ و از ویندوزفون ۸، ویندوز فون ۸٫۱ و اکس‌باکس وان پشتیبانی می‌کند. ویندوز مبتنی بر NT به جای یک هسته یکپارچه به عنوان یک هسته ترکیبی طبقه‌بندی می‌شود (یا یک ماکرو هسته) زیرا زیر سیستم‌های شبیه‌سازی در فرایندهای سرور در حالت کاربر اجرا می‌شوند، نه در حالت هسته مانند یک هسته یکپارچه و بیشتر به دلیل تعداد زیادی از اهداف طراحی که شبیه اهداف طراحی ماک است (به ویژه جدایی شخصیت‌های سیستم عامل از طراحی هسته عمومی). در مقابل، دلیل اینکه NT سیستم ریز هسته نیست، زیرا بیشتر اجزای سیستم در فضای آدرس مشابه هسته کار می‌کنند، همان‌طور که در مورد طراحی یکپارچه وجود دارد (در یک طراحی یکپارچه سنتی، یک میکروکرنل وجود ندارد. به عنوان مثال، اما هسته عملکرد تقریباً مشابهی را با زیر سیستم‌های میکروکرنل و حالت هسته NT پیاده‌سازی می‌کند).

شرح 
طراحی ویندوز NT شامل بسیاری از اهداف مشابه ماک (هسته)، سیستم میکروکرنلی نمونه اولیه می‌باشد که یکی از مهمترین آنها ساختار آن به عنوان مجموعه ای از ماژول‌هایی است که از طریق رابط‌های شناخته شده ارتباط برقرار می‌کنند، با یک میکروکرن کوچک محدود به کارکردهای اصلی مانند رسیدگی به وقفه سطح اول، برنامه‌ریزی موضوع و ابتدایی همگام سازی موضوع. این امکان استفاده از مکالمات مستقیم یا ارتباط بین پردازش (IPC) را برای برقراری ارتباط بین ماژول‌ها فراهم می‌کند، و از این رو برای موقعیت بالقوه ماژول‌ها در فضاهای مختلف آدرس (به عنوان مثال در فضای هسته یا فرایندهای سرور) استفاده می‌کند. سایر اهداف طراحی شده با Mach شامل پشتیبانی از معماریهای متنوع، هسته ای با انتزاع به اندازه کافی کلی است که اجازه می‌دهد چندین شخصیت سیستم عامل در بالای آن و یک سازمان شی گرا اجرا شود.

شخصیت اصلی سیستم عامل در ویندوز API ویندوز است که همیشه وجود دارد. سیستم فرعی شبیه‌سازی که شخصیت Windows را پیاده‌سازی می‌کند، Client / Server Runtime Subsystem نام دارد (csrss.exe). در نسخه‌های NT قبل از ۴٫۰، این فرایند زیر سیستم همچنین شامل مدیر پنجره، رابط دستگاه گرافیکی و درایور دستگاه‌های گرافیکی است. با این وجود، به دلایل عملکرد، در نسخه ۴٫۰ و بعد، این ماژول‌ها (که اغلب در سیستم کاربر حتی در سیستم‌های یکپارچه بویژه آنهایی که بدون پشتیبانی گرافیکی داخلی طراحی شده‌اند) به عنوان یک سیستم فرعی هسته اجرا می‌شوند.

برنامه‌هایی که بر روی NT اجرا می‌شوند برای یکی از شخصیت‌های سیستم عامل (معمولاً ویندوز API) نوشته می‌شوند، و نه به API بومی NT که اسناد برای آن در دسترس عموم نیست (به استثنای روال‌هایی که در توسعه درایور دستگاه استفاده می‌شود). شخصیت سیستم عامل از طریق مجموعه ای از DLLهای حالت کاربر (به کتابخانه پیوند پویا مراجعه کنید)، که مطابق نیاز، در همراه با فرایند سرور زیرسیستم شبیه‌سازی (همان‌طور که قبلاً توضیح داده شده‌است) در فضاهای آدرس فرایندهای برنامه نقشه‌برداری می‌شوند. برنامه‌های کاربردی به خدمات سیستم دسترسی دارند و با استفاده از DLLهای شخصیتی سیستم عامل در فضاهای آدرس خود نقشه‌برداری می‌کنند، که به نوبه خود به کتابخانه NT run-time (ntdll.dll) فراخوانی می‌شوند، همچنین در فضای آدرس فرایند نقشه‌برداری می‌شوند. کتابخانه NT زمان اجرا NT این درخواست‌ها را با به دام انداختن در حالت هسته یا با تماس‌های روزمره در حالت هسته یا برقراری تماس محلی (LPC) به فرایندهای سرور زیر سیستم مناسب در حالت کاربر، انجام می‌دهد، که به نوبه خود از APT NT برای ارتباط با فرایندهای برنامه، زیر سیستم‌های هسته هسته و یکدیگر.

هسته XNU 
XNU هسته ای است که شرکت اپل برای استفاده در سیستم عامل‌های macOS , iOS , watchOS و tvOS به دست آورد و توسعه داد و به عنوان نرم‌افزار رایگان و منبع باز به عنوان بخشی از سیستم عامل داروین عرضه کرد. XNU مخفف اختصاری X is Unix نیست.

در اصل توسط NeXT برای سیستم عامل NeXTSTEP توسعه یافته، XNU یک هسته ترکیبی بود که ترکیبی از نسخه ۲٫۵ هسته ماش است که در دانشگاه کارنگی ملون با مؤلفه‌های 4.3BSD و یک API شی گرا برای نوشتن درایورها به نام Driver Kit ساخته شده‌است.

بعد از اینکه اپل NeXT را به دست آورد، مؤلفه Mach به OSFMK 7.3، که یک ریزگرد است، ارتقا یافت. اپل از OSFMK 7.3 به شدت اصلاح شده به عنوان هسته ترکیبی استفاده می‌کند که بخش‌هایی از FreeBSD را شامل می‌شود. (OSFMK 7.3 شامل کد قابل اجرا از دانشگاه Utah Mach 4 هسته و کد قابل استفاده از بسیاری از انواع Mach 3.0 است که از هسته اصلی کارنگی در ملون دانشگاه Mach 3.0 جوانه زده‌است) اجزای BSD با کدی از پروژه FreeBSD و درایور کیت برای نوشتن درایورهایی با نام I / O Kit با یک API C ++ جایگزین شد.

شرح 
XNU مانند سایر هسته‌های مدرن دیگر، ترکیبی است و دارای ویژگی‌های هر دو نوع یکپارچه و میکروکرن است و در تلاش است تا از هر دو فناوری به بهترین نحو استفاده کند، مانند قابلیت عبور پیام از ریزگردها، امکان مدولار بیشتر و بخش‌های بیشتری از سیستم عامل را می‌تواند از مزایای محافظت شده استفاده کند. حافظه و همچنین حفظ سرعت هسته‌های یکپارچه برای کارهای حساس خاص.

XNU بر روی ARM به عنوان بخشی از پردازنده‌های مبتنی بر iOS]] , IA-32]] و x86-64 اجرا می‌شود.

منابع 

هسته‌های سیستم‌عامل