خانواده ریزهسته ال۴

بندانگشتی|L4 Family
**ال۴** خانواده‌ای از ریز هسته‌های نسل دوم است که به‌طور کلی برای پیاده‌سازی سیستم عامل‌های مشابه یونیکس استفاده می‌شود، اما در انواع مختلف سیستم نیز مورد استفاده قرار می‌گیرد.

l4مانند میکرو هسته قبلی l3توسط دانشمند کامپیوتر آلمانی یوخن لدیتکه به عنوان پاسخی به عملکرد ضعیف سیستم عامل‌های مبتنی بر میکروکرنل قبلی ایجاد شد.

لیدتکه احساس کرد سیستمی که از ابتدا برای کارایی بالا طراحی شده‌است، نه اهداف دیگر، می‌تواند یک ریز هسته با کاربرد عملی تولید کند.

اجرای اصلی وی در کد زبان اسمبلی مختص Intel i386 با رمزگذاری دستی در سال ۱۹۹۳ باعث ایجاد علاقه شدید در صنعت کامپیوتر شد. از زمان معرفی آن، L4 برای استقلال سیستم عامل و همچنین بهبود امنیت، انزوا و استحکام ساخته شده‌است.

چندین مورد مختلف از رابط اصلی باینری هسته L4 (ABI) و جانشینان آن، از جمله L4Ka :: پسته، **L4/MIPS** , **Fiasco** وجود دارد. به همین دلیل، نام L4 تعمیم یافته‌است و دیگر فقط به اجرای اصلی لیدتکه اشاره ندارد. اکنون در کل خانواده میکروکرنل‌ها از جمله رابط هسته L4 و نسخه‌های مختلف آن اعمال می‌شود.

اکنون در کل خانواده میکروکرنل‌ها از جمله رابط هسته L4 و نسخه‌های مختلف آن اعمال می‌شود.

l4 به‌طور گسترده‌ای به کار گرفته شده‌است. یک نوع، OKL4 از آزمایشگاه‌های هسته ای باز، با میلیاردها دستگاه تلفن همراه ارسال شده‌است.[1][2]

## الگوی طراحی
لیدتکه با بیان ایده کلی یک ریز هسته، اظهار داشت:

یک مفهوم فقط درصورت تحمل آن در داخل میکرو هسته، تحمل می‌شود، یعنی اجازه دادن به پیاده‌سازی‌های رقیب، مانع از اجرای عملکرد مورد نیاز سیستم می‌شود. با این روحیه، میکروکرنل L4 مکانیسم‌های اساسی کمی را فراهم می‌کند که شامل: فضاها را آدرس دهی کنید، رشته‌ها و برنامه‌ریزی، و ارتباط بین فرایند.[3]

یک سیستم عامل مبتنی بر میکرو هسته مانند L4 به عنوان سرورهایی در فضای کاربری خدماتی را ارائه می‌دهد که هسته‌های یکپارچه مانند لینوکس یا میکروکرنل‌های نسل قدیمی آن را به صورت داخلی دارند.

به عنوان مثال، برای پیاده‌سازی یک سیستم ایمن مانند یونیکس، سرورها باید مدیریت حقوقی را که ماخ درون هسته قرار داده‌است، فراهم کنند.

## تاریخ
عملکرد ضعیف میکرو هسته‌های نسل اول، مانند ماخ، تعدادی از توسعه دهندگان را بر آن داشت تا در اواسط دهه ۱۹۹۰ کل مفهوم ریز هسته را دوباره مورد بررسی قرار دهند. مفهوم ارتباط ناهمگام فرایند بافر در هسته استفاده شده در Mach یکی از دلایل اصلی عملکرد ضعیف آن است. این امر توسعه دهندگان سیستم عامل مبتنی بر Mach را وادار به انتقال برخی از اجزای مهم برای زمان، مانند سیستم‌های پرونده یا درایورها، به داخل هسته کرده. در حالی که این موضوع تا حدی باعث بهبود عملکردها می‌شود، اما به وضوح مفهوم حداقل بودن یک ریز هسته را نقض می‌کند.

تجزیه و تحلیل دقیق از گلوگاه ماخ نشان داد که، در میان چیزهای دیگر، مجموعه کار بسیار زیاد است: کد IPC بیانگر مکانیسم ضعیف است؛ یعنی فقط منجر به از دست دادن بیش از حد حافظه نهان شود، زیرا آنها بیشتر در هسته هستند. [3]این تجربیات و تجزیه و تحلیل این اصل را ایجاد کرد که یک میکروکرنل کارآمد باید به اندازه کافی کوچک باشد، زیرا کد اضافی مهم برای عملکرد در حافظه پنهان (سطح اول) قرار می‌گیرد.

### L3
یوخن لدیتکه تلاش کرد تا ثابت کند که یک لایه نازک IPC(ارتباط بین فرایند)، با توجه دقیق به عملکرد و طراحی خاص ماشین (در مقایسه با مستقل از سیستم عامل) می‌تواند باعث پیشرفت‌های عظیم در دنیای واقعی شود. به جای سیستم پیچیده IPC (ارتباط بین فرایند) ماخ، میکروکرنل L3 او بدون هیچ گونه سربار اضافی، پیام را منتقل می‌کرد. تعریف و اجرای سیاست‌های امنیتی مورد نیاز از وظایف سرورهای فضای کاربر محسوب می‌شود. نقش هسته فقط تهیه سازوکار لازم برای فعال کردن سرورهای سطح کاربر برای اجرای سیاست‌ها بود. L3، که در سال ۱۹۸۸ تولید شد، خود را یک سیستم عامل ایمن و قوی به اثبات رساند، برای سالها مورداستفاده قرارگرفت به عنوان مثال توسط (انجمن بازرسی فنی)TÜV SÜD

### L4
پس از چند تجربه استفاده ازl3 لدیتکه به این نتیجه رسید که چندین مفهوم دیگر Mach نیز جای نادرست است.[4] با ساده‌سازی حتی بیشتر مفاهیم میکروکرنل، او اولین هسته L4 را توسعه داد که در درجه اول با عملکرد بالا طراحی شده‌است. چنین افزایش چشمگیر عملکردی یک اتفاق نادر در سیستم عامل‌ها است، و کارهای لدیتکه باعث پیاده‌سازی جدید L4 و کار بر روی سیستم‌های مبتنی بر L4 در تعدادی از دانشگاه‌ها و موسسات تحقیقاتی، از جمله IBM، جایی که لدیتکه در ۱۹۹۶ شروع به کار کرد شد. لدیتکه و همکارانش در مرکز تحقیقات توماس جی واتسون IBM، تحقیقات روی سیستم‌های مبتنی بر L4 و میکروکرنل، به ویژه Sawmill OS را ادامه دادند.[5]

### L4/Fiasco
به موازات توسعه L4Ka :: فندق، در سال ۱۹۹۸ گروه سیستم‌های عامل TUD: سیستم عامل TU درسدن (دانشگاه صنعتی درسدن) شروع به توسعه اجرای c++خود از رابط هسته L4، به نام L4 / Fiasco کرد. برخلاف L4Ka :: فندق، که به هیچ وجه اجازه همزمانی در هسته و جانشین آن L4Ka :: پسته را نمی‌دهد، که باعث می‌شود وقفه‌ها در هسته فقط در نقاط خاص پیش خرید انجام شود، L4 / Fiasco کاملاً قابل پیش‌بینی بود (به استثنای موارد فوق‌العاده عملیات اتمی کوتاه) برای دستیابی به تأخیر کم وقفه.

این امر ضروری در نظر گرفته شد زیرا از L4 / Fiasco به عنوان پایه DROPS استفاده می‌شود،[6] یک سیستم عامل سخت در زمان واقعی، همچنین در TU درسدن توسعه یافته‌است. با این حال، پیچیدگی‌های یک طراحی کاملاً قابل پیش‌بینی، نسخه‌های بعدی Fiasco را بر آن داشت تا به روش L4 سنتی اجرای هسته با وقفه‌ها غیرفعال شوند، به استثنای تعداد محدودی از نقاط پیش شرط.

## استقلال بسترهای نرم‌افزاری
### L4Ka :: پسته
تا زمان انتشار L4Ka :: پسته و نسخه‌های جدیدتر Fiasco، تمام ریز هسته‌های L4 ذاتاً به ساختار اصلی پردازنده نزدیک بوده‌اند. تغییر بزرگ بعدی در توسعه L4 توسعه یک API مستقل از سیستم عامل بود که با وجود قابلیت حمل و نقل بالاتر، همچنان دارای ویژگی‌های عملکرد بالا بود. اگرچه مفاهیم اساسی هسته یکسان بودند، API جدید تغییرات قابل توجهی را نسبت به نسخه‌های قبلی L4 ایجاد کرد، از جمله پشتیبانی بهتر از سیستم‌های چند پردازنده، روابط آزادتر بین رشته‌ها و فضاهای آدرس، و معرفی بلوک‌های کنترل موضوع در سطح کاربر (UTCB) و رجیسترهای مجازی. پس از انتشار API جدید l4 در اوایل سال ۲۰۰۱، گروه معماری سیستم در دانشگاه کارلسروهه هسته جدیدی را با نام L4Ka :: Pistachio به‌طور کامل از ابتدا پیاده‌سازی کرد، اکنون با تمرکز بر عملکرد بالا و همچنین قابلیت حمل. تحت مجوز دو بنده BSD منتشر شد.

## استقرار تجاری
در نوامبر ۲۰۰۵، فناوری اطلاعات و ارتباطات استرالیا(NICTA)[7] اعلام کرد که کوالکام در حال استقرار نسخه L4 NICTA بر روی چیپست‌های Mobile Station Modem خود است. این امر منجر به استفاده از L4 در گوشی‌های تلفن همراه در فروش از اواخر سال ۲۰۰۶ شد. در اوت ۲۰۰۶، لیدرERTOS و پروفوسر UNSW گرنوت هایزر شرکتی به نام Open Kernel Labs (آزمایشگاه‌های OK) را برای حمایت از کاربران تجاری L4 و توسعه بیشتر L4 برای استفاده تجاری تحت نام تجاری OKL4، با همکاری نزدیک با NICTA، راه اندازی کرد.

OKL4 نسخه ۲٫۱، که در آوریل ۲۰۰۸ منتشر شد، اولین نسخه عمومی L4 بود که دارای امنیت مبتنی بر قابلیت بود. OKL4 3.0، که در اکتبر ۲۰۰۸ منتشر شد، آخرین نسخه منبع آزاد OKL4 بود. نسخه‌های اخیر منبع بسته و بر اساس بازنویسی برای پشتیبانی از یک نوع hypervisor بومی به نام OKL4 Microvisor است.

آزمایشگاه‌های OK همچنین لینوکس خصوصی‌سازی شده به نام OK: Linux، از نوادگان Wombat و همچنین نسخه‌های مجازی سازی شده SymbianOS و اندروید را توزیع کردند. OK Labs همچنین حق seL4 را از NICTA به دست آورد.

محموله‌های OKL4 در اوایل سال ۲۰۱۲[2] بیشتر از تراشه‌های مودم بی‌سیم کوالکام از مرز ۱٫۵ میلیارد دلار گذشته‌است. سایر استقرارها شامل سیستم‌های سرگرمی و سرگرمی خودرو است.[8]

پردازنده‌های سری A اپل که با A7 شروع می‌شوند، شامل یک پردازنده Secure Enclave است که سیستم عامل L4 را[9] بر اساس هسته جاسازی شده L4 در NICTA در سال ۲۰۰۶ توسعه داده‌است.[10] این بدان معناست که L4 اکنون در حال حمل و نقل بر روی همه دستگاه‌های iOS است که کل محموله آن برای سال ۲۰۱۵ ۳۱۰ میلیون تخمین زده شده‌است.[11]

## اطمینان بالا: seL4
در سال ۲۰۰۶، گروه NICTA با هدف ایجاد مبنایی برای سیستم‌های بسیار ایمن و قابل اعتماد و مناسب برای برآورده ساختن الزامات امنیتی مانند ملاک‌های متداول و فراتر از آن، از ابتدا یک میکروکرنل نسل سوم به نام seL4 را طراحی کردند. برای سهولت در برآوردن نیازهای گاه تعارض عملکرد و تأیید، تیم از یک فرایند نرم‌افزاری متوسط استفاده می‌کند که از مشخصات اجرایی نوشته شده درهسکل شروع می‌شود.

seL4 از کنترل دسترسی مبتنی بر قابلیت استفاده می‌کند تا بتواند استدلال رسمی در مورد قابلیت دسترسی به اشیا را فراهم کند.

اثبات رسمی صحت عملکرد در سال ۲۰۰۹ تکمیل شد. اثبات این امر تضمین می‌کند که اجرای هسته در برابر مشخصات آن صحیح است و به این معنی است که از اشکال پیاده‌سازی مانند بن‌بست، جابجایی مایع، سرریز بافر، استثنائات حساب یا استفاده از متغیرهای غیرسازمانی عاری است.

ادعا می‌شود seL4 اولین هسته سیستم عامل عمومی است که تأیید شده‌است.

در تاریخ ۲۹ ژوئیه ۲۰۱۴، فناوری اطلاعات و ارتباطات استرالیا(NICTA) و General Dynamics C4 Systems اعلام کردند که seL4، با اثبات پایان به پایان، اکنون تحت مجوزهای منبع باز منتشر شده‌است. منبع هسته و اثبات آن تحت GPLv2 است و بیشتر کتابخانه‌ها و ابزارها تحت مجوز ۲ بند BSD هستند. در آوریل ۲۰۲۰ اعلام شد که بنیاد seL4 زیر چتر بنیاد لینوکس ایجاد شده‌است تا توسعه و استقرار seL4 را تسریع کند.

محققان اظهار داشتند که هزینه تأیید نرم‌افزار رسمی با وجود ارائه نتایج بسیار قابل اطمینان تر، کمتر از هزینه مهندسی نرم‌افزار سنتی «با اطمینان بالا» است. به‌طور خاص، هزینه یک خط کد در طول توسعه seL4 در حدود ۴۰۰ دلار آمریکا برآورد شد، در مقایسه با ۱۰۰۰ دلار برای سیستم‌های سنتی با اطمینان بالا.

تحت برنامه سیستم‌های سایبری نظامی با اطمینان بالا DARPA (HACMS) , NICTA به همراه شرکای پروژه Rockwell Collins , Galois Inc، دانشگاه مینه سوتا و بوئینگ یک هواپیمای بدون سرنشین با اطمینان بالا بر اساس seL4، همراه با سایر ابزارها و نرم‌افزارهای اطمینان، با انتقال فناوری برنامه‌ریزی شده به بالگرد مستقل بدون سرنشین پرنده کوچک بدون سرنشین که توسط بوئینگ در دست توسعه است.

DARPA همچنین چندین قرارداد مربوط به تحقیقات نوآورانه تجارت کوچک (SBIR) مربوط به seL4 را تحت برنامه ای که توسط دکتر جان لانچبری آغاز شده بود، تأمین کرد.

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

CodeZero یک میکرو هسته L4 است که سیستم‌های جاسازی شده را هدف قرار می‌دهد و تمرکز آن بر مجازی سازی و پیاده‌سازی سرویس‌های بومی سیستم عامل است.

میکروکرنل F9، یک اجرای L4 دارای مجوز BSD، به پردازنده‌های ARM Cortex-M برای دستگاه‌های عمیقاً تعبیه شده با حفاظت حافظه اختصاص یافته‌است.

NOVA OS Virtualization Architecture یک پروژه تحقیقاتی با تمرکز بر ساخت یک محیط مجازی امن و کارآمد با یک محاسبات کوچک قابل اعتماد است.

NOVA متشکل از یک ریز هایپروایزر، یک مانیتور ماشین مجازی در سطح کاربر و یک محیط کاربری چند سرور کامپوننت غیرمعمول است که در بالای آن به نام NUL اجرا می‌شود. NOVA بر روی سیستم‌های چند هسته ای مبتنی بر ARMv8-A و x86 اجرا می‌شود.

WrmOS یک سیستم عامل در زمان واقعی است که بر پایه میکرو هسته L4 ساخته شده‌است. این برنامه پیاده‌سازی‌های خاصی از هسته، کتابخانه‌های استاندارد و پشته شبکه را دارد که از معماری SPARC , ARM، x86 و x86_64 پشتیبانی می‌کند. هسته Linux مجازی سازی شده‌است که در بالای WrmOS کار می‌کند. 

## منابع
1.^"Hypervisor Products: General Dynamics Mission Systems". *General Dynamics Mission Systems*.Archived from the original on 15 November 2017. Retrieved 26 April 2018.

2.^ab"Open Kernel Labs Software Surpasses Milestone of 1.5 Billion Mobile Device Shipments"(Press release).Open Kernel Labs. 19 January 2012. Archived fromthe original on 11 February 2012.

3.^abLiedtke, Jochen (December 1995)."On µ-Kernel Construction". *Proceedings 15th ACM Symposium on Operating Systems Principles (SOSP)*. pp. 237–250.Archived from the original on 25 October 2015.

4.^(December 1993)."Improving IPC by kernel design". *14th ACM Symposium on Operating System Principles*. Asheville, NC, USA. pp. 175–188.

5.^Gefflaut, Alain; Jaeger, Trent; Park, Yoonho;Liedtke, Jochen; Elphinstone, Kevin; Uhlig, Volkmar; Tidswell, Jonathon; Deller, Luke; Reuther, Lars (2000)."The Sawmill multiserver approach". *ACM SIGOPS European Workshop*. Kolding, Denmark. pp. 109–114.

6.^"Archived copy"Dresden University of Technology.Archived from the original on 7 August 2011. Retrieved 10 August 2011.

7.^"NICTA L4 Microkernel to be Utilised in Select QUALCOMM Chipset Solutions"(Press release).NICTA. 24 November 2005. Archived from the original on 25 August 2006.

8.^"Open Kernel Labs Automotive Virtualization Selected by Bosch for Infotainment Systems" (Press release).Open Kernel Labs. 27 March 2012. Archived fromthe original on 2 July 2012.

9.^"iOS Security, iOS 12.3"(PDF). Apple Inc. May 2019.

10.^Mandt, Tarjei; Solnik, Mathew; Wang, David (31 July 2016)."Demystifying the Secure Enclave Processor"(PDF). *BlackHat USA*. Las Vegas, Nevada, USA.Archived (PDF)from the original on 21 October 2016.

11.^Elmer-DeWitt, Philip (28 October 2014)."Forecast: Apple will ship 310 million iOS devices in 2015".Fortune.Archived from the original on 27 September 2015. Retrieved 25 October 2015.
رده:ریزهسته‌ها
رده:نرم‌افزارهای نوشته‌شده با اسمبلی
رده:سامانه‌های قابلیتی