Через два місяці розвитку, Лінус Торвальдс оголосив про вихід нової версії ядра Linux 6.1, в якому серед найбільш помітних змін: підтримка розробки драйверів і модулів на мові Rust, модернізація механізму визначення використовуваних сторінок пам'яті, спеціальний менеджер пам'яті для програм BPF, система діагностики проблем пам'яті KMSAN, механізм захисту KCFI (Kernel Control -Flow Integrity), впровадження дерева структури Maple.
Нова версія отримав 15115 2139 виправлень від XNUMX розробників, розмір патча становить 51 Мб, що приблизно в 2 рази менше, ніж розмір патчів ядра 6.0 і 5.19.
Основні нові функції Linux 6.1
У цій представленій новій версії ядра ми можемо це знайти додана можливість використовувати Rust як другу мову для розробки драйверів і модулів ядра. Основна причина підтримки Rust полягає в полегшенні написання високоякісних безпечних драйверів пристроїв шляхом зменшення ймовірності помилок пам’яті.
Підтримку Rust вимкнено за замовчуванням і не спричиняє включення Rust як обов’язкову залежність збірки ядра. Наразі ядро прийняло скорочену мінімальну версію виправлення, яка була зменшена з 40 до 13 XNUMX рядків коду та містить лише мінімальний обсяг, достатній для створення простого модуля ядра, написаного на Rust.
В майбутньому, планується поступове розширення наявного функціоналу, перенесення інших змін із гілки Rust-for-Linux. Паралельно розробляються проекти з використання запропонованої інфраструктури для розробки дискових контролерів NVMe, мережевого протоколу 9p і графічного процесора Apple M1 на Rust.
Ще одна помітна зміна в AArch64, RISC-V і LoongArch з EFI, де реалізована можливість безпосереднього завантаження стислих образів ядраs, крім того, що вони додали драйвери для завантаження, запуску та завантаження образів ядра, викликається безпосередньо з EFI zboot.
Також додано драйвери для встановлення та видалення протоколів із бази даних протоколів EFI. Раніше розпакування виконувалося окремим завантажувачем, але тепер це може зробити драйвер у самому ядрі: образ ядра побудований як програма EFI.
частина патчів було прийнято з реалізацією моделі керування пам'яттю різного рівня, що дозволяє розділяти банки пам'яті з різними характеристиками продуктивності. Наприклад, сторінки, які часто використовуються, можуть зберігатися в найшвидшій пам’яті, тоді як сторінки, які використовуються рідше, можуть зберігатися у відносно повільній пам’яті. Ядро 6.1 застосовує механізм визначення того, чи сторінки, що активно використовуються, знаходяться в повільній пам’яті, щоб перемістити їх у швидку пам’ять, і реалізує загальну концепцію рівнів пам’яті та їх відносної продуктивності.
На додаток до цього ми також можемо знайти це додано в підсистему БНФ можливість створення «деструктивних» програм БНФ спеціально розроблений для ініціювання збою за допомогою виклику crash_kexec(). Такі програми BPF можуть знадобитися для цілей налагодження, щоб ініціювати створення дампа пам’яті в певний час. Для доступу до руйнівних операцій під час завантаження програми BPF потрібно вказати прапор BPF_F_DESTRUCTIVE, встановити sysctl kernel.destructive_bpf_enabled і встановити права CAP_SYS_BOOT.
були зробленіo Значна оптимізація продуктивності файлової системи BtrfsКрім усього іншого, на порядки зросла продуктивність операцій fiemap і lseek (перевірка спільних розширень прискорилася в 2-3 рази, а зміна позиції у файлах прискорилася в 1.3-4 рази). Крім того, прискорено журналювання inode для каталогів (збільшення продуктивності на 25% і зменшення затримки на 21% у dbench), покращено буферизований ввід-вивід і зменшено споживання пам’яті.
Ext4 додає оптимізацію продуктивності пов’язані з журналюванням і операцією лише для читання, вилучено підтримку застарілих атрибутів noacl і nouser_xattr, також у EROFS (розширена файлова система лише для читання), розроблена для використання на розділах лише для читання, реалізована можливість зберігання набору дублікатів даних у різних файлах системи.
З інші помітні зміни:
- Додано підтримку аудіопідсистем, реалізованих у процесорах Apple Silicon, Intel SkyLake і Intel KabyLake.
- Аудіоконтролер HDA CS35L41 підтримує сплячий режим.
- Додана підтримка контролерів AHCI SATA, які використовуються в Baikal-T1 SoC.
- Додано підтримку чіпів Bluetooth MediaTek MT7921, Intel Magnetor (CNVi, інтегроване підключення), Realtek RTL8852C, RTW8852AE та RTL8761BUV (Edimax BT-8500).
- Додано драйвери для клавіатури PinePhone, сенсорних панелей InterTouch (ThinkPad P1 G3), адаптивного контролера X-Box, контролера польоту PhoenixRC, автомобільного контролера VRC-2, контролера DualSense Edge, панелей керування IBM, XBOX One Elite, планшетів XP-PEN Deco Pro S та Intuos Pro small (PTH-460).
- Додано драйвер для криптографічних прискорювачів Aspeed HACE (Hash and Crypto Engine).
- Додано підтримку вбудованих контролерів Intel Meteor Lake Thunderbolt/USB4.
- Додана підтримка смартфонів Sony Xperia 1 IV, Samsung Galaxy E5, E7 і Grand Max, Pine64 Pinephone Pro.
- ARM SoC, сумісний з AMD DaytonaX, Mediatek MT8186, Rockchips RK3399 і RK3566, TI AM62A, NXP i.MX8DXL, Renesas R-Car H3Ne-1.7G, Qualcomm IPQ8064-v2.0, IPQ8062, IPQ8062 /BL i.MX8MM OSM-S , MT8195 (Acer Tomato), Radxa ROCK 4C+, NanoPi R4S Enterprise Edition, JetHome JetHub D1p. Інформація про SoC Samsung, Mediatek, Renesas, Tegra, Qualcomm, Broadcom і NXP.
Нарешті, якщо вам цікаво дізнатися більше про це, ви можете ознайомитися з деталями У наступному посиланні.