موضوع مقاله: یونیکرنل | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # یونیکرنل | مقدمه: یونیکرنل‌ها با یک کامپایلر تخصصی ساخته می‌شوند که سرویس‌های سیستم‌عاملی را که یک برنامه استفاده می‌کند را شناسایی می‌کند و آن را با یک یا چند کتابخانهٔ سیستم‌عامل که آن‌ها را ارائه می‌دهد پیوند می‌دهد. | ## بخش 1: یونیکرنل | چنین برنامه‌ای به هیچ سیستم‌عامل جداگانه‌ای احتیاج ندارد و به‌جای آن می‌تواند به عنوان یک مهمان برای هایپروایزر اجرا شود. معماری یونیکرنل براساس مفهومی که توسط اگزوکرنل و نمسیس در اواخر دهه ۱۹۹۰ توسعه پیدا کردند، ساخته شده‌است. یک توسعه‌دهنده، یک مجموعه از حداقل تعداد کتابخانه‌هایی را که با ساختارهای سیستم‌عامل مورد نیاز برای اجرای برنامه مطابقت دارد را از یک پشته مدولار انتخاب می‌کند. سپس این کتابخانه‌ها، با برنامه کاربردی و کد پیکربندی برای ساخت تصاویر مهر و موم شده و با هدف ثابت (یونیکرنل‌ها) که مستقیماً روی یک هایپروایزر یا سخت‌افزار بدون مداخله سیستم‌عامل‌هایی مانند لینوکس یا ویندوز اجرا می‌شوند، کامپایل می‌شوند. طرح در یک سیستم‌عامل کتابخانه، مرزهای حفاظتی به پایین‌ترین لایه‌های سخت‌افزاری کشیده می‌شوند و بر موارد زیر اثر می‌گذارند: مجموعه‌ای از کتابخانه‌ها که مکانیسم‌هایی مانند موارد مورد نیاز برای راه‌اندازی سخت‌افزار یا گفتگوی پروتکل‌های شبکه را اجرا می‌کنند. معماری سیستم‌عامل کتابخانه دارای مزایا و معایب متعددی در مقایسه با طرح‌های سیستم‌عامل‌های معمولی است. یکی از مزیت‌ها این است که از آنجایی که تنها یک فضای آدرس وجود دارد، برای انتقال داده‌ها بین فضای‌کاربر و فضای هسته، نیازی به انتقال پی‌درپی دسترسی نیست. بنابراین، یک سیستم‌عامل کتابخانه‌ای می‌تواند با دسترسی دادن مستقیم به سخت‌افزار، بدون نیاز به انتقال بین حالت کاربر و حالت هسته، عملکرد بهتری را فراهم سازد (در یک هسته مرسوم، این انتقال شامل یک دستورالعمل TRAP است و مانند تغییر زمینه Context switch نیست). | ## بخش 2: یونیکرنل | دستاوردهایی که در عملکرد بدست می‌آید، ممکن است با از بین بردن نیاز به کپی داده‌ها بین فضای کاربر و فضای هسته محقق شود، اگرچه این امر با درایورهای دستگاه بدون کپی در سیستم‌عامل‌های مرسوم نیز امکان پذیر است. علاوه بر این، درایورهای دستگاه برای سخت‌افزار خاصی که سیستم‌عامل کتابخانه روی آن اجرا می‌شود مورد نیاز است. از آنجایی که سخت‌افزار به سرعت در حال تغییر است، بار درایورها به طور منظم بازنویسی می‌شوند تا به‌روز بمانند. مجازی‌سازی سیستم‌عامل می‌تواند بر برخی از این اشکالات بر روی سخت افزار کالا غلبه کند. یک هایپروایزر مدرن، ماشین‌های‌مجازی همراه با زمان CPU و دستگاه‌های‌مجازی به شدت ایزوله‌شده را فراهم می‌کند. یک سیستم‌عامل کتابخانه‌ای که به‌عنوان یک ماشین مجازی اجرا می‌شود، فقط نیاز به پیاده‌سازی درایورهای این دستگاه‌های سخت‌افزار مجازی پایدار دارد و می‌تواند برای هدایت سخت‌افزار فیزیکی واقعی به هایپروایزر وابسته باشد. با این حال، کتابخانه‌های پروتکل هنوز برای جایگزینی خدمات یک سیستم‌عامل مرسوم مورد نیاز هستند. ایجاد این کتابخانه‌های پروتکل، جایی است که بخش عمده کار در پیاده‌سازی یک سیستم‌عامل کتابخانه مدرن در آن نهفته‌است. | ## بخش 3: یونیکرنل | با کاهش مقدار کد استقرار یافته، یونیکرنل‌ها قطعا سطح حمله احتمالی را کاهش می‌دهند و درنتیجه ویژگی‌های امنیتی را بهبود می‌بخشند. یک سرویس گیرنده پیام‌رسانی مبتنی بر یونیکرنل، حدود ۴ درصد حجم کد پایه معادل با استفاده از لینوکس را دارد. همچنین، با توجه به ماهیت ساخت آنها، می‌توان بهینه سازی کل سیستم را در درایورهای‌دستگاه و منطق برنامه انجام داد و در نتیجه تخصص را بهبود بخشید. به طور مکرر نشان داده شده‌است که یونیکرل‌ها در زمان پاسخگویی به درخواست‌های دریافتی، قبل از اتمام زمان درخواست‌ها، بسیار سریع راه‌اندازی می‌شوند. یونیکرنل‌ها خود را در ایجاد سیستم‌هایی که از معماری‌های نرم‌افزاری سرویس‌گرا یا میکروسرویس پیروی می‌کنند، مشارکت می‌دهند. درجه بالای تخصص به این معنی است که یونیکرنل‌ها برای آن نوع محاسبات عمومی و چند کاربره ای که سیستم‌عامل‌های مروسوم برای آن استفاده می‌شوند، مناسب نیستند. | ## جمع‌بندی | افزودن عملکرد اضافی یا تغییر یک یونیکرنل کامپایل شده به طور کلی امکان پذیر نیست.