هسته لینوکس

هستهٔ لینوکس یک هسته سیستم‌عامل آزاد شبیه یونیکس است که توسط لینوس توروالدز در سال ۱۹۹۱ ساخته شد و سپس با کمک توسعه‌دهندگان در سراسر جهان پیشرفت داده شد.

این نرم‌افزار در اصل بر روی پردازندهٔ اینتل مدل ۸۰۳۸۶ و تقریباً بطور کامل با استفاده از زبان برنامه‌نویسی سی نوشته شده‌است. این هستهٔ سیستم‌عامل تحت مجوز عمومی گنو بصورت نرم‌افزار آزاد توزیع می‌شود.

هستهٔ لینوکس بهترین هستهٔ شناخته شده برای هسته سیستم‌عامل گنو/لینوکس است. توزیع نرم‌افزار براساس این هسته «توزیع گنو/لینوکس» نامیده می‌شود.

== پیشینه ==

در سال ۱۹۹۱ توروالدز بوجود آمدن این هسته را با یک رایانامهٔ تاریخی و مشهور بر روی یوزنِت در گروه خبری comp.os.minix اعلام کرد :

> «من یک سیستم‌عامل آزاد و فقط یک سرگرمی که مثل گنو بزرگ و حرفه‌ای نخواهد شد، برای اجرا روی پردازشگرهای اینتل ۸۰۳۸۶ و ۸۰۴۸۶ نوشته‌ام…»

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

در سال ۱۹۹۱، سیستم‌عامل بی‌.اس.دی هنوز نتوانسته بود خود را از قید و بندهای عرفی رها کند با این وجود، شرکت یک فضا برای هستهٔ لینوکس باز کرد و با وجود عاملیت محدود، نسخه‌های اولیه آن به سرعت توسعه‌دهندگان و کاربرهای خود را جمع کرد. به زودی هکرها در بهینه‌سازی دستورالعمل‌ها و ایده‌های هسته لینوکس شرکت کردند و امروزه تعداد افرادی که در این موارد همکاری می‌کنند به صدها برنامه‌نویس رسیده است.

== ویژگی‌ها ==

«لینوکس» فقط نام هستهٔ سیستم‌عامل گنو/لینوکس است. واژهٔ «هسته»، به سامانهٔ نرم‌افزاری سطح پایینی (به معنی نزدیک‌تر به سخت‌افزار در رده‌بندی معماری سیستم‌عامل) اشاره می‌کند که لایه‌ای در معماری سیستم‌عامل به نام لایه انتزاع سخت‌افزار را تأمین می‌کند و دیسک‌ها و سامانهٔ پرونده‌گردانی را بررسی می‌نماید و تراز کردن (Balancing) ذخیره‌سازی داده‌ها و شبکه‌بندی و برقراری امنیت را برعهده دارد.

باید توجه کرد که هسته یک سامانهٔ کامل نیست، ساخت یک سامانهٔ کامل براساس هستهٔ لینوکس به نام سیستم‌عامل لینوکس شهرت یافت (اگرچه بعضی‌ها ترجیح می‌دهند آن را سیستم‌عامل گنو/لینوکس بنامند و بر سر این نکته مجادله بسیاری وجود دارد. مردم عموماً هسته و سیستم‌عامل را با هم اشتباه می‌گیرند و این مساله که سیستم‌عامل به عنوان «گنو/لینوکس» نامیده شود، تصورات اشتباه را به سمت صحیح هدایت می‌کند.)

== تاریخ‌های مهم ==

* ۲۱ آوریل ۱۹۹۱: در این زمان «لینوس تروالدز» فعالیت خود را بر روی تعدادی ایده برای یک سیستم‌عامل جدید آغاز کرد. او کار خود را با زبان برنامه‌نویسی اسمبلی روی یک رایانه مبتنی بر پردازندهٔ اینتل ۸۰۳۸۶ آغاز کرد. اولین تلاش او در این راستا طراحی و پیاده‌سازی یک درایور بود.

== مدل به‌کاررفته در طراحی هسته ==

هسته‌های متنوعی برای سیستم‌های عامل وجود دارد که از این بین میتوان به مهمترین آنها اشاره کرد:

# هسته یکپارچه (monolithic kernel)
# ریزهسته
# هسته ترکیبی (hybrid kernel)
# برون هسته (Exo-kernel)

مدل هسته لینوکس یکپارچه است. لینوکس طراحی ساخت یافته(modular) دارد و چون ملحقات هسته در فضای کرنل اجرا می‌شوند، از سرعت بالایی برخوردار می‌باشد.

== مزایا ==

* با اینکه هسته لینوکس یکپارچه است ولی قابلیت بار کردن (Load) کردن پویای (Dynamic) پیمانه‌های هسته (kernel modules) را دارد.
* هسته لینوکس از چند پردازندگی موازی (Symmetric Multi Processing) حمایت میکند.
* هسته لینوکس غیر انحصاری است. (Preemptive)
* از نخ‌های هسته (Kernel Threads) برای ایجاد ساختار ریز هسته هر چه کوچکتر استفاده میکند.

== حالات فرآیندها در لینوکس ==

* اجرا (Running): در حال اجرا یا در وضعیت انتظار برای دریافت CPU
* انتظار (Waiting): در حال انتظار برای یک وقفه یا رخداد که خود دوحالت دارد:

# وقفه پذیر (Interruptible): فرآیندهای منتظر میتوانند توسط signal‌ها وقفه پذیرند.
# وقفه ناپذیر (Uninterruptible): در این حالت فرآیند مستقیما با سخت‌افزار درگیر است و وقفه نمیپذیرد.

* توقف (Stopped): فرآیند متوقف شده است. حالت دیباگ هم جزو این وضعیت است.
* زامبی (Zombie): فرآیند به هر دلیلی halt شده ولی هنوز اشاره گری در بردار فرآیند دارد.
* Swapping: در ارتباط با حافظه مجازی است.

== منابع ==

* Rusling, David. The Linux Kernel
* Bovet, Daniel و Cesati, Macro. Understanding the Linux Kernel, 3rd edition November 2005. O’Reilly publications

== پیوند به بیرون ==

* kernel.org – آرشیو رسمی هسته‌های لینوکس

درج دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *