هسته لینوکس یا کرنل جزء اصلی سیستم عامل لینوکس (OS) است و رابط اصلی بین سخت افزار کامپیوتر و فرآیندهای آن است. بین دو مورد ارتباط برقرار می کند و منابع را تا آنجا که ممکن است مدیریت می کند.
این هسته به این دلیل نامگذاری شده است – مانند یک دانه در یک پوسته سخت – در سیستم عامل وجود دارد و تمام عملکردهای اصلی سخت افزار ، اعم از تلفن ، لپ تاپ ، سرور یا هر نوع رایانه دیگر را کنترل می کند.
کرنل لینوکس یا هسته چه کاری انجام میدهد؟
- مدیریت حافظه: میزان استفاده از حافظه برای ذخیره سازی چه چیزی و کجا را پیگیری کنید
- مدیریت فرایند: تعیین اینکه کدام فرایندها می توانند از واحد پردازش مرکزی (CPU) در چه زمان و برای چه مدت استفاده کنند
- درایورهای دستگاه: به عنوان واسطه/مترجم بین سخت افزار و فرآیندها عمل کنید
- تماس ها و امنیت سیستم: درخواست خدمات از فرآیندها را دریافت کنید
بنابراین ، اگر هسته به درستی اجرا شود ، برای کاربر نادیدینی است ، در دنیای کوچک خود که به عنوان فضای هسته شناخته می شود ، کار می کند ، جایی که حافظه را اختصاص می دهد و مکان هایی که همه چیز در آن ذخیره شده است را پیگیری می کند. آنچه کاربر می بیند – مانند مرورگرها و فایل های وب – به عنوان فضای کاربر شناخته می شود. بعلاوه این برنامه ها با هسته از طریق رابط فراخوانی سیستم (SCI) تعامل دارند.
اینجوری درباره اش فکر کنید. هسته یک دستیار شخصی پرکاربرای یک مدیرت قدرتمند (سخت افزار) است. همچنین وظیفه این دستیار است که پیامها و درخواستها (فرایندها) را از کارکنان و عموم مردم (کاربران) به مدیر اجرایی منتقل کند ، به خاطر بسپارد که در کجا (حافظه) ذخیره شده است و تعیین کند که در هر زمان و چه زمانی به مدیر اجرایی دسترسی دارد.
جایی که هسته درون سیستم عامل قرار می گیرد
برای قرار دادن هسته در زمینه ، می توانید یک دستگاه لینوکس را دارای ۳ لایه در نظر بگیرید:
- سخت افزار: ماشین فیزیکی – پایه سیستم ، متشکل از حافظه (RAM) و پردازنده یا واحد پردازش مرکزی (CPU) ، و همچنین دستگاههای ورودی/خروجی (I/O) مانند ذخیره سازی ، شبکه ، و گرافیک CPU محاسبات را انجام می دهد و از حافظه می خواند و به آن می نویسد.
- هسته لینوکس: هسته اصلی سیستم عامل. این نرم افزار در حافظه قرار دارد که به CPU می گوید چه کاری انجام دهد.
- فرآیندهای کاربر: اینها برنامه های در حال اجرا هستند که هسته آنها را مدیریت می کند. و فرآیندهای کاربر چیزی است که به طور کلی فضای کاربر را تشکیل می دهد. فرآیندهای کاربر به عنوان فرآیندهای ساده نیز شناخته می شوند. هسته همچنین به این فرآیندها و سرورها اجازه می دهد تا با یکدیگر ارتباط برقرار کنند (معروف به ارتباط بین فرآیندی یا IPC).
کد اجرا شده توسط سیستم بر روی CPU ها در ۱ از ۲ حالت اجرا می شود: حالت هسته یا حالت کاربر. کدی که در حالت کرنل اجرا می شود دسترسی محدودی به سخت افزار دارد. در حالی که حالت کاربر دسترسی به CPU و حافظه را به SCI محدود می کند. تفکیک مشابهی برای حافظه (فضای هسته و فضای کاربر) وجود دارد. این ۲ جزئیات کوچک ، پایه و اساس برخی عملیات پیچیده مانند جداسازی امتیازات امنیتی ، ساخت ظروف و ماشین های مجازی است.
این بدان معناست که اگر یک فرایند در حالت کاربر شکست بخورد ، آسیب محدود است و می تواند توسط هسته بازیابی شود. با این حال ، به دلیل دسترسی به حافظه و پردازنده ، خرابی فرآیند هسته می تواند کل سیستم را خراب کند. از آنجا که ضوابط و مجوزهای لازم برای عبور از مرزها وجود دارد ، خرابی های فرآیند کاربر معمولاً نمی تواند مشکلات زیادی ایجاد کند.
هسته لینوکس
هسته لینوکس پایه و اساس هر سیستم عامل لینوکسی است. این نشان دهنده هسته اصلی توزیع های لینوکس برای سرورها و رایانه های رومیزی است. همچنین در سیستم های جاسازی شده مانند روترها و در همه سیستم های مبتنی بر Android ، از جمله بسیاری از رایانه ها و تلفن های هوشمند استفاده می شود. در اصل ، هسته لینوکس لینوکس است. گاهی اوقات سیستم عامل هایی مانند اوبونتو ، OpenSUSE و Arch به عنوان “لینوکس” شناخته می شوند زیرا هر کدام از هسته لینوکس استفاده می کنند.
هسته لینوکس توسط لینوس توروالدز در سال 1991 برای استفاده در رایانه شخصی وی ایجاد شد. امروزه این نرم افزار کاملاً پذیرفته شده ، رایگان و منبع باز است که به طور فعال توسط توسعه دهندگان در سراسر جهان نگهداری می شود. هسته لینوکس در حال حاضر تحت مجوز عمومی GNU توزیع می شود.
هسته لینوکس یک معماری “یکپارچه” است – سیستم عامل به طور کامل در فضای هسته کار می کند. در مقابل ، در معماری میکروکرنل ، هسته به تنهایی نحوه ارتباط سیستم عامل با سخت افزار کامپیوتر را تعریف و کنترل می کند. برخلاف هسته های یکپارچه استاندارد ، هسته لینوکس نیز مدولار است و LKM (ماژول های هسته لینوکس) را که به عنوان درایور دستگاه عمل می کند ، می پذیرد. LKM ها را می توان توسط سازندگان دستگاه یا داوطلبان نوشت ، نگهداری و توزیع کرد. و می تواند بدون راه اندازی مجدد و بدون کامپایل مجدد هسته روی سیستم بارگیری یا بارگیری شود.
هسته های لینوکس از چند وظیفه پیشگیرانه ، حافظه مجازی و مدیریت حافظه در سطح سیستم پشتیبانی می کند. موضوع و سایر ویژگی های سیستم عامل مدرن. کامپایلر پیش فرض هسته لینوکس GCC است.
انواع مختلف هسته ها
البته روشهای متفاوتی برای ساختن هسته و ملاحظات معماری هنگام ساختن از ابتدا وجود دارد. به طور کلی ، اکثر هسته ها به یکی از سه نوع تقسیم می شوند: یکپارچه ، ریز هسته و ترکیبی. لینوکس یک هسته یکپارچه است در حالی که OS X (XNU) و ویندوز ۷ از هسته های ترکیبی استفاده می کنند. بیایید یک نگاه سریع از سه دسته داشته باشیم تا بعداً به جزئیات بیشتری بپردازیم.
میکروکرنل
در علم رایانه، ریزهسته یا میکروکرنل یک هستهٔ کامپیوتری است که سازوکارهای لازم برای پیادهسازی سیستمعامل را فراهم میکند، چیزهایی مانند مدیریت فضای آدرس سطح پایین، مدیریت ریسهها (به انگلیسی: thread management)، و ارتباطات میانپردازهای.
اگر سختافزار چندین سطح دسترسی داشته باشد، آنگاه ریزهسته تنها بخشی از نرمافزار است که بالاترین سطح دسترسی را داراست که معمولاً به آن وضعیت هسته میگویند.
در ساختار ریزهستهای سرویسهای واقعی سیستمعامل مانند راه انداز قطعات، پشتههای پروتوکل، سیستم فایلها و دستورهای رابط کاربری در فضای کاربر نگاهداری میشود
هستهٔ مونولیتیک یا هسته یکپارچه
هستهٔ یکپارچه یا هستهٔ مونولیتیک (به انگلیسی: Monolithic kernel) نوعی معماری سیستم عامل است، که کل سیستم عامل در حالت سوپروایز و در فضای هسته فعالیت میکند. هستهٔ یکپارچه فضای مجازی را بالاتر از سختافزار رایانه به وجود میآورد و در مقابل معماریهایی مثل ریزهسته مطرح میشود. این فضا شامل درخواستهای سیستمی اولیه و ابتدایی است که برای همهٔ سرویسهای سیستم عامل مانند مدیریت پروسه، همزمانی و مدیریت حافظه مورد نیاز است همزمان برای راهاندازها ماژولهای مناسب را در اختیار میگذارد. تفاوت اصلی این معماری با میکروکرنل در همین مورد بالا است.
هسته ترکیبی (Hybrid Kernel)
هسته ترکیبی یا هیبریدی ترکیبی از ویژگیهای هسته یکپارچه و ریزهسته است. این نوع هسته تلاش میکند عملکرد بالای هسته مونولیتیک را با ساختار ماژولار و امنتر میکروکرنل ترکیب کند. در حالی که در این مدل همچنان بسیاری از سرویسها مانند درایورها در فضای هسته اجرا میشوند، ساختار معماری آن اجازه میدهد که برخی سرویسها خارج از هسته نیز اجرا شوند.
سیستمعاملهایی که از هسته ترکیبی استفاده میکنند شامل موارد زیر هستند:
ویندوز NT (از جمله ویندوز XP، 7، 10 و نسخههای جدیدتر)
macOS (XNU kernel)
برخی نسخههای مدرن QNX و BeOS
مزایای استفاده از هسته لینوکس
منبع باز (Open Source): هسته لینوکس رایگان و تحت مجوز GPL منتشر میشود، به این معنی که هر کسی میتواند آن را مشاهده، تغییر یا بازتوزیع کند.
پشتیبانی جامعه: هزاران توسعهدهنده در سراسر جهان به صورت داوطلبانه یا حرفهای در توسعه و رفع اشکالات آن مشارکت دارند.
قابل حمل بودن (Portability): میتواند روی انواع مختلف سختافزار اجرا شود؛ از رزبریپای گرفته تا ابررایانهها.
پشتیبانی از چندپردازشی و چندوظیفهای: کرنل لینوکس به خوبی از سیستمهای چند هستهای و پردازشهای موازی پشتیبانی میکند.
قابلیت ماژولار بودن: افزودن یا حذف درایورها و ماژولها بدون نیاز به راهاندازی مجدد سیستم.
کاربردهای دنیای واقعی هسته لینوکس
سرورها: اکثر سرورهای وب (از جمله گوگل، فیسبوک، آمازون) روی توزیعهای لینوکس اجرا میشوند.
تلفنهای هوشمند: سیستمعامل Android بر پایه کرنل لینوکس ساخته شده است.
دستگاههای تعبیهشده (Embedded Systems): روترها، مودمها، گیرندههای دیجیتال، ساعتهای هوشمند و حتی خودروها از نسخههای سبکتر هسته لینوکس استفاده میکنند.
سوپرکامپیوترها: بیش از 90٪ از سریعترین ابرکامپیوترهای جهان از لینوکس استفاده میکنند.
دسکتاپ و لپتاپ: توزیعهایی مانند Ubuntu، Fedora، Arch و Debian تجربهای قدرتمند برای کاربران شخصی فراهم کردهاند.
نتیجه گیری
هسته لینوکس قلب تپندهی یکی از پرکاربردترین و انعطافپذیرترین سیستمعاملهای جهان است. با معماری یکپارچه اما مدولار، جامعهای فعال و پشتیبانی از طیف وسیعی از سختافزارها، این کرنل ستون فقرات زیرساختهای فناوری مدرن را تشکیل میدهد. چه در گوشی هوشمند شما، چه در سرورهای بزرگ داده و چه در دستگاههای خانگی هوشمند، لینوکس و هسته آن حضور پررنگ و مؤثری دارند.