Ядро Linux
После двух месяцев разработки Линус Торвальдс объявил о выпуске новой версии ядра Linux 6.1, в котором среди наиболее заметных изменений: поддержка разработки драйверов и модулей на языке Rust, модернизация механизма определения используемых страниц памяти, специальный менеджер памяти для программ BPF, система диагностики проблем памяти KMSAN, механизм защиты KCFI (Kernel Control - Flow Integrity), введение дерева структуры клена.
Новая версия получили 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, где реализована возможность прямой загрузки сжатых образов ядра.с, кроме того, что они добавили драйверы для загрузки, запуска и скачивания образов ядра, вызывается непосредственно из EFI zboot.
Также были добавлены драйверы для установки и удаления протоколов из базы протоколов EFI. Раньше распаковка выполнялась отдельным загрузчиком, а теперь это может делать драйвер в самом ядре: образ ядра собирается как EFI-приложение.
часть патчей был принят с реализацией модели управления памятью различных уровней, которые позволяет использовать отдельные банки памяти с разными характеристиками производительности. Например, часто используемые страницы могут храниться в самой быстрой памяти, а менее часто используемые страницы могут храниться в относительно медленной памяти. Ядро 6.1 использует механизм для определения того, находятся ли интенсивно используемые страницы в медленной памяти, чтобы переместить их в быструю память, и реализует общую концепцию уровней памяти и их относительной производительности.
В дополнение к этому мы также можем найти, что в подсистему BPF добавлена возможность создания "деструктивных" программ BPF специально разработан для запуска аварийного завершения с помощью вызова crash_kexec(). Такие программы BPF могут понадобиться в целях отладки, чтобы инициировать создание дампа памяти в определенное время. Для доступа к деструктивным операциям при загрузке программы BPF необходимо указать флаг BPF_F_DESTRUCTIVE, установить sysctl kernel.destructive_bpf_enabled и установить права CAP_SYS_BOOT.
были сделаныo Значительная оптимизация производительности в файловой системе Btrfs.Среди прочего, на порядки возросла производительность операций fiiemap и lseek (проверка общих расширений ускорена в 2-3 раза и изменение позиции в файлах ускорено в 1.3-4 раза). Также, ускорено ведение журнала inode для каталогов (увеличение производительности на 25% и снижение задержки на 21% в dbench), улучшен буферный ввод-вывод и снижено потребление памяти.
Ext4 добавляет оптимизацию производительности связанные с ведением журнала и операцией только для чтения, удалена поддержка устаревших атрибутов noacl и nouser_xattr, также в EROFS (расширенная файловая система только для чтения), предназначенная для использования на разделах только для чтения, реализует возможность Хранение набора дубликатов данных в другом файле системы.
Из другие выделяющиеся изменения:
- Добавлена поддержка аудиоподсистем, реализованных в процессорах Apple Silicon, Intel SkyLake и Intel KabyLake.
- Аудиоконтроллер HDA CS35L41 поддерживает спящий режим.
- Добавлена поддержка SATA-контроллеров AHCI, используемых в 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 (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.
- SoC ARM, совместимый с 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.
Наконец, если вам интересно узнать об этом больше, вы можете ознакомиться с подробностями По следующей ссылке.