هسته لینوکس یا کرنل جزء اصلی سیستم عامل لینوکس (OS) است و رابط اصلی بین سخت افزار کامپیوتر و فرآیندهای آن است. بین دو مورد ارتباط برقرار می کند و منابع را تا آنجا که ممکن است مدیریت می کند.
این هسته به این دلیل نامگذاری شده است – مانند یک دانه در یک پوسته سخت – در سیستم عامل وجود دارد و تمام عملکردهای اصلی سخت افزار ، اعم از تلفن ، لپ تاپ ، سرور یا هر نوع رایانه دیگر را کنترل می کند.
کرنل لینوکس یا هسته چه کاری انجام میدهد؟
- مدیریت حافظه: میزان استفاده از حافظه برای ذخیره سازی چه چیزی و کجا را پیگیری کنید
- مدیریت فرایند: تعیین اینکه کدام فرایندها می توانند از واحد پردازش مرکزی (CPU) در چه زمان و برای چه مدت استفاده کنند
- درایورهای دستگاه: به عنوان واسطه/مترجم بین سخت افزار و فرآیندها عمل کنید
- تماس ها و امنیت سیستم: درخواست خدمات از فرآیندها را دریافت کنید
بنابراین ، اگر هسته به درستی اجرا شود ، برای کاربر نادیدینی است ، در دنیای کوچک خود که به عنوان فضای هسته شناخته می شود ، کار می کند ، جایی که حافظه را اختصاص می دهد و مکان هایی که همه چیز در آن ذخیره شده است را پیگیری می کند. آنچه کاربر می بیند – مانند مرورگرها و فایل های وب – به عنوان فضای کاربر شناخته می شود. بعلاوه این برنامه ها با هسته از طریق رابط فراخوانی سیستم (SCI) تعامل دارند.
اینجوری درباره اش فکر کنید. هسته یک دستیار شخصی پرکاربرای یک مدیرت قدرتمند (سخت افزار) است. همچنین وظیفه این دستیار است که پیامها و درخواستها (فرایندها) را از کارکنان و عموم مردم (کاربران) به مدیر اجرایی منتقل کند ، به خاطر بسپارد که در کجا (حافظه) ذخیره شده است و تعیین کند که در هر زمان و چه زمانی به مدیر اجرایی دسترسی دارد.
جایی که هسته درون سیستم عامل قرار می گیرد
برای قرار دادن هسته در زمینه ، می توانید یک دستگاه لینوکس را دارای ۳ لایه در نظر بگیرید:
- سخت افزار: ماشین فیزیکی – پایه سیستم ، متشکل از حافظه (RAM) و پردازنده یا واحد پردازش مرکزی (CPU) ، و همچنین دستگاههای ورودی/خروجی (I/O) مانند ذخیره سازی ، شبکه ، و گرافیک CPU محاسبات را انجام می دهد و از حافظه می خواند و به آن می نویسد.
- هسته لینوکس: هسته اصلی سیستم عامل. این نرم افزار در حافظه قرار دارد که به CPU می گوید چه کاری انجام دهد.
- فرآیندهای کاربر: اینها برنامه های در حال اجرا هستند که هسته آنها را مدیریت می کند. و فرآیندهای کاربر چیزی است که به طور کلی فضای کاربر را تشکیل می دهد. فرآیندهای کاربر به عنوان فرآیندهای ساده نیز شناخته می شوند. هسته همچنین به این فرآیندها و سرورها اجازه می دهد تا با یکدیگر ارتباط برقرار کنند (معروف به ارتباط بین فرآیندی یا IPC).
کد اجرا شده توسط سیستم بر روی CPU ها در ۱ از ۲ حالت اجرا می شود: حالت هسته یا حالت کاربر. کدی که در حالت کرنل اجرا می شود دسترسی محدودی به سخت افزار دارد. در حالی که حالت کاربر دسترسی به CPU و حافظه را به SCI محدود می کند. تفکیک مشابهی برای حافظه (فضای هسته و فضای کاربر) وجود دارد. این ۲ جزئیات کوچک ، پایه و اساس برخی عملیات پیچیده مانند جداسازی امتیازات امنیتی ، ساخت ظروف و ماشین های مجازی است.
این بدان معناست که اگر یک فرایند در حالت کاربر شکست بخورد ، آسیب محدود است و می تواند توسط هسته بازیابی شود. با این حال ، به دلیل دسترسی به حافظه و پردازنده ، خرابی فرآیند هسته می تواند کل سیستم را خراب کند. از آنجا که ضوابط و مجوزهای لازم برای عبور از مرزها وجود دارد ، خرابی های فرآیند کاربر معمولاً نمی تواند مشکلات زیادی ایجاد کند.
هسته لینوکس
هسته لینوکس پایه و اساس هر سیستم عامل لینوکسی است. این نشان دهنده هسته اصلی توزیع های لینوکس برای سرورها و رایانه های رومیزی است. همچنین در سیستم های جاسازی شده مانند روترها و در همه سیستم های مبتنی بر Android ، از جمله بسیاری از رایانه ها و تلفن های هوشمند استفاده می شود. در اصل ، هسته لینوکس لینوکس است. گاهی اوقات سیستم عامل هایی مانند اوبونتو ، OpenSUSE و Arch به عنوان “لینوکس” شناخته می شوند زیرا هر کدام از هسته لینوکس استفاده می کنند.
هسته لینوکس توسط لینوس توروالدز در سال ۱۹۹۱ برای استفاده در رایانه شخصی وی ایجاد شد. امروزه این نرم افزار کاملاً پذیرفته شده ، رایگان و منبع باز است که به طور فعال توسط توسعه دهندگان در سراسر جهان نگهداری می شود. هسته لینوکس در حال حاضر تحت مجوز عمومی GNU توزیع می شود.
هسته لینوکس یک معماری “یکپارچه” است – سیستم عامل به طور کامل در فضای هسته کار می کند. در مقابل ، در معماری میکروکرنل ، هسته به تنهایی نحوه ارتباط سیستم عامل با سخت افزار کامپیوتر را تعریف و کنترل می کند. برخلاف هسته های یکپارچه استاندارد ، هسته لینوکس نیز مدولار است و LKM (ماژول های هسته لینوکس) را که به عنوان درایور دستگاه عمل می کند ، می پذیرد. LKM ها را می توان توسط سازندگان دستگاه یا داوطلبان نوشت ، نگهداری و توزیع کرد. و می تواند بدون راه اندازی مجدد و بدون کامپایل مجدد هسته روی سیستم بارگیری یا بارگیری شود.
هسته های لینوکس از چند وظیفه پیشگیرانه ، حافظه مجازی و مدیریت حافظه در سطح سیستم پشتیبانی می کند. موضوع و سایر ویژگی های سیستم عامل مدرن. کامپایلر پیش فرض هسته لینوکس GCC است.
انواع مختلف هسته ها
البته روشهای متفاوتی برای ساختن هسته و ملاحظات معماری هنگام ساختن از ابتدا وجود دارد. به طور کلی ، اکثر هسته ها به یکی از سه نوع تقسیم می شوند: یکپارچه ، ریز هسته و ترکیبی. لینوکس یک هسته یکپارچه است در حالی که OS X (XNU) و ویندوز ۷ از هسته های ترکیبی استفاده می کنند. بیایید یک نگاه سریع از سه دسته داشته باشیم تا بعداً به جزئیات بیشتری بپردازیم.
میکروکرنل
در علم رایانه، ریزهسته یا میکروکرنل یک هستهٔ کامپیوتری است که سازوکارهای لازم برای پیادهسازی سیستمعامل را فراهم میکند، چیزهایی مانند مدیریت فضای آدرس سطح پایین، مدیریت ریسهها (به انگلیسی: thread management)، و ارتباطات میانپردازهای.
اگر سختافزار چندین سطح دسترسی داشته باشد، آنگاه ریزهسته تنها بخشی از نرمافزار است که بالاترین سطح دسترسی را داراست که معمولاً به آن وضعیت هسته میگویند.
در ساختار ریزهستهای سرویسهای واقعی سیستمعامل مانند راه انداز قطعات، پشتههای پروتوکل، سیستم فایلها و دستورهای رابط کاربری در فضای کاربر نگاهداری میشود
هستهٔ مونولیتیک یا هسته یکپارچه
هستهٔ یکپارچه یا هستهٔ مونولیتیک (به انگلیسی: Monolithic kernel) نوعی معماری سیستم عامل است، که کل سیستم عامل در حالت سوپروایز و در فضای هسته فعالیت میکند. هستهٔ یکپارچه فضای مجازی را بالاتر از سختافزار رایانه به وجود میآورد و در مقابل معماریهایی مثل ریزهسته مطرح میشود. این فضا شامل درخواستهای سیستمی اولیه و ابتدایی است که برای همهٔ سرویسهای سیستم عامل مانند مدیریت پروسه، همزمانی و مدیریت حافظه مورد نیاز است همزمان برای راهاندازها ماژولهای مناسب را در اختیار میگذارد. تفاوت اصلی این معماری با میکروکرنل در همین مورد بالا است.