Linux 6.2 вже випущено, і це його новини

Ядро Linux

Linux — це здебільшого безкоштовне ядро, подібне до ядра Unix. Це один із основних прикладів безкоштовного програмного забезпечення з відкритим кодом.

Через два місяці розвитку, Лінус Торвальдс оголосив про випуск ядра Linux 6.2, де найбільш помітні зміни включають ліцензійний код Copyleft-Next, покращену реалізацію RAID5/6 у Btrfs, продовження інтеграції підтримки мови Rust, зменшення витрат на захист Retbleed, додане обмеження перезапису пам’яті та додано механізм TCP.PLB (Protective Load Balancing) ) додано.

Нова версія отримала 16843 виправлення від 2178 розробників, розмір патча 62 Мб (зміни торкнулися 14108 файлів, додано 730195 рядків коду, видалено 409485 рядків). Близько 42% усіх змін, внесених у 6.2, пов’язані з драйверами пристроїв, близько 16% змін пов’язані з оновленням коду, специфічного для апаратної архітектури.

Основні нові функції Linux 6.2

У цій новій версії, яка представлена включно з кодом і наданими змінами дозволено згідно з ліцензією Copyleft-Next 0.3.1. Ліцензія Copyleft-Next була створена одним із учасників GPLv3 і повністю сумісна з ліцензією GPLv2, як перевірено юристами SUSE та Red Hat. Порівняно з GPLv2, ліцензія Copyleft-Next набагато компактніша та зрозуміліша (вилучено вступну частину та згадку про застарілі зобов’язання), визначає час і процедуру усунення порушень, автоматично видаляє вимоги копілефту, коли вони застаріли, що більше більше 15 років.

Ще одна зміна, яка виділяється, полягає в тому, що включена утиліта «rv», яка надає інтерфейс для взаємодії з простору користувача з обробниками підсистеми RV (Перевірка під час виконання) Перевірка виконується під час виконання шляхом прикріплення контролерів до точок трасування, які перевіряють фактичний хід виконання за типовою еталонною детермінованою моделлю автомата, яка визначає очікувану поведінку системи.

Додано API «iommufd» для керування простором користувача блоку керування пам’яттю вводу-виводу (блоку керування пам’яттю). Новий API дозволяє керувати таблицями сторінок пам’яті вводу/виводу за допомогою дескрипторів файлів.

Для запірного механізму РКО (читати-копіювати-оновлювати), реалізовано додатковий механізм зворотного виклику у якому таймер обробляє кілька зворотних викликів одночасно в пакетному режимі. Застосування запропонованої оптимізації дозволяє знизити енергоспоживання на пристроях Android і ChromeOS на 5-10% за рахунок відкладення запитів RCU під час простою або низького навантаження на систему.

Додано нову опцію командний рядок ядра "trace_trigger", щоб запустити тригер трасування який використовується для зв’язування умовних команд, які викликаються, коли запускається трасування стека (наприклад, trace_trigger=”sched_switch.stacktrace if prev_state == 2”).

Ще одна зміна, яка виділяється, полягає в тому, порт додаткової функціональності було запущено з гілки Rust-for-Linux Пов’язано з використанням Rust як другої мови для розробки драйверів і модулів ядра. Підтримку Rust вимкнено за замовчуванням і не спричиняє включення Rust як обов’язкову залежність збірки ядра. Основні функції, запропоновані в останній версії, розширено функціями для підтримки низькорівневого коду, наприклад типу Vec і макросів pr_debug!(), pr_cont!() і pr_alert!(), а також "#[vtable" ]" макроси. », процедурний макрос, який спрощує роботу з таблицями покажчиків на функції. Очікується, що в наступних випусках будуть додані високорівневі оболонки Rust поверх підсистем ядра, що дозволить вам створювати повні драйвери в Rust.

На додаток до цього також наголошується, що реалізовано новий метод захисту від уразливості Retbleed у процесорах Intel і AMD за допомогою трасування глибини виклику, яке не таке повільне, як захист Retbleed, представлений вище. Щоб увімкнути новий режим, пропонується параметр командного рядка ядра «retbleed=stuff».

En платформа ARM64, на етапі завантаження, є можливість вмикати та вимикати програмну реалізацію механізму Shadow Stack, який використовується для захисту від перезапису адреси повернення функції у разі переповнення буфера стека (суть захисту полягає в тому, щоб зберегти адресу повернення в окремому стеку після передачі керування функції та відновлення адреси, наданої перед виходом з функції ).

З інших змін, які виділяються:

  • Для IPv6 додано підтримку PLB (захисне балансування навантаження), змінюючи мітку потоку IPv6, PLB випадковим чином змінює маршрути пакетів, щоб збалансувати навантаження на порти комутатора.
  • Додано підтримку 800 гігабітних посилань.
  • Додана можливість перейменування мережевих інтерфейсів на льоту, без зупинки роботи.
  • Додано згадку про IP-адресу, на яку надійшов пакет, до повідомлень SYN flood, записаних у журнал.
  • Для UDP реалізована можливість використовувати окремі хеш-таблиці для різних мережевих просторів імен.
  • Мережеві мости підтримують метод автентифікації MAB (MAC Authentication Bypass).
  • Драйвер i915 (Intel) стабілізував підтримку дискретних графічних карт Intel Arc (DG2/Alchemist) і покращив підтримку графічних процесорів Meteor Lake.
  • Драйвер Nouveau підтримує графічний процесор NVIDIA GA102 (RTX 30) на основі архітектури Ampere. Для карт nva3 (GT215) додана можливість керувати підсвічуванням.

Нарешті, якщо вам цікаво дізнатися більше про це, ви можете ознайомитися з деталями У наступному посиланні.


Будьте першим, щоб коментувати

Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: AB Internet Networks 2008 SL
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.