কার্নেল রিলিজ নোট

এই পৃষ্ঠায় প্রতিটি কার্নেল রিলিজের প্রধান বৈশিষ্ট্যগুলোর সারসংক্ষেপ এবং অতিরিক্ত তথ্যের জন্য লিঙ্ক দেওয়া হয়েছে।

কার্নেল ৬.১২ এর নতুন বৈশিষ্ট্যসমূহ

এই অংশে কার্নেল ৬.১২-এর নতুন বৈশিষ্ট্যগুলো ব্যাখ্যা করা হয়েছে।

মেমরি বরাদ্দ প্রোফাইলিং

মেমরি ব্যবহার বোঝার মূল চাবিকাঠি হলো, কোথায় অ্যালোকেশন করা হচ্ছে তা জানা। কার্নেল ৬.১২-এ মেমরি অ্যালোকেশন প্রোফাইলিং (কনফিগ-এ CONFIG_MEM_ALLOC_PROFILING ) নামে একটি নতুন মেমরি অ্যালোকেশন অ্যাট্রিবিউশন সিস্টেম অন্তর্ভুক্ত করা হয়েছে। মেমরি অ্যালোকেশন প্রোফাইলিং-এর মাধ্যমে, প্রতিটি অ্যালোকেশনকে একটি অনন্য সোর্স লাইনের সাথে অ্যাট্রিবিউট করা হয়, যাতে অ্যালোকেশন সংক্রান্ত সমস্যাগুলো দ্রুত শনাক্ত করা যায়। এছাড়াও, মেমরি অ্যালোকেশন প্রোফাইলিং:

  • এটি ইঞ্জিনিয়ারিং পর্যায়ে ব্যবহৃত হয়, কিন্তু স্ট্যান্ডার্ড GKI ইমেজেও উপলব্ধ।

  • sysctl.vm.mem_profiling বুট প্যারামিটার ব্যবহার করে এটি সক্রিয় করা যেতে পারে।

  • ইন-কার্নেল এবং লোড করা মডিউল উভয়ের জন্যই কাজ করে।

জিরো-কপি এবং মাল্টিশট রিডের মাধ্যমে দ্রুততর io_uring।

কার্নেল ৬.১২-এ statsd এবং logd মডিউলগুলো sendfile zero-copy ব্যবহার করে, যা তাদের কর্মক্ষমতা উন্নত করে।

এছাড়াও, এই কার্নেল সংস্করণটি মাল্টিশট রিড বাস্তবায়ন করে, যার মাধ্যমে একটিমাত্র রিড অপারেশনের সাহায্যে একই সাথে একাধিক ডেটা পুনরুদ্ধার করা যায়, যা পারফরম্যান্স উন্নত করে।

উন্নত বার্কলে প্যাকেট ফিল্টার (বিপিএফ) সক্ষমতা এবং সমর্থন

কার্নেল ৬.১২-এ, BPF টুলচেইনকে CO-RE এবং বেশ কিছু আধুনিক বৈশিষ্ট্য সমর্থন করার জন্য স্থানান্তরিত করা হয়েছে। এছাড়াও, একটি নতুন BPF লোডার AOSP-এর অংশ এমন প্রোগ্রামগুলির জন্য আধুনিক BPF ব্যবহার সক্ষম করে।

প্রক্সি এক্সিকিউশন

প্রক্সি এক্সিকিউশন শিডিউলারকে উচ্চ-অগ্রাধিকার সম্পন্ন প্রসেসগুলো থেকে সিপিইউ সাইকেল ধার করতে দেয়, যার মাধ্যমে নিম্ন-অগ্রাধিকার সম্পন্ন প্রসেসগুলোর দখলে থাকা লকগুলো পুনরুদ্ধার করা হয়। এই বৈশিষ্ট্যটি প্রায়োরিটি ইনভার্সন সমস্যা প্রশমিত করে।

কার্নেল ৬.৬ এর নতুন বৈশিষ্ট্যসমূহ

এই অংশে কার্নেল ৬.৬-এর নতুন বৈশিষ্ট্যগুলো ব্যাখ্যা করা হয়েছে।

মরিচা সমর্থন

একাধিক কার্নেল ৬.৬ প্রজেক্টে রাস্ট ব্যবহৃত হয়।

প্রতি-ভার্চুয়াল মেমরি এলাকা (VMA) লক

কার্নেল ৬.৬, mmap_lock (যা পূর্বে mmap_sem নামে পরিচিত ছিল) এর সাথে সৃষ্ট দ্বন্দ্ব সমস্যা সমাধানের জন্য প্রতিটি ভার্চুয়াল মেমরি এলাকার জন্য লক ব্যবহার করে। ফলস্বরূপ, যেসব অ্যাপ প্রচুর সংখ্যক থ্রেড ব্যবহার করে, সেগুলোর চালু হওয়ার সময় ২০% পর্যন্ত কমে যেতে পারে।

আর্লিয়েস্ট এলিজিবল ভার্চুয়াল ডেডলাইন ফার্স্ট (EEVDF) শিডিউলার CFS-কে প্রতিস্থাপন করে।

স্বল্প ও দীর্ঘমেয়াদী টাস্কগুলোর মধ্যে সিপিইউ ব্যবহারের আরও ভালো ভারসাম্য আনার জন্য EEVDF, Completely Fair Scheduler (CFS)-কে প্রতিস্থাপন করে।

রিড কপি আপডেট (RCU) কলব্যাক থেকে বিদ্যুৎ খরচ হ্রাস

RCU_LAZY অপশনটি শক্তি সাশ্রয়ের জন্য একটি টাইমার-ভিত্তিক RCU কলব্যাক ব্যাচিং পদ্ধতি ব্যবহার করে। হালকা লোডযুক্ত বা নিষ্ক্রিয় সিস্টেমের ক্ষেত্রে, এই অপশনটি ব্যবহৃত শক্তি ৫% থেকে ১০% পর্যন্ত কমাতে পারে।

উন্নত ZRAM মেমরি কম্প্রেশন

নতুন CONFIG_ZRAM_MULTI_COMP বিল্ড সেটিংটি ZRAM-কে তিনটি বিকল্প অ্যালগরিদমের যেকোনো একটি ব্যবহার করে পেজগুলোকে পুনরায় কম্প্রেস করার সুযোগ দেয়। এই পুনঃসংকোচন কম্প্রেসড মেমরিকে আরও সংকুচিত করে, ফলে সক্রিয় টাস্কগুলোর জন্য আরও বেশি খালি জায়গা পাওয়া যায়।

কার্নেল ৬.১ এর নতুন বৈশিষ্ট্যসমূহ

এই অংশে কার্নেল ৬.১-এর নতুন বৈশিষ্ট্যগুলো ব্যাখ্যা করা হয়েছে।

কার্নেল কন্ট্রোল ফ্লো ইন্টিগ্রিটি (KCFI) এর মাধ্যমে দ্রুততর নিরাপত্তা

KCFI, কন্ট্রোল ফ্লো ইন্টিগ্রিটি (CFI)-কে প্রতিস্থাপন করে, যার ফলে রানটাইম খরচ কমে যায় এবং কোনো বিল্ড-টাইম খরচ হয় না। রানটাইম খরচ কম হওয়ার কারণে, CFI-এর তুলনায় KCFI-কে আরও বেশি জায়গায় সক্রিয় করা যায়, বিশেষ করে ট্রেসপয়েন্ট এবং ভেন্ডর হুক-এ।

KCFI ছাড়াও, কার্নেল ৬.১ একাধিক নিরাপত্তা বৈশিষ্ট্য চালু করেছে, যেমন কঠোর memcpy বাউন্ডস চেকিং এবং স্ট্রেট-লাইন স্পেকুলেশন অ্যাটাক প্রতিরোধ ব্যবস্থা।

KCFI সম্পর্কে আরও তথ্যের জন্য, কার্নেল কন্ট্রোল ফ্লো ইন্টিগ্রিটি দেখুন।

বহু-প্রজন্মের এলআরইউ (এমজিএলআরইউ)

কোন পেজগুলো আসলেই ব্যবহৃত হচ্ছে তা আরও ভালোভাবে শনাক্ত করার মাধ্যমে মেমরি ম্যানেজমেন্ট উন্নত করতে কার্নেল ৬.১-এ MGLRU যুক্ত করা হয়েছে। এই উন্নতির ফলে সিস্টেমে মেমরির ঘাটতি দেখা দিলে অ্যাপ বন্ধ করার প্রয়োজনীয়তা কমে যায়। এই আপডেটটি ব্যবহারকারীর অভিজ্ঞতাও উন্নত করে, কারণ ডিভাইসের সার্বিক রেসপন্সিভনেস আরও ভালো হয়।

MGLRU-এর বাস্তবায়নে একটি নতুন RCU-সেফ ম্যাপল ট্রি-এর সমর্থনও অন্তর্ভুক্ত রয়েছে, যা কিছু ক্ষেত্রে রেড-ব্ল্যাক ট্রি (rbtree)-কে প্রতিস্থাপন করতে ব্যবহার করা যেতে পারে। ব্যবহৃত হলে, RCU-সেফ ম্যাপল ট্রি তার কম ফুটপ্রিন্ট এবং লকবিহীনতার কারণে পারফরম্যান্স বৃদ্ধি করে।

MGLRU সম্পর্কে আরও তথ্যের জন্য, Multi-Gen LRU দেখুন।

সময়সূচী

কার্নেলের উন্নতির কাজে শিডিউলারের রক্ষণাবেক্ষণ ও হালনাগাদ করা একটি গুরুত্বপূর্ণ দিক। ৬.১ সংস্করণের কার্নেল আপডেটগুলোর মধ্যে রয়েছে:

  • ক্লাস্টার-সচেতন শিডিউলিং যোগ করা হয়েছে, যা L2 ক্যাশে শেয়ারকারী কোরগুলিতে স্থানান্তরিত হওয়ার মাধ্যমে পারফরম্যান্স বৃদ্ধি করে।
  • অপ্রয়োজনীয় এনার্জি-মার্জিন হিউরিস্টিক সরানো হয়েছে। কিছু মাইগ্রেশন সীমিত করার মাধ্যমে, এই আপডেটটি শক্তি ব্যবহার ৫% পর্যন্ত উন্নত করে।
  • ওয়েকআপ ল্যাটেন্সি কমাতে উন্নত লোড ব্যালান্সিং।
  • RCU-এর ত্বরান্বিত গ্রেস পিরিয়ডগুলোকে একটি রিয়েলটাইম কে-থ্রেডে স্থানান্তর করা হয়েছে। এই আপডেটটি RCU-সম্পর্কিত ল্যাটেন্সি আউটলায়ারগুলোকে ব্যাপকভাবে হ্রাস করেছে।

গ্রাফিক্স

কার্নেল ৬.১-এ dma-buf-এর জন্য সিঙ্ক ফাইল এক্সপোর্ট ও ইম্পোর্ট করার নতুন মেথড অন্তর্ভুক্ত করা হয়েছে, যা ভলকান ভিডিও এপিআই-এর চাহিদার সাথে সঙ্গতিপূর্ণ।

নতুন futex_waitv() মেথডটি একই সাথে একাধিক futex-এর জন্য অপেক্ষা করার মাধ্যমে অন্যান্য প্ল্যাটফর্ম থেকে গেম পোর্ট করার প্রক্রিয়াকে সহজ করে তোলে।

ডিবাগ টুলিং

কার্নেল কোডের রেস শনাক্ত করতে ডিবাগ বিল্ডে কার্নেল কনকারেন্সি স্যানিটাইজার (KCSAN) ব্যবহার করুন।

এছাড়াও, কার্নেলে অনির্দিষ্ট মানগুলি খুঁজে বের করতে কার্নেল মেমরি স্যানিটাইজার (KMSAN) ব্যবহার করুন।

ARM64 সমর্থনের উন্নতি

৬.১ কার্নেলটি ARM64 আর্কিটেকচারের জন্য একাধিক উন্নতি নিয়ে এসেছে, যার মধ্যে রয়েছে:

  • ARMv8.6 টাইমার এক্সটেনশনগুলির জন্য সমর্থন
  • QARMA3 পয়েন্টার-প্রমাণীকরণ অ্যালগরিদমের জন্য সমর্থন
  • ARMv9 স্কেলেবল ম্যাট্রিক্স এক্সটেনশন (SME)-এর জন্য প্রাথমিক সমর্থন
  • বিকল্প বৈশিষ্ট্য প্যাচিং-এর উন্নতির ফলে কার্নেল ইমেজের আকার ছোট হয়েছে।