هسته لینوکس

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو
لینوکس
NewTux.svg
Linux-x86-under-qemu.png
هسته لینوکس ۲٫۶٫۲۵٫۱۷ در حال بالاآمدن (بوت شدن)
نویسنده(های) اصلی لینوس توروالدز
انتشار ابتدایی ۱۹۹۱
انتشار پایدار ۳٫۱٫۶ / ۲۱ دسامبر ۲۰۱۱؛ ۱٬۰۷۲ روز پیش
انتشار پیش‌نمایش ۳٫۲ آرسی ۷ / ۲۴ دسامبر ۲۰۱۱؛ ۱٬۰۶۹ روز پیش
نوشته‌شده به سی و اسمبلی
سیستم‌عامل شبه-یونیکس
موجود به انگلیسی
گونه هسته
پروانه جی‌پی‌ال نسخه ۲
وب‌گاه www.kernel.org

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

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

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

پیشینه[ویرایش]

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

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

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

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

ویژگی‌ها[ویرایش]

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

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

تاریخ‌های مهم[ویرایش]

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

مدل به‌کاررفته در طراحی هسته[ویرایش]

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

  1. هسته یکپارچه (هسته یکپارچه)
  2. ریزهسته
  3. هسته ترکیبی (hybrid kernel)
  4. برون هسته (Exo-kernel)

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

مزایا[ویرایش]

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

حالات فرایندها در لینوکس[ویرایش]

  • اجرا (Running): در حال اجرا یا در وضعیت انتظار برای دریافت CPU
  • انتظار (Waiting): در حال انتظار برای یک وقفه یا رخداد که خود دوحالت دارد:
  1. وقفه پذیر (Interruptible): فرایندهای منتظر می‌توانند توسط signalها وقفه پذیرند.
  2. وقفه ناپذیر (Uninterruptible): در این حالت فرایند مستقیماً با سخت‌افزار درگیر است و وقفه نمی‌پذیرد.
  • توقف (Stopped): فرایند متوقف شده است. حالت دیباگ هم جزو این وضعیت است.
  • زامبی (Zombie): فرایند به هر دلیلی halt شده ولی هنوز اشاره گری در بردار فرایند دارد.
  • Swapping: در ارتباط با حافظه مجازی است.

هسته‌های بر پایه لینوکس[ویرایش]

لینوکس-لیبره[ویرایش]

نوشتار اصلی: لینوکس-لیبره

لینوکس-لیبره نام پروژه‌ای از بنیاد نرم‌افزار آزاد آمریکای لاتین است که به نگهداری و نشر هسته‌ای صددرصد آزاد بر پایهٔ هستهٔ لینوکس می‌پردازد. بدین منظور کلیهٔ نرم‌افزارهایی که بدون کد متن در لینوکس به کار رفته‌اند یا کد متنشان تا حدودی گیج‌کننده یا پنهان است، یا از پروانه‌های ناآزادی استفاده می‌کنند که اجازهٔ تغییر در نرم‌افزار را نمی‌دهد، یا به نوعی لازم می‌دارند که از نرم‌افزارهای ناآزاد دیگر استفاده شود، کنار گذاشته می‌شود

موسی‌لینوکس[ویرایش]

نوشتار اصلی: موسی‌لینوکس

این هسته مخصوص میکروکنترولرهایی طراحی شده که فاقد واحد مدیریت حافظه می‌باشند.

منابع[ویرایش]

  • مشارکت‌کنندگان ویکی‌پدیا، «‎Linux kernel‎»، ویکی‌پدیای انگلیسی، دانشنامهٔ آزاد (بازیابی در ۲۵ مارس، ۲۰۱۰).
  • Rusling, David. The Linux Kernel
  • Bovet, Daniel و Cesati, Macro. Understanding the Linux Kernel, ۳rd edition November 2005. O'Reilly publications

پیوند به بیرون[ویرایش]

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