Представлено новое открытое пользовательское окружение Maui Shell
Разработчики дистрибутива Nitrux создали пользовательское окружение Maui Shell, которое может применяться на настольных системах, мобильных устройствах и планшетах, автоматически адаптируясь к размеру экрана и доступным методам ввода информации.
Окружение развивает концепцию "Convergence", подразумевающую возможность работы с одними и теми же приложениями как на сенсорных экранах смартфона и планшета, так и на больших экранах ноутбуков и ПК.
Оболочка использует компоненты для построения графических интерфейсов MauiKit и фреймворк Kirigami, которые развиваются сообществом KDE.
Пользовательское окружение Maui Shell образуют два компонента:
1. Оболочка Cask, предоставляющая контейнер, охватывающий всё содержимое экрана. Оболочка также включает базовые шаблоны таких элементов, как верхняя панель, всплывающие диалоги, экранные карты, области уведомлений, dock-панель, ярлыки, интерфейс вызова программ и т.п.
2. Композитный менеджер Zpace, отвечающий за отображение и размещение окон в контейнере Cask, обработку виртуальных рабочих столов. В качестве основного используется протокол Wayland, работа с которым осуществляется при помощи API Qt Wayland Compositor.
Разработчики дистрибутива Nitrux создали пользовательское окружение Maui Shell, которое может применяться на настольных системах, мобильных устройствах и планшетах, автоматически адаптируясь к размеру экрана и доступным методам ввода информации.
Окружение развивает концепцию "Convergence", подразумевающую возможность работы с одними и теми же приложениями как на сенсорных экранах смартфона и планшета, так и на больших экранах ноутбуков и ПК.
Оболочка использует компоненты для построения графических интерфейсов MauiKit и фреймворк Kirigami, которые развиваются сообществом KDE.
Пользовательское окружение Maui Shell образуют два компонента:
1. Оболочка Cask, предоставляющая контейнер, охватывающий всё содержимое экрана. Оболочка также включает базовые шаблоны таких элементов, как верхняя панель, всплывающие диалоги, экранные карты, области уведомлений, dock-панель, ярлыки, интерфейс вызова программ и т.п.
2. Композитный менеджер Zpace, отвечающий за отображение и размещение окон в контейнере Cask, обработку виртуальных рабочих столов. В качестве основного используется протокол Wayland, работа с которым осуществляется при помощи API Qt Wayland Compositor.
Сравнение производительности игр при использовании Wayland и X. org
Ресурс Phoronix опубликовал результаты сравнения производительности игровых приложений, запускаемых в окружениях на базе Wayland и X. org в Ubuntu 21.10 на системе с графической картой AMD Radeon RX 6800. В тестировании приняли участие игры Total War: Three Kingdoms, Shadow of the Tomb Raider, HITMAN 2, Xonotic, Strange Brigade, Left 4 Dead 2, Batman: Arkham Knight, Counter-Strike: Global Offensive и F1 2020. Тесты проводились при разрешениях экрана 3840x2160 и 1920x1080 как для родных Linux-сборок игр, так и для Windows-игр, запускаемых с использованием связки Proton + DXVK.
В среднем игры в GNOME-сеансе на базе Wayland демонстрировали FPS на 4% выше, чем в сеансе GNOME поверх X. org. В большинстве тестов KDE 5.22.5 немного отставал от GNOME 40.5 при использовании Wayland, но опередил при использовании X. Org в тестах большинства игр (Counter-Strike: Global Offensive, F1 2020, Shadow of the Tomb Raider, Left 4 Dead 2, Xonotic, Total War: Three Kingdoms, Strange Brigade).
Для игр "Total War: Three Kingdoms" и "Shadow of the Tomb Raider" тесты KDE на базе Wayland провести не удалось из-за аварийных завершений игр. В игре HITMAN 2 при использовании KDE, независимо от графической подсистемы, наблюдалось аномальное более чем двухкратное отставание от GNOME и Xfce.
Для игр "Total War: Three Kingdoms" и "Shadow of the Tomb Raider" тесты KDE на базе Wayland провести не удалось из-за аварийных завершений игр. В игре HITMAN 2 при использовании KDE, независимо от графической подсистемы, наблюдалось аномальное более чем двухкратное отставание от GNOME и Xfce.
В играх, поддерживающий OpenGL и Vulkan, при использовании Vulkan FPS был примерно на 15% выше.
Кроме того, опубликованы результаты сравнения производительности различных игр и тестовых приложений при использовании ядер Linux 5.15.10 и 5.16-rc на ноутбуках с процессорами Ryzen 7 PRO 5850U и Ryzen 5 5500U. Тесты показали ощутимое увеличение производительности (от 2 до 14%) при использовании ядра Linux 5.16, сохраняющееся независимо от версии Mesa. Релиз ядра 5.16 ожидается 10 января.
Ресурс Phoronix опубликовал результаты сравнения производительности игровых приложений, запускаемых в окружениях на базе Wayland и X. org в Ubuntu 21.10 на системе с графической картой AMD Radeon RX 6800. В тестировании приняли участие игры Total War: Three Kingdoms, Shadow of the Tomb Raider, HITMAN 2, Xonotic, Strange Brigade, Left 4 Dead 2, Batman: Arkham Knight, Counter-Strike: Global Offensive и F1 2020. Тесты проводились при разрешениях экрана 3840x2160 и 1920x1080 как для родных Linux-сборок игр, так и для Windows-игр, запускаемых с использованием связки Proton + DXVK.
В среднем игры в GNOME-сеансе на базе Wayland демонстрировали FPS на 4% выше, чем в сеансе GNOME поверх X. org. В большинстве тестов KDE 5.22.5 немного отставал от GNOME 40.5 при использовании Wayland, но опередил при использовании X. Org в тестах большинства игр (Counter-Strike: Global Offensive, F1 2020, Shadow of the Tomb Raider, Left 4 Dead 2, Xonotic, Total War: Three Kingdoms, Strange Brigade).
Для игр "Total War: Three Kingdoms" и "Shadow of the Tomb Raider" тесты KDE на базе Wayland провести не удалось из-за аварийных завершений игр. В игре HITMAN 2 при использовании KDE, независимо от графической подсистемы, наблюдалось аномальное более чем двухкратное отставание от GNOME и Xfce.
Для игр "Total War: Three Kingdoms" и "Shadow of the Tomb Raider" тесты KDE на базе Wayland провести не удалось из-за аварийных завершений игр. В игре HITMAN 2 при использовании KDE, независимо от графической подсистемы, наблюдалось аномальное более чем двухкратное отставание от GNOME и Xfce.
В играх, поддерживающий OpenGL и Vulkan, при использовании Vulkan FPS был примерно на 15% выше.
Кроме того, опубликованы результаты сравнения производительности различных игр и тестовых приложений при использовании ядер Linux 5.15.10 и 5.16-rc на ноутбуках с процессорами Ryzen 7 PRO 5850U и Ryzen 5 5500U. Тесты показали ощутимое увеличение производительности (от 2 до 14%) при использовании ядра Linux 5.16, сохраняющееся независимо от версии Mesa. Релиз ядра 5.16 ожидается 10 января.
Выпуск postmarketOS 21.12, Linux-дистрибутива для смартфонов и мобильных устройств
Представлен выпуск проекта postmarketOS 21.12, развивающего дистрибутив Linux для смартфонов, базирующийся на пакетной базе Alpine Linux, стандартной Си-библиотеке Musl и наборе утилит BusyBox. Целью проекта является предоставление Linux-дистрибутива для смартфонов, не зависящего от жизненного цикла поддержки официальных прошивок и не привязанного к типовым решениям основных игроков индустрии, задающих вектор развития. Сборки подготовлены для PINE64 PinePhone, Purism Librem 5 и 23 поддерживаемых сообществом устройств, включая Samsung Galaxy A3/A3/S4, Xiaomi Mi Note 2/Redmi 2, OnePlus 6 и даже Nokia N900. Ограниченная экспериментальная поддержка предоставлена для более чем 300 устройств.
Окружение postmarketOS максимально унифицировано и выносит все специфичные для конкретных устройств компоненты в отдельный пакет, все остальные пакеты идентичны для всех устройств и основаны на пакетах Alpine Linux. В сборках по возможности используется ванильное ядро Linux, а если это невозможно, то ядра из прошивок, подготовленных производителями устройств. В качестве основных пользовательских оболочек предлагаются KDE Plasma Mobile, Phosh и Sxmo, но имеется возможность установки и других окружений, включая GNOME, MATE и Xfce.
Представлен выпуск проекта postmarketOS 21.12, развивающего дистрибутив Linux для смартфонов, базирующийся на пакетной базе Alpine Linux, стандартной Си-библиотеке Musl и наборе утилит BusyBox. Целью проекта является предоставление Linux-дистрибутива для смартфонов, не зависящего от жизненного цикла поддержки официальных прошивок и не привязанного к типовым решениям основных игроков индустрии, задающих вектор развития. Сборки подготовлены для PINE64 PinePhone, Purism Librem 5 и 23 поддерживаемых сообществом устройств, включая Samsung Galaxy A3/A3/S4, Xiaomi Mi Note 2/Redmi 2, OnePlus 6 и даже Nokia N900. Ограниченная экспериментальная поддержка предоставлена для более чем 300 устройств.
Окружение postmarketOS максимально унифицировано и выносит все специфичные для конкретных устройств компоненты в отдельный пакет, все остальные пакеты идентичны для всех устройств и основаны на пакетах Alpine Linux. В сборках по возможности используется ванильное ядро Linux, а если это невозможно, то ядра из прошивок, подготовленных производителями устройств. В качестве основных пользовательских оболочек предлагаются KDE Plasma Mobile, Phosh и Sxmo, но имеется возможность установки и других окружений, включая GNOME, MATE и Xfce.
Для ядра Linux предложена реализация /dev/random, избавленная от привязки к SHA-1
Новая реализация примечательна переходом на использование хеш-функции BLAKE2s вместо SHA1 для операций смешивания энтропии. Изменение позволило повысить безопасность генератора псевдослучайных чисел, благодаря избавлению от проблемного алгоритма SHA1 и исключению перезаписи вектора инициализации RNG. Так как алгоритм BLAKE2s опережает SHA1 по производительности, то его применение также положительно отразилось на производительности генератора псевдослучайных чисел (тестирование на системе с процессором Intel i7-11850H показало увеличение скорости на 131%). Ещё одним плюсом перевода смешивания энтропии на BLAKE2 стала унификация используемых алгоритмов - BLAKE2 применяется в шифре ChaCha, уже применяемом для извлечения случайных последовательностей.
Кроме того, внесены улучшения в криптонадёжный генератор псевдослучайных чисел CRNG, используемый в вызове getrandom. Улучшения сводятся к ограничению вызова медленного генератора RDRAND при извлечении энтропии, что позволяет повысить производительность в 3.7 раза. Джейсон показал, что вызов RDRAND имеет смысл только в ситуации, когда CRNG ещё полностью не инициализирован, но если инициализация CRNG завершена, его значение не влияет на качество генерируемой последовательности и без обращения к RDRAND в этом случае можно обойтись.
Новая реализация примечательна переходом на использование хеш-функции BLAKE2s вместо SHA1 для операций смешивания энтропии. Изменение позволило повысить безопасность генератора псевдослучайных чисел, благодаря избавлению от проблемного алгоритма SHA1 и исключению перезаписи вектора инициализации RNG. Так как алгоритм BLAKE2s опережает SHA1 по производительности, то его применение также положительно отразилось на производительности генератора псевдослучайных чисел (тестирование на системе с процессором Intel i7-11850H показало увеличение скорости на 131%). Ещё одним плюсом перевода смешивания энтропии на BLAKE2 стала унификация используемых алгоритмов - BLAKE2 применяется в шифре ChaCha, уже применяемом для извлечения случайных последовательностей.
Кроме того, внесены улучшения в криптонадёжный генератор псевдослучайных чисел CRNG, используемый в вызове getrandom. Улучшения сводятся к ограничению вызова медленного генератора RDRAND при извлечении энтропии, что позволяет повысить производительность в 3.7 раза. Джейсон показал, что вызов RDRAND имеет смысл только в ситуации, когда CRNG ещё полностью не инициализирован, но если инициализация CRNG завершена, его значение не влияет на качество генерируемой последовательности и без обращения к RDRAND в этом случае можно обойтись.
Опубликован набор патчей, ускоряющих сборку ядра Linux на 50-80%
Инго Молнар, известный разработчик ядра Linux, предложил для обсуждения в списке рассылки разработчиков ядра Linux серию патчей, затрагивающих более половины всех файлов в исходных текстах ядра и обеспечивающих увеличение скорости полной пересборки ядра на 50-80% в зависимости от настроек. Реализованная оптимизация сопряжена с добавлением самого крупного в истории разработки ядра набора изменений - для включения разом предложено 2297 патчей, меняющих более 25 тысяч файлов (10 тысяч заголовочных файлов в каталогах "include/" и "arch/*/include/" и 15 тысяч файлов с исходными текстами).
Прирост производительности достигается за счёт изменения метода обработки заголовочных файлов. Работа над реструктуризацией заголовочных файлов заняла более года и потребовала проведения значительной переработки иерархии и зависимостей.
Проделанная работа позволила на 1-2 порядка сократить размер заголовочных файлов, обрабатываемых на стадии препроцессинга. Например, до оптимизации использование заголовочного файла "linux/gfp.h" приводило к добавлению 13543 строк кода и подключения 303 зависимых заголовочных файлов, а после оптимизации размер сократился до 181 строк и 26 зависимых файлов.
При полной пересборке ядра командой "make -j96 vmlinux" на тестовой системе применение патчей показало сокращение времени сборки ветки v5.16-rc7 с 231.34 до 129.97 секунд (с 15.5 до 27.7 сбороки в час), а также повысило эффективность использования ядер CPU во время сборки. При инкрементальной сборке эффект от оптимизации ещё более заметен: время повторной пересборки ядра после внесения изменений в заголовочные файлы сократилось в разы (от 112% до 173% в зависимости от изменяемого заголовочного файла). Оптимизации пока доступны только для архитектур ARM64, MIPS, Sparc и x86 (32- и 64-бит).
Инго Молнар, известный разработчик ядра Linux, предложил для обсуждения в списке рассылки разработчиков ядра Linux серию патчей, затрагивающих более половины всех файлов в исходных текстах ядра и обеспечивающих увеличение скорости полной пересборки ядра на 50-80% в зависимости от настроек. Реализованная оптимизация сопряжена с добавлением самого крупного в истории разработки ядра набора изменений - для включения разом предложено 2297 патчей, меняющих более 25 тысяч файлов (10 тысяч заголовочных файлов в каталогах "include/" и "arch/*/include/" и 15 тысяч файлов с исходными текстами).
Прирост производительности достигается за счёт изменения метода обработки заголовочных файлов. Работа над реструктуризацией заголовочных файлов заняла более года и потребовала проведения значительной переработки иерархии и зависимостей.
Проделанная работа позволила на 1-2 порядка сократить размер заголовочных файлов, обрабатываемых на стадии препроцессинга. Например, до оптимизации использование заголовочного файла "linux/gfp.h" приводило к добавлению 13543 строк кода и подключения 303 зависимых заголовочных файлов, а после оптимизации размер сократился до 181 строк и 26 зависимых файлов.
При полной пересборке ядра командой "make -j96 vmlinux" на тестовой системе применение патчей показало сокращение времени сборки ветки v5.16-rc7 с 231.34 до 129.97 секунд (с 15.5 до 27.7 сбороки в час), а также повысило эффективность использования ядер CPU во время сборки. При инкрементальной сборке эффект от оптимизации ещё более заметен: время повторной пересборки ядра после внесения изменений в заголовочные файлы сократилось в разы (от 112% до 173% в зависимости от изменяемого заголовочного файла). Оптимизации пока доступны только для архитектур ARM64, MIPS, Sparc и x86 (32- и 64-бит).
В KDE планируют в 2022 году достичь паритета сеансов Wayland и X11
Нейт Грэм, разработчик, занимающийся контролем качества в проекте KDE, поделился своими мыслями о том, в каком направлении проект KDE будет развиваться в 2022 году. Среди прочего, он считает, что сеанс KDE Plasma на базе протокола Wayland станет пригодным для повседневного использования существенной долей пользователей и сможет полностью заменить сеанс на основе X11. В настоящее время отслеживается около 20 известных проблем, наблюдаемых при использовании Wayland в KDE, и последнее время добавляемые в список проблемы становятся все менее существенными.
Среди других планов:
— Объединение настроек языков и форматов в конфигураторе.
— Переработка набора пиктограмм Breeze. Цветные пиктограммы будут визуально обновлены, смягчены, скруглены и избавлены от устаревших элементов, таких как длинные тени. Монохромные пиктограммы также будут модернизированы и адаптированы для лучшего сочетания с разными цветовыми схемами.
— Решение всех проблем с многомониторными конфигурациями.
— Поддержка инерционной прокрутки в программах на базе QtQuick.
— Инициатива по исправлению как можно большего числа ошибок в KDE Plasma и связанных компонентах (KWin, конфигураторе, Discover и т.п.), которые всплывают в первые 15 минут работы в KDE. По мнению Нейта, подобные ошибки в основном являются источником формирования негативного мнения о KDE у пользователей.
Нейт Грэм, разработчик, занимающийся контролем качества в проекте KDE, поделился своими мыслями о том, в каком направлении проект KDE будет развиваться в 2022 году. Среди прочего, он считает, что сеанс KDE Plasma на базе протокола Wayland станет пригодным для повседневного использования существенной долей пользователей и сможет полностью заменить сеанс на основе X11. В настоящее время отслеживается около 20 известных проблем, наблюдаемых при использовании Wayland в KDE, и последнее время добавляемые в список проблемы становятся все менее существенными.
Среди других планов:
— Объединение настроек языков и форматов в конфигураторе.
— Переработка набора пиктограмм Breeze. Цветные пиктограммы будут визуально обновлены, смягчены, скруглены и избавлены от устаревших элементов, таких как длинные тени. Монохромные пиктограммы также будут модернизированы и адаптированы для лучшего сочетания с разными цветовыми схемами.
— Решение всех проблем с многомониторными конфигурациями.
— Поддержка инерционной прокрутки в программах на базе QtQuick.
— Инициатива по исправлению как можно большего числа ошибок в KDE Plasma и связанных компонентах (KWin, конфигураторе, Discover и т.п.), которые всплывают в первые 15 минут работы в KDE. По мнению Нейта, подобные ошибки в основном являются источником формирования негативного мнения о KDE у пользователей.
🔥2
Релиз дистрибутива Linux Mint 20.3
— В состав включён новый выпуск десктоп-окружения Cinnamon 5.2, оформление и организация работы в котором продолжает развитие идей GNOME 2 - пользователю предлагается рабочий стол и панель с меню, областью быстрого запуска, перечнем открытых окон и системным лотком с запущенными апплетами.
— Модернизированы темы оформления. Скруглены углы окон. В заголовках окон увеличен размер кнопок управления окном и добавлены дополнительные отступы вокруг пиктограмм для упрощения попадания при клике. Отображение теней переработано для унификации внешнего вида окон, независимо от отрисовки на стороне приложения (CSD) или сервера.
— В файловом менеджере Nemo реализована возможность автоматического переименования файлов, если их имена при копировании конфликтуют с другими файлами. Решена проблема с очисткой буфера обмена в случае завершения процесса Nemo. Улучшен внешний вид панели инструментов.
И другие изменения.
— В состав включён новый выпуск десктоп-окружения Cinnamon 5.2, оформление и организация работы в котором продолжает развитие идей GNOME 2 - пользователю предлагается рабочий стол и панель с меню, областью быстрого запуска, перечнем открытых окон и системным лотком с запущенными апплетами.
— Модернизированы темы оформления. Скруглены углы окон. В заголовках окон увеличен размер кнопок управления окном и добавлены дополнительные отступы вокруг пиктограмм для упрощения попадания при клике. Отображение теней переработано для унификации внешнего вида окон, независимо от отрисовки на стороне приложения (CSD) или сервера.
— В файловом менеджере Nemo реализована возможность автоматического переименования файлов, если их имена при копировании конфликтуют с другими файлами. Решена проблема с очисткой буфера обмена в случае завершения процесса Nemo. Улучшен внешний вид панели инструментов.
И другие изменения.
👍10
Вторая версия патчей c реструктуризацией заголовочных файлов ядра Linux
Представлена вторая версия набора патчей, позволяющего значительно сократить время пересборки ядра за счёт реструктуризации иерархии заголовочных файлов и сокращения числа перекрёстных зависимостей. От предложенной несколько дней назад первой версии новый вариант отличается адаптацией для ядра 5.16-rc8, добавлением дополнительных оптимизаций и реализацией поддержки сборки с использованием компилятора Clang. При использовании Clang применение патчей позволило сократить время сборки на 88% или на 77% в показателях расходования ресурсов CPU. При полной пересборке ядра командой "make -j96 vmlinux время сборки сократилось с 337.788 до 179.773 секунд.
В новой версии также решена проблема с плагинами GCC, исправлены выявленные в процессе начального рецензирования ошибки и проведена унификация дубликатов объявления структуры "task_struct_per_task". Кроме того, продолжена оптимизация заголовочного файла linux/sched.h и реализована оптимизация заголовочных файлов подсистемы RDMA (infiniband), которая позволила дополнительно сократить время сборки на 9% относительно первой версии патчей. Число Си-файлов ядра, подключающих заголовочный файл linux/sched.h, сокращено с 68% до 36% по сравнению с первой версией патчей (с 99% до 36% по сравнению с исходным ядром).
Представлена вторая версия набора патчей, позволяющего значительно сократить время пересборки ядра за счёт реструктуризации иерархии заголовочных файлов и сокращения числа перекрёстных зависимостей. От предложенной несколько дней назад первой версии новый вариант отличается адаптацией для ядра 5.16-rc8, добавлением дополнительных оптимизаций и реализацией поддержки сборки с использованием компилятора Clang. При использовании Clang применение патчей позволило сократить время сборки на 88% или на 77% в показателях расходования ресурсов CPU. При полной пересборке ядра командой "make -j96 vmlinux время сборки сократилось с 337.788 до 179.773 секунд.
В новой версии также решена проблема с плагинами GCC, исправлены выявленные в процессе начального рецензирования ошибки и проведена унификация дубликатов объявления структуры "task_struct_per_task". Кроме того, продолжена оптимизация заголовочного файла linux/sched.h и реализована оптимизация заголовочных файлов подсистемы RDMA (infiniband), которая позволила дополнительно сократить время сборки на 9% относительно первой версии патчей. Число Си-файлов ядра, подключающих заголовочный файл linux/sched.h, сокращено с 68% до 36% по сравнению с первой версией патчей (с 99% до 36% по сравнению с исходным ядром).
👍13🔥5
Релиз ядра Linux 5.16
После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 5.16. Среди наиболее заметных изменений: системный вызов futex_waitv для повышения производительности Windows-игр в Wine, отслеживание ошибок в ФС через fanotify, концепция фолиантов в системе управления памятью, поддержка процессорных инструкций AMX, возможность резервирования памяти за сетевыми сокетами, поддержка в netfilter классификации пакетов на стадии "egress", задействование подсистемы DAMON для упреждающего вытеснения невостребованных областей памяти, улучшение обработки перегрузок при большом объёме операций записи, поддержка многоприводных жёстких дисков.
В новую версию принято 15415 исправлений от 2105 разработчиков, размер патча - 45 МБ (изменения затронули 12023 файлов, добавлено 685198 строк кода, удалено 263867 строк). Около 44% всех представленных в 5.16 изменений связаны с драйверами устройств, примерно 16% изменений имеют отношение к обновлению кода, специфичного для аппаратных архитектур, 16% связано с сетевым стеком, 4% - с файловыми системами и 4% c внутренними подсистемами ядра.
После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 5.16. Среди наиболее заметных изменений: системный вызов futex_waitv для повышения производительности Windows-игр в Wine, отслеживание ошибок в ФС через fanotify, концепция фолиантов в системе управления памятью, поддержка процессорных инструкций AMX, возможность резервирования памяти за сетевыми сокетами, поддержка в netfilter классификации пакетов на стадии "egress", задействование подсистемы DAMON для упреждающего вытеснения невостребованных областей памяти, улучшение обработки перегрузок при большом объёме операций записи, поддержка многоприводных жёстких дисков.
В новую версию принято 15415 исправлений от 2105 разработчиков, размер патча - 45 МБ (изменения затронули 12023 файлов, добавлено 685198 строк кода, удалено 263867 строк). Около 44% всех представленных в 5.16 изменений связаны с драйверами устройств, примерно 16% изменений имеют отношение к обновлению кода, специфичного для аппаратных архитектур, 16% связано с сетевым стеком, 4% - с файловыми системами и 4% c внутренними подсистемами ядра.
👍16
Релиз операционной системы DragonFly BSD 6.2
— Из NetBSD перенесён гипервизор NVMM, поддерживающий аппаратные механизмы виртуализации SVM для CPU AMD и VMX для CPU Intel. В NVMM на уровне ядра выполняется только минимально необходимый набор обвязок вокруг аппаратных механизмов виртуализации, а весь код эмуляции оборудования работает в пространстве пользователя.
— Продолжена работа над файловой системой HAMMER2. В новом выпуске реализована поддержка команды growfs, позволяющей изменять размер существующего раздела HAMMER2. В состав включена экспериментальная поддержка компонента xdisk, позволяющего монтировать разделы HAMMER2 с удалённых систем.
— Компоненты интерфейса DRM (Direct Rendering Manager), менеджер управления видеопамятью TTM и драйвер amdgpu синхронизированы с ядром Linux 4.19, что позволило обеспечить поддержку чипов AMD вплоть до APU 3400G. Обновлён драйвер drm/i915 для GPU Intel, в котором появилась поддержка GPU Whiskey Lake и решена проблема со сбоями при запуске. Драйвер Radeon переведён на использование менеджера видеопамяти TTM.
— В вызове poll реализована поддержка события POLLHUP, возвращаемого при закрытии второго конца неименованного канала или FIFO.
И другие изменения.
— Из NetBSD перенесён гипервизор NVMM, поддерживающий аппаратные механизмы виртуализации SVM для CPU AMD и VMX для CPU Intel. В NVMM на уровне ядра выполняется только минимально необходимый набор обвязок вокруг аппаратных механизмов виртуализации, а весь код эмуляции оборудования работает в пространстве пользователя.
— Продолжена работа над файловой системой HAMMER2. В новом выпуске реализована поддержка команды growfs, позволяющей изменять размер существующего раздела HAMMER2. В состав включена экспериментальная поддержка компонента xdisk, позволяющего монтировать разделы HAMMER2 с удалённых систем.
— Компоненты интерфейса DRM (Direct Rendering Manager), менеджер управления видеопамятью TTM и драйвер amdgpu синхронизированы с ядром Linux 4.19, что позволило обеспечить поддержку чипов AMD вплоть до APU 3400G. Обновлён драйвер drm/i915 для GPU Intel, в котором появилась поддержка GPU Whiskey Lake и решена проблема со сбоями при запуске. Драйвер Radeon переведён на использование менеджера видеопамяти TTM.
— В вызове poll реализована поддержка события POLLHUP, возвращаемого при закрытии второго конца неименованного канала или FIFO.
И другие изменения.
👍2
Уязвимость в подсистеме eBPF, позволяющая выполнить код на уровне ядра Linux
В подсистеме eBPF, позволяющей запускать обработчики внутри ядра Linux в специальной виртуальной машине с JIT, выявлена уязвимость (CVE-2021-4204), дающая возможность локальному непривилегированному пользователю добиться повышения привилегий и выполнения своего кода на уровне ядра Linux. Проблема проявляется начиная с ядра Linux 5.8 и пока остаётся неисправленной (затрагивает в том числе выпуск 5.16). Заявлено о создании рабочего эксплоита, который планируют опубликовать 18 января (пользователям и разработчикам дана неделя на устранение уязвимости).
Уязвимость вызвана некорректной проверкой передаваемых для выполнения eBPF-программ. Подсистема eBPF предоставляет вспомогательные функции, корректность использования которых проверяет специальный верификатор. Некоторые функции требуют передачи значения PTR_TO_MEM в качестве аргумента и для предотвращения возможных переполнений буфера верификатор должен знать размер связанной с аргументом памяти. Для функций bpf_ringbuf_submit и bpf_ringbuf_discard данные о размере передаваемой памяти не сообщались верификатору, что могло использоваться для перезаписи областей памяти за границей буфера при выполнении специально оформленного eBPF-кода.
Для проведения атаки пользователь должен иметь возможность загрузки своей BPF-программы, а многие свежие дистрибутивы Linux по умолчанию блокируют такую возможность (в том числе непривилегрированный доступ к eBPF теперь запрещён по умолчанию и в самом ядре, начиная с выпуска 5.16). Например, уязвимость может быть эксплуатирована в конфигурации по умолчанию в Ubuntu 20.04 LTS, но в окружениях Ubuntu 22.04-dev, Debian 11, openSUSE 15.3, RHEL 8.5, SUSE 15-SP4 и Fedora 33 проявляется только если администратор выставил параметр kernel.unprivileged_bpf_disabled в значение 0. В качестве обходного пути блокирования уязвимости можно запретить выполнение BPF-программ непривилегированным пользователям командой "sysctl -w kernel.unprivileged_bpf_disabled=1".
В подсистеме eBPF, позволяющей запускать обработчики внутри ядра Linux в специальной виртуальной машине с JIT, выявлена уязвимость (CVE-2021-4204), дающая возможность локальному непривилегированному пользователю добиться повышения привилегий и выполнения своего кода на уровне ядра Linux. Проблема проявляется начиная с ядра Linux 5.8 и пока остаётся неисправленной (затрагивает в том числе выпуск 5.16). Заявлено о создании рабочего эксплоита, который планируют опубликовать 18 января (пользователям и разработчикам дана неделя на устранение уязвимости).
Уязвимость вызвана некорректной проверкой передаваемых для выполнения eBPF-программ. Подсистема eBPF предоставляет вспомогательные функции, корректность использования которых проверяет специальный верификатор. Некоторые функции требуют передачи значения PTR_TO_MEM в качестве аргумента и для предотвращения возможных переполнений буфера верификатор должен знать размер связанной с аргументом памяти. Для функций bpf_ringbuf_submit и bpf_ringbuf_discard данные о размере передаваемой памяти не сообщались верификатору, что могло использоваться для перезаписи областей памяти за границей буфера при выполнении специально оформленного eBPF-кода.
Для проведения атаки пользователь должен иметь возможность загрузки своей BPF-программы, а многие свежие дистрибутивы Linux по умолчанию блокируют такую возможность (в том числе непривилегрированный доступ к eBPF теперь запрещён по умолчанию и в самом ядре, начиная с выпуска 5.16). Например, уязвимость может быть эксплуатирована в конфигурации по умолчанию в Ubuntu 20.04 LTS, но в окружениях Ubuntu 22.04-dev, Debian 11, openSUSE 15.3, RHEL 8.5, SUSE 15-SP4 и Fedora 33 проявляется только если администратор выставил параметр kernel.unprivileged_bpf_disabled в значение 0. В качестве обходного пути блокирования уязвимости можно запретить выполнение BPF-программ непривилегированным пользователям командой "sysctl -w kernel.unprivileged_bpf_disabled=1".
Используемый в Fedora и RHEL инсталлятор Anaconda переводят на web-интерфейс
Иржи Конечный (Jiri Konecny) из компании Red Hat объявил о работе по модернизации и улучшению пользовательского интерфейса инсталлятора Anaconda, применяемого в Fedora, RHEL, CentOS и некоторых других дистрибутивах Linux. Примечательно, что вместо библиотеки GTK новый интерфейс будет построен на базе web-технологий и будет допускать удалённое управление через web-браузер. Отмечается, что решение о переработке инсталлятора уже принято, но реализация пока находится на стадии рабочего прототипа.
В качестве основы для создания нового интерфейса задействованы компоненты проекта Cockpit, используемого в продуктах Red Hat для настройки и управления серверами. Cockpit выбран как хорошо зарекомендовавшее себя решение с поддержкой бэкенда для взаимодействия с инсталлятором (Anaconda DBus). Кроме того, применение Cockpit позволит добиться единообразия и унифицировать различные компоненты управления системой. Применение web-интерфейса значительно повысит удобство удалённого управления установкой, которое не сравнится с текущим решением на базе протокола VNC.
Переработка интерфейса будет основываться на уже проделанной работе по повышению модульности инсталлятора и заметно не отразится на пользователях Fedora, так как основная часть Anaconda уже преобразована в модули, взаимодействующие через API DBus, и новый интерфейс будет использовать готовый API без внутренней переработки. Сроки начала публичного тестирования нового интерфейса и готовности для продвижения его в upstream на данной стадии разработки не называются, но разработчики обещают периодически публиковать отчёты о развитии проекта.
Иржи Конечный (Jiri Konecny) из компании Red Hat объявил о работе по модернизации и улучшению пользовательского интерфейса инсталлятора Anaconda, применяемого в Fedora, RHEL, CentOS и некоторых других дистрибутивах Linux. Примечательно, что вместо библиотеки GTK новый интерфейс будет построен на базе web-технологий и будет допускать удалённое управление через web-браузер. Отмечается, что решение о переработке инсталлятора уже принято, но реализация пока находится на стадии рабочего прототипа.
В качестве основы для создания нового интерфейса задействованы компоненты проекта Cockpit, используемого в продуктах Red Hat для настройки и управления серверами. Cockpit выбран как хорошо зарекомендовавшее себя решение с поддержкой бэкенда для взаимодействия с инсталлятором (Anaconda DBus). Кроме того, применение Cockpit позволит добиться единообразия и унифицировать различные компоненты управления системой. Применение web-интерфейса значительно повысит удобство удалённого управления установкой, которое не сравнится с текущим решением на базе протокола VNC.
Переработка интерфейса будет основываться на уже проделанной работе по повышению модульности инсталлятора и заметно не отразится на пользователях Fedora, так как основная часть Anaconda уже преобразована в модули, взаимодействующие через API DBus, и новый интерфейс будет использовать готовый API без внутренней переработки. Сроки начала публичного тестирования нового интерфейса и готовности для продвижения его в upstream на данной стадии разработки не называются, но разработчики обещают периодически публиковать отчёты о развитии проекта.
Уязвимость в XFS, позволяющая читать сырые данные блочного устройства
В коде файловой системы XFS обнаружена уязвимость (CVE-2021-4155), позволяющая локальному непривилегированному пользователю читать данные неиспользуемых блоков напрямую с блочного устройства. Все значительные версии ядра Linux старше 5.16, содержащие драйвер XFS, подвержены этой проблеме. Исправление вошло в версию 5.16, а также в обновления ядер 5.15.14, 5.10.91, 5.4.171, 4.19.225 и т.д.
Уязвимость вызвана некорректным поведением двух специфичных для XFS ioctl(XFS_IOC_ALLOCSP) и ioctl(XFS_IOC_FREESP), которые являются функциональным аналогом общеядерного системного вызова fallocate(). При увеличении размера файла, не выровненного на размер блока, ioctl XFS_IOC_ALLOCSP/XFS_IOC_FREESP не обнуляют хвостовые байты до следующей границы блока. Таким образом, на XFS со стандартным размером блока 4096 байт из каждого блока атакующий может прочитать до 4095 байт предыдущих записанных данных. В указанных областях могут содержаться данные удалённых файлов, дефрагментированных файлов, а также файлов с дедуплицированными блоками.
Поскольку ioctl(XFS_IOC_ALLOCSP) и ioctl(XFS_IOC_FREESP) по функциональности практически не отличаются от стандартного fallocate(), и единственным их отличием является утечка данных, их наличие похоже на бекдор. Несмотря на общую политику – не изменять существующие интерфейсы в ядре, – по предложению Линуса, принято решение полностью удалить эти ioctl'ы в следующей версии.
В коде файловой системы XFS обнаружена уязвимость (CVE-2021-4155), позволяющая локальному непривилегированному пользователю читать данные неиспользуемых блоков напрямую с блочного устройства. Все значительные версии ядра Linux старше 5.16, содержащие драйвер XFS, подвержены этой проблеме. Исправление вошло в версию 5.16, а также в обновления ядер 5.15.14, 5.10.91, 5.4.171, 4.19.225 и т.д.
Уязвимость вызвана некорректным поведением двух специфичных для XFS ioctl(XFS_IOC_ALLOCSP) и ioctl(XFS_IOC_FREESP), которые являются функциональным аналогом общеядерного системного вызова fallocate(). При увеличении размера файла, не выровненного на размер блока, ioctl XFS_IOC_ALLOCSP/XFS_IOC_FREESP не обнуляют хвостовые байты до следующей границы блока. Таким образом, на XFS со стандартным размером блока 4096 байт из каждого блока атакующий может прочитать до 4095 байт предыдущих записанных данных. В указанных областях могут содержаться данные удалённых файлов, дефрагментированных файлов, а также файлов с дедуплицированными блоками.
Поскольку ioctl(XFS_IOC_ALLOCSP) и ioctl(XFS_IOC_FREESP) по функциональности практически не отличаются от стандартного fallocate(), и единственным их отличием является утечка данных, их наличие похоже на бекдор. Несмотря на общую политику – не изменять существующие интерфейсы в ядре, – по предложению Линуса, принято решение полностью удалить эти ioctl'ы в следующей версии.
Встречайте бесплатные редакторы для частного пользования на Linux! МойОфис, российский производитель офисного ПО представляет «МойОфис Стандартный. Домашняя версия». Продукт можно бесплатно скачать, он не содержит рекламы, не требует регистрации и подключения к интернету.
Решение представлено в виде установочных пакетов DEB и RPM, предназначенных для развертывания в различных операционных системах Linux. Полностью совместимо с российскими ОС: Astra Linux и «Альт».
Подробнее о возможностях продукта читайте в обзоре на Хабре! 🐧.
Попробуйте прямо сейчас — удобные редакторы можно скачать напрямую с сайта производителя.
Решение представлено в виде установочных пакетов DEB и RPM, предназначенных для развертывания в различных операционных системах Linux. Полностью совместимо с российскими ОС: Astra Linux и «Альт».
Подробнее о возможностях продукта читайте в обзоре на Хабре! 🐧.
Попробуйте прямо сейчас — удобные редакторы можно скачать напрямую с сайта производителя.
Хабр
МойОфис для частных пользователей вышел на Linux. Изучаем офисные редакторы компании
В апреле 2021 года, параллельно с началом государственной программы предустановки российского ПО на умные устройства, МойОфис впервые выпустил бесплатные настольные редакторы документов для частных...
Linux готовится окончательно удалить поддержку формата a.out
Linux полагался на формат a.out до версии v1.2 в середине 90-х, когда ELF стал популярным форматом для двоичных файлов. Компиляторы и другие компоненты набора инструментов в течение многих лет ушли от формата файла a.out.
Борислав Петков (Borislav Petkov) предложил исправление, удаляющее поддержку a.out из ядра. Другие разработчики также высказались за устранение поддержки a.out. Это исправление не было отправлено для v5.17 и может быть отложено до v5.18. В любом случае, похоже, что в этом году ядро Linux прекратит поддержку a.out.
Linux полагался на формат a.out до версии v1.2 в середине 90-х, когда ELF стал популярным форматом для двоичных файлов. Компиляторы и другие компоненты набора инструментов в течение многих лет ушли от формата файла a.out.
Борислав Петков (Borislav Petkov) предложил исправление, удаляющее поддержку a.out из ядра. Другие разработчики также высказались за устранение поддержки a.out. Это исправление не было отправлено для v5.17 и может быть отложено до v5.18. В любом случае, похоже, что в этом году ядро Linux прекратит поддержку a.out.
Нарушение обратной совместимости в популярном NPM-пакете привело к сбоям в различных проектах
Источником проблем стал новый выпуск пакета mini-css-extract-plugin 2.5.0, предназначенного для извлечения CSS в отдельные файлы. Пакет насчитывает более 10 млн еженедельных загрузок и используется в качестве прямой зависимости у более чем 7 тысяч проектов.
В новой версии были внесены изменения, нарушающие обратную совместимость при импорте библиотеки и приводившие к выводу ошибки при попытке использования ранее допустимой и описанной в документации конструкции "const MiniCssExtractPlugin = require('mini-css-extract-plugin')", которую при переходе на новую версию потребовалось заменить на "const MiniCssExtractPlugin = require("mini-css-extract-plugin").default".
Проблема проявилась в проектах, не применяющих явную привязку к номеру версии при подключении зависимостей. В числе пострадавших оказались пользователи развиваемого компанией Facebook пакета create-react-app, подключающего mini-css-extract-plugin в качестве зависимости. Проблема также затронула пакеты @ wordpress/noscripts, @ auth0/auth0-spa-js, sql-formatter-gui, LedgerSMB, vip-go-mu-plugins, cybros, vue-cli, chore и т.д.
Источником проблем стал новый выпуск пакета mini-css-extract-plugin 2.5.0, предназначенного для извлечения CSS в отдельные файлы. Пакет насчитывает более 10 млн еженедельных загрузок и используется в качестве прямой зависимости у более чем 7 тысяч проектов.
В новой версии были внесены изменения, нарушающие обратную совместимость при импорте библиотеки и приводившие к выводу ошибки при попытке использования ранее допустимой и описанной в документации конструкции "const MiniCssExtractPlugin = require('mini-css-extract-plugin')", которую при переходе на новую версию потребовалось заменить на "const MiniCssExtractPlugin = require("mini-css-extract-plugin").default".
Проблема проявилась в проектах, не применяющих явную привязку к номеру версии при подключении зависимостей. В числе пострадавших оказались пользователи развиваемого компанией Facebook пакета create-react-app, подключающего mini-css-extract-plugin в качестве зависимости. Проблема также затронула пакеты @ wordpress/noscripts, @ auth0/auth0-spa-js, sql-formatter-gui, LedgerSMB, vip-go-mu-plugins, cybros, vue-cli, chore и т.д.