Версия Linux 4.19 — Основные изменения, архитектуры Arm и MIPS


В прошлое воскресенье,  Грегом Кроа-Хартманом вместе с Линусом Торвальдсом (который отстранился от проекта Linux), была представлена версия Linux 4.19:

Проделано много работы прежде, чем выпустить ядро …

Хотя это был не самый большой выпуск ядра, во всяком случае по количеству исправлений, он был больше, чем последние 3 выпуска, и было не просто. Все изменения касались, главным образом, кода. Поэтому это будет одно из самых «долгосрочных» ядер, которое, в конечном итоге, будет поддерживаться в течение нескольких лет, что, несомненно,  хорошая новость для всех.

Немного исправлений появилось на этой неделе, что говорит о том, что лишняя неделя ожидания была результативной. Следующее  -rc1 merge window будет больше, чем «стандартно», если вообще можно применять термин «стандартно» для нашей скорости разработки.

Пару слов о разработке, есть и другая вещь, которая произошла в этом выпуске, в связи с чем именно я представляю текущую версию  вместо Линуса. Позвольте мне занять несколько минут, чтобы поговорить об этом ….

Я уже более десяти лет рассказываю о том, как «ядро ​​разрабатывается». После первого года, или около того, я был поражен тем, что ядро еще нужно представлять, поскольку все знали, как мы это делали, не так ли? Но, моя жена, оказалась гораздо умнее меня, потому как сказала мне: «Каждый год появляется новая группа детского сада».

И все мы должны помнить, что каждый год новые люди вступают в наше сообщество с целью получить материал для своей работы, своего хобби или просто потому, что они хотят помочь внести свой вклад в инструментарий, который захватил мир и позволил каждому иметь прочную операционную систему, на которой можно построить свои мечты.

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

И эта цель, которую мы все разделяем, является ключевой. Мы все хотим создать лучшее ядро, какое только возможно. У нас могут не совпадать взгляды на множество разных вещей в других сферах нашей жизни, но в этом мы едины. И мы должны сосредоточиться на этой общей цели, поскольку она объединила нас всех вместе, чтобы создать то, что не удалось достичь ни одной другой компании или группе людей.

Мы шутили, что наша цель — «Полное мировое господство», но это действительно не шутка. Мы достигли этой цели, Linux действительно управляет миром. Все компании используют его, способствуют этому, и это привело к тому, что мир стал намного лучше, потому что все мы работаем на одну цель.

Я также говорю, что «единственное, что может остановить нас, — это мы сами». И сейчас это как никогда близко к правде гораздо ближе, чем тогда, когда я впервые начал говорить об этом десять лет назад. В настоящее время нет другой операционной системы, которая конкурирует с нами. Хотя, было бы неплохо иметь конкурента, поскольку конкуренция заставляет нас развиваться, но мы должны жить в данный момент ?

Эти последние несколько месяцев были трудными для нашего сообщества, так как именно наше сообщество борется внутри себя, подталкивая других за его пределами. Не буду глубоко погружаться в разговорах о тех «других», поскольку это ловушка, в которую, на протяжении многих веков, попадали бесчисленные сообщества. Мы все разделяем одну и ту же цель, не будем забывать об этом.

Итак, вот моя просьба ко всем. Давайте возьмем день или два перерыва, отдохнем, расслабимся с друзьями, зарядимся энергией, а затем вернемся к работе, чтобы вместе помочь продолжать создавать систему, которую мир никогда не видел.

Лично я собираюсь последовать своему собственному совету. На этой неделе я буду расслабляться в Эдинбурге с многими другими разработчиками ядра, выпивать хорошее виски и отдыхать от чтения электронной почты, проводя время с моими друзьями, которых я приобрел в этом сообществе.

И с этим, Линус, я возвращаю вам дерево ядра. Вы можете заниматься merge window ?

Спасибо, greg k-h

 

Версия Linux 4.18, выпущенная чуть более двух месяцев назад, добавила поддержку Snapdragon 845 SoC, файловую систему в пользовательском пространстве FUSE, позволяющую разработчикам создавать новые типы файловых систем, доступные для монтирования пользователями без привилегий, новый интерфейс ядра для асинхронного ввода-вывода и многие другие изменения.

Существенные изменения Linux 4.19 включают:

  • Предварительная поддержка Wi-Fi 6 (802.11ax)
  • Новая экспериментальная файловая система EROFS (Enhanced Read-Only File System) с поддержкой сжатия VLE. Новые файловые системы должны использоваться в приложениях, требующих высокой производительности для чтения, таких как прошивка в телефонах или Live CD. См. исходный код.
  • Дополнительные исправления для ошибки L1TF «Foreshadow» и других ошибок безопасности ЦП, таких как Spectre v2
  • Новый контроллер задержки ввода/вывода пытается гарантировать минимальные показатели задержки ввода-вывода для контрольных групп. Подробнее см. документацию и статью LWN.

Некоторые изменения архитектуры Arm включают:

  • Allwinner
    • Allwinner A10/A13/A20/A23/A33/A64/H3 — Контроллер/системный контроль SRAM
    • Allwinner A64 — отображает clock и bus, выходной сигнал RTC, PWM, R_I2C
    • Allwinner H6 -MMC, PMIC
    • Поддержка Allwinner R40 — HDMI
    • Изменения на плате
      • SPI для Orange Pi PC 2 и Pine64 SoPINE
      • Используйте кнопки включение на крышке корпуса в качестве источника пробуждения для ноутбуков на базе A64
      • Добавлены светодиоды для PineH64
    • Новые устройства — Pine Pinebook, Amarula A64-Relic
  • Rockchip
    • Драйвер clock для Rockchip PX30 SoC
    • Добавлена поддержка Rockchip RK3328 в драйвер syscon GPIO.
    • Устройства управления питанием для IOMMU на платформах Rockchip, близко к работе с kexec, включая Chromebooks
    • Новое устройство — 96Boards RK3399 Плата Ficus
  • Amlogic
    • Драйвер clock — Amlogic Meson axg PCIe и звуковые часы, Amlogic Meson GEN CLK на gxbb, gxl и axg
    • Новый драйвер для сброса Amlogic Meson Audio Arbiter
    • 64-разрядные обновления DT
      • AXG: добавлена поддержка ADC с кнопками, добавлены разъемы для PDM, SPDIF
      • AXG: плата s400: предварительная поддержка аудио
      • GX: nanopi-k2: добавлена поддержка HDMI, CEC, CVBS
      • Новые SoC: S805x S905W
      • Новые платы
        • S905W на основе: Amlogic P281, Oranth Tanix TX3 Mini
        • S805X: плата P241 от Amlogic
  • Samsung
    • Удаление драйверов для Exynos5440, Samsung SoC, которые не получили широкого распространения у пользователей
    • Драйвер Pinctrl
      • Добавлено управление внешним прерываниями пробуждения скрытое внутри драйвера pin-контроллера.
      • Принесены необходимые приостановки/возобновления обратных вызовов для Exynos542x и
        Exynos5260.
      • Документально скрытое требование об одном внешнем прерывании пробуждения узла устройства.
      • Незначительные очистки документации
    • Изменения в DTS:
      • Добавлены две новые платы S5Pv210: мобильные телефоны Samsung Galaxy S и Samsung Galaxy S 4G. Оба из семейства под кодовым названием Aries.
      • Добавлены отсутствующие вторичные свойства ЦП.
      • Очистка от старых файлов и свойств.
      • Добавлены отсутствующие прерывания в узле PWM на Exynos5.
      • Добавлена отсутствующая настройка выключения прерывания на плате Exynos4412 Midas. Прерывания в основном работали благодаря начальной настройке загрузчика.
    • Изменения Arm64 DTS  — очистка от старых свойств и предупреждений в стиле кода.
    • Изменения в Deconfig. Включены параметры, необходимые для загрузки полной системы на мобильных телефонах Samsung Galaxy S на S5Pv210.
  • Qualcomm
    • Квалификационные контроллеры Qualcomm AOSS (Always-on subsystem)
    • Драйверы clock — контроллер часов Qualcomm SDM845, драйвер Qualcomm RPMh clk
    • Добавлена перезагрузка Qualcomm PM8xxx
    • Аудио — поддержка Qualcomm QDSP6 и WCD9335 ASoCs
    • Драйвер Pinctrl — Qualcomm PM8998 и PM8005 поддерживаются в управляющем контроллере SPMI и драйвере GPIO
    • Bluetooth — Добавлена ​​поддержка контроллера Qualcomm wcn3990
    • Обновления ARM64
      • Добавлена поддержка для PM8005/PM8998 и связанных узлов
      • Добавлены/исправлены узлы на SDM845 для I2c, SPI, UART и RPMH
      • Исправлен триггер BT LED на DB410c
      • Удалены устаревшие имена clock на MSM8916
      • Добавлена строка gpio в DB820c
      • Добавлены термические узлы для MSM8996 и SDM845
    • Обновление Arm и ARM64 defconfig  — включена конфигурация Qualcomm NAND
    • Изменение дерева устройств
      • Добавлены отсутствующие OPP на IPQ4019
      • Исправлена загрузка sdhci l20 на Hammerhead
      • Использованы правильные макросы IRQ для прерываний IPQ8064
  • Mediatek
    • Изменение дерева устройств ARM64
      • Mediatek MT7622 — добавлена поддержка EINT, добавлено свойство gpio-range в pinctrl, добавлен earlycon в rfb1, чтобы легче найти ошибки загрузки, исправлен uart clock, добавлен iommu и smi фурнитура
      • Mediatek MT6797 — добавлена поддержка 96 board  для x20 платформ для разработки
      • Зафиксированы охлаждающие ячейки mt7622 и mt8173
    • Поддержка Mediatek MT7621 для Linux-GPIO
    • DRM — исправления для RDMA и Overlay
    • Поддержка Mediatek pwrap (pmic) для MT6797 SoC
    • Новый драйвер таймера для Mediatek SoCs
    • Драйвер mt76x0 добавляет поддержку для Mediatek MT7610U
      USB-донглы Wi-Fi.
    • USB — включение зарядки аккумулятора в Mediatek T-PHY
  • Другие новые аппаратные платформы ARM и SoCs:
    • Atmel — несколько плат Atmel at91 от Laird
    • Broadcom — модуль вычисления Raspberry Pi (CM1) и плата ввода-вывода
    • Marvell — плата объявлений Helios4 от Marvell Armada388 от SolidRun
    • NXP — i.MX6SSL SoC
    • Renesas — RZ / N1D SoC (R9A06G032) с двумя Cortex-A7 с Ethernet, CAN
      и интерфейсы PLC
    • Texas Instruments — TI AM654 SoC  четыре ядра Cortex-A53, подсистема безопасности с контроллерами Cortex-R5, подсистемой связи и PRU и множеством других интерфейсов (PCIe, USB3 и т. д.).

Вот обзор основных изменений MIPS для Linux 4.19:

  • Массивный рефакторинг DMA ops от Christoph Hellwig (удален кода crufty!).
  • NT_MIPS_DSP & NT_MIPS_FP_MODE Примечания ELF и соответствующие реестры для отображения состояния режима DSP ASE и состояния с плавающей запятой, соответственно, как для активной отладки ядра, так и для сбросов.
  • Оптимизирован код с помощью жесткого кодирования cpu_has_ * макросов во время компиляции, когда их значения известны из-за пересмотра ISA, который настроен для сборки ядра.
  • Обработчик исключений EJTAG теперь лучше обрабатывает SMP-системы, в которых ранее ЦП могли перезаписывать значение регистра, сохраненное другим ЦПУ.
  • Реализация memset () приобрела пару исправлений для систем MIPSr6, чтобы вернуть правильные значения в некоторых случаях, когда сохраняется ошибка.
  • ioremap_wc () теперь реализуется с использованием атрибута когерентности кеша без ускорения кеширования, которое обнаруживается во время загрузки, и, при необходимости, возвращается к некэшированному доступу. Специфические для MIPS (и неиспользуемые в дереве) ioremap_uncached_accelerated () и ioremap_cacheable_cow () удаляются.
  • Сценарий prctl (PR_SET_FP_MODE, …) лучше поддерживается для SMP-систем путем переработки способа обеспечения удаленных ЦП, которые могут запускать потоки в пределах затронутого режима переключения процессов
  • Теперь системы, использующие MIPS Coherence Manager, помечены MIPS_IC_SNOOPS_REMOTE, чтобы избежать ненужных затрат на обслуживание кэша при очистке icache.

Вы найдете полный список изменений 4.19 Linux 4.1 (только комментарии), созданные с помощью git log v4.18..v4.19 --stat.  В качестве альтернативы вы можете прочитать полный перечень изменений на KernelNewbies.

Выражаем свою благодарность источнику с которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.