هر نسخه هسته لینوکس دارای شماره نسخه متفاوتی است. آیا تا به حال به این فکر کرده اید که شماره نسخه هسته لینوکس چگونه تشکیل می شود؟
اگر مدت زیادی است که کاربر لینوکس بوده اید، می دانید که توزیع های لینوکس دارای نسخه های منحصر به فرد هستند و هر نسخه دارای یک نام رمز خاص است. هسته لینوکس همچنین دارای شماره نسخه های مختلفی است که به عنوان یک شناسه برای سری هایی که هسته به آن تعلق دارد عمل می کند. با این حال، تفاوتی بین نحوه شکلگیری نسخههای هسته پیشتر و نحوه نامگذاری آنها توسط لینوس توروالدز وجود دارد.
در پایان، با طرح نسخهسازی هسته لینوکس بیشتر آشنا خواهید شد و با خواندن شمارههای نسخه هسته و شناسایی ویژگیهای مختلف مرتبط با یک نسخه خاص، احساس راحتی بیشتری خواهید داشت.
نسخه سنتی کرنل لینوکس
هنگامی که لینوس برای اولین بار شروع به توسعه هسته کرد، سیستم نسخه سازی مورد استفاده به سادگی شامل یک طرح متغیر افزایشی بود که با صفر (0.x) شروع می شد. در ابتدا، لینوس تنها کسی بود که روی این پروژه کار می کرد، و این سیستم نسخه سازی نیاز به مستندسازی و توزیع نسخه های جدید هسته را کافی می کرد.
در اینجا برخی از نسخههای هستهای که از این طرح نامگذاری پیروی میکنند آمده است:
بعداً، از آنجایی که توسعهدهندگان بیشتری شروع به مشارکت در پروژه کردند و تعداد ویرایشها و وصلهها به طور قابل توجهی افزایش یافت، تصمیم گرفته شد که این طرح نسخهسازی برای نرمافزارهایی مانند هسته مناسب نباشد. و با شروع از نسخه 1.0، لینوس یک طرح جدید با چند متغیر اضافی اتخاذ کرد.
معرفی یک سیستم نسخه بندی توصیفی تر
در سال 1994، با انتشار هسته لینوکس 1.00، لینوس شروع به استفاده از یک سیستم نسخه سازی جدید کرد که از سه متغیر در نحو استفاده می کرد: “a.b.c”. این متغیرها (a، b و c) به ترتیب نشان دهنده نسخه اصلی، نسخه کوچک و شماره تجدید نظر برای انتشار هسته خاص هستند.
به عنوان مثال هسته لینوکس 1.1.95 را در نظر بگیرید. می توانید آن را به عنوان اولین نسخه اصلی، اولین نسخه فرعی و نسخه 95 رمزگشایی کنید.
در آن زمان، حتی اعداد نسخه های جزئی نشان دهنده انتشار هسته پایدار بود، در حالی که اعداد فرد نشان دهنده نسخه های توسعه بود. داشتن شاخههای جداگانه مهم بود تا توسعهدهندگان بتوانند ویژگیهای جدید را در هسته بدون تأثیر بر شاخه پایدار اضافه و آزمایش کنند.
توسعه دهندگان کرنل ویژگی های جدیدی را در شاخه توسعه اضافه و بهبود می بخشند تا زمانی که به اندازه کافی پایدار شود که به عنوان هسته LTS منتشر شود. هسته LTS 3.2 با تثبیت ویژگی های جدید در نسخه 3.1 توسعه داده شد و به طور مشابه، هسته توسعه جدید 3.3 از 3.2 منشعب شد تا راه را برای ویژگی های جدیدی که سپس در لینوکس 3.4 معرفی می شوند، باز کند.
با شروع از کرنل لینوکس 2.4، متغیر چهارم در نام کرنل نشان دهنده انتشار وصله است. می توان گفت که نسخه 2.4.37.10 دهمین پچ منتشر شده برای کرنل 2.4.37 است.
انتشار وصله به معنای تعداد مسائل وصله شده در نسخه هسته نیست. درعوض، تعداد دفعاتی را که یک هسته بهروزرسانی شده پس از اصلاح مشکلات یافت شده منتشر شده است، میشمارد.
تا لینوکس 2.6 از این سیستم نسخهسازی استفاده میشد و در تشخیص یک نسخه خاص از سایر نسخهها مؤثر بود. افزودن تعداد ویرایشها و انتشارات پچ در شماره نسخه توصیفی بود، اما به معنای داشتن نسخههای هسته طولانیتر و پیچیدهتر بود. و باز هم، یک طرح جدید و بهتر مورد نیاز بود.
اکنون نسخههای هسته لینوکس چگونه نامگذاری میشوند؟
با نسخه 3.0 لینوکس، لینوس چهارمین متغیر را از شماره نسخه حذف کرد. حال، نسخه هسته با توجه به نحو شکل می گیرد: a.b.c، که در آن a، b، و c به ترتیب نسخه اصلی، نسخه کوچک و تعداد بازبینی هستند. این طرح نسخهسازی شبیه به طرحی است که بین نسخههای هسته 1.0 و 2.4 استفاده میشود.
با توجه به پیشرفتها در سیستمهای کنترل نسخه، مشارکتکنندگان اکنون میتوانند بهطور یکپارچه بر روی شاخههای پایدار کار کنند و ویژگیهای جدیدی را بدون از بین بردن تصادفی نسخههای از قبل فعال و پایدار اضافه کنند. بنابراین استفاده از شمارههای مینور زوج و فرد برای شاخههای پایدار و تولیدی هسته پس از معرفی کرنل نسخه 4.0 غیرضروری شد و اولین نسخه LTS (4.1) در سری 4.x دارای شماره نسخه مینور فرد بود.
همچنین ممکن است برخی از کاراکترها را در انتهای شماره نسخه مشاهده کنید، مانند rcX. نامزدهای بازبینی (یا به اختصار «rc») نسخههای پیشنمایش و نسخههای پیشپچ هسته هستند که توسعهدهندگان برای حذف باگها و سایر مشکلات باید وصله کنند. اینها جایگزینی برای نسخههای توسعهدهندهای هستند که قبلاً با یک شماره نسخه جزئی فرد مشخص میشدند.
اگرچه این نسخهها به طور خاص برای توسعهدهندگان هسته رزرو شدهاند تا بتوانند مشکلات گزارششده را برطرف کنند و ویژگیهای جدید را پیادهسازی کنند، در صورت تمایل میتوانید این نامزدهای بررسی هسته را نیز دانلود و آزمایش کنید، اما به طور کلی توصیه نمیشود با توجه به اینکه بیشتر توسعهها در اینجا اتفاق میافتد. آخرین نسخه پیش نمایش هسته در زمان نوشتن این مقاله 5.19-rc6 است.
برای ایجاد نسخه های جدید، زمانی که مقدار یک متغیر به عدد خاصی برسد، متغیر قبلی افزایش می یابد. به عنوان مثال، هر زمان که تعداد نسخه های کوچک به 20 برسد، نسخه اصلی به رقم بعدی به روز می شود.
لینوس در ایمیل توسعه هسته 5.0 خود اشاره کرد که او به سادگی عدد اصلی را به 5 به روز کرد زیرا تعداد انتشار جزئی برای شمارش روی انگشتان دست و پا خیلی بزرگ بود (20!). به طور مشابه، طبق kernel.org، شماره نسخه اصلی زمانی افزایش می یابد که عدد بعد از اولین نقطه شروع به “بسیار بزرگ” کند. نسخه نهایی کرنل در سری 3.x 3.19 و آخرین سری اصلی هسته 4.x 4.20 بود که سپس به 5.0 افزایش یافت.
از نسخه 3.0، هسته لینوکس از این طرح نسخهسازی پیروی میکند و ثابت کرده است که تا سه نسخه اصلی هسته (نسخههای 3.x، 4.x و 5.x) کارآمد است.
شناسایی یک انتشار هسته لینوکس با استفاده از شماره نسخه
با توجه به تعداد بسیار زیاد نسخههای هسته لینوکس منتشر شده، نیاز به یک سیستم مناسب برای شناسایی و تمایز یک نسخه خاص از سایرین وجود دارد. با طرح جدید نسخهسازی هسته، اکنون میتوان نسخههای هسته را به طور موثر شناسایی و مقایسه کرد، و به راحتی میتوان فهمید که کدام نسخه هسته جدیدترین است و کدام یک زودتر منتشر شده است.
اگر می خواهید نسخه هسته لینوکس را که در حال حاضر روی سیستم شما نصب شده است بررسی کنید، می توانید این کار را با استفاده از uname انجام دهید، یک دستور لینوکس که به شما امکان می دهد اطلاعات مربوط به سیستم را فهرست کنید. بسته به توزیعی که اجرا می کنید، شماره نسخه نمایش داده شده توسط uname ممکن است با نسخه های واقعی هسته لینوکس متفاوت باشد.