هسته لینوکس
پیشینه

در آوریل ۱۹۹۱، لینوس توروالدز، در آن زمان دانشجوی ۲۱ ساله علوم کامپیوتر در دانشگاه هلسینکی فنلاند، شروع به کار بر روی برخی از ایده‌های ساده برای یک سیستم عامل کرد. وی با ساخت یک task switcher (رفتن از یک برنامه به برنامه دیگر بدون خروج از برنامهٔ نخست) در زبان اسمبلی اینتل ۸۰۳۸۶ و یک راه انداز ترمینال شروع کرد. در ۲۵ اوت ۱۹۹۱، توروالدز موارد زیر را به یک گروه خبری در Usenet با نام “comp.os.minix”،   ارسال کرد:
من در حال انجام ساخت یک سیستم عامل رایگان (فقط برای سرگرمی و از روی علاقه، و بزرگ و حرفه‌ای مانند گنو نخواهد شد) برای هم نوع‌های 386(486)AT هستم. این از آوریل در حال ساخته شدن هست، و در حال آماده شدن می‌باشد. من هر بازخوردی در Minix بر روی چیزهایی که مردم می‌پسندند یا نمی‌پسندند را می‌خواهم، با این وجود سیستم عامل من هم تا حدی به این شباهت دارد (بعضی از آرایش‌های فیزیکی فایل‌های سیستم در میان اشیا دیگر) من در حال حاضر (bash (1.08 و (۱٫۴۰) gcc را انتقال داده‌ام، و هم‌چنین بخش‌هایی که بنظر می‌رسند که کار کنند. این نشان می‌دهد که در این چندین ماه، به کجا رسیده‌ام. بله، هیچ کد مینیکسی در آن نیست و یک سامانه پروندهٔ چند رشته‌ای دارد. قابل انتقال نیست (از task switching 386 استفاده می‌کند)، و به درستی از سوی دیسک‌های سخت AT پشتیبانی می‌شود، این تمام چیزیست که من دارم.
در ۱۷ سپتامبر ۱۹۹۱ لینوس توروالدز نسخه ۰٫۰۱ هسته لینوکس را آماده کرد و "ftp.funet.fi" - سرور FTP دانشگاه و شبکه تحقیقاتی فنلاند (FUNET) قرار داد. حتی از آنجایی که کد آن هنوز به Minix برای تدوین و بازی نیاز داشت حتی قابل اجرا نبود.

در ۵ اکتبر ۱۹۹۱، لینوس اولین نسخه «رسمی» لینوکس را منتشر کرد، نسخه ۰٫۰۲. در این مرحله، لینوکس توانست Bash , GCC و برخی دیگر از ابزارهای GNU را اجرا کند:
[همان‌طور که] یک ماه پیش اشاره کردم، من در حال کار روی نسخه رایگان Minix-lookalike برای رایانه‌های AT-386 هستیم. سرانجام به مرحله ای رسیده‌است که حتی قابل استفاده است (هرچند ممکن است به آنچه می‌خواهید بستگی نداشته باشد) باشد، و من مایلم این منابع را برای توزیع گسترده‌تر ارائه دهم. این فقط نسخه ۰٫۰۲ است … اما من با موفقیت bash, gcc, gnu make, gnu-sed، فشرده سازی و غیره را در زیر آن اجرا کردم.
پس از آن، بسیاری از مردم کد را به این پروژه کمک کردند. در اوایل، جامعه MINIX کد و ایده‌های خود را به هسته لینوکس کمک کرد. در آن زمان، پروژه گنو بسیاری از مؤلفه‌های مورد نیاز برای یک سیستم عامل رایگان را ایجاد کرده بود، اما هسته آن، GNU Hurd، ناقص و در دسترس نبود. توزیع نرم‌افزار برکلی هنوز خودش را از شر قانونی رهایی نداده‌است. با وجود عملکرد محدود نسخه‌های اولیه، لینوکس به سرعت توسعه دهندگان و کاربران را به دست آورد.
توروالدز نسخه ۰ را به هسته اختصاص داد تا نشان دهد که این عمدتاً برای آزمایش بوده و برای کاربردی در نظر گرفته نشده‌است. در دسامبر ۱۹۹۱، هسته هسته لینوکس ۰٫۱۱ منتشر شد. این نسخه اولین نسخهٔ خود میزبان (self-hosted) لینوکس ۰٫۱۱ می‌توانست توسط یک کامپیوتر در حال اجرای لینوکس ۰٫۱۱ کامپایل شود.
هنگامی که توروالدز در فوریه ۱۹۹۲ نسخه ۰٫۱۲ را منتشر کرد، وی مجوز عمومی GNU نسخه 2 (GPLv2) را نسبت به پروانه ساخت قبلی خود که مجوز مجدد توزیع تجاری را نداد، پذیرفت. برخلاف یونیکس، تمام فایلهای منبع هسته لینوکس به‌طور رایگان در دسترس هستند از جمله درایور دستگاه. موفقیت اولیه هسته لینوکس با حمایت برنامه نویسان و آزمایش کنندگان در سراسر جهان انجام شد. با ساختن هسته هسته لینوکس مطابق با استانداردهای POSIX، با طیف وسیعی از نرم‌افزارها و برنامه‌های رایگان که برای دانشگاه‌ها تهیه شده بود سازگار بود.
در ۱۹ ژانویه ۱۹۹۲، اولین پست به گروه جدید اخبار alt.os.linux ارسال شد. در تاریخ ۳۱ مارس ۱۹۹۲، گروه خبری به comp.os.linux تغییر نام داد. این واقعیت که لینوکس یک هسته یکپارچه است و نه یک ریزگرد، موضوع بحث و گفتگو بین اندرو S. Tanenbaum، خالق MINIX و توروالدز بود. این بحث به عنوان بحث Tanenbaum-Torvalds شناخته می‌شود و در سال ۱۹۹۲ در گروه بحث Usenet comp.os.minix به عنوان یک بحث کلی در مورد لینوکس و معماری هسته آغاز شد.
نسخه لینوکس ۰٫۹۵ اولین نسخه ای بود که توانست سیستم X Window را اجرا کند. در مارس ۱۹۹۴، لینوکس ۱٫۰٫۰ با ۱۷۶٬۲۵۰ خط کد منتشر شد. این اولین نسخه مناسب برای استفاده در محیط‌های تولید بود.
این یک سیستم نسخه سازی برای هسته را با سه یا چهار عدد از هم جدا با نقاط شروع کرد که در آن اولین نسخه اصلی انتشار، دومین نسخه جزئی و سوم نسخه تجدید نظر بود. در آن زمان نسخه‌های عجیب و غریب با شماره‌های عجیب و غریب برای توسعه و آزمایش‌ها بودند، در حالی که حتی نسخه‌های جزئی حتی برای تولید نیز وجود داشت. رقم چهارم اختیاری مجموعه ای از تکه‌های اصلاح را نشان می‌داد.
شماره گذاری نسخه فعلی کمی متفاوت از موارد فوق است. اول از همه، حتی در مقابل شماره گذاری عجیب و غریب کاهش یافته‌است. دوم، دو شماره اول، به عنوان یک کل، یک نسخه اصلی خاص را نشان می‌دهد. در حالی که بازه زمانی برای توسعه اصلی بعدی باز است، از پسوند -rcN برای شناسایی نامزد انتشار نسخه n برای نسخه بعدی استفاده می‌شود. به عنوان مثال، نسخه نسخه ۴٫۱۶ قبل از هفت 4.16-rcN (از -rc1 تا -rc7) بود. پس از انتشار نسخه پایدار، نگهداری آن به «تیم پایدار» منتقل می‌شود. .
پس از نسخه ۱٫۳ هسته، توروالدز تصمیم گرفت که لینوکس به اندازه کافی تکامل یافته‌است تا تعداد اصلی جدید را تضمین کند، بنابراین نسخه ۲٫۰٫۰ را در ژوئن ۱۹۹۶ منتشر کرد.
جامعه توسعه دهندگان مشارکت کننده در لینوکس این مهم را تصور کرده‌اند که هسته ای که توروالدز برای رایانه‌های شخصی Intel نوشته بود از معماری مجموعه‌های مختلف دستورالعمل (ISA) پشتیبانی می‌کند. با شروع نسخه ۲٫۰، لینوکس شامل کلیه مؤلفه‌ها برای پیکربندی هسته قبل از تهیه آن برای اهداف سخت‌افزاری خاص است.
پشتیبانی از سیستم‌های مختلف پرونده نیز در اولویت قرار داشته‌است. هسته می‌تواند چندین سیستم پرونده ای را کار کند، برخی از آنها برای لینوکس و برخی دیگر بومی سایر سیستم عامل‌ها مانند Minix , Xenix , Irix , Solaris , System V، Windows و MS-DOS طراحی شده‌اند.
در دسامبر ۲۰۰۳، با انتشار هسته نسخه ۲٫۶٫۰، توروالدز هسته‌های لینوکس را چنان پایدار دانست که او چرخه انتشار 2.6.x.y را آغاز کرد. هر نسخه ۲٫۶ هسته ای برای تولید بود، نسخه‌های توسعه با -rc ("نامزد انتشار") به شماره نسخه پیوست شده‌اند. نسخه‌های هسته ای ۲٫۶ پایدار شروع به نمایش در برنامه منظم هر ۲–۳ ماه، از طریق ۲٫۶٫۳۹ در ماه مه ۲۰۱۱. چرخه انتشار کوتاه‌تر نتیجه بحث در بین توسعه دهندگان هسته در مورد انتشار و نسخه طرح در سال ۲۰۰۴ بود.
در ماه دسامبر ۲۰۰۵، آدریان بانک در پاسخ به عدم وجود درخت هسته پایدار که در آن مردم می‌توانند مجموعه‌های رفع اشکال را هماهنگ کنند، اعلام کرد که وقتی تیم پایدار به ۲٫۶٫۱۷ حرکت می‌کند، هسته‌های 2.6.16.y خود را آزاد می‌کند. . از آن زمان، «تیم پایدار» تشکیل شده بود و نسخه‌های هسته پایدار را با رفع اشکال به روز می‌کند. در فوریه سال ۲۰۰۸ استفان روتول درخت زیر بنایی را ایجاد کرد تا مکانی باشد که تکه‌هایی با هدف ادغام در چرخه توسعه بعدی جمع شوند. چندین نگهدارنده زیر سیستم همچنین پسوند -next برای درختانی را که حاوی کد هستند تصویب کردند که قرار است برای ورود به چرخه انتشار بعدی ارسال شود. از ژانویه ۲۰۱۴، نسخه در حال توسعه هسته لینوکس در شعبه ناپایدار به نام linux-next برگزار می‌شود.
کد منبع هسته لینوکس قبلاً بدون کمک سیستم مدیریت کد منبع خودکار نگهداری می‌شد. در سال ۲۰۰۲، توسعه هسته لینوکس به BitKeeper تغییر یافت. این نرم‌افزار به صورت رایگان در دسترس توروالدز و چند نفر دیگر قرار گرفت اما نرم‌افزار رایگان نبود. در آوریل ۲۰۰۵، تلاش برای مهندسی معکوس سیستم BitKeeper توسط اندرو Tridgell باعث شد BitMover، شرکتی که BitKeeper را حفظ کرده‌است، متوقف کند تا حمایت از جامعه توسعه لینوکس را متوقف کند. در پاسخ، Torvalds و دیگران یک سیستم کنترل کد منبع جدید را برای این هدف نوشتند، به نام Git. سیستم جدید طی چند هفته نوشته شد و طی دو ماه اولین نسخه رسمی هسته با استفاده از Git ساخته شد.
بیستمین سالگرد هسته لینوکس در ژوئیه ۲۰۱۱ با انتشار نسخه هسته ۳٫۰٫۰ توسط توروالدز برگزار شد. بنیاد لینوکس در نسخه ۲۰۱۱ مطالعه توسعه هسته خود، بیستمین سالگرد هسته را جشن گرفت. کرنل ۳٫۰ دارای ۱۵ میلیون خط کد بود و بیش از ۱۳۰۰ توسعه دهنده مجزا در این نسخه از هسته لینوکس مشارکت داشتند. توسعه دهندگان داوطلب در سال ۲۰۱۱ ۱۶ درصد از کل تغییرات هسته را به خود اختصاص داده‌اند. سایر تغییرات مربوط به توسعه دهندگان نرم‌افزار حرفه ای بود که توسط یک شرکت برای ارسال کد به هسته پرداخت می‌شدند. در سال ۲۰۱۱، توسعه دهندگان رد هت ۱۰ درصد از تغییرات ایجاد شده در هسته را کمک کردند، دومین شرکت بزرگ اینتل Intel و پس از IBM و Novell. در حالی که نوکیا تا آن زمان سیستم عامل هوشمند MeeGo مبتنی بر هسته لینوکس خود را رها کرده بود، در سال ۲۰۱۱ توسعه دهندگان نوکیا هنوز کدهای بیشتری را در مقایسه با توسعه دهندگان شاغل در گوگل، که اندروید در سال ۲۰۰۷ و سیستم عامل Chrome در سال ۲۰۰۹ منتشر کرده بودند، به کد بیشتر کمک می‌کردند. به عنوان هفدهمین شرکت کننده پرکارترین شرکت در هسته رتبه‌بندی شد. توسعه دهندگان آن برای اولین بار در سال ۲۰۰۹ برای بهبود عملکرد دستگاه‌های مجازی لینوکس که در راس Hyper-V ویندوز Hyper-V قرار داشتند، به همکاری با هسته پرداختند.
هسته‌های پایدار 3.x.y تا فوریه ۲۰۱۵ با انتشار نسخه‌های توسعه از مارس 3.r.y تا ۳٫۱۹ در بازار آزاد شدند. برای حساب کردن نسخه ویژه وصله گاه به گاه، سری نسخه ۳ هسته یک رقم چهارم را به شماره گذاری نسخه اضافه می‌کند. در آوریل ۲۰۱۵، توروالدز نسخه هسته ۴٫۰ را منتشر کرد. تا فوریه ۲۰۱۵، هسته لینوکس از نزدیک به ۱۲۰۰۰ برنامه‌نویس از بیش از ۱۲۰۰ شرکت، از جمله برخی از بزرگترین فروشندگان نرم‌افزار و سخت‌افزار در جهان، کمک دریافت کرده بود. نسخه ۴٫۱ هسته لینوکس، که در ژوئن سال ۲۰۱۵ منتشر شد، حاوی بیش از ۱۹٫۵ میلیون خط کد است که تقریباً ۱۴٬۰۰۰ برنامه نویسان در آن مشارکت دارند.