کرنل یا هسته سیستم عامل چیست؟
Kernel یا هسته سیستم عامل ماژول مرکزی یک سیستم عامل است، بخشی که ابتدا عمل بارگزاری را انجام میدهد و پس از آن در حافظه اصلی (رم) باقی می ماند.اگر سیستمعاملها وجود نداشتند، روشی که ما از فناوری استفاده میکنیم بسیار متفاوت بود، زیرا بدون آنها کامپیوترها و دستگاههای تلفن همراه به درستی کار نمیکردند.
وقتی از سیستم عامل حرف میزنیم نامهایی مانند ویندوز، اندروید، آی او اس یا لینوکس به ذهن میآید، اما آیا تا به حال فکر کردهاید که عملکرد درونی یک سیستم عامل چگونه است؟
با توجه به تعداد زیادی از اقدامات و وظایفی که می توانیم توسعه دهیم، شکی نیست که تعداد فرآیندهای داخلی که در هر ثانیه در حال توسعه هستند بسیار زیاد است بنابراین، چه در مورد موضوع کنجکاو باشید، چه اگر تازه وارد حوزه برنامه نویسی شدهاید، باید در مورد قسمتهای داخلی یک سیستم عامل اطلاعات داشته باشید و کرنل یکی از آنهاست.
کرنل چیست؟
کرنل، هسته هر سیستم عامل است، بخشی که اجازه دسترسی نرم افزار به سخت افزار را میدهد و انجام انواع اقدامات را از دستگاهها ممکن میکند. کامپیوترها و تلفنهای همراه همیشه یک سیستم عامل دارند، بنابراین کرنل در تک تک آنها وجود دارد علاوه بر این، کرنل مهمترین بخش هر سیستم عامل است، زیرا بدون آن هیچ دستگاهی قابل استفاده نخواهد بود به طور استعاری، توسعه دهندگان اغلب می گویند که کرنل قلب سیستم عامل است.
کرنل برای چیست؟
هدف اولیه کرنل مدیریت منابع متعلق به سخت افزار است که از طریق انواع مختلف نرم افزار درخواست میشود. برای تجسم بهتر عملکرد آن، می توان گفت که Kernel به عنوان نوعی واسطه عمل می کند و مسئول تصمیم گیری در مورد زمان اعطای دسترسی به نرم افزار به منظور مدیریت بهتر جریان اقداماتی است که همزمان اجرا میشوند و از بارگذاری بیش از حد (overload) یا فروپاشی همه چیز جلوگیری می کند بنابراین، بدون شک، کرنل سنگینترین حجم کار را به دوش میکشد، زیرا وظیفه درست کار کردن همه چیز را بر عهده دارد.
از همان لحظهای که کامپیوتر خود را روشن می کنیم، کرنل کار میکند تا زمانی که برنامهای را باز میکنیم یا درخواست دسترسی به استفاده از وسایل جانبی را میدهیم؛ به همین دلیل است که یکی از بخشهایی است که هنگام ایجاد یک سیستم عامل نمی توان آن را از دست داد و در زنجیره فرمان از اهمیت اساسی برخوردار است.
یک کامپیوتر بدون سیستم عامل و یک سیستم عامل بدون کرنل نمی تواند کار کند.
یک تشبیه بهتر این است که هسته را به عنوان موتور خودرو و سیستم عامل را به عنوان خودرو در نظر بگیریم؛ شما نمیتوانید با موتور رانندگی کنید، اما بدون موتور نیز نمیتوان رانندگی کرد. برای تبدیل آن به خودرویی که بتوانید رانندگی کنید، باید لاستیک، فرمان و سایر اجزای سازنده داشته باشید به طور مشابه، شما نمی توانید به طور مستقیم از هسته استفاده کنید. برای استفاده از سیستم عامل به پوسته و سپس ابزارها و اجزای دیگر نیاز دارید.
عملکرد اصلی کرنل
برای درک بهتر نحوه عملکرد این بخش از سیستم عامل، مهم است که در مورد عملکردهای اصلی آن صحبت کنیم. درست است که به طور کلی مسئول هماهنگی تمام ارتباطاتی است که نرم افزار و سخت افزار میتوانند داشته باشند، اما چگونه می توانیم این را بهتر درک کنیم؟
خوب، به لطف این واقعیت که Kernel می تواند این کار را انجام دهد، انجام انواع اقدامات با دستگاه های تکنولوژیکی امروزی کاملا ممکن می شود. حالا بیایید کمی سبک توابع کرنل را توضیح دهیم:
- عملکرد سازمانی
بدون شک اقدامات زیادی وجود دارد که کرنل در آن شرکت می کند و ذخیره سازی و سازماندهی فایلها هم یکی از آنهاست. هنگام دانلود فایلها، تصاویر، اسناد یا هر چیز دیگری، می توانید مطمئن باشید که کرنل به طور فعال کار می کند.
- عملکرد حفاظتی
از آنجایی که کرنل وظیفه اعطای مجوز به نرم افزار برای دسترسی به سخت افزار را بر عهده دارد، هسته نرم افزاری با منشا مشکوک را نمی پذیرد بنابراین، نقش محافظتی را نیز ایفا می کند که برای همه دستگاه های شما از اهمیت بالایی برخوردار است البته، این بدان معنا نیست که هسته مسئول محافظت از ما در برابر همه چیز است زیرا اینطور کار نمی کند به همین دلیل است که همیشه توصیه می شود یک آنتی ویروس داشته باشید که در تمام دستگاه هایی که دارید به روز شود.
- بهینه سازی فیوژن
هسته مسئول اعطای دسترسی به روشی سازمان یافته است تا جریان فرآیندهای داخلی را برای کامپیوتر شما قابل مدیریت کند.در غیر این صورت، درخواستها و دسترسیها به یکباره تحویل داده میشوند که باعث از بین رفتن کامل سیستم شما میشود. بنابراین، چیزی به اندازه کرنل نیز در بهینه سازی فرآیندهای داخلی این دستگاه ها اختلال ایجاد می کند.
- عملکرد مدیریت محیطی
همانطور که قبلا اشاره کردیم، یکی دیگر از عملکردهای اساسی Kernel این است که مسئولیت مدیریت تجهیزات جانبی که به کامپیوتر خود وصل میکنید نیز بر عهده دارد به خاطر داشته باشید که برای هماهنگی بین آنها و دستگاهی که به آن متصل هستند، باید با نرم افزار هر یک از تجهیزات جانبی کار کنید. بنابراین هسته مسئول دسترسی سخت افزاری به نرم افزار تمام تجهیزات جانبی است که شما متصل کرده اید یعنی استفاده از صفحه کلید گرفته تا استفاده از هدست، کرنل پشت همه چیزهایی است که عملیات را ممکن می کند.
انواع کرنل
چیزی که باید در مورد کرنل در نظر گرفت این است که چندین نوع از آن وجود دارد زیرا هر یک از انواع هسته برای نوع خاصی از سیستم عامل مناسب است.
همانطور که میتوانید تصور کنید، با توجه به انواع دستگاه های موجود، طیف گستردهای از سیستم عاملها نیز وجود دارد. بنابراین، بسته به عملکرد آنها یا آنچه از آنها انتظار میرود، ممکن است کرنل متفاوتی داشته باشند به همین دلیل است که ما قصد داریم به طور خلاصه انواع کرنلهای موجود و تفاوتهای آنها را بررسی کنیم:
-
میکروکرنل - Microkernel
میکروکرنل یک هسته کوچک است که وظیفه کار با ساختار مدولار را بر عهده دارد، در این نوع هسته، زیرسیستمها برخلاف آنچه رایج است هر کدام در ماژول خاص خود هستند، یعنی در یک ماژول منطقی واحد قرار دارند.به همین دلیل است که معمولا در سیستم عاملهایی استفاده میشود که به عملکرد زیادی نیاز ندارند، بنابراین ممکن است آنها را در دستگاه های بسیار ابتدایی یا حتی قدیمی پیدا کنید.
-
یکپارچه - Monolithic
سبکی از کرنل که ساختار واحدی دارد که همه زیرسیستمهای آن در یک ماژول منطقی واحد وجود دارند این چیزی است که اجازه میدهد تمام کارها در یک مکان انجام شود، بنابراین تمام وظایف سیستم در یک کرنل بزرگ واحد خواهد بود. این یک چیز مثبت در دنیای برنامه نویسی است، زیرا به شما امکان می دهد سرعت فرآیندها را افزایش دهید، عملکرد بالاتری داشته باشید و پیچیدگی پیکربندی را کاهش دهید.شایان ذکر است که برخی از شناخته شده ترین سیستم عامل های جهان امروز با یک هسته یکپارچه کار می کنند.
-
هیبرید - Hybrid
وقتی در مورد یک هسته ترکیبی صحبت میکنیم که در آن دو نوع قبلی مخلوط شدهاند پس یک هسته دارید که ساختاری به سبک میکروکرنل خواهد داشت، در حالی که بخشهای دیگر کدی که با آن کار میکنید بهعنوان ماژولهای جداگانه یافت میشوندکه به ساده کردن تمام فرآیندهای داخلی و تحویل مجوزها به نرم افزار کمک بزرگی میکند.
-
اگزوکرنل - Exokernel
در حالی که سه نوع کرنل ذکر شده در بالا رایجترین نوع آنها هستند، ولی انواع جدیدتری وجود دارند که به همان اندازه جالب هستند. در میان آنها میتوان به Exokernel اشاره کرد که با ساختار نسبتا جدیدی ارائه شده است، زیرا به صورت عمودی سازماندهی شده است.در این سبک، هستهها کوچکتر شده و قدرت بیشتری به برنامههای مورد استفاده در کامپیوترها داده می شود.
برنامهها از طریق برخی کتابخانهها در مورد مجوزهای سخت افزاری تصمیمگیری می کنند به این ترتیب، کرنل به عنوان چنین حالتی برای جلوگیری از مشکلات و جلوگیری از خطاهای احتمالی در تحویل مجوزها به حالت معلق در می آید.
-
نانو کرنل - Nanokernel
یکی از جدیدترین انواعی که هنوز زیاد مورد استفاده قرار نگرفته است، نانوکرنل است. همانطور که از پیشوند استفاده شده میتوانید حدس بزنید، یک نانوکرنل حتی کوچکتر از یک میکروکرنل است.
بنابراین فقط برای سیستم های embedded استفاده شده است.
-
Anykernel
در این مورد با نوع نسبتا جدیدی از کرنل روبرو هستیم که به دنبال ارائه سطح بالاتری از امنیت و در عین حال ساده سازی توسعه درایورهای خاص است همه اینها با استفاده از یک سبک هسته که کاملا شبیه به سبک یکپارچه است.
-
یونیکرنل - Unikernel
کرنلی است که در حال حاضر در سیستم عاملهای کم مصرف استفاده می شود، زیرا چندین لایه را حذف کرده و فرآیند را به حداکثر رسانده است.
خرید سرور مجازی لینوکس در پنج موقعیت جغرافیایی ایران، ترکیه، هلند، آلمان و آمریکا با قابلیت تحویل آنی در پارسدو فراهم است.
چگونه بفهمیم کامپیوتر شما چه نوع هسته ای دارد؟
اگر پس از مطالعه بسیار در مورد کرنل، در مورد نوع هسته سیستم عامل کامپیوتر شما شک دارید، می توانید تنها در چند مرحله متوجه شوید.
در اینجا مراحلی را باید دنبال کنید تا متوجه شوید که آیا رایانه شما دارای ویندوز است یا خیر:
- دکمه start را فشار دهید.
- در نوار جستجو تایپ کنید: About your PC.
- گزینهای که در نتیجه ظاهر می شود را انتخاب کنید.
- اکنون پنجره جدیدی باز می شود که در آن اطلاعات مختلفی در مورد رایانه شخصی خود خواهید یافت.
- پس از رسیدن به آنجا، روی دکمه Device Specifications کلیک کنید.
- پنجره را کمی بیشتر به سمت پایین اسکرول کنید و روی گزینه System کلیک کنید.
- در آنجا باید اطلاعات دقیقی در مورد سیستم عامل خود و در نتیجه نوع کرنل آن مشاهده کنید.
اکنون که اطلاعات بیشتری در مورد کرنل دارید، متوجه شدهاید که کرنل در تمام فرآیندهای داخلی سیستم عاملها از اهمیت بالایی برخوردار است، بدون شک در مقابل چشمان ما یک سری فرآیندها وجود دارد که ما هیچ تصوری از آنها نداریم، اما هر یک از آنها از اهمیت بالایی برخوردار است.