به سمت یک میکروکرنل حقیقی یک نسخه از مینیکس که با بردن درایورهای سخت افزار به فضای کاربر کیفیت بال و کرنل کوچک را به ارمغان آورده است
نویسنده Jorrit N. Herder : رساله ای در علوم کامپیوتر
ترجمه :تعدادی از دانشجویان مهندسی کامپیوتر دانشگاه شیراز استاد راهنما :آقای مهندس سعید جاویدی تصحیح :محمد امین راستگو جهرمی
فصل اول مقدمه سيستمهاي عامل پايينترين سطح نرمافزار هستند كه سختافزار بدون محافظ را كنترل ميكند و زمينهاي را فراهم ميسازد كه ميتوان در آن برنامههاي مورد تقاضا را نوشت .بنابراين يك سيستم عامل اساسي را براي تمام فعاليتهاي كامپيوتر كاربر تشكيل ميدهد .بنابراين سيستم عامل باید قابل اطمينان باشد و به صورت بدون نقص عمل كند .متأسفانه سيستمهاي عامل كنوني ،مثل Windowsو ،Linuxدر ارائه اين مطلوبيت دچار نقص هستند .بسياري از كاربران كامپيوتر با مشکلت سيستم عامل درگیر هستند و مبتل به ويروس ها هستند. دليل اين مشكلت اين است كه سيستمهاي عامل از مشکلت ابتدایی طراحی و خطاها ( )bugرنج میبرند .مدل آنها ميتواند به عنوان يك برنامه يكپارچه بزرگ مشخص شود كه مركز كنترل ماشين است .از دستورالعملهاي معمول طرح مثل مدلدار بودن و اصول حداقل authorizationنوعا ً تخلف شده تا بر بعضي عملكردها غالب شويم .براي مثال driverهاي ابزار دسته سوم به طور طبيعي قسمت كامل هسته ( )Kernelهستند و تمام امتيازاتي را دارا هستند كه بوسيله آن ميتوانند كل سيستم را از كار بياندازند .مشكل بزرگ ديگر وجود غيرقابل اجتناب bugها است. براي مثال آمار نرمافزاري تعداد 1تا bug 20را در هر 1000خط
كد ( )LOGارائه ميدهند .اين آمار ممكن است براي سيستم عامل هاي پيچيدهتر بدتر باشد . اغلب سيستمهاي عامل مورد استفاده كنوني ميليونها خط كد دارند ( )MLOCو بنابراين ممكن است به آساني هزاران bugداشته باشند .براي مثال ويندوز ،XPتقريبا ً MLOC5دارد كه بيش از 1 ميليون bugرا در سختترين شرايط در خود دارد. در اين پروژه دکترا تلش شده تا يك سيستم عامل معتبرتر بوسيله modularityكاربردي ايجاد شود .با تفكيك يك سيستم عامل به قطعات مجزا و كوچك ،سيستم پيچيدهتر و بزرگتر ميشود زيرا قطعات كوچكتركنترل پذيرتر هستند و به تفكيك عيبها بيشتر كمك ميكنند MINIX .به عنوان يك سيستم عامل اصلي براي اين پروژه انتخاب ميشود زيرا MINIXنسبتا ً كوچكتر و سادهتر است اما در حين واحد POSIX complianceرا فراهم ميسازد .هدف اوليه تغيير شكل دادن driverهاي ابزار MINIXبه برنامههاي مجزا است به گونهاي كه MINIXيك سيستم عامل (هسته كوچك) microkernel كامل شود. باقيمانده اين فصل همانند زير ساخته ميشود :بخش -1-1 مقدمهاي بر اصول كلي سيستمهاي عامل ارائه ميدهد .بخش -2 -1در مور سيستمهاي عامل داراي هسته كوچك ( )microkernelبه طور دقيق بحث خواهد كرد و بخش MINIX -1-3را معرفي ميكند .بخش -1-4يك مقاله مسئله دقيق را ارائه ميدهد و بخش -1-5نظريهاي را ارائه ميدهد كه براي اين موضوع ارائه ميشود.
در آخر ،بخش -1-6ساختار بقيه اين پروژه را خلصهنويسي ميكند.
-1-1سيستمهاي عامل اين بخش اصول سيستمهاي عامل اصلي را معرفي ميكند .زير مجموعه بخش -1-1-2ساختارهاي سيستم عامل متفاوتي را ارائه ميدهند .زير مجموعه بخش -1-1-3ويژگيهاي اصلي سيستمهاي عامل monolithic, microkernelرا مورد مقايسه قرار ميدهد.
-1-1-1مفاهيم اصلي به طور كلي سيستمهاي عامل را از دو جنبه ميتوان مورد توجه قرار داد .اين سيستمها ميتوانند هم به عنوان يك اداره كننده منبع و يك ماشين گسترده يا يك ماشين مجازي فرض شوندResource . managerمسوول ارائه دستيابي به سختافزار ماشين و است و مطمئنا ً تمام تقاضاها را مضاعف ( )mutiplexميكند .براي مثال، منابع ميتوانند شامل ديسك سخت ،CD-ROM ،پرينتر و حافظه ويديو باشند وممكن است در كاربردهاي چندگانه تقسيم شوند .در مقابل مديريت منابع ،اين interfaceممكن است در بين معماری های متفاوت سختافزار قابل تغيير باشد. ( )kernelهسته آن قسمت سيستم عامل است كه در بالترين سطح دسترسی ( )Privilegeاجرا ميشود كه حالت هسته اصلي يا حالت ناظر )Supervisor madeيا ( Kernel madeناميده ميشود. ( Kernel madeحالت هسته اصلي) به يك نشانه نماي )CPU (flag برميگردد كه نشان ميدهد آيا مرحله اجرا مجاز براي اجراي تمام دستورالعملهاي ممكن است يا خير .برنامههايي كه در حالت
كاربر اجرا ميشوند اين سري نشانه نما را ندارند و از اينرو مجاز براي انجام دستورالعملهاي خاص هستند. رابط سيستم عامل بوسيله Callهاي سيستم تعريف ميشوند كه براي برنامهريز موجود هستندSystem Call .ها از يك دستورالعمل ماشيني خاص استفاده ميكنند كه يك trapناميده ميشود كه trapها باعث ميشوند كه پردازشگر از حالت كاربرد به حالت هسته اصلي تغيير يابند و دستگاه System Callهسته مركزي را ارسال كنند .اين راه مراحل كاربر ميتوانند خدمات سيستمي را درخواست كنند تا عمليات محدودي مثل دستيابي به سختافزار انجام دهند. مراحل ميتوانند با كمك و امكانات ارتباط بين فرايندي ( )IPCكه اغلب بوسيله يك System Callانجام ميشود را منتقل شوند .براي مثال IPCميتواند با گذشتن يك پيغام تقاضا به دنبال يك Context ( Switchتعویض بستر) انجام شود( Context Switch .تعویض بستر) يعني متوقف ساختن مرحله اجرا و ذخيره وضعيت فرار ()Volatile به گونهاي كه مرحله ديگر بتواند دوباره ذخيره و شروع شود ( .)restore & Restart
شكل )-1-1طبقهبندي سيستمعامل ،هستههاي يكپارچه )aهميشه بدون ساختار هستند. ريز هستهها ( )bاغلب ساختارهايي ليهاي دارند )Exokernel . C .به عنوان سيستمهاي عامل ساخته شده عمودي شناخته ميشوند.
مورد آخر با انتشار يك ساختار خاص ماشيني پس از بازيابي يك حالت مرحله انجام ميشود. كليدي كه براي سيستمهاي عامل ايجاد ميشود اين اطمينان را حاصل ميكند كه كاربردهاي كاربر نميتوانند به يكديگر و به هسته و ربطي داشته باشند .اين امر با مراحل بستهبندي در فضاهاي آدرس انجام ميشود كه به طور فيزيكي از يكديگر محافظت ميكنند .سختافزار واحد مديريت حافظه ( )MMUاين محافظت را با بازبيني هر اقدام جهت دستيابي به حافظه اعمال ميكنند. دستيابيهاي غيرقانوني منجر به استثنايي ميشود كه با يك دستگاه مستثنا در هسته بدست ميآيد كه ميتواند عمليات مناسب را ارائه دهد.
1.1.2ساختارهاي سيستم عامل سيستمهاي عامل ميتوانند براساس طرح هسته آنها طبقهبندي شوند .تفاوت بين اجراكننده منبع و ماشين توسعه يافته كه در يك
سيستم عامل مشاهده ميشود تغيير مييابند كه مرتبط با ساختارهاي متفاوت طبقهبندي باشند سه طبقهبندي گسترده ميتوان شناسايي كرد. هستههاي يكپارچه :هستههاي يكپارچه يك چکیده غني و قدرتمند از بستر سختافزار هستند .تمامي خدمات سيستم عامل به عنوان يك برنامه واحد ،يكپارچه تعريف ميشوند كه در حالت هسته انجام ميشوند .از اينرو درخواستها در حالت كاربر انجام ميشود و ميتواند خدمات سيستم را از هسته درخواست كند .از اينرو هسته هم مدير منبع است و هم يك ماشين گسترش يافته .از ديدگاه سطح بال ،يك هسته يكپارچه بدون ساختار است .اين امر در شكل ( a) 1-1توصيف شده است .مثالهايي از سيستمهاي عامل يكپارچه ويندوز Linux, BSDUNIX ،هستند. هستههاي هيبريد و ريزهستهها:ريز هستهها بوسيله يك سري چکیده های ( )abstractionهسته مشخص ميشوند اما الزاما ً نياز ندارد تا كوچك باشند .ريز هستهها يك سري كوچك از چکیده هاي سختافزاري ساده و ارائه ميدهند و از كاربردهايي (درخواستهايي) استفاده ميكنند كه سرويسدهنده ناميده ميشود كاركرد بيشتر را ارائه دهند .تنها يك قسمت کوچک سيستم عامل در حالت هسته انجام ميشود در حاليكه همه درخواستها در حالت كاربر انجام ميشود .در مقايسه هستهها يكپارچه ،وظيفه اصلي ريزهستهها مديريت منبع است .يك سيستم عامل ريز هستهاي يك ساختار ليهاي شل با ارتباط سرويسدهنده
برنامه و منابع ديگر در بين ليهها دارد .اين امر در شكل (b) 1-1 توصيف شده است .مثال يك ريز هسته كامل L4است. هستههاي هيبريد بسيار شبيه ريز هستهها هستند اما با خدمات اضافي انجام شده در فضاي هسته به دليل اجرايي تقويت ميشوند .براي مثال MINIXو Machقسمتي از طبقهبندي هستند زيرا driverهاي وسيله قسمتي از هسته هستند QNX .نيز يك ريز هسته هيبريد است زيرا مدير پردازش قسمتي از هسته است. ماشينهاي مجازی و exokernelها :ماشينهاي مجازی و exokernelها يك ليه خلصه سختافزاري همانند ديگر سيستمهاي عامل را ارائه نميدهند .در عوض آنها منابع سختافزاري را به گونهاي طبقهبندي ميكنند كه سيستمهاي عامل چندگانه ميتوانند در كنار يكديگر با فرض داشتن يك ماشين خصوصي اجرا كند .يك مانيتور ماشين واقعي يا exokernelدر حالت هسته اجرا ميشود و مسئول حفاظت از منابع و درخواستهاي منابع سختافزاري است از اينرو هر سيستم عامل در حالت كاربر اجرا ميشود كاملً متفاوت از ديگران ماشينهاي مجازي و exokernelها به عنوان سيستمهاي عامل ساختاری شناخته ميشود .هركدام از سيستمهاي عامل كه در كنار يكديگر اجرا ميشوند يا ميتوانند يك هسته يكپارچه داشته باشند يا يك ساختار ريز هستهاي .اين امر در شكل ( c) 1-1توصيف شده است .مثالهايي از ماشينهاي واقعي و exokernelها به ترتيب MITEroxernel, VMwareهستند. از آنجائيكه ماشينهاي مجازي و exokernelها تنها ابزاري براي ارائه يك رابطه براي يك سيستم عامل هستند ،بيشتر از اين در مورد
آنها بحث نميشود .تفاوت بين هستههاي يكپارچه و ريز هستهها براي پروژههاي ارشد جالب هستند.
ويژگيهاي هسته يك بازنگري از ويژگيهاي سيستم عامل در شكل 1-2ارائه شده است .در حاليكه سيستمهاي عامل با يك هسته يكپارچه اغلب عملكرد خوبي دارند ،سيستمهاي عامل ريز هستهاي ویژگيهاي بهتری از خود نشان میدهند .تمام تفاوتها به طور مستقيم از تفاوت در ( modularityپیمانه ای بودن) سرچشمه ميگيرد. Modularityيك ويژگي كليدي است كه به ريز هستهها قدرت ميدهد .در مقايسه با سيستمهاي يكپارچه سيستمهاي عامل ريز هسته هميشه به عنوان يك سري از سرورها که هركدام مسئول وظيفه خاصی هستند شناخته میشود .اين امر يك تفكيك روشن از مسئوليتها با مزاياي وابسته ارائه ميدهد. مثالهايي از ويژگيهايي كه ممكن است در يك سيستم عامل ريز هستهاي يافت شود در زير ارائه ميدهیم .ريز هستهها انعطافپذير هستند و ميتوانند به آساني گسترش يابند زيرا جايگزيني آنها با Serverها يا استراتژيهاي حل مسأله مقدور است .ماندگاري ريز هستهها آسانتر است زيرا اجزاي كوچكتر کم پيچيده اند و قابل اجراتر هستند .تفكيك مسؤوليتها نيز براي امنیت و قدرت سيستم عامل سودمند است زيرا مشکلت ایزوله ميشوند و اجزاي خراب میتوانند در هنگام ارتقا جايگزين شوند .جزئيات بيشتر در مورد امنیت ميتواند در زير مجموعه بخش 1-2-2يافت شود. ويژگياي كه دیر زمانی است در مورد ريزهستهها مطرح است بازده است .سيستم يكپارچه اغلب بازده خوبی دارد زيرا تمامي خدمات قسمتي از هسته هستند و بنابراين ميتوانند به طور مستقيم به يكديگر دسترسي داشته باشند .در مقابل يك سيستم عامل ريز هسته ،ارتباطات اضافه اي را برای همكاري Serverهاي
سيستم نیاز دارد .به اين دليل ،ريزهستهها اغلب كند خوانده ميشوند البته لزوما این جوری نيست .زير مجموعه بخش 1-2-3 اين موضوع را به طور دقيقتر مورد بحث قرار ميدهد. يك ويژگي جالب ريزهستهها اين است كه ريز هستهها يك محيط UNIXرا برای اجرای برنامه های novellفراهم ميكنند .بنابراین آنها قابليت سازگاري با نسخه های قبلی را درهنگام رفتن به محیط های محاسباتی جدید ارائه ميدهند .اين امر در زير مجموعه بخش 1-2-1بيشتر مورد بحث قرار ميگيرد. اگرچه مزيتهاي بالقوه فاحش هستند ،مثالهايي از سيستمهاي عامل ريزهستهاي موفق سخت يافت ميشوند .اگرچه QNXاغلب وعيدها را كامل ميكند اما متأسفانه QNXيك سيستم تجاري، بسته است .اين پروژه دکترا و كار آينده كه بر این اساس خواهد بود ممكن است به MINIXكمك كنند تا در سیستم عامل های ریز هسته ای جایی برای خود باز کند . 1.2
سيستمهاي عامل ريز هستهاي
در حالی كه بخش قبل اصول کلی سيستم عامل را شرح ميدهد ،اين بخش در مورد سيستمهاي عامل ريز هستهاي بحث ميكنیم .زیر مجموعه بخش 1-2-1در مورد سه روش متفاوت براي تشكيل كاربردهايي بحث ميكنند كه بر پایه ريز هستهها بنیان نهاده شده اند .دو ويژگي مهم سيستم عامل امنیت و بازده به ترتيب در زير مجموعه بخش 1-2-2و 1-2-3بحث ميشود.
شكل -1-3طبقهبندي درخواست ريز هسته برپايه ساختار برنامههايي قرار دارند كه در حالت كاربر اجرا ميشوند ساختارهاي متفاوت ( )aيك سيستم عامل واحد خدمات رسان با اجزاي خاص هستند b( .يك سيستم عامل چند Serverي و ( cيك سيستم اختصاصي.
1.2.1برنامه هاي ريزهسته در زير مجموعه بخش 1-1-2طراحي شده است هستههاي هيبريد و ريزهستهها abstractionکمتری را در مقايسه با هستههاي يكپارچه ايجاد كنند .بنابراين ،ريز هستهها برای ارئه امکانات بیشتر در برنامه های سطح سیستم عامل به Serverهاي فضاي كاربر تكيه دارند .اين امکانات ميتواند در روشهاي مختلفي ارائه شود. سيستم عامل تك سروری :در يك سیستم عامل تك Serverي، ريز هسته يك OSكامل يكپارچه را به عنوان يك برنامه كاربري عادي را اجرا ميكند .اين امر در شكل ( a) 3-1توصيف شده است. اين تنظیمات هيچ كدام از اين ويژگيهاي OSيكپارچه را تغيير نميدهند و به اين معناست كه هنوز يك نقطه واحد خرابی ( )Failureوجود دارد .مزیت اصلي اين پیکربندی اين است كه یک محيط UNIXرا همزمان با تجربه کردن روش ريز هستهاي فراهم
ميسازد .كاربردهای ارثی ای كه از OSيكپارچه می آیند اغلب ميتوانند با برنامه هاي novelهمراه شوند
1
.تركيب كاربردهاي ارثی ( )Legacyو بی درنگ يا بسته های امنیتی انتقال بدون اشکالی را به محیط محاسباتی جدید ممکن می سازند. مثالهاي بسياري از اين حرکت موجود هستند Mach .يكي از اولين ريز هستهها است و اجراي چند سیستم عامل جداگانه در کنار يكديگر مثل BSD,OSF, UNIXرا مجاز ميسازد .مثال ديگر L4linux است كه در رأس ريز هسته L4اجرا ميشود .پروژه PERSEUS تقلیي براي اجراي اجزاي امنیتی خاصي كه امضای ديجيتالی را در L4linuxفراهم ميسازند ،است .
ي ،كاربردهاي يك سيستم Serverتك OSباقيمانده) در رأس( legacyنظريه معمول استفاده از كاربردهاي
1
هدايت Mach،خوانده ميشود را دوباره ترجمه ميكنند .در سيستمهاي خاص مثل Stub Libraryجديد را كه .ميتواند براي درك سازگاري مضاعف استفاده شوند trapدوباره
سيستم عامل چند سروري :در يك OSچندسروري ،محيط سيستم عامل بوسيله تعدادي Serverكمكي تشكيل ميشود .اين امر در شكل ( b) 3-1شرح داده شده است .همانطور كه در زير مجموعه بخش 1-1-3بحث شد افزايش ( modularityپیمانه ای بودن) فوايد بسياري به همراه دارد كه شامل استحكام افزايش يافته ،ماندگاري و انعطافپذيري ميشود .بسته به امکاناتی كه بوسيله محيط چند سروري ارائه ميشود كاربردهاي ارث بری شده ممكن است در صورتی که با يك كتابخانه شبیه سازی شده مرتبط شوند مورد استفاده قرار گیرند .برنامه هاي ناول ميتوانند به آساني با نوشتن يك سرور سيستم جديد شناسايي شوند. مثالهاي مختلفي از سيستمهاي عامل چند سروري وجود دارند. براي مثال GNUHurdيك محيط چند Serverي است كه بر اساس يك ريز هسته Machتعريف شده است Sawmill Linax .يك محيط چند Serverي بر اساس ريز هسته L4است زير مجموعه بخش 1-3 در مورد MINIXبه عنوان مثالی دیگر بحث ميكند. سيستم اختصاصي :روش دیگر استفاده از برنامه اختصاصي است كه به طور مستقيم بر روی ريز هسته اجرا ميشود .اين امر در شكل ( c) 3-1شرح داده ميشود .تفاوتهاي بسيار چنين سيستمي ميتواند مورد توجه قرار گيرد .اين روش بخصوص براي ابزارهاي mobileو embedded systemها با قدرت محاسبه كاهش يافته سودمند است.
مثالي از يك سيستم اختصاصي يك ماشين مجازی Java )(JVMاست كه به طور مستقيم در رأس ريز هسته اجرا ميشود. در مقايسه با کارهای سنتی که یک سیستم عامل یک JVMرا میزبانی میکند این روش محیط ایمن تری را برای برنامه های جاوا فراهم میکند زیرا دیگر نیازی به اطمینان به میزبان نمی باشد .
1.2.2امنیت ريز هسته ريز هستهها خصوصيات امنیتی خوبي دارند كه در زير مجموعه بخش 1-1-3عنوان شدند .اين خصوصيات بویژه در مورد سیستم عامل های چند سروري كه تمام سرورهای سیستم در فضاي آدرس گنجانده شده اند درست است .سرورها به طور فيزيكي از يكديگر با سختافزار واحد مديريت حافظه( )MMUمحافظت ميشوند .اگر يك فرايند به صورت غيرقانوني اقدام به دستيابي به حافظه فرآيند ديگر كند ،اين امر بوسيله MMUبررسي ميشود و يك استثنا رخ ميدهد .استثنا بوسيله هسته مدیریت میشود كه ميتواند عمل مورد نیاز را انجام دهد. در حالی كه يك Serverنمی تواند به طور مستقيم روی کار Serverهای دیگر تاثیر گذارد Server .هاي وابسته ممكن است به طور غيرمستقيم تحت تأثير قرار گيرند .اگر Server Aبه Server B وابسته باشد تا وظيفهاي را انجام دهد Server A ،ممكن است با يك نقص يا يك عمل خراب از سوي Server Bتأثير بگيرد .مفهوم مهم مربوط به اين امر پايگاه محاسبهاي پشتيباني شده ()TCB يعني حداقل اجزايي است كه عملكرد صحيح آن پیش شرط امنیت است .براي ريز هستهها TCB ،ميتواند بسيار كوچك باشد.
براي مثال در يك سيستم اختصاصي ،يك برنامه اختصاصی TCB تنها شامل يك ريز هسته و سختافزار تحت آن می باشد. يك موضوع حفاظتي مهم كه نميتواند به آساني حل شوداین است که اجزايي با كنترل سختافزاري توانايي از بين بردن كل سيستم را دارا هستند. براي مثال درایورهاي وسيلهاي كه ميتواند دستيابي مستقيم به حافظه دارد ( )DMAممكن است با ایجاد يك آدرس حافظه نامعتبر در كنترل كننده DMAدر حافظه فرايندها تداخل ایجاد کنند .بعضي بردهايي قطعات PCIيك I/OMMUدارند كه با نگاشت یک آدرس فضای PCIبه یک فضای حافظه فیزیکی حفاظت را ارائه ميدهند. راهحل كليتری براي اين مسأله هنوز در دسترس نيست.
1.2.3موضوعات عملكردي سيستمهاي عامل ريز هستهاي اغلب مدعی رنج بردن از مشكلت عملكردي ارثی هستند .زيرا فرآيندهاي چندگانه ای بايستي براي انجام يك وظيفه همكاري كنند .دليل کاهش بازده گفته شده ارتباط بين فرايندي مضاعف ( )IPCو در نتيجه تغییر بسترهای زيادي در بين فرايندهاي كاربردServer ،هاي سيستم و هسته می باشد .به علوه ،كپي اطلعات در بين Serverهاي كمكي باعث هزینه اضافی ميشود. اولين ريز هستهها داراي از دست دادن عملكرد ذاتي بودند .براي مثال BSD UNIXبر اساس Machبيش از %50كندتر از نسخه معمولی BSD UNIXاست .با اينحال ،ريز هستههاي جديد ،ثابت
كردهاند كه حقيقتا ً عملكرد بال ميتواند به دست بیاید .براي مثال L4Linuxبر اساس ،L4تنها يك کاهش عملكردي 2تا %4دارد. بازده به عنوان یک مسئله پیاده سازی مطرح میشود .تلشی در L4ارائه ميشود تا يك رابط ريز هستهاي قابل انتقال را تعريف كند اما استفاده بهينه از قابليتهاي سختافزاري براي اجرا را ايجاد ميكند .بنابراین هر platformنيازمند يك پيادهسازي متفاوت هسته است اما كاربردهايي كه به هسته API L4هماهنگ هستند ميتوانند به آساني مجددا ً ترجمه و استفاده شوند. ديگر درس مهم اين است كه ريز هستهها بايستي كوچك باشند. عمل از كار انداختن L4نشان ميدهد كه فقدان حافظه مهمتر از خود IPCاست .يك تعویض بستر از يك فرايند فضاي كاربرد به هسته تنها احتياج به تغيير قسمتهاي اندك در CPUدارد تا به حالت هسته سوئيچ كند و وضعيت هسته را بازيابي كند .با اينحال سوئيچ فضاي آدرس ،ممكن است باعث هزینه از دست دادت cacheشود. اين خسارت در صورتی که از حافظه مجازی استفاده شود شديدتر ميشود زیرا وروديهاي بافر كناري ترجمه ( )TLBبوسيله يك سوئيچ فضاي آدرس فاقد اعتبار ميشود. در آخر ،سختافزار بايستي آشكارا براي ريز هستهها طراحي مجدد شود .ريز هستهها متفاوت از سیستم های يكپارچه هستند و بنابراين ممكن است طراحی متفاوتی براي دستيابي به عملكرد خوب لزم داشته باشند.براي مثال تحقيق در مورد Saw Mill Linxt در طراحي يك پرتكل چند Sereverي كه IPCرا كاهش ميدهد و از كپي اطلعات غيرضروري جلوگيري ميكند موردنظر است.
بنابراين عملكرد سيستمهاي عامل برپايه ريز هسته نميتواند تنها با هزينههاي IPCتعيين شود.
2
مقايسه ويژگيهاي سيستم عامل براي هستههاي يكپارچه و ريز هستهها .عملكرد يك سيستم عامل بر پايه ريز هستهها لزوما ً بد نيست همانطور كه در زير مجموعه بخش -3 1-2بحث شد.
را ايجاد ميكنند .پيغامها به عنوان يك سري از IPC CPUاستفاده بهينه از ثبتكنندههاي L4براي مثال
2
. IPCثبتكنندههاي واقعي كه براي ثبتكنندههاي واقعي در زمان لزم طراحي ميشوند تعريف ميشوند .برنامهنويسها را در انتخاب اجراي بهينه حمايت ميكنند sub-generation،