PDA

View Full Version : معرفی کلی انواع هسته های سیستم عامل



asm.coder
چهارشنبه 29 آبان 1387, 17:55 عصر
کرنل ها بخش اصلی یک سیستم عامل را تشکیل می دهند و وظایف اساسی از قبیل مدیریت حافظه . مدیریت سخت افزار . ایجاد بستر مناسب برای اینترفیس ها و ... را به عهده دارد .

کرنل ها بستگی به نوع ساختار خود به دسته های مختلفی تقسیم می شوند اما در کل به دسته Monolithic Kernel ها و Micro Kernel ها تقسیم بندی می شوند .

Monolithic Kernel
در کرنل های monolithic معمولا کرنل به عنوان یک تک برنامه در بالای مموری نشسته و سیستم را مدیریت می کند. این نوع کرنل ها که به هسته های یکپارچه در فارسی معروفند به خاطر وابستگی قسمت های مختلف به یکدیگر درصورت بروز مشکل در یک قسمت امکان دارد کل سیستم مختل شود . البته در صورت نبود چنین مشکلی این ارتباط نزدیک بخش های مختلف یکی از مزایای این سیستم به شمار می رود .
لینوکس و یونیکس از معروفترین این نوع کرنل ها هستند.

شمای کلی این نوع کرنل :
http://upload.wikimedia.org/wikipedia/en/8/87/Kernel-simple.png



Micro Kernel
ریزهسته ها یا micro kernel ها بیشتر تمرکز خود را بر اجرای device driver ها و سرویس ها در محیط userspace دارند . مزیت این سیستم ها این است که در صورت بروز مشکل در یک قسمت بقیه قسمت ها بدون مشکل کار خواهند کرد.
Minix , AIX از معروفترین این نوع کرنل ها هستند.

http://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/Kernel-microkernel.svg/260px-Kernel-microkernel.svg.png


در این تقسیم بندی ساختار های دیگری نیز وجود دارد مثل :
Hybird Kernel که از زیرمجموعه Micro Kernel ها هستند و در واقع برای بهبود Micro Kernel شامل کدهای در حافظه هستند.

http://upload.wikimedia.org/wikipedia/commons/thumb/3/39/Kernel-hybrid.svg/260px-Kernel-hybrid.svg.png

Modular Kernel این کرنل ها قسمت های مختلف را به صورت module بعد از لود شدن کرنل لود می کنند .
البته این تقسیم بندی در اینجا تمام نمی شود کرنل های دیگری مثله Nano Kernel ها و ExoKernel ها هم وجود دارد.

ahmad598
پنج شنبه 21 آذر 1387, 23:16 عصر
فکر می کنم که کرنلهای جدیدتر لینوکس هم ماژولار باشن نه مونولیتیک. ولی مطمءن نیستم.
راستی چرا در مورد ویندوز چیزی نگفتین؟ یعنی مایکروسافت انقدر بسته است؟!

miradli
دوشنبه 02 دی 1387, 10:52 صبح
کرنل ویندوز های NT به بعد Hybrid kernel می باشد . برای اطلاعات بیشتر در مورد کرنل Hybrid kernel این لینک مفید می باشد : http://en.wikipedia.org/wiki/Hybrid_kernel

ilia_86
جمعه 06 دی 1387, 05:21 صبح
سلام
ببخشید می خواستم بدانم اگر بخواهیم خودمون یک کرنل مثل MenuetOs بنویسیم . مستندات فارسی برای آن وجود دارد؟ یا حتی برای نوشتن یک BootLoader ساده؟
همینطور اگر بخواهیم سیستم عامل کوچکی مثل Menuet را فارسی کنیم کدام فایل های آن را بایستی دستکاری کنیم؟
با تشکر