هسته لینوکس چیست و چه کاری انجام می دهد؟

هسته لینوکس با بیش از 13 میلیون خط کد، یکی از بزرگترین پروژه های منبع باز در جهان است، اما یک هسته چیست و چه چیزی برای آن استفاده می شود؟
هسته لینوکس چیست و چه کاری انجام می دهد؟

هسته لینوکس چیست و چه کاری انجام می دهد؟

بنابراین هسته چیست؟


هسته پایین ترین سطح نرم افزار قابل تعویض است که با سخت افزار در کامپیوتر شما رابط است. این مسئولیتی است که همه برنامه های خود را که در حالت “کاربر” به سخت افزار فیزیکی در حال اجرا هستند، متصل کند و پروسه هایی که به عنوان سرور شناخته می شوند، اجازه می دهد اطلاعات را از یکدیگر با استفاده از ارتباطات درون پردازش (IPC) به دست بیاورد.
هسته لینوکس چیست و چه کاری انجام می دهد؟

انواع مختلف هسته


البته، روش های مختلفی برای ساخت یک مفهوم هسته و معماری وجود دارد که هنگام ساختن آن از ابتدا وجود دارد. به طور کلی، بیشتر هسته ها به یکی از سه نوع می رسد: یکپارچه، میکرو هسته، و ترکیبی. لینوکس یک هسته یکپارچه است در حالی که OS X (XNU) و ویندوز 7 از هسته های ترکیبی استفاده می کنند. بیایید یک تور سریع از سه دسته بگیریم تا بتوانیم بعدا جزئیات بیشتری را بدست آوریم.
هسته لینوکس چیست و چه کاری انجام می دهد؟

میکرو هسته

یک میکرو هسته تنها روشی را برای مدیریت آن دارد: پردازنده، حافظه، و IPC. تقریبا هر چیز دیگری در یک کامپیوتر می تواند به عنوان یک افزونه دیده شود و می تواند در حالت کاربر مورد استفاده قرار گیرد. میکرو هسته ها مزیت حمل و نقل را دارند، زیرا لازم نیست نگران نباشید که کارت ویدئوی خود یا حتی سیستم عامل خود را تغییر دهید تا زمانی که سیستم عامل همچنان سعی در دسترسی به سخت افزار به همان شیوه داشته باشد. میکرو هسته همچنین دارای ردپای بسیار کمی برای حافظه و فضای نصب است و آنها تمایل بیشتری به امنیت دارند، زیرا تنها فرآیندهای خاص در حالت کاربر اجرا می شوند که دارای مجوزهای بالا به عنوان حالت سرپرست نیستند.

مزایا


قابل حمل بودن
رد پای نصب کوچک
رکورد حافظه کوچک
امنیت


مضرات

    سخت افزار بیشتر از طریق رانندگان خلاصه شده است
سخت افزار ممکن است واکنش کند کندتر، زیرا رانندگان در حالت کاربر هستند
پردازش ها باید در صف برای دریافت اطلاعات صبر کنند
فرآیندها بدون انتظار می توانند به فرایندهای دیگر دسترسی پیدا کنند

هسته یکپارچه

هسته های یکپارچه مخالف هسته های هسته ای هستند، زیرا نه تنها پردازنده، حافظه و IPC را شامل می شوند بلکه شامل مواردی مانند راننده های دستگاه، مدیریت فایل سیستم و تماس های سرور سیستم می شود. هسته های یکپارچه در دسترسی به سخت افزار و چند وظیفه ای بهترند، زیرا اگر برنامه نیاز به دریافت اطلاعات از حافظه داشته باشد یا فرایند دیگری داشته باشد، خط مستقیم برای دسترسی به آن وجود دارد و مجبور نیست که در صف برای انجام کارها صبر کند. با این وجود این می تواند مشکلات را ایجاد کند، زیرا چیزهای بیشتری که در حالت سرپرست اجرا می شود، چیزهای بیشتری است که می تواند سیستم شما را کاهش دهد، اگر کسی به درستی رفتار نکند.
هسته لینوکس چیست و چه کاری انجام می دهد؟

مزایا


دسترسی مستقیم به سخت افزار برای برنامه ها
ساده تر برای فرآیندهای برقراری ارتباط بین یکدیگر
اگر دستگاه شما پشتیبانی می شود، باید بدون نصب و راه اندازی اضافی کار کند
فرآیند سریعتر واکنش نشان می دهند، زیرا صف برای زمان پردازنده وجود ندارد

مضرات

    رد پای نصب بزرگ
رد حافظه بزرگ
کمتر امن، زیرا همه چیز در حالت سرپرست اجرا می شود

هسته ترکیبی

هسته های ترکیبی توانایی انتخاب و انتخاب آنچه که می خواهند در حالت کاربر اجرا شوند و آنچه که آنها می خواهند در حالت سرپرست اجرا شوند. اغلب موارد مانند رانندگان دستگاه و سیستم فایل / I / O در حالت کاربر اجرا می شوند در حالی که IPC و تماس های سرور در حالت سرپرست نگهداری می شوند. این بهتر از هر دو جهان است، اما اغلب نیاز به کار بیشتر از تولید کننده سخت افزار، زیرا همه مسئولیت راننده تا آنهاست. این نیز می تواند برخی از مشکلات تاخیر است که ذاتی با میکرو هسته ای داشته باشد.

هسته لینوکس چیست و چه کاری انجام می دهد؟

هسته لینوکس چیست و چه کاری انجام می دهد؟

مزایا

توسعهدهنده می تواند انتخاب و انتخاب کند چه چیزی در حالت کاربر اجرا می شود و چه چیزی در حالت سرپرست اجرا می شود
رد پای نصب کمتر از هسته یکپارچه
انعطاف پذیر تر از سایر مدل ها

مضرات

می تواند از همان روند فرار به عنوان میکرو هسته ای رنج می برد
درایور دستگاه باید توسط کاربر (به طور معمول) مدیریت شود

فایل های کرنل لینوکس کجا هستند؟

فایل هسته در اوبونتو در پوشه / boot شما ذخیره می شود و به نام vmlinuz-version نامیده می شود. نام vmlinuz از دنیای یونیکس می آید که در آن، آنها در دهه 60 به نام “unix” نام گرفتند، بنابراین لینوکس شروع به خواندن کرنل “لینوکس” کرد وقتی اولین بار در دهه 90 توسعه پیدا کرد.

هنگامی که حافظه مجازی برای توانایی های چند وظیفه ای ساده تر طراحی شد، “vm” در مقابل فایل قرار گرفت تا نشان دهد که هسته از حافظه مجازی پشتیبانی می کند. در حالی که هسته لینوکس به نام vmlinux نامگذاری شده بود، اما هسته بزرگ شده بود تا در حافظه بوت در دسترس قرار بگیرد، بنابراین تصویر هسته فشرده شد و پایان x به z تغییر کرد تا نشان دهد که با فشرده سازی zlib فشرده شده است. این همان فشرده سازی همیشه استفاده نمی شود، اغلب با LZMA یا BZIP2 جایگزین می شود و برخی از هسته ها به سادگی zImage نامیده می شوند.

شماره نسخه در قالب A.B.C.D قرار دارد که A.B احتمالا 2.6 باشد، نسخه C شما خواهد بود و D نشان دهنده تکه های شما یا اصلاحات است.

در پوشه boot نیز فایل های بسیار مهم دیگری مانند initrd.img-version، system.map-version و config-version وجود دارد. فایل initrd به عنوان یک دیسک رم کوچک مورد استفاده قرار می گیرد که پرونده کرنل واقعی را استخراج و اجرا می کند. فایل system.map برای مدیریت حافظه قبل از اینکه کرنل به طور کامل بارگیری شود، استفاده می شود و فایل پیکربندی به هسته می گوید چه گزینه ها و ماژول ها برای بارگذاری در تصویر هسته هنگام کامپایل شدن آن.
معماری هسته لینوکس

از آنجا که هسته لینوکس یکپارچه است، آن دارای بزرگترین ریزپردازنده و پیچیدگی بیشتر نسبت به انواع دیگر هسته است. این یک ویژگی طراحی بود که در روزهای ابتدایی لینوکس بسیار بحث برانگیز بود و هنوز هم برخی از معایب طراحی را در بر می گیرد که هسته های یکپارچه ذاتی هستند.

یک چیز که توسعه دهندگان لینوکس لینوکس برای کنار آمدن با این نقص ها انجام دادند این بود که ماژول های هسته ای را که می توانست در زمان اجرا بارگیری و بارگیری شود، به معنی اینکه شما می توانید ویژگی های هسته خود را بر روی پرواز اضافه یا حذف کنید. این می تواند فراتر از اضافه کردن قابلیت های سخت افزاری به هسته باشد، با افزودن ماژول هایی که فرآیندهای سرور را اجرا می کنند، مانند مجازی سازی سطح پایین، اما می تواند کل هسته را بدون نیاز به راه اندازی مجدد کامپیوتر شما در برخی موارد جایگزین کند.

تصور کنید اگر شما می توانید به یک سرویس پک ویندوز بدون نیاز به راه اندازی مجدد …

هسته لینوکس چیست و چه کاری انجام می دهد؟

هسته لینوکس چیست و چه کاری انجام می دهد؟

ماژول هسته


اگر ویندوز هر راننده را در دسترس داشته باشید، در ویندوز قبلی چه چیزی نصب شده است و شما فقط باید رانندگان مورد نیاز خود را روشن کنید؟ این اساسا همان چیزی است که ماژول های هسته برای لینوکس انجام می دهند. ماژول های هسته، همچنین به عنوان یک ماژول کرنل قابل بارگذاری (LKM) شناخته می شوند، برای حفظ عملکرد هسته با تمام سخت افزارهای شما ضروری است بدون اینکه تمام حافظه موجود خود را مصرف کنند.

یک ماژول به طور معمول عملکردهایی را برای هسته پایه برای چیزهایی مانند دستگاه ها، سیستم های فایل و تماس های سیستم می افزاید. LKM ها فایل extension .ko را دارند و معمولا در دایرکتوری / lib / modules ذخیره می شوند. به دلیل ماهیت مدولار آنها شما می توانید با تنظیم ماژول ها برای بارگذاری یا بارگذاری در هنگام راه اندازی با دستور menuconfig یا ویرایش فایل / boot / config به راحتی می توانید هسته خود را سفارشی کنید، یا می توانید بارگیری و بارگیری ماژول ها را با استفاده از modprobe فرمان

ماژول های شخص ثالث و بسته در بعضی توزیع ها مانند اوبونتو موجود هستند و ممکن است به صورت پیش فرض نصب نشوند زیرا کد منبع برای ماژول ها در دسترس نیست. توسعه دهنده نرم افزار (به عنوان مثال nVidia، ATI، در میان دیگران) کد منبع را ارائه نمی دهند بلکه ماژول های خود را ایجاد می کنند و فایل های .ko را برای توزیع کامپایل می کنند. در حالی که این ماژول ها به صورت رایگان در آبجکت آزاد هستند، آنها از طریق گفتار آزاد نیستند و به همین دلیل توسط بعضی از توزیع ها گنجانده نمی شوند، زیرا نگهبانان آن را با استفاده از نرم افزار غیر رایگان آزاد می کنند.

یک هسته سحر و جادو نیست، اما برای هر رایانه ای که به درستی اجرا می شود، کاملا ضروری است. هسته لینوکس از OS X و ویندوز متفاوت است، زیرا شامل راننده در سطح هسته است و چیزهای زیادی را پشتیبانی می کند “خارج از جعبه”. امیدوارم کمی بیشتر بدانید که چگونه نرم افزار و سخت افزار شما با یکدیگر کار می کنند و چه فایلی که لازم است بوت کنید.

این مقاله بصورت اختصاصی توسط قائم هاست ترجمه و منتشر شده و هرگونه کپی برداری حتی با ذکر منبع خلاف قوانین بوده و مورد پیگرد قانونی قرار خواهد گرفت.

این صفحه چطور بود؟ post