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

از ویکی‌پدیا، دانشنامهٔ آزاد
(تغییرمسیر از هسته سیستم عامل)
پرش به: ناوبری، جستجو
«کرنل» به اینجا تغییرمسیر دارد. برای سایر استفاده‌ها، کرنل (ابهام‌زدایی) را مشاهده کنید.
نقش هسته در سیستم‌عامل. واسطه‌ای میان برنامه‌های کاربری و سخت‌افزار است.

در علوم رایانه، هسته[۱] (که کرنل نیز خوانده می‌شود) یک برنامه رایانه است که هسته مرکزی یک سیستم عامل رایانه را تشکیل می‌دهد و کنترل تمام چیزهایی را که در سیستم اتفاق می‌افتد را در دست دارد؛[۲] به همین علت اولین برنامه‌ای است که در آغاز به کار سیستم، در حافظه بار می‌شود و بعد از آن بقیه شروع به کار سیستم را مدیریت می‌کند، همچنین کنترل درخواستهای ورودی و خروجی توسط نرم افزارها و ترجمه آنها به ساختارهای قابل پردازش برای واحد پردازش مرکزی را به عهده دارد. علاوه بر آن مدیریت حافظه و ارتباط با دستگاه‌های جانبی (مثل چاپگرها) هم بر عهده این برنامه است. هسته قسمت اساسی سیستم عاملهای مدرن امروزی است.[۳]

هسته به مولفه‌هایی تقسیم شده‌است که هر کدام، وظیفه خاصی بر عهده دارد.

کارکردهای هسته[ویرایش]

کارکردهای اصلی هسته را می‌توان به قسمت‌هایی برای مدیریت منابع سیستم تقسیم کرد، از جمله:

کنترل واحد پردازشگر مرکزی[ویرایش]

واحد پردازشگر مرکزی مسوولیت اجرای تمام برنامه‌ها را به عهده دارد. این هسته است که تصمیم می‌گیرد در هر زمانی کدامیک از برنامه‌ها باید توسط این واحد یا واحدها (هر واحد فقط قادر به اجرای یک برنامه در هز زمان است) اجرا شود.

مدیریت حافظه تصادفی[ویرایش]

حافظه تصادفی برای ذخیره موقت ساختارهای برنامه و همچنین اطلاعات به کار می‌رود.

مدیریت ورودی و خروجی[ویرایش]

دستگاه‌های ورودی/خروجی شامل لوازم جانبی به عنوان موس، صفحه کلید، دیسک سخت، چاپگر، اداپتورهای شبکه و دستگاه‌های صفحه نمایش می‌باشد. هسته درخواست برنامه‌های کاربردی به یک دستگاه مناسب و اختصاص یک I/O مناسب را می‌کند.

جنبه‌های کلیدی لازم در مدیریت منابع، تعریف دامنه (فضای آدرس) و مکانیسم‌های حفاظت به واسطهٔ دسترسی به منابع در یک دامنه استفاده می‌شود. هسته نیز معمولاً روش‌هایی برای هماهنگ سازی و ارتباط بین فرایندها به نام (IPC) را فراهم می‌کند.

مدیریت حافظه[ویرایش]

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

مدیریت دستگاه‌ها[ویرایش]

برای انجام توابع مفید، فرایندهای نیاز به دسترسی به لوازم جانبی متصل به کامپیوتر که به وسیلهٔ کرنل از طریق درایورها ی دستگاه کنترل می‌شود دارد. درایور دستگاه یک برنامه کامپیوتری است که باعث ارتباط برقرار کردن سیستم عامل با یک دستگاه سخت‌افزاری می‌شود. درایور یک قطعه مهم و حیاتی یک برنامه است.

فراخوان سیستمی[ویرایش]

مقاله اصلی: فراخوان سیستمی

فراخوان سیستمی یک برنامه درخواستی از سیستم عامل در مد ویژه است.

یک فراخوان سیستمی رابط بین فرایند و سیستم عامل است. فراخوان سیستمی یک مکانیسم است که توسط برنامه نرم‌افزار به درخواست یک سرویس از سیستم عامل استفاده می‌شود. به طور کلی سیستم عامل یک کتابخانه است که بین سیستم عامل و برنامه‌های عادی می‌باشد. برای فراخوانی‌های سیستمی چند راه وجود دارد:

  1. با استفاده از یک وقفهٔ نرم‌افزاری
  2. با استفاده از یک دروازهٔ پاسخ
  3. با استفاده از یک دستتورالعمل سیستم پاسخ خاص
  4. با استفاده از یک صف مبتنی بر حافظه

جستارهای وابسته[ویرایش]

منابع[ویرایش]

  1. هسته برابرنهاد «واژه‌نامه مرجع برای ترجمه محیط لینوکس» برای واژهٔ کرنل (به انگلیسی: Kernel) است.
  2. "Kernel". Linfo. Bellevue Linux Users Group. Retrieved 15 September 2016. 
  3. Wulf 1974 pp.337–345