این صفحه ویژگی های اصلی هر نسخه هسته را خلاصه می کند و پیوندهایی به اطلاعات اضافی ارائه می دهد.
ویژگی های جدید کرنل 6.12
این بخش ویژگی های جدید هسته 6.12 را توضیح می دهد.
پروفایل تخصیص حافظه
کلید درک استفاده از حافظه، دانستن محل تخصیص است. هسته 6.12 شامل یک سیستم تخصیص حافظه جدید به نام پروفایل تخصیص حافظه است ( CONFIG_MEM_ALLOC_PROFILING
در پیکربندی). با نمایه سازی تخصیص حافظه، هر تخصیص به یک خط منبع منحصر به فرد نسبت داده می شود تا مسائل مربوط به تخصیص به سرعت شناسایی شوند. علاوه بر این، پروفایل تخصیص حافظه:
در مرحله مهندسی استفاده می شود، اما در تصویر استاندارد GKI موجود است.
با استفاده از پارامتر بوت
sysctl.vm.mem_profiling
می توان آن را فعال کرد.هم برای ماژول های درون هسته و هم برای ماژول های بارگذاری شده کار می کند.
io_uring سریعتر با کپی صفر و خواندن چند شات
در هسته 6.12، ماژول های statsd
و logd
از sendfile zero-copy استفاده می کنند که عملکرد آنها را بهبود می بخشد.
علاوه بر این، این نسخه هسته خواندن چند شات را پیاده سازی می کند که در آن یک عملیات خواندن می تواند چندین قطعه داده را به طور همزمان بازیابی کند و عملکرد را بهبود بخشد.
قابلیتها و پشتیبانی از فیلتر بسته برکلی (BPF).
در هسته 6.12، زنجیره ابزار BPF برای پشتیبانی از CO-RE و چندین ویژگی مدرن منتقل شده است. علاوه بر این، یک لودر BPF جدید استفاده از BPF مدرن را برای برنامه هایی که بخشی از AOSP هستند، امکان پذیر می کند.
اجرای پروکسی
اجرای پروکسی به زمانبند اجازه میدهد تا چرخههای CPU را از فرآیندهای با اولویت بالا قرض بگیرد تا قفلهایی را که توسط فرآیندهای با اولویت پایینتر نگهداری میشوند، بازیابی کند. این ویژگی مشکلات وارونگی اولویت را کاهش می دهد.
ویژگی های جدید کرنل 6.6
این بخش ویژگی های جدید هسته 6.6 را توضیح می دهد.
ساپورت زنگ
چندین پروژه هسته 6.6 از Rust استفاده می کنند.
منطقه حافظه مجازی (VMA) قفل می شود
کرنل 6.6 از قفلهای ناحیه حافظه مجازی برای رسیدگی به مشکلات اختلاف با mmap_sem
(که قبلاً mmap_lock
نامیده میشد) استفاده میکند. به این ترتیب، برنامههایی که از تعداد رشتههای بالایی استفاده میکنند ممکن است تا ۲۰ درصد زمان راهاندازی را کاهش دهند.
اولین زمانبندی مجاز مجازی (EEVDF) جایگزین CFS می شود
EEVDF جایگزین زمانبندی کاملاً منصفانه (CFS) میشود تا دسترسی به CPU را بین وظایف کوتاهمدت و طولانیمدت متعادلتر کند.
کاهش مصرف انرژی ناشی از تماسهای بهروزرسانی نسخه خواندن (RCU).
گزینه RCU_LAZY
برای صرفه جویی در مصرف برق از یک روش دسته بندی تماس برگشتی RCU مبتنی بر تایمر استفاده می کند. برای یک سیستم کم بار یا بیکار، این گزینه می تواند برق مصرفی را بین 5 تا 10 درصد کاهش دهد.
فشرده سازی حافظه ZRAM بهتر
تنظیمات ساخت جدید CONFIG_ZRAM_MULTI_COMP
به ZRAM اجازه می دهد صفحات را با یکی از سه الگوریتم جایگزین مجدداً فشرده کند. این فشرده سازی مجدد حافظه فشرده را بیشتر کوچک می کند و فضای آزاد بیشتری برای کارهای فعال فراهم می کند.
ویژگی های جدید کرنل 6.1
این بخش ویژگی های جدید هسته 6.1 را توضیح می دهد.
امنیت سریعتر با یکپارچگی جریان کنترل هسته (KCFI)
KCFI جایگزین یکپارچگی جریان کنترل (CFI) می شود که منجر به کاهش هزینه زمان اجرا و بدون هزینه زمان ساخت می شود. کاهش هزینه زمان اجرا به KCFI اجازه می دهد تا در مکان های بیشتری در مقایسه با CFI فعال شود، به ویژه نقاط ردیابی و قلاب های فروشنده.
علاوه بر KCFI، کرنل 6.1 چندین ویژگی امنیتی را معرفی میکند، مانند بررسی دقیق مرزهای memcpy
و کاهش حملات حدس و گمان مستقیم.
برای اطلاعات بیشتر در مورد KCFI، یکپارچگی جریان کنترل هسته را ببینید.
LRU چند نسلی (MGLRU)
MGLRU به هسته 6.1 اضافه شده است تا مدیریت حافظه را با شناسایی بهتر صفحاتی که واقعاً در حال استفاده هستند، بهبود بخشد. این بهبود نیاز به توقف برنامه ها را زمانی که سیستم با کمبود حافظه مواجه می شود کاهش می دهد. این به روز رسانی همچنین تجربه کاربر را بهبود می بخشد زیرا پاسخگویی کلی دستگاه بهتر است.
پیاده سازی MGLRU همچنین شامل پشتیبانی از درخت افرا ایمن RCU است که در برخی موارد می توان از آن برای جایگزینی درخت قرمز-سیاه (rbtree) استفاده کرد. هنگام استفاده، درخت افرا ایمن RCU به دلیل ردپای کمتر و قفل نبودن، عملکرد را افزایش می دهد.
برای اطلاعات بیشتر در مورد MGLRU، به Multi-Gen LRU مراجعه کنید.
برنامه ریزی
حفظ و به روز رسانی زمانبندی یک جنبه کلیدی در کار برای بهبود هسته است. به روز رسانی هسته در نسخه 6.1 عبارتند از:
- اضافه شدن زمانبندی خوشهآگاه، که با مهاجرت به هستههایی که حافظه نهان L2 را به اشتراک میگذارند، عملکرد را افزایش میدهد.
- اکتشافی حاشیه انرژی غیرضروری حذف شد. با محدود کردن برخی از مهاجرت ها، این به روز رسانی مصرف انرژی را تا 5 درصد بهبود می بخشد.
- بهبود تعادل بار برای کاهش تأخیر بیدار شدن.
- انتقال RCU دورههای مهلت را به یک kthread بیدرنگ منتقل کرد. این به روز رسانی تاخیرهای پرت مربوط به RCU را تا حد زیادی کاهش داد.
گرافیک
Kernel 6.1 حاوی روشهای جدیدی برای dma-buf برای صادرات و وارد کردن فایلهای همگامسازی است که با نیاز به Vulcan Video API هماهنگ است.
متد جدید futex_waitv()
انتقال بازی ها را از سایر پلتفرم ها با انتظار بر روی چندین futexe به طور همزمان ساده می کند.
ابزار اشکال زدایی
از Kernel Concurrency SANitizer (KCSAN) در بیلدهای اشکال زدایی برای شناسایی نژادها در کد هسته استفاده کنید.
علاوه بر این، از Kernel Memory SANitizer (KMSAN) برای یافتن مقادیر اولیه در هسته استفاده کنید.
بهبود پشتیبانی ARM64
هسته 6.1 چندین پیشرفت را برای معماری ARM64 به ارمغان می آورد، از جمله:
- پشتیبانی از پسوندهای تایمر ARMv8.6
- پشتیبانی از الگوریتم احراز هویت اشاره گر QARMA3
- پشتیبانی اولیه از ARMv9 Scalable Matrix Extension (SME)
- بهبودهایی که در گزینههای جایگزین انجام شده است، دارای وصلهسازی هستند که در نتیجه اندازه تصویر هسته کوچکتر میشود