کرنل ها بخش اصلی یک سیستم عامل را تشکیل می دهند و وظایف اساسی از قبیل مدیریت حافظه . مدیریت سخت افزار . ایجاد بستر مناسب برای اینترفیس ها و ... را به عهده دارد .
کرنل ها بستگی به نوع ساختار خود به دسته های مختلفی تقسیم می شوند اما در کل به دسته Monolithic Kernel ها و Micro Kernel ها تقسیم بندی می شوند .
Monolithic Kernel
در کرنل های monolithic معمولا کرنل به عنوان یک تک برنامه در بالای مموری نشسته و سیستم را مدیریت می کند. این نوع کرنل ها که به هسته های یکپارچه در فارسی معروفند به خاطر وابستگی قسمت های مختلف به یکدیگر درصورت بروز مشکل در یک قسمت امکان دارد کل سیستم مختل شود . البته در صورت نبود چنین مشکلی این ارتباط نزدیک بخش های مختلف یکی از مزایای این سیستم به شمار می رود .
لینوکس و یونیکس از معروفترین این نوع کرنل ها هستند.
شمای کلی این نوع کرنل :
Micro Kernel
ریزهسته ها یا micro kernel ها بیشتر تمرکز خود را بر اجرای device driver ها و سرویس ها در محیط userspace دارند . مزیت این سیستم ها این است که در صورت بروز مشکل در یک قسمت بقیه قسمت ها بدون مشکل کار خواهند کرد.
Minix , AIX از معروفترین این نوع کرنل ها هستند.
در این تقسیم بندی ساختار های دیگری نیز وجود دارد مثل :
Hybird Kernel که از زیرمجموعه Micro Kernel ها هستند و در واقع برای بهبود Micro Kernel شامل کدهای در حافظه هستند.
کرنل ویندوز های NT به بعد Hybrid kernel می باشد .
Modular Kernel این کرنل ها قسمت های مختلف را به صورت module بعد از لود شدن کرنل لود می کنند .
البته این تقسیم بندی در اینجا تمام نمی شود کرنل های دیگری مثله Nano Kernel ها و ExoKernel ها هم وجود دارد.