Linux কার্নেল স্টেবল রিলিজ মডেল ২০০৫ সালে শুরু হয়, যখন এটি নির্ধারণ করা হয় যে বর্তমান কার্নেল ডেভেলপমেন্ট মডেল (প্রতি ২-৩ মাসে একটি নতুন রিলিজ) বেশিরভাগ ব্যবহারকারীর প্রয়োজন পূরণ করতে পারছে না। ব্যবহারকারীরা সেই ২-৩ মাসের মধ্যে বাগফিক্স করতে চেয়েছিলেন এবং কার্নেল কমিউনিটির থেকে মতামত না পাওয়ার ফলে Linux ডিস্ট্রিবিউশনগুলি কার্নেল আপডেট রাখতে অসুবিধা বোধ করেছিল। সাধারণত, স্বতন্ত্র কার্নেল সুরক্ষিত রাখা এবং লেটেস্ট বাগফিক্স সহ রাখার প্রচেষ্টা অনেকগুলি আলাদা আলাদা ব্যক্তির দ্বারা করা একটি বড় এবং বিভ্রান্তিকর প্রচেষ্টা ছিল।
সরাসরি Linus Torvalds-এর রিলিজের উপর ভিত্তি করে স্থিতিশীল কার্নেল রিলিজ করা হয় এবং বিভিন্ন এক্সটার্নাল ফ্যাক্টরের (বছরের সময়, উপলভ্য প্যাচ, রক্ষণাবেক্ষণকারীর কাজের চাপ ইত্যাদি) উপর নির্ভর করে প্রতি সপ্তাহে বা তার আশেপাশে রিলিজ করা হয়। স্থিতিশীল রিলিজের সংখ্যায় কার্নেল রিলিজের সংখ্যা দিয়ে শুরু হয় এবং এর শেষে একটি অতিরিক্ত সংখ্যা যোগ করা হয়। যেমন, ৪.৪ কার্নেল লিনাস প্রকাশ করেছেন এবং তারপরে এই কার্নেলের উপর ভিত্তি করে স্থিতিশীল কার্নেল রিলিজের নম্বর হল ৪.৪.১, ৪.৪.২, ৪.৪.৩ এবং আরও অনেক কিছু। সাধারণত, স্থিতিশীল কার্নেল রিলিজ ট্রি বোঝানোর জন্য এই ক্রমটি ৪.৪.y নম্বর দিয়ে ছোট করা হয়। প্রতিটি স্টেবল কার্নেল রিলিজ ট্রি একজন কার্নেল ডেভেলপার ম্যানেজ করেন, যিনি রিলিজের জন্য প্রয়োজনীয় প্যাচ বেছে নেওয়া এবং রিভিউ/রিলিজ প্রসেস ম্যানেজ করার জন্য দায়বদ্ধ।
বর্তমান ডেভেলপমেন্ট চক্রের সময়সীমা পর্যন্ত স্থিতিশীল কার্নেল বজায় রাখা হয়। Linus নতুন কার্নেল রিলিজ করার পরে, আগের স্থিতিশীল কার্নেল রিলিজ ট্রি বন্ধ করে দেওয়া হয় এবং ব্যবহারকারীদের নতুন রিলিজ করা কার্নেলে পরিবর্তন করতে হয়।
দীর্ঘমেয়াদী স্থিতিশীল কার্নেল
এই নতুন স্থিতিশীল রিলিজ প্রসেস এক বছর ধরে চলার পরে, এটি নির্ধারণ করা হয়েছে যে Linux-এর অনেক বিভিন্ন ব্যবহারকারী এমন একটি কার্নেল চেয়েছিলেন যা শুধুমাত্র কয়েক মাসের চেয়ে বেশি সময় ধরে কাজ করবে। এর উত্তরে, দীর্ঘ মেয়াদী সহায়তা (LTS) কার্নেল রিলিজ তৈরি করা হয়েছিল, যার প্রথম LTS কার্নেল (২.৬.১৬) ২০০৬ সালে রিলিজ করা হয়। তারপর থেকে, প্রতি বছর একটি নতুন LTS কার্নেল বেছে নেওয়া হয় এবং কার্নেল কমিউনিটি সেই কার্নেলটি কমপক্ষে ২ বছর ধরে রক্ষণাবেক্ষণ করে।
এই লেখাটি লেখার সময়, LTS কার্নেল হল 4.4.y, 4.9.y, 4.14.y, 4.19.y, 5.4.y এবং 5.10.y রিলিজ। প্রতি সপ্তাহে একটি নতুন কার্নেল রিলিজ করা হয়। কিছু ব্যবহারকারী ও ডিস্ট্রিবিউশনের প্রয়োজনীয়তার কারণে, কার্নেল ডেভেলপাররা ধীর রিলিজ সাইকেলে কিছু অতিরিক্ত পুরনো কার্নেল মেইনটেইন করেন। সব দীর্ঘমেয়াদী স্টেবল কার্নেল, সেগুলির দায়িত্বে কে আছেন এবং কতদিন সেগুলি মেইনটেইন করা হয়, সেই সম্পর্কে তথ্য kernel.org রিলিজ পৃষ্ঠায় পাওয়া যাবে।
LTS কার্নেল রিলিজে প্রতিদিন গড়ে ৬-৮টি প্যাচ গ্রহণ করা হয়, যেখানে সাধারণ স্টেবল কার্নেল রিলিজে প্রতিদিন ১০-১৫টি প্যাচ থাকে। সংশ্লিষ্ট ডেভেলপমেন্ট কার্নেল রিলিজ এবং অন্যান্য এক্সটার্নাল ভেরিয়েবলের বর্তমান সময়ের ভিত্তিতে প্রতিটি রিলিজের জন্য প্যাচের সংখ্যা পরিবর্তিত হয়। LTS কার্নেল যত পুরনো হবে, এতে তত কম প্যাচ প্রয়োগ করা যাবে। এর কারণ হল, সাম্প্রতিক অনেক বাগফিক্স পুরনো কার্নেলের জন্য প্রাসঙ্গিক নয়। তবে, কার্নেল যত পুরনো হবে, কোডবেসে পরিবর্তনের কারণে প্রয়োগ করতে হবে এমন পরিবর্তনগুলি ব্যাকপোর্ট করা তত কঠিন হবে। তাই যদিও সামগ্রিকভাবে কম সংখ্যক প্যাচ প্রয়োগ করা হতে পারে, তবে LTS কার্নেল মেইনটেন করার জন্য যে প্রচেষ্টা করা হয় তা সাধারণ স্থিতিশীল কার্নেল মেইনটেন করার চেয়ে বেশি।
স্টেবল কার্নেল প্যাচ সংক্রান্ত নিয়ম
স্থিতিশীল কার্নেল রিলিজে কী যোগ করা যাবে সেই সংক্রান্ত নিয়মগুলি সেটি চালু হওয়ার পর থেকে প্রায় একই আছে এবং নিচে তার সংক্ষিপ্তসার দেওয়া হল:
- অবশ্যই সঠিক হতে হবে এবং পরীক্ষা করা থাকতে হবে।
- ১০০ লাইনের বেশি হলে চলবে না।
- শুধুমাত্র একটি সমস্যা সমাধান করতে হবে।
- সমস্যা হিসেবে রিপোর্ট করা হয়েছে এমন কিছু সমাধান করতে হবে।
- নতুন ডিভাইস আইডি বা হার্ডওয়্যারের জন্য ক্যুইর্ক হতে পারে, তবে নতুন কোনও গুরুত্বপূর্ণ ফাংশন যোগ করে না।
- Linus Torvalds-এর ট্রি-তে আগেই মার্জ করা থাকতে হবে।
শেষ নিয়ম, "Linus Torvalds-এর ট্রি-তে আগে থেকেই মার্জ করা থাকতে হবে", কার্নেল কমিউনিটিকে ফিক্স হারানো থেকে আটকায়। কমিউনিটি কখনই চায় না যে কোনও সমাধান স্টেবল কার্নেল রিলিজে অন্তর্ভুক্ত হোক, যা আগে থেকেই Linus Torvalds-এর ট্রিতে নেই, যাতে আপগ্রেড করা কোনও ব্যক্তি কখনই রিগ্রেশন দেখতে না পান। এটি এমন অনেক সমস্যা প্রতিরোধ করে যা অন্যান্য প্রোজেক্টে হতে পারে, যেখানে একটি স্থিতিশীল এবং ডেভেলপমেন্ট ব্রাঞ্চ বজায় রাখা হয়।
কার্নেল আপডেট
Linux কার্নেল কমিউনিটি তার ব্যবহারকারীদের কাছে প্রতিশ্রুতি দিয়েছে যে কোনও আপগ্রেড আগের রিলিজে কাজ করছে এমন কিছু কখনওই ভেঙে দেবে না। সেই প্রতিশ্রুতি আজও সত্যি। রিগ্রেশন হয়, তবে সেগুলি সর্বোচ্চ অগ্রাধিকারের বাগ এবং সেগুলি দ্রুত সমাধান করা হয় অথবা যে পরিবর্তনের কারণে রিগ্রেশন হয়েছে সেটি Linux কার্নেল ট্রি থেকে দ্রুত ফিরিয়ে নেওয়া হয়।
এই প্রতিশ্রুতিটি ইনক্রিমেন্টাল স্টেবল কার্নেল আপডেট এবং প্রতি তিন মাস অন্তর হওয়া বড় মেজর আপডেট, দু'টির ক্ষেত্রেই প্রযোজ্য। তবে, Linux কার্নেল ট্রি-তে মার্জ করা কোডের জন্য কার্নেল কমিউনিটিই শুধুমাত্র এই প্রতিশ্রুতি দিতে পারে। ডিভাইসের কার্নেলে মার্জ করা যেকোনও কোড যা kernel.org রিলিজের মধ্যে নেই তা অজানা এবং এর সাথে ইন্টার্যাকশন কখনওই প্ল্যান করা বা বিবেচনা করা যায় না।
Linux-এর উপর ভিত্তি করে তৈরি করা ডিভাইসগুলিতে বড় প্যাচ সেট থাকলে, নতুন কার্নেলে আপডেট করার সময় বড় সমস্যা হতে পারে, কারণ প্রতিটি রিলিজের মধ্যে প্রচুর পরিবর্তন (প্রতিটি রিলিজের জন্য ১০-১৪ হাজার পরিবর্তন) থাকে। SoC প্যাচসেটগুলি বিশেষ করে পরিচিত তাদের বড় আকার এবং আর্কিটেকচার নির্দিষ্ট, এবং কখনও কখনও কোর, কার্নেল কোডের ভারী পরিবর্তনের কারণে নতুন কার্নেলে আপডেট করার সমস্যা রয়েছে। এর ফলে, বেশিরভাগ SoC ভেন্ডর তাদের ডিভাইসের জন্য LTS রিলিজ ব্যবহার করার ক্ষেত্রে স্ট্যান্ডার্ডাইজ করা শুরু করছে, এর ফলে সেইসব ডিভাইস সরাসরি Linux কার্নেল কমিউনিটির থেকে বাগ ও নিরাপত্তা সংক্রান্ত আপডেট পেতে পারবে।
নিরাপত্তা
কার্নেল রিলিজ করার সময়, Linux কার্নেল কমিউনিটি প্রায় কখনই নির্দিষ্ট পরিবর্তনকে সুরক্ষা সংক্রান্ত সমস্যা সমাধান হিসেবে ঘোষণা করে না। এটি মূলত এই কারণে হয় যে, তৈরি করার সময় কোনও বাগ ফিক্স, নিরাপত্তা সংক্রান্ত ফিক্স কিনা তা নির্ধারণ করা কঠিন। এছাড়াও, অনেক বাগফিক্স শুধুমাত্র অনেক সময় অতিবাহিত হওয়ার পরে নিরাপত্তা সম্পর্কিত বলে নির্ধারিত হয়, তাই কার্নেল কমিউনিটি সর্বদা রিলিজ করা সমস্ত বাগফিক্স নেওয়ার জন্য দৃঢ়ভাবে সুপারিশ করে।
কার্নেল কমিউনিটির কাছে নিরাপত্তা সংক্রান্ত সমস্যার ব্যাপারে অভিযোগ জানানো হলে, যত শীঘ্র সম্ভব সেগুলি সমাধান করা হয় এবং ডেভেলপমেন্ট ট্রি ও স্থিতিশীল রিলিজে সর্বজনীনভাবে প্রকাশ করা হয়। উপরে যেভাবে বর্ণনা করা হয়েছে, সেই অনুযায়ী, পরিবর্তনগুলিকে প্রায় কখনই "সুরক্ষা সংক্রান্ত সমস্যার সমাধান" হিসেবে বর্ণনা করা হয় না, বরং সেগুলি কার্নেলের জন্য করা অন্য কোনও বাগফিক্সের মতো দেখতে হয়। সমস্যার রিপোর্টার এটি ঘোষণা করার আগে, প্রভাবিত পার্টি যাতে তাদের সিস্টেম আপডেট করতে পারে, সেই জন্য এটি করা হয়।
কার্নেল কমিউনিটিতে নিরাপত্তা সংক্রান্ত বাগ রিপোর্ট করার ব্যাপারে বিস্তারিত জানতে, যাতে যত তাড়াতাড়ি সম্ভব সেগুলি সমাধান করা যায়, Linux কার্নেল ব্যবহারকারী ও অ্যাডমিনিস্ট্রেটরের গাইড-এ নিরাপত্তা সংক্রান্ত বাগ দেখুন, www.kernel.org-এ।
কার্নেল টিম সর্বজনীনভাবে নিরাপত্তা সংক্রান্ত বাগ ঘোষণা করে না, তাই Linux কার্নেল-সম্পর্কিত সমস্যার CVE নম্বর সাধারণত স্টেবল ও ডেভেলপমেন্ট ব্রাঞ্চে ফিক্স মার্জ করার কয়েক সপ্তাহ, মাস এবং কখনও কখনও কয়েক বছর পরে প্রকাশ করা হয়।
সিস্টেম সুরক্ষিত রাখুন
Linux ব্যবহার করে এমন কোনও ডিভাইস ডেপ্লয় করার সময়, আমরা অত্যন্ত জোর দিয়ে সাজেস্ট করি যে, সব LTS কার্নেল আপডেট যেন প্রস্তুতকারক গ্রহণ করে এবং যথাযথ পরীক্ষা করে দেখার পরে যে আপডেটটি ভালোভাবে কাজ করছে তা যেন ব্যবহারকারীদের কাছে পুশ করা হয়। এর অনেক সুবিধা আছে:
- কার্নেল ডেভেলপাররা রিলিজ সামগ্রিকভাবে পর্যালোচনা করেছেন, আলাদা আলাদা অংশ হিসেবে নয়।
- কোন প্যাচ "নিরাপত্তা" সংক্রান্ত সমস্যার সমাধান করে এবং কোনটি করে না তা নির্ধারণ করা কঠিন। প্রায় প্রতিটি LTS রিলিজেই অন্তত একটি পরিচিত সুরক্ষা সংক্রান্ত সমাধান থাকে এবং আরও অনেক "অজানা" সমাধান থাকে।
- পরীক্ষা করার সময় কোনও সমস্যা দেখা দিলে, কার্নেল ডেভেলপার কমিউনিটি সমস্যাটি সমাধান করার জন্য দ্রুত ব্যবস্থা নেয়।
- আপনি যে পরিবর্তনগুলি চালান শুধুমাত্র সেগুলি ফিল্টার করার চেষ্টা করলে কার্নেল ট্রি-তে এমন ফলাফল পাওয়া যায় যা ভবিষ্যতের আপস্ট্রিম রিলিজের সাথে সঠিকভাবে মার্জ করা অসম্ভব।