یونیکرنل ( به انگلیسی: unikernel ) یک برنامهٔ رایانه ای است که به طور ایستا [ en] با کد سیستم عاملی که به آن وابسته است، پیوند داده شده است. یونیکرنل ها با یک کامپایلر تخصصی ساخته می شوند که سرویس های سیستم عاملی را که یک برنامه استفاده می کند را شناسایی می کند و آن را با یک یا چند کتابخانهٔ سیستم عامل که آن ها را ارائه می دهد پیوند می دهد. چنین برنامه ای به هیچ سیستم عامل جداگانه ای احتیاج ندارد و به جای آن می تواند به عنوان یک مهمان برای هایپروایزر اجرا شود. [ ۱]
معماری یونیکرنل براساس مفهومی که توسط اگزوکرنل و نمسیس در اواخر دهه ۱۹۹۰ توسعه پیدا کردند، ساخته شده است.
یک توسعه دهنده، یک مجموعه از حداقل تعداد کتابخانه هایی را که با ساختارهای سیستم عامل مورد نیاز برای اجرای برنامه مطابقت دارد را از یک پشته مدولار انتخاب می کند. سپس این کتابخانه ها، با برنامه کاربردی و کد پیکربندی برای ساخت تصاویر مهر و موم شده و با هدف ثابت ( یونیکرنل ها ) که مستقیماً روی یک هایپروایزر یا سخت افزار بدون مداخله سیستم عامل هایی مانند لینوکس یا ویندوز اجرا می شوند، کامپایل می شوند.
در یک سیستم عامل کتابخانه، مرزهای حفاظتی به پایین ترین لایه های سخت افزاری کشیده می شوند و بر موارد زیر اثر می گذارند:
• مجموعه ای از کتابخانه ها که مکانیسم هایی مانند موارد مورد نیاز برای راه اندازی سخت افزار یا گفتگوی پروتکل های شبکه را اجرا می کنند.
• مجموعه ای از سیاست ها که کنترل دسترسی و انزوا ( isolation ) را در لایه های برنامه اعمال می کنند.
معماری سیستم عامل کتابخانه دارای مزایا و معایب متعددی در مقایسه با طرح های سیستم عامل های معمولی است. یکی از مزیت ها این است که از آنجایی که تنها یک فضای آدرس وجود دارد، برای انتقال داده ها بین فضای کاربر و فضای هسته، نیازی به انتقال پی درپی دسترسی نیست. بنابراین، یک سیستم عامل کتابخانه ای می تواند با دسترسی دادن مستقیم به سخت افزار، بدون نیاز به انتقال بین حالت کاربر و حالت هسته، عملکرد بهتری را فراهم سازد ( در یک هسته مرسوم، این انتقال شامل یک دستورالعمل TRAP است و مانند تغییر زمینه [ پاورقی ۱] نیست ) . دستاوردهایی که در عملکرد بدست می آید، ممکن است با از بین بردن نیاز به کپی داده ها بین فضای کاربر و فضای هسته محقق شود، اگرچه این امر با درایورهای دستگاه بدون کپی در سیستم عامل های مرسوم نیز امکان پذیر است.
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلفمعماری یونیکرنل براساس مفهومی که توسط اگزوکرنل و نمسیس در اواخر دهه ۱۹۹۰ توسعه پیدا کردند، ساخته شده است.
یک توسعه دهنده، یک مجموعه از حداقل تعداد کتابخانه هایی را که با ساختارهای سیستم عامل مورد نیاز برای اجرای برنامه مطابقت دارد را از یک پشته مدولار انتخاب می کند. سپس این کتابخانه ها، با برنامه کاربردی و کد پیکربندی برای ساخت تصاویر مهر و موم شده و با هدف ثابت ( یونیکرنل ها ) که مستقیماً روی یک هایپروایزر یا سخت افزار بدون مداخله سیستم عامل هایی مانند لینوکس یا ویندوز اجرا می شوند، کامپایل می شوند.
در یک سیستم عامل کتابخانه، مرزهای حفاظتی به پایین ترین لایه های سخت افزاری کشیده می شوند و بر موارد زیر اثر می گذارند:
• مجموعه ای از کتابخانه ها که مکانیسم هایی مانند موارد مورد نیاز برای راه اندازی سخت افزار یا گفتگوی پروتکل های شبکه را اجرا می کنند.
• مجموعه ای از سیاست ها که کنترل دسترسی و انزوا ( isolation ) را در لایه های برنامه اعمال می کنند.
معماری سیستم عامل کتابخانه دارای مزایا و معایب متعددی در مقایسه با طرح های سیستم عامل های معمولی است. یکی از مزیت ها این است که از آنجایی که تنها یک فضای آدرس وجود دارد، برای انتقال داده ها بین فضای کاربر و فضای هسته، نیازی به انتقال پی درپی دسترسی نیست. بنابراین، یک سیستم عامل کتابخانه ای می تواند با دسترسی دادن مستقیم به سخت افزار، بدون نیاز به انتقال بین حالت کاربر و حالت هسته، عملکرد بهتری را فراهم سازد ( در یک هسته مرسوم، این انتقال شامل یک دستورالعمل TRAP است و مانند تغییر زمینه [ پاورقی ۱] نیست ) . دستاوردهایی که در عملکرد بدست می آید، ممکن است با از بین بردن نیاز به کپی داده ها بین فضای کاربر و فضای هسته محقق شود، اگرچه این امر با درایورهای دستگاه بدون کپی در سیستم عامل های مرسوم نیز امکان پذیر است.
wiki: یونیکرنل