Линус Торвальдс (Linus Torvalds) представил Linux 5.0:
Итак, последняя неделя перед релизом 5.0 была не совсем простой, но не такая сложная как c rc8 и в целом я рад, что задержался на неделю и закончил rc8.
Оказывается патч, о котором я говорил в релизе rc8, не был той тревожной ошибкой, о которой я думал: да, у нас была не инициализированная переменная, но причина, по которой мы не сразу заметили предупреждение, заключалась в том, как работает gcc, компилятор в основном инициализировал эту переменную как правильное значение. Таким образом, то же самое, что вызвало отсутствие предупреждения, также фактически означает, что это исправление на практике пустое.
Но у нас были и другие исправления ошибок, которые действительно имели значение, например не инициализированная переменная _could_ которая приводила к проблеме с другим компилятором.
В любом случае – все хорошо, что хорошо кончается. На прошлой неделе у нас было больше, чем несколько реальных исправлений, но этого не достаточно, чтобы заставить меня сказать: “Хмм, похоже это действительно не стабильно”. На самом деле, по крайней мере две трети патчей помечены как исправления для предыдущих выпусков, поэтому думаю, что сама версия 5.0 выглядит не плохо.
В любом случае, с данного момента окно для перехода на 5.1 теперь открыто и я рад видеть, что у меня уже есть несколько ранних запросов. Я начну обрабатывать их завтра.
И, как обычно, краткий список изменений касается только последней недели. Общий список изменений для всей версии 5.0 намного больше. Но я хотел бы отметить (еще раз), что мы не делаем релизы основываясь на новых функциях и что “5.0” не обозначает ничего, кроме того, что число 4.x стало слишком большим и у меня уже кончились пальцы рук и ног.
В выпуск Linux 4.20 добавлены некоторые китайские процессоры, такие как архитектуры C-SKY и процессоры Hygon Dhyana x86, подсистема PSI (Pressure Stall Information в /proc/pressure/), поддержка AMD Raven2 APU и Picasso APUs, оптимизация Lazy TLB и многое другое.
Некоторые заметные изменения в Linux 5.0 включают в себя:
- В fscrypt добавлено шифрование файловой системы Adiantum для устройств с низким энергопотреблением. Больше деталей вы найдете в статье “Adiantum обеспечивает более быстрое шифрование файлов на устройствах без AES Crypto Accelerator“
- Поддержка для AMDGPU FreeSync – в Linux 5.0 добавлена поддержка технологии адаптивной синхронизации FreeSync которая работает с ЖК-дисплеями поддерживающими динамическую частоту обновления. Технология обеспечивает низкую задержку монитора, практически беспроблемный просмотр и продлевает срок службы батареи, уменьшая частоту обновления панели, когда не принимаются новые изображения.
- Поддержка файла подкачки Btrfs. Файл подкачки должен быть полностью выделен как “nocow” без сжатия на устройстве.
- binderfs – файловая система binder для запуска нескольких экземпляров Android
Специфичные изменения для Arm архитектуры включают в себя:
- Планирование энергопотребления (EAS) для Arm big.LITTLE – EAS обеспечивает более низкое энергопотребление на асимметричных платформах SMP, сначала вызывая задачи для более энергоэффективных процессоров. EAS в ядре Linux это упрощенная версия энергозависимого планирования, которое в настоящее время является частью общего ядра AOSP. Прочитайте эту LWN статью чтобы получить больше информации.
- Allwinner
- A64 – Видео драйвер Cedrus с открытым исходным кодом, изменения DTS для аудиокодека
- H6 – Ethernet, поддержка DE3/HDMI, USB 2.0
- H3 / H5 – Поддержка CSI
- H5 – Cedrus
- V3s – Поддержка CSI
- SRAM поддержка для F1C100, H5 и A64 C1.
- Драйвер часов для F1C100s и H6 (движок дисплея)
- Поддержка Bluetooth для Broadcom (Ampak подули) на Banana Pi M2 Magic, Banana Pi M3, Banana Pi M64, Cubietruck и Cubietruck Plus
- Добавлен Allwinner T3 (ребрендинг R40) и процессор F1C100s Armv5
- Новое оборудование – Allwinner t3-cqa3t-bv3 (T3/R40), Lichee Pi Nano (F1C100s), Emlid Neutis N5, Mapleboard MP130
- Rockchip
- Очистка драйвера SPI
- Промежуточный драйвер Rockchip VPU (только кодировка JPEG)
- Часы – регистрация изменений для Rockchip rk3188 и rk3328; новые критические часы для Rockchip rk3188 и исправление идентификатора часов (использование двойных чисел); новые идентификатор часов для Rockchip rk3328
- Поддержка домена питания для RK3066 и RK3188
- Добавлена поддержка двойного MIPI
- Новое оборудование – планшет Gru Scarlet RK3188
- Amlogic
- Драйвер часов – Видео часы Amlogic GX, частота процессора meson8b и тактовые частоты делителей; обновлена поддержка видео часов Meson8/Meson8b
- Добавлен драйвер контроллера Meson PCIe и привязка DT
- DRM – добавлено масштабирование первичной плоскости, поддержка Overlay плоскости для рендеринга видео
- Драйвер измерения питания
- Обновления DTS
- поддерживает больше таймеров на meson8
- добавлено свойство stdout-path на нескольких платформах
- AXG: включает GPIO IRQs, PHY IRQ, сторожевой таймер
- Обновления ARM64 DTS
- AXG: включает GPIO IRQs, PHY IRQ, сторожевой таймер, SCPI, добавлен монитор безопасности
- исправлены ошибки смещения pinmux, линия имен GPIO
- Новое оборудование – Phicoom N1 (S905) и Libretech S805-AC
- Samsung
- Отладка PM и кода загрузки вторичного ядра
- Изменения Arm DTS
- Добавлены отсутствующие свойства и узлы для PMIC часов в нескольких файлах DTS.
- Добавлена поддержка скоростной шины UHS-I к Odroid XU3/XU4/HC SD карте и увеличена максимальная тактовая частота до 200 МГц для SD и eMMC.
- Обновление схемы охлаждения включает в себя все процессорные устройства в нескольких файлах DTS.
- Включены совместимость для Exynos3250 DWC.
- Добавлен узел JPEG CODEC в S5Pv210.
- Добавлен параметр opp-suspend в devfreq OPPs на Exynos4 платформе, чтобы исправить восстановление из режима ожидания в ОЗУ (RAM)
- Удален eDP с платформы Arndale, так как она не работает и ломает также DSI.
- Добавлены недостающие процессоры в схему охлаждения для Odroid X2
- Исправлена конфигурация часов в аудиоподсистеме на Odroid XU3/XU4
- Изменения ARM64 DTS
- Обновлены аппаратные модули DWC3 в конкретном варианте Exynos5433.
- Обновлена схема охлаждения включающая в себя все процессорные устройства в нескольких файлах DTS.
- Добавлен контроллер часов IMEM (для подсистемы безопасности) и Bluetooth чип в платформе Exynos5433 TM2(e)
- Обновления defconfig
- Включены драйвера в defconfig exynos и multi_v7 для MAX8952, MAX8998 (платформа Samsung UniversalC210) и TC358764 (платформа Arndale).
- Qualcomm
- Управление контактами – новый драйвер Qualcomm PMS405 PMIC; улучшения: теперь GPIO работает на контроллере контактов Qualcomm SPMI/SSBI и Xway
- Новые драйвера часов для аудиоподсистемы clks Qualcomm SDM845 и GPU контроллеры clck, поддержка QCS404 RPM clk
- Добавлен сторожевой таймер Qualcomm PM8916
- Обновления ARM64
- Добавлена базовая платформа и узлы QCS404 4x A53
- Добавлены EVB платы QCS404
- Добавлен внешний SD для MSM8998-mtp
- Добавлена по умолчанию scm совместимость для MSM8998
- Исправлено XO clk имя на MSM8998
- Добавлены prng-ee узлы для SDM845 и MSM8996
- Добавлен узел температуры АЦП для pm8998
- Исправлена документация по образцу QCOM ADC
- Переключатель на использование драйвера dwc3-qcom glue на MSM8996
- Добавлен схема охлаждения на MSM8916
- Добавлен UART узел на SDM845
- Добавлена поддержка подсистемы камеры на MSM8996 и MSM8916
- Изменения device tree для Linux 5.0:
- Добавлена запись для тепловых драйверов Qualcomm TSENS
- Обновление тепловых записей msm8974
- Исправлен msm8974 Hammerhead magnetometer gpios
- Добавлены определенные совместимые SoC для узлов SDHC
- Удаленна оценочная плата Arrow SD600
- Обновления для ARM64 Defconfig
- Включена поддержка платформы Qualcomm QCS404
- Включена поддержка частоты и pinctrl для MSM8998
- Включены поддержка Qualcomm SDM845
- Добавлены связанные конфигурации remoteproc
- Mediatek
- Драйвер Pinctrl для SoC Meditak MT6797 и MT7629
- SPI – поддержка для Mediatek MT7629 и MT8183
- Контроллеры Mediatek MT7629 SoC clk
- Другие новые аппаратные платформы ARM и SoC:
- Aspeed – Facebook Backpack-CMM BMC
- Marvell – Macchiatobin Single Shot (Armada 8040, не 10 Гбит)
- NXP – Добавлены SoC NXP i.MX7ULP, LS1028A и LX2160A; emtrion emCON-MX6, imx6ul-pico-pi, imx7d-sdb-reva; VF610 hw: устройство Liebherr BK4, плата ZII SCU4 AIB; основная плата i.MX7D PICO Hobbit; EVK платаi.MX7ULP; платы NXP LX2160AQDS и LX2160ARDB
- PXA – Первая плата PXA3xxx DT (Raumfeld)
- Renesas – iWave G20D-Q7 (RZ / G1N)
Основные изменения для обновлений архитектуры MIPS и новых функций для Linux 5.0:
- Таблицы и определения Syscall для unistd.h теперь генерируются скриптами, обеспечивая большую согласованность с другими архитектурами и облегчая добавление новых syscalls.
- Поддержка сборки ядра без поддержки плавающей запятой, при которой любое пользовательское пространство, пытающееся использовать инструкции с плавающей запятой, получит SIGILL. В основном полезно для сжатия ядра и в качестве подготовки к поддержке nanoMIPS, которая еще не включает FP.
- Контекст векторного регистра MIPS SIMD Architecture (MSA) теперь доступен через ptrace с помощью нового NT_MIPS_MSA regset.
- ASIDs теперь хранятся в виде значений 64b даже для ядер MIPS32, что значительно расширяет поле версии ASID, так что вам не нужно беспокоиться о переполнении и избегая редких проблем с повторно используемыми ASID.
- Страница «эмуляции» слота задержки ветвления теперь отображается без разрешения на запись для пользователя, что предотвращает ее использование в качестве удобного места для атак и выполнения вредоносного кода.
- Поддержка ioremap_prot(), в основном для того, чтобы позволить пользователям gdb или другим пользователям ptrace просматривать память своей трассировки, используя тот же атрибут когерентности кэша.
- Включена сборка ядра с помощью инструментария UBSAN.
- Включена сборка ядра с использованием мертвого кода во время соединения и удаления данных..
- Некоторые изменения для определенных платформ:
- Плата Boston получает обходной путь для проблем предварительной выборки DMA c Hub контроллером платформы EG20T, который она использует.
- Очистка кода Cavium Octeon, удаление около 20 тысяч строк избыточного кода.
- Обновления defconfig для машин DECstation, включая новые defconfigs для машин r4k & 64b.
- Ведутся работы по поддержке Loongson 3.
- Исправления DMA для машин SiByte
Также были добавлены некоторые изменения для архитектуры RISC-V:
- Обновления ядра RISC-V:
- Исправление для test-bpf, поэтому оно компилируется в системах на основе RV64I.
- Исправление в отношении командной строки ядра, когда нет device tree.
- Исправлена ошибка, из-за которой процессоры не могли уснуть при сбое системы.
- Поддержка для MODULE_SECTIONS в системах на основе RV32I.
- [новое в v2] Добавлен драйвера SBI earlycon вместо поддержки arch-specific early printk
- Обновления аудита RISC-V:
- Добавлен NR_syscalls в unistd.h, который необходим для CONFIG_FTRACE_SYSCALLS.
- Определение CREATE_TRACE_POINTS, так что __tracepoint_sys_{enter,exit} определится.
- Исправления для trace_sys_exit(), поэтому вы можете включить HAVE_SYSCALL_TRACEPOINTS
Полный список изменений Linux 5.0 только с комментариями можно найти здесь. Он был сгенерирован с помощьюgit log v4.20..v5.0-rc8 --stat
. Для получения более подробной информации вы можете почитать журнал изменения ядра на KernelNewbies.
Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.