Linux 6.4 уже выпущен, и в нем есть улучшения для Rust и многое другое.

Ядро Linux

Linux — в основном свободное ядро, похожее на ядро ​​Unix, — один из основных примеров бесплатного программного обеспечения с открытым исходным кодом.

После двух месяцев разработки Линус Торвальдс объявил о запуске новая версия ядра Linux 6.4 и среди наиболее важных изменений выделяется непрерывная интеграция поддержки языка Rust, поддержка механизма Intel LAM, дедупликация страниц памяти на уровне процесса, поддержка итераторов в BPF, поддержка гибернации для систем RISC-V, среди прочего.

В новую версию интегрировано 16012 исправлений от 2080 разработчиков, добавлено 1006924 строки кода, удалено 597615 строк.

Основные новинки ядра Linux 6.4

В представленной новой версии Linux 6.4 одной из главных новинок является возможность создавать драйверы уровня ядра из процессов пользовательского пространства. В отличие от использования kthread API, контроллеры, созданные в пользовательском пространстве, наследуют свойства процесса и запускаются с учетными данными процесса пользовательского пространства.

Еще одно заметное изменение связано с ветвью Rust-for-Linux, в котором продолжается портирование функциональности связанные с использованием Rust в качестве второго языка для разработки драйверов и модулей ядра. В этой новой версии Linux 6.4 мы можем обнаружить, что API-интерфейс pin-init для безопасной инициализации прикрепленных структур данных, а также поддержку условных переменных (CondVar) и то, что Реализован пакет UAPI для взаимодействия с пользовательским пространством.

В дополнение к этому мы также можем обнаружить, что реализован вариант механизма объединения одинаковых страниц памяти, который работает на уровне процессов и может значительно сократить потребление памяти за счет дедупликации страниц с одинаковым содержимым. В отличие от механизма KSM в новой реализации, поддержка дедупликации включена через prctl для всего процесса и он наследуется для дочерних процессов, без необходимости активации для каждого диапазона памяти с помощью madvise, что существенно упрощает приложение.

Кроме того, Непривилегированные процессы могут получать информацию от подсистемы ядра PSI. (Информация о блокировке под давлением), которая позволяет анализировать пользовательское пространство информации о тайм-аутах для различных ресурсов (ЦП, памяти, ввода-вывода) для точной оценки моделей загрузки и замедления на уровне системы.

Также подчеркивается, что для систем, основанных на архитектуре RISC-V, поддерживается спящий режим, а ядро ​​может быть скомпилировано в виде связанного файла в режиме PIE. (позиционно-независимые исполняемые файлы), в дополнение к добавлен новый системный вызов riscv_hwprobe() предоставить информацию о производителе и архитектуре доступного оборудования.

Добавлены изменения в XFS для реализации сканирования FS на лету. (inline cleanup), который, как ожидается, будет включен в один из следующих выпусков (хотя онлайн-документация для fsck уже добавлена).

В Ext4 упрощена организация ввода, Помимо того, что они были проведены оптимизация предварительного выделения инодов для повышения производительности на системах с большим количеством случайных операций записи. Операции чтения и записи страниц памяти были перенесены на использование фолио страниц памяти.

btrfs переписала код проверки файловой системы для использованияscrub_stripe, поддерживает проверку RAID56 и работает примерно на 10 % быстрее. Улучшена производительность ведения журнала каталогов (удаление перечисления индексов во время ведения журнала позволило сократить время, затрачиваемое на выполнение fsync в 4 раза).

Из другие изменения, которые выделяются этой новой версии:

  • В файловую систему F2FS добавлена ​​поддержка зонированных блочных устройств, где размер зон не кратен степени двойки.
  • Изменено кодирование команд ioctl для драйвера ublk, что привносит определенную логику на сторону процесса в пространстве пользователя.
  • Добавлен параметр сборки UBLK_LEGACY_OPCODES для обеспечения совместимости со старыми драйверами.
  • Запрещено отключать и загружать модуль SELinux во время работы.
  • Отключить SELinux теперь можно только на начальной стадии загрузки, передав параметр «selinux=0» в командной строке ядра.
  • Добавлена ​​поддержка гипервызовов Hyper-V, которые используются для переадресации PCI-устройств гостям с драйверами Hyper-V. С
  • Гипервизор KVM реализует структуру для переноса обработки запросов SMCCC в пространство пользователя, что позволяет реализовать многие операции, связанные с виртуализацией, в пространстве пользователя, не добавляя их в ядро.
  • Добавлена ​​возможность присоединения программ BPF для обработки привязок NetFilter, например для создания контроллера, который решает пересылать пакеты или выполнять действия на этапе предварительной маршрутизации.
  • Драйвер msi-ec был добавлен, чтобы позволить пользовательскому пространству управлять расширенными функциями ноутбука MSI, такими как выбор профиля питания, управление скоростью вращения вентилятора, управление светодиодами и уровни нагрузки.

наконец, если вы интересно узнать об этом больше, вы можете проверить подробности По следующей ссылке.


Оставьте свой комментарий

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

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.