Linux / Линукс – Telegram
Linux / Линукс
12.8K subscribers
6.27K photos
176 videos
27 files
6.51K links
№ 4922181359
Все о мире Свободного Программного Обеспечения

🤝 Для связи - @raz_raz
💬 Чат - t.me/linuxgram_chat
🔷 ВК - vk.com/linux0ids
💡 Предложка - @linux_gram_bot

Заказать рекламу через биржу:
https://telega.in/c/linux_gram
Download Telegram
Опубликован набор патчей, ускоряющих сборку ядра 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 в дикой природе
В KDE планируют в 2022 году достичь паритета сеансов Wayland и X11

Нейт Грэм, разработчик, занимающийся контролем качества в проекте 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. Улучшен внешний вид панели инструментов.
И другие изменения.
👍10
🎉6👍4😁2
Вторая версия патчей 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% по сравнению с исходным ядром).
👍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 внутренними подсистемами ядра.
👍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.
И другие изменения.
👍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".
Проект Raspberry Pi Linux Mini PC на солнечных батареях
🔥2🤮2
Используемый в 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 на данной стадии разработки не называются, но разработчики обещают периодически публиковать отчёты о развитии проекта.
Уязвимость в 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'ы в следующей версии.
Возможно, это забрало несколько лет жизни..
Встречайте бесплатные редакторы для частного пользования на Linux! МойОфис, российский производитель офисного ПО представляет «МойОфис Стандартный. Домашняя версия». Продукт можно бесплатно скачать, он не содержит рекламы, не требует регистрации и подключения к интернету.

Решение представлено в виде установочных пакетов DEB и RPM, предназначенных для развертывания в различных операционных системах Linux. Полностью совместимо с российскими ОС: Astra Linux и «Альт».

Подробнее о возможностях продукта читайте в обзоре на Хабре! 🐧.
Попробуйте прямо сейчас — удобные редакторы можно скачать напрямую с сайта производителя.
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 и т.д.
Четвёртая редакция патчей для ядра Linux с поддержкой языка Rust

Автор проекта Rust-for-Linux, предложил для рассмотрения разработчиками ядра Linux четвёртый вариант компонентов для разработки драйверов устройств на языке Rust. Поддержка Rust рассматривается как экспериментальная, но уже согласована для включения в ветку linux-next и достаточно развита.

В новом варианте патчей продолжено устранение замечаний, высказанных в процессе обсуждения предыдущих редакций патчей. В новой версии:
— Осуществлён переход на использование в качестве эталонного компилятора стабильного выпуска Rust 1.58.0.
— Добавлены автоматические проверки наличия подходящего инструментария Rust и расширены возможности по тестированию поддержки Rust в системе.
— Предложены новые абстракции для доступа из кода на языке Rust к таблицам идентификаторов устройств ("IdArray" и "IdTable").
— Добавлены прослойки для обращения к функциям, связанным с таймером (clock framework).
— Драйверы для платформ теперь определены через реализацию типажей.
— Добавлен новый макрос для упрощения регистрации драйверов платформ, а также предложен новый шаблон типового драйвера.
И другие изменения.
Super Tux появился в Steam
​​Тестирование рабочего стола KDE Plasma 5.24

Доступна для тестирования бета-версия пользовательской оболочки Plasma 5.24. Протестировать новый выпуск можно через Live-сборку от проекта openSUSE и сборки от проекта KDE Neon Testing edition. Релиз ожидается 8 февраля.

Некоторые улучшения:
— Модернизирована тема оформления Breeze.
— Улучшено отображение уведомлений.
— Изменено оформление менеджера паролей "Plasma Pass".
— В виджет с часами добавлена настройка для вывода даты под временем.
— В виджетах управления сетевым соединением и буфером обмена появилась возможность навигации только при помощи клавиатуры.
— В виджете с информацией о Bluetooth-соединениях обеспечена индикация сопряжения с телефоном.
— В виджете для управления воспроизведением мультимедийных файлов добавлена корректная индикация прекращения воспроизведения при закрытии проигрывателя.
И другие изменения.
Разработчики Manjaro Linux над чем-то работают..
​​Выпуск дистрибутива Deepin 20.4, развивающего собственное графическое окружение

Некоторые новшества:
— В инсталляторе изменено соглашение о конфиденциальности и оптимизирована логика создания дисковых разделов.
— Браузер переведён с движка Chromium 83 на Chromium 93. Добавлена поддержка группировки вкладок, коллекций, быстрого поиска во вкладках и обмена ссылками.
— В System Monitor добавлен новый плагин для мониторинга за параметрами системы, позволяющий более точно отслеживать нагрузку на память и CPU, и выводящий уведомления при превышении заданного порога нагрузки или выявления процессов, потребляющих излишне много ресурсов.
— Интерфейс поиска Grand Search теперь может быть включён или выключен в настройках панели. В результатах поиска появилась возможность показа путей для файлов и каталогов при клике с нажатой клавишей Ctrl.
— Для ярлыков на рабочем столе увеличено количество показываемых символов в имени файла. В файловом менеджере на странице Computer добавлен показ сторонних приложений.
И другие изменения.