Лінус Торвальдс оприлюднив через оголошення про доступність нової версії Ядро Linux 6.1. що можливо це так одна з найважливіших версій, випущених за останні 30 років І саме те, що робить цей випуск таким особливим, полягає в тому, що з цієї версії вводиться друга мова для розробки ядра, якою є мова Rust.
Таким чином, Rust отримує лише офіційний API, щоб дозволити розробку окремих модулів або пілотних програм для Linux. Це означає, що відкриття ядра Linux для цієї мови триває, внаслідок чого скасування мови C не заплановано на завтра. Однак ця зміна пов’язана з доступністю та повноваженнями третіх сторін, залучених до розробки ядра.
Основні нові функції Linux 6.1
Найбільшим нововведенням Linux 6.1 є прибуття Руста, протягом кількох років за лаштунками йшла робота над тим, щоб зробити ядро придатним для нової мови програмування. У майбутньому з’явиться можливість програмувати модулі не лише на C, але й на Rust.
У поточному стані він дозволяє лише компілювати, завантажувати та завантажувати дуже простий приклад модуля. Як перший крок, Лінус Торвальдс просто хотів просте "Hello world!" Таким чином, інші корисні модулі та, перш за все, неможливі в Rust у поточному ядрі. Проте нове ядро пропонує перший погляд на те, як інтегрується Rust і які труднощі потрібно подолати.
Ще однією новинкою, реалізованою в цій новій версії Linux 6.1, є Підтримка AMD Platform Management Framework, що гарантує підвищення продуктивності з різними процесорами AMD (центральними процесорами).
Платформа управління AMD також повна підтримка AMT (автоматичний перехід в режим) і для CnQF (Cool and Quiet Framework). Починаючи з цього оновлення, користувачі дистрибутива отримають доступ до глибшого та комплекснішого керування живленням і температурою.
На додаток до цього, ми також можемо знайти це Механізм MGLRU включений (багатоколінна ЛРУ), яка замінив стару реалізацію LRU (Найменш використовувані) на основі двох черг із багатоступінчастою структурою, яка краще визначає, які сторінки пам’яті фактично використовуються, а які можна примусово вивести з підкачки.
Додано підтримка структури даних клена запропонована інженерами Oracle, яка позиціонується як більш ефективна заміна структурі «червоно-чорне дерево». Клен іє варіантом дерева В який підтримує індексування діапазонів і призначений для ефективного використання кеша сучасних процесорів. Деякі підсистеми управління пам'яттю вже перенесені на maple tree, що позитивно впливає на її продуктивність. У майбутньому дерево клена можна буде використовувати для реалізації блокування діапазону.
Це також виділяється в Linux 6.1, який додано спеціальний виклик для виділення пам'яті в програмах BPF (розподільник пам’яті), який забезпечує безпечніший розподіл пам’яті в контексті BPF, ніж звичайний kmalloc(). Інтегровано першу частину змін, що забезпечує можливість створення драйверів для пристроїв введення з інтерфейсом HID (Human Interface Device), реалізованим у вигляді програм BPF. Код було повністю видалено з ядра для підтримки формату виконуваного файлу a.out, який застарів у версії 5.1 і, починаючи з версій 5.18 і 5.19, вимкнений для всіх основних архітектур.
Формат a.out не використовувався в системах Linux протягом тривалого часу, і сучасні інструменти не підтримують створення файлів a.out у конфігураціях Linux за замовчуванням. Завантажувач файлів a.out може бути реалізований повністю в просторі користувача.
Замінено реалізацію механізму захисту CFI (Цілісність потоку керування), додавання перевірок перед кожним непрямим викликом функції для виявлення деяких форм невизначеної поведінки, які потенційно можуть призвести до порушення нормального порядку виконання (потік керування) у результаті використання експлойтів, які змінюють покажчики функцій, що зберігаються в пам’яті.
Звичайна реалізація CFI проекту LLVM була замінена варіантом, також заснованим на використанні Clang, але спеціально адаптованим для захисту низькорівневих підсистем і ядер операційної системи. У LLVM буде запропоновано нову реалізацію у версії Clang 16 і її буде ввімкнено за допомогою опції «-fsanitize=kcfi».
Ключова відмінність нової реалізації полягає в тому, що вона не прив’язана до оптимізації часу зв’язку (LTO) і не призводить до заміни покажчиків на функції посиланнями в таблиці переходів.
З інших змін які виділяються
- Для модулів модуля безпеки Linux (LSM) надається можливість створювати контролери, які перехоплюють операції для створення просторів імен.
- Надано інструменти для перевірки цифрових підписів PKCS#7 у програмах BPF.
- /dev/random повернув можливість відкривати в неблокуючому режимі (O_NONBLOCK), яка була випадково видалена в ядрі 5.6.
- Додано попередження в системах x86, коли підсистеми ядра виділяють сторінки пам’яті, які доступні як для виконання, так і для запису. У майбутньому розглядається можливість повної заборони такого відображення пам'яті.
нарешті, якщо ти є цікаво дізнатися про це більше, Ви можете перевірити деталі У наступному посиланні.