هسته (رایانش)

نقش هسته در سیستم‌عامل. واسطه‌ای میان برنامه‌های کاربری و سخت‌افزار است.
در علوم رایانه، هسته (که کرنل نیز خوانده می‌شود) یک برنامه رایانه است که هسته مرکزی یک سیستم عامل رایانه را تشکیل می‌دهد و کنترل تمام چیزهایی را که در سیستم اتفاق می‌افتد را در دست دارد؛ به همین علت اولین برنامه‌ای است که در آغاز به کار سیستم، در حافظه باز می‌شود و بعد از آن بقیه شروع به کار سیستم را مدیریت می‌کند، همچنین کنترل درخواستهای ورودی و خروجی توسط نرم افزارها و ترجمه آن‌ها به ساختارهای قابل پردازش برای واحد پردازش مرکزی را به عهده دارد. علاوه بر آن مدیریت حافظه و ارتباط با دستگاه‌های جانبی (مثل چاپگرها) هم بر عهده این برنامه است. هسته قسمت اساسی سیستم عاملهای مدرن امروزی است.
هسته به مولفه‌هایی تقسیم شده‌است که هر کدام، وظیفه خاصی بر عهده دارد.
کارکردهای هسته
کارکردهای اصلی هسته را می‌توان به قسمت‌هایی برای مدیریت منابع سیستم تقسیم کرد، از جمله:
واحد پردازش مرکزی
واحد پردازشگر مرکزی مسوولیت اجرای تمام برنامه‌ها را به عهده دارد. این هسته است که تصمیم می‌گیرد در هر زمانی کدامیک از برنامه‌ها باید توسط این واحد یا واحدها (هر واحد فقط قادر به اجرای یک برنامه در هز زمان است) اجرا شود.
حافظه با دسترسی تصادفی
حافظه با دسترسی تصادفی برای ذخیره موقت ساختارهای برنامه و همچنین اطلاعات به کار می‌رود. هسته مسولیت تصمیم گیری این را بر عهده دارد که هر پروسس می‌تواند از کدام حافظه استفاده کند و تصمیم بگیرد زمانی که حافظه کافی وجود ندارد چه کاری را انجام دهد.
مدیریت ورودی و خروجی
دستگاه‌های ورودی/خروجی شامل لوازم جانبی به عنوان موس، صفحه کلید، دیسک سخت، چاپگر، آداپتورهای شبکه و دستگاه‌های صفحه نمایش می‌باشد.
هسته درخواست برنامه‌های کاربردی را به یک دستگاه I/O مناسب اختصاص می‌دهد و شیوه‌های مناسب برای استفاده از دستگاه را فراهم می‌کند.
جنبه‌های کلیدی لازم در مدیریت منابع، تعریف دامنه (فضای آدرس) و مکانیسم‌های حفاظت به واسطه دسترسی به منابع در یک دامنه استفاده می‌شود.
هسته نیز معمولا روش‌هایی برای هماهنگ‌سازی و ارتباط بین فرایندها به نام (IPC) را فراهم می‌کند.
مدیریت حافظه
هسته باید اجازه دهد در صورت نیاز فرایندهای دسترسی به حافظه دسترسی کامل به سیستم داشته باشند، اغلب این کار با صفحه بندی یا قطعه بندی صورت می‌پذیرد.
حافظه مجازی این اجاره را به هسته می‌دهد تا مثل یک آدرس فیزیکی داده به نظر می‌رسد.
فضای آدرس مجازی ممکن است برای فرایندهای مختلف متفاوت باشد.
حافظه مجازی حافظه ایست که یک فرایند دسترسی در یک آدرس خاص با فرایند دیگری در همان آدرس حافظه‌ای متفاوت داشته باشد.
استفاده از ان آدرس این اجازه را می‌دهد که هر برنامه در حال اجرا مانع اجرای برنامه‌های کاربردی دیگر نشود.
حافظه مجازی همچنین این اجازه را می‌دهد حافظه به دو دسته (مد هسته) و (مد کاربر) تقسیم کرده و از آسیب به یک برنامه در حال اجرا در هسته می‌شود.
مدیریت دستگاه‌ها
برای انجام توابع مفید، فرایندهای نیاز به دسترسی به لوازم جانبی متصل به کامپیوتر که به وسیله کرنل از طریق درایورها ی دستگاه کنترل می‌شود دارد. درایور دستگاه یک برنامه کامپیوتری است که باعث ارتباط برقرار کردن سیستم عامل با یک دستگاه سخت‌افزاری می‌شود. درایور یک قطعه مهم و حیاتی یک برنامه است.
فراخوان سیستمی
مقاله اصلی: فراخوان سیستمی فراخوان سیستمی یک برنامه درخواستی از سیستم عامل در مد ویژه است.
یک فراخوان سیستمی رابط بین فرایند و سیستم عامل است.
فراخوان سیستمی یک مکانیسم است که توسط برنامه نرم‌افزار به درخواست یک سرویس از سیستم عامل استفاده می‌شود.
به‌طور کلی سیستم عامل یک کتابخانه است که بین سیستم عامل و برنامه‌های عادی می‌باشد.
برای فراخوانی‌های سیستمی چند راه وجود دارد:
با استفاده از یک وقفه نرم‌افزاری
با استفاده از یک دروازه پاسخ
با استفاده از یک دستتورالعمل سیستم پاسخ خاص
با استفاده از یک صف مبتنی بر حافظه
سیستم‌عامل
ریزهسته
ارتباط بین پردازشی