تبليغاتX
فناوری اطلاعات و ارتباطات - سیستم عامل
IT

چكيده:

 

در اين مقاله سعي بر اين بوده‌است كه كلياتي در مورد هسته سيستم‌هاي عامل و تفاوت ساختاري و عملكردي گونه‌هاي متفاوت آن ارايه شود.

 

كليد واژه:

 

Operating System, OS, kernel, Monolithic, Microkernel, Hybrid, Exokernel

 سيستم عامل، كرنل، هسته، هسته يكپارچه، هسته دورگه، ريزهسته، برون‌هسته

 

 در علم كامپيوتر، هسته (kernel) اساسي‌ترين بخش يك سيستم عامل است. هسته سيستم عامل برنامه‌اي است كه دسترسي ايمن به سخت‌افزار را براي برنامه‌هاي گوناگون فراهم مي‌كند. به علت تعدد برنامه‌هاي كامپيوتري، همچنين از آنجايي كه دسترسي به سخت‌افزار محدود است، هسته از طريق تكنيكي كه Multiplexing ناميده مي‌شود، تصميم مي‌گيرد كه يك برنامه چه وقت و به چه مدت مي‌تواند بخشي از سخت‌افزار را در اختيار بگيرد. از آنجايي كه دسترسي مستقيم به سخت‌افزار مي‌تواند بسيار پيچيده باشد، معمولا هسته سيستم‌هاي عامل مجموعه‌اي از سخت‌افزارهاي مجرد را پياده‌سازي مي‌كنند. اين مجرد‌سازي پيچيدگي‌هاي سخت‌افزاري را پنهان مي‌كند و رابطي (Interface) ساده و يكنواخت براي سخت‌افزار فراهم مي‌كند كه استفاده از آن را براي برنامه‌نويسان آسان‌تر مي‌كند.

 

براي اجراي يك برنامه بر روي كامپيوتر وجود هسته در سيستم عامل ضروري نيست. برنامه‌ها مي‌توانند مستقيما بر روي كامپيوتر بارگذاري و اجرا شوند، به شرط آنكه نويسنده برنامه‌ توانايي نوشتن چنين برنامه‌هايي را، بدون پشتيباني سيستم عامل و انتزاع سخت‌افزاري داشته باشد. اجراي برنامه‌ها بدون استفاده از سيستم عامل، در بسياري از كامپيوترهاي اوليه روش معمولي بوده است. البته، در اين روش براي اجراي برنامه‌هاي مختلف لازم بود كه مجددا كامپيوتر راه‌اندازي (Reset)  و برنامه بارگذاري شود. سرانجام براي رفع اين مشكل برنامه‌هاي كمكي كوچكي مثل loaderها و debuggerها ايجاد شدند، كه حين اجراي برنامه‌هاي مختلف در حافظه باقي‌مي‌ماندند يا از حافظه ROM بارگذاري مي‌شدند. با توليد اين برنامه‌هاي كمكي پايه و اساس چيزي كه ما آن را هسته سيستم عامل مي‌خوانيم شكل گرفت.

 

چهار نوع دسته بندي كلي براي هسته سيستم‌هاي عامل وجود دارد:

 

 

 

1.       هسته يكپارچه (Monolithic)، كه انتزاع (abstraction) [1] سخت‌افزاري نيرومندي را فراهم مي‌آورد.

 

2.       ريزهسته (Microkernel)، كه مجموعه‌اي كوچك از انتزاع ساده سخت‌افزاري را به وجود مي‌آورد و از نرم‌افزارهايي با نام سرويس‌دهنده (Server) استفاده مي‌كنند تا قابليت بيشتري را ارايه دهند.

 

3.       هسته دورگه (Hybrid) يا "ريزهسته اصلاح شده"، كه شباهت زيادي به ريزهسته‌ دارد، با اين تفاوت كه به منظور اجراي سريع‌تر، شامل كدهايي اضافي در فضاي هسته مي‌باشد.

 

4.       برون‌هسته (Exokernel)، كه هيچ گونه انتزاعي را فراهم نمي‌كنند، ولي با استفاده از كتابخانه‌اي از توابع (libraries) براي افزايش كارايي، دسترسي مستقيم يا نيمه‌مستقيم به سخت‌افزار را فراهم مي‌كنند.

 

 

 

هسته يكپارچه (Monolithic)

 

 

 

هسته يكپارچه (Monolithic)، يك رابط مجازي سطح بالا بر روي سخت‌افزار تعريف مي‌كند. همچنين مجموعه‌اي از توابع براي پياده‌سازي سرويس‌دهنده‌هاي سيستم عامل، مانند مديريت پردازش‌ها (Process Management)، هم‌زماني (Concurrency) و مديريت حافظه را فراهم مي‌آورد.

 

حتي اگر تمام اجزايي كه به  اين عمليات سرويس‌ مي‌دهند از كل مجموعه هسته جدا باشند، از لحاظ همبستگي كد در تنگنا سختي خواهيم بود و با توجه به اينكه تمام اجزا در يك فضا اجرا مي‌شوند، بروز خطايي در يكي از آنها مي‌تواند كل سيستم را مختل كند. از طرفي ديگر، وقتي كه پياده‌سازي تكميل و قابل اطمينان شد، شرايط همبستگي تنگاتنگ بين اجزاي داخلي باعث مي‌شود كه امكانات سطح پايين سيستم به طور موثري در دسترس قرار گيرد و منجر به يك هسته يكپارچه، با كارآيي بسيار بالا شود.

 

 طرفداران هسته‌هاي يكپارچه عقيده دارند كه اگر كدي خطا دارد نبايستي در هسته قرار داشته باشد (متعلق به هسته باشد). چرا كه در غير اين صورت، برتري اندكي نسب به ريزهسته‌ها خواهند داشت. سيستم‌هاي عامل Linux و Unix را مي‌توان جزو پيشرفته‌ترين هسته‌هاي يكپارچه دانست.

 

ريزهسته (Microkernel)

 

 ريزهسته‌ها، براي پياده‌سازي عمليات كمينه‌اي (minimal) از قبيل مديريت رشته هاي اجرايي (thread management) و فضاي نشاني‌دهي و ارتباطات پردازش متقابل (interprocess communication)، انتزاع كمي بر روي سخت‌افزار انجام مي‌دهند و مجموعه‌اي از عمليات ابتدايي و فراخواني‌هاي عمليات سيستمي را فراهم مي‌كنند.

 

اصلي‌ترين هدف، جداسازي سرويس‌هاي بنيادي، از اعمال سيستمي سطح بالاتر مي‌باشد (سياست هاي عملكرد سيستم.) براي مثال، قفل كردن پردازش‌هاي ورودي و خروجي (I/O) كه توسط سرويس‌دهنده كاربر بر روي ريزهسته در حال اجرا مي‌باشد. سرويس‌دهنده‌هاي كاربران، شامل قسمت‌هاي سطح بالاي سيستم مي‌باشد و كاملا منفك از يكديگر عمل مي‌نمايند و در نتيجه ساختار و طراحي هسته‌ها را ساده مي‌نمايند. در صورت از كار افتادن يك سرويس‌دهنده  عملكرد كل سيستم مختل نخواهد شد. مي‌توان اين قسمت‌ها را به تنهايي و بدون توجه به ديگر قسمت‌ها مجددا راه‌اندازي (Restart) نمود. سيستم‌هايي عاملي كه از ريزهسته استفاده مي‌كنند، عبارتند از AIX، BeOS، Mach (كه در GNU Hurd و MacOS X استفاده شده است)، Minix، MorphOS، QNX، RadiOS، VSTa و خانواده L4 Microkernel.

 

  

هسته‌هاي يكپارچه در مقابل ريزهسته‌ها

 

  

هسته‌هاي يكپارچه غالبا، به علت پيچيدگي كمتر در برخورد با تمامي عناصر سيستم در يك "فضاي آدرس"(Address Space)، بر ريزهسته‌ها ترجيح داده مي‌‌شوند. براي مثال هسته‌هاي XNU، MacOsX بر روي Mach 3.0 + BSD  در يك فضاي آدرس براي كم كردن تاخيري كه در طراحي‌هاي سنتي هسته‌ها رخ مي‌داده است، بنا شده اند.

 

 در اوايل دهه 1990، هسته‌هاي يكپارچه بشدت در مركز توجه بودند. طراحي لينوكس با هسته يكپارچه به جاي ريزهسته جنگ لفظي داغي را بين Linus Torvalds و Andrew Tanenbaum به راه انداخت [2]. در اين تقابل هر دو طرف اظهارات درستي مطرح نمودند و به پيروزي‌هاي مقطعي دست يافتند.

 

طراحي هسته‌هاي يكپارچه آسان‌تر و امكان ساخت‌شان سريع‌تر از ريزهسته‌هاست. ريزهسته‌ها غالبا در سيستم‌هاي ربا تيك مجتمع يا سيستم‌هاي پزشكي (Medical) بكار برده مي‌شوند. علت اين امر را مي‌توان در اجراي اجزاي (component) سيستم عامل در "فضاي آدرس مخفي مختص به خود" دانست. اين عمل در هسته‌هاي يكپارچه  ميسر نمي‌باشد. حتي در نمونه‌هاي جديد و پيشرفته كه از بارگذاري بخش‌بخش (Module-Loading) استفاده مي‌نمايند.

 

هرچند كه Mach [3] بهترين نمونه پياده‌سازي شده ريزهسته‌ها مي‌باشد، اما ريزهسته‌هاي ديگري نيز هستند كه با هدف مشخصي ساخته شده‌اند. L3 توليد شد تا نشان دهد كه ريزهسته‌ها الزاما كند نيستند. L4، نسخه جديدتر L3 بود و پياده‌سازي محبوب آن، به نام Fiasco، امكان اجراي Linux را در كنار ديگران، در فضاي آدرس جداگانه داشت. در سايت Freshmeat.net تصاويري خواهيد يافت كه اين موضوع را نشان مي‌دهند. نسخه جديد‌تر آن Pistachio نيز اين توانايي را دارد.

 

QNX سيستم عاملي است كه از اوايل دهه 1980 وجود دارد نمونه بسيار جمع‌وجورتري است از ريزهسته‌ها. اين سيستم بسيار بهتر از Mach  به اهداف طراحي ريزهسته‌ها دست يافت و در هنگام استفاده خرابي و از دست رفتن نرم‌افزار‌ها معني پيدا نمي‌كند!. مانند بازوهاي ربات در شاتل‌هاي فضايي (مانند بازوهايي كه وظيفه تميز كردن شيشه‌هاي شاتل را برعهده دارند) كه يك اشتباه كوچك ممكن باعث ميليون‌ها دلار خسارت شود.

 

بسياري عقيده دارند، به اين علت كه Mach نتوانست نهايتا موضوعاتي را كه ريزهسته‌ها براي رفع آنها آمده بودند، برطرف كند، تكنولوژي ريزهسته‌ها به دردنخور هستند. در طرف مقابل، طرفداران Mach مي‌گويند كه Mach به حدي به موفقيت و مقبوليت عام دست يافته است، كه برخورد مخالفان چيزي جز يك طرز فكر كم اهميت نباشد.

 

 

هسته‌هاي دورگه  (Hybrid)

 

 

 

هسته‌هاي دورگه اساسا همان ريزهسته‌ها مي‌باشند، با اين تفاوت كه داراي كدهايي غيرضروري در فضاي هسته، به منظور افزايش سرعت عملكرد در فضاي كاربر هستند. اكثر سيستم‌هاي مدرن امروزي در اين دسته‌بندي جاي مي‌گيرند. مايكروسافت ويندوز محبوب‌ترين مثالي است كه مي‌توان براي اين دسته مطرح نمود. هسته‌هاي XNU،Mac OS X همچنين از نوع ريزهسته‌هاي اصلاح شده مي‌باشند.

 

برخي هسته دورگه را با هسته يكپارچه، كه مي‌توانند در صورت راه‌اندازي دوباره نيز ماجول‌ها حفظ كنند، اشتباه مي‌گيرند. هسته‌هاي دورگه پاسخي غيرمستقيم هستند به اشتراك‌گذاري مفاهيم طراحي و مكانيزم‌هاي عملكرد، هسته‌هاي يكپارچه  و ريزهسته‌ها، مخصوصا در تبادل پيام‌ها و ادغام كد‌هاي اضافي در فضاي هسته به جاي فضاي كاربر، براي افزايش سرعت.

 

 

 

برون‌هسته (Exokernel)

 

 

 

سيستم‌هاي عامل برون‌هسته با طراحي عمودي و نوين در مقابل طراحي رايج سيستم عامل هستند. فلسفه اين رويكرد، امكان اتخاذ تمام تصميمات مرتبط با عملكرد سخت‌افزار توسط برنامه‌نويس است. برون‌هسته‌ها، به اين علت كه تمام وظايف خود را تنها به محافظت و اشتراك گذاري منابع سيستم تقليل داده‌اند، بسيار كوچك‌اند.

 

طراحي‌هاي كلاسيك هسته‌ها (ريزهسته‌ها و هسته‌هاي يكپارچه) براي كار با سخت‌افزار يك لايه انتزاعي ايجاد مي‌كنند و منابع سيستم را با استفاده از اين "لايه انتزاعي سخت‌افزاري" (Hardware abstraction layer) يا با استفاده از راه‌انداز‌ها (Driver) مخفي مي‌سازند. براي مثال، اگر به برنامه‌اي حافظه فيزيكي تخصيص داده شده باشد، ديگر برنامه‌ها نمي‌توانند از محل دقيق آن اطلاع داشته باشند.

 

هدف يك برون‌هسته فراهم نمودن امكان درخواست قسمتي از حافظه، بخشي از ديسك و ... براي برنامه‌ها كنترل آزاد بودن منبع درخواست شده و اجازه دسترسي برنامه به آن مي‌باشد.

 

به خاطر اينكه يك برون‌هسته، تنها رابط سطح پايين بسيار اندكي براي سخت‌افزار مهيا مي‌كند، توانايي‌هاي سطح بالاي سيستم عامل‌هاي ديگر را ندارد. براي جبران اين موضوع و افزايش كاراي سيستم‌عامل، از "كتابخانه سيستم عامل (Library operating System)" [ويراستار: چيزي همانند API هاي ويندوز يا توابع كتابخانه‌اي رايج به صورت dll] استفاده مي‌كنند. اين رابط كتابخانه‌اي سيستم‌عامل به برنامه‌نويسان امكان عمل نمودن روي سيستم عاملي همانند سيستم‌عامل‌هاي ديگر مي‌دهد و تفاوت‌هاي برون‌هسته را با انواع ديگر از هسته‌ها از بين مي‌برد.

 

 بعضي از پياده‌سازي‌هاي نظري‌تر برون‌هسته‌ها مشخص نمود كه امكان اجراي چند سيستم عامل متفاوت (مانند Linux وWindows) بر روي يك برون‌هسته وجود دارد و برنامه‌نويس مي‌تواند براي افزايش كارايي توابع و عملكرد‌ها را به دلخواه خود تغيير دهد.

 

 در حال حاضر طراحي برون‌هسته در حد تحقيقات مي‌باشد و هيچ نمونه تجاري در سطح وسيع منتشر نشده است. يك نمونه مفهومي در اين زمينه، سيستم عامل "Nemesis" [مترجم: الهه انتقام] مي‌باشد كه توسط دانشگاه‌هاي كمبريج و گلاسكو با همكاري شركت Citrix System و مركز تحقيقات علوم كامپيوتري سوئد نوشته شده است. دانشگاه MIT نيز سيستم‌هايي بر پايه برون‌هسته توليد نموده است.

 

 

[1] ويراستار: منظور از انتزاع سخت‌افزاري، امكان عمل نمودن مستقل يك برنامه بدون توجه به سخت‌افزاري است كه بر روي آن اجرا مي‌شود. در زمان پيش از كامپيوتر‌هاي شخصي (PC)، برنامه‌هاي كامپيوتري تنها بر روي يك سخت‌افزار مشخص اجرا مي‌شدند و امكان اجراي آنها  بر روي سيستم ديگري نبود. از جمله دلايل آن مي‌توان به تفاوت ساختار و عملكرد CPU هاي مختلف (مانند CPU هاي اينتل و موتورولا) با يكديگر اشاره كرد. در اين ميان، سيستم عامل، از اين نظر كه به برنامه‌ها امكان اجرا بر روي سخت‌افزار‌هاي متفاوتي را بدهد، نقشي بسيار حياتي را بر عهده دارد.

 

[2] ويراستار : آقاي Linus Torvalds خالق لينوكس و شاگرد آقاي Andrew Tanenbaum مي‌باشند. تنها كتاب معتبر در زمينه سيستم عامل در ايران متعلق به آقاي Andrew Tanenbaum مي‌باشد. ايشان به عنوان معتبرترين فرد در زمينه سيستم عامل در دنياي كامپيوتر شناخته مي‌شوند.

 

[3] ويراستار: Mach، كه مخفف Macintosh است، سيستم عاملي مي‌باشد كه در ايران چندان شناخته شده نيست.

 

 

+ نوشته شده در  چهارشنبه چهارم بهمن 1385ساعت 17:11  توسط علیرضا افشار پور | 
 
صفحه نخست
پست الکترونیک
آرشیو
درباره وبلاگ


فناوری اطلاعات و ارتباطات بطور وسیعی در جوامع امروز در حال گسترش می باشد و با تمامی جنبه های زندگی تلفیق پیدا کرده و هدف آن تبدیل جهان به یک دهکده جهانی است.
فناوری اطلاعات و ارتباطات وجه تمایز بنیادین عصر ما با دوران گذشته است آنچه امروز تحت عناوین شکاف یا فاصله بین کشور ها - مناطق- ملت ها - و افراد مطرح است در تحلیل نهایی پیش از هر عامل دیگری با شکاف دیجیتال و یا میزان بهره مندی و کار برد فناوری اطلاعات تناسب مستقیم دارد.
انقلاب اطلاعات که پس از دو انقلاب کشاورزی و صنعتی بوجود آمده است و نماد آن دانش و اطلاعات است که دستاورد آن افزایش فوق العاده و غیر قابل کنترل سرعت زندگی و گام بر داشتن در جهت زندگی بر تر می باشد .

پیوندهای روزانه
تنبور
راز جهان
راز نور
هزار سال تنهایی
نورما
گالری عکس
آرشیو پیوندهای روزانه
نوشته های پیشین
شهریور 1387
خرداد 1386
فروردین 1386
بهمن 1385
دی 1385
آبان 1385
آرشیو موضوعی
دیواره های آتشین
پایگاه داده ها
داده و اطلاع
سیستم عامل
CRM
RAID
ویستا
php
پیوندها
عکس
شبكه فن آوري اطلاعات
اخبار فناوري اطلاعات
بانک اطلاعات سایتهای مشهور ایرانی و خارجی
پارک فناوری هند
مجموعه سورس های برنامه نویسی
کتابهای دیجیتال
asp
مجله دنیای کامپیوتر و ار تباطات
پایگاه تخصصی نرم افزار ایران
بانک نرم افزار
ebay
amazon
ماهنامه شبکه
كلوپ it
سايت امنيت ايران
سايت امنيتي سيمرغ
سايت امنيت و هك آشيانه
امنيت شبكه
كرك
كرك انواع نرم افزار ها
مخزن همه سايتهاي كرك
مقالات آموزشي
انجمن تخصصي كامپيوتر و موبايل
 

 RSS

POWERED BY
BLOGFA.COM

طراح قالب
دیجیتال کیوان