The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

·17.06.2024 Опубликован postmarketOS 24.06, Linux-дистрибутив для смартфонов и мобильных устройств (65 +8)
  После 6 месяцев разработки представлен выпуск проекта postmarketOS 24.06, развивающего дистрибутив Linux для смартфонов, базирующийся на пакетной базе Alpine Linux, стандартной Си-библиотеке Musl и наборе утилит BusyBox. Целью проекта является предоставление Linux-дистрибутива для смартфонов, не зависящего от жизненного цикла поддержки официальных прошивок и не привязанного к типовым решениям основных игроков индустрии, задающих вектор развития. Сборки подготовлены для PINE64 PinePhone, Purism Librem 5 и 50 поддерживаемых сообществом устройств, включая OnePlus 6, Google Nexus 10, Nokia N900, Lenovo A6000, ASUS MeMo Pad 7, а также различные модели Samsung Galaxy и Xiaomi. Ограниченная экспериментальная поддержка предоставлена для более чем 500 устройств.

Окружение postmarketOS максимально унифицировано и выносит все специфичные для конкретных устройств компоненты в отдельный пакет, все остальные пакеты идентичны для всех устройств и основаны на пакетах Alpine Linux. В сборках по возможности используется ванильное ядро Linux, а если это невозможно, то ядра из прошивок, подготовленных производителями устройств. В качестве основных пользовательских оболочек предлагаются KDE Plasma Mobile, Phosh, GNOME Mobile и Sxmo, но имеется возможность установки и других окружений, включая MATE и Xfce.

В новом выпуске:

  • Число официально поддерживаемых разработчиками и сообществом устройств, для которых формируются готовые сборки, увеличено с 45 до 50. По сравнению с версией postmarketOS 23.12 добавлена поддержка общей платформы "Generic x86_64", пригодной для установки дистрибутива на многие обычные ПК и ноутбуки. Также добавлена платформа "NVIDIA Tegra armv7", которую можно использовать на устройствах с SoC NVIDIA Tegra 2/3/4, среди которых Asus Transformer, Google Nexus 7 (2012), LG Optimus Vu, Microsoft Surface RT и WEXLER Tab 7t. Кроме того, добавлены отдельные сборки для устройств Google Nexus 10, Lenovo ThinkPad X13s и Microsoft Surface RT.
  • В состав релиза включено 211 устройств из категории "testing", уровень поддержки которых варьируется от возможности загрузки до работоспособности почти всех функций. Сборки для данных устройств могут быть подготовлены при помощи инструментария pmbootstrap и готовых пакетов из репозитория проекта.
  • Пакетная база синхронизирована с Alpine Linux 3.20.
  • Оболочка KDE Plasma Mobile обновлена до версии 6.0.3 (ранее поставлялась версия 5.27.11). Задействован полностью переписанный домашний экран Folio, позволяющий пользователю произвольно размещать приложения и виджеты на страницах, распределять приложения по тематическим разделам, просматривать общий список приложений (жест сдвиг вверх) и выполнять поиск через вызов KRunner (жест сдвиг вниз). Добавлен интерфейс начальной настройки, показываемый при первом запуске и позволяющий быстро настроить Wi-Fi, параметры соединения через сотового оператора, часовой пояс, уровень масштабирования и яркость экрана.
  • Обновлено пользовательское окружение GNOME Mobile, в котором задействована редакция оболочки GNOME Shell, адаптированная для использования на смартфонах и планшетах с сенсорным экраном. Компоненты GNOME Mobile переведены на ветку GNOME Shell 46. Из улучшений отмечается новый обработчик, изменяющий настройки планировщика задач для отдельных процессов (выбирает высокопроизводительные или энергоэффективные ядра на ARM CPU) с целью повышения отзывчивости интерфейса, а также возможность показа экранной клавиатуры при двойном нажатии на нижнюю панель.
  • Окружение Phosh, основанное на технологиях GNOME и развиваемое компанией Purism для смартфона Librem 5, обновлено до версии 0.39 (ранее использовался выпуск 0.33). Среди изменений возможность распределения приложений по папкам в обзорном режиме, поддержка устройств с экранами, имеющими скруглённые углы или выемки, возможность выбора беспроводной сети через выпадающую панель быстрых настроек, открытие экранной клавиатуры при удержании касания к нижней панели.
  • Графическая оболочка Sxmo (Simple X Mobile), основанная на композитном менеджере Sway и придерживающаяся Unix-философии, обновлена до версии 1.16.3, в которой улучшено управление переходом в режим экономии энергии и добавлены настройки для Nokia N900, Xiaomi Redmi Note 4 и PineTab 2.
  • Для всех поддерживаемых интерфейсов добавлены новые зелёные обои.
  • Для устройств Chromebook предложены новые клавиатурные комбинации.для На Chromebook от компании Samsung реализована поддержка GPU-ускорения.
  • При сборке собственных образов предоставлена возможность установки пакетов cage (композитный сервер для работы в режиме интернет-киоска) и moonlight (клиент к NVIDIA GameStream).
  • Для ведения логов по умолчанию задействован инструментарий Logbookd, предоставляющий интерфейс для доступа к логам в стиле journalctl.
  • В initramfs добавлена поддержка загрузки с USB-устройств и реализована возможность экспорта логов в случае сбоя загрузки.
  • Для устройств на базе SoC Qualcomm Snapdragon 450/625/626/632 (MSM8953) добавлена поддержка GPS и модема (передача данных через сотового оператора, голосовые вызовы и SMS).
  • По умолчанию обеспечена установка несвободных прошивок.
  • Из репозитория удалён пакет osk-sdl, вместо которого для разблокировки шифрованных разделов задействован unl0kr.
  • В пакетах, связанных с интерфейсом пользователя, удалена жёсткая привязка к PulseAudio. PulseAudio пока остаётся по умолчанию, но в будущем намечен переход на PipeWire.

В следующем выпуске postmarketOS 24.12 планируют добавить начальную поддержку использования системного менеджера systemd вместо системы инициализации OpenRC. В качестве причины реализации поддержки systemd упоминается сложность сопровождения стека инициализации на базе OpenRC в условиях постоянно растущей зависимости GNOME и KDE от компонентов systemd.

  1. OpenNews: Релиз минималистичного дистрибутива Alpine Linux 3.20
  2. OpenNews: Выпуск Phosh 0.39, GNOME-окружения для смартфонов
  3. OpenNews: Проект postmarketOS представил сборки на базе systemd
  4. OpenNews: Доступен postmarketOS 23.12, Linux-дистрибутив для смартфонов и мобильных устройств
  5. OpenNews: Доступна мобильная платформа KDE Plasma Mobile 6
Обсуждение (65 +8) | Тип: Программы |
·17.06.2024 Выпуск среды рабочего стола Cinnamon 6.2 (62 +10)
  После 6 месяцев разработки сформирован релиз среды рабочего стола Cinnamon 6.2, в рамках которой сообществом разработчиков дистрибутива Linux Mint развивается форк оболочки GNOME Shell, файлового менеджера Nautilus и оконного менеджера Mutter, нацеленный на предоставление окружения в классическом стиле GNOME 2 с поддержкой удачных элементов взаимодействия из GNOME Shell. Cinnamon основывается на компонентах GNOME, но эти компоненты поставляются как периодически синхронизируемый форк, не связанный внешними зависимостями с GNOME. Новый выпуск Cinnamon будет предложен в дистрибутиве Linux Mint 22, который планируется выпустить в июле или августе.

Основные новшества:

  • Продолжена реализация экспериментальной поддержки работы в окружении на базе протокола Wayland.
  • Для файлового менеджера Nemo предложен инструмент "Actions Organizer" (встроен в конфигуратор), позволяющий на свой вкус настроить размещение действий в меню. Поддерживается создание вложенных подменю, привязка или переопределение пиктограмм, использование разделителей, переименование элементов и компоновка в режиме drag&drop. "Действия" представляют собой дополнения к файловому менеджеру Nemo, позволяющие подключить обработчики, вызываемые через контекстное меню и загружаемые по аналогии с апплетами и темами оформления.
  • Добавлен новый обработчик формирования миниатюр для форматов файлов графического редактора GIMP.
  • Добавлено XApp-приложение "GNOME Online Account GTK", представляющее интерфейс для управления подключением к облачным сервисам, таким как Google Drive, и получения доступа к сохранённым там данным. В отличие от штатного GNOME Online Account новое приложение доступно в вариантах для GTK4 и GTK3 (используются разные версии библиотеки libgoa), а также адаптировано для работы в различных дистрибутивах и пользовательских окружениях, например, работоспособно не только в GNOME, но и в Cinnamon, Budgie, Unity, MATE и Xfce.
  • В интерфейсе установки программ Software Manager по умолчанию скрыты Flatpak-пакеты, не верифицированные в каталоге FlatHub, т.е. формируемые сторонними энтузиастами (например, пакет Chrome во FlatHub формирует неизвестный под ником refi64). В настоящее время во FlatHub примерно 42% пакетов помечены как верифицированные, т.е. публикуемые основными проектами или лицами, связанными с ними. Показ неверифицированных пакетов можно вернуть в настройках, но они будут явно помещены как не заслуживающие доверия и иметь нулевой рейтинг. Из изменений в Software Manager также отмечается значительное сокращение времени запуска.
  • В панели добавлена возможность показа изображения (аватара) из профиля пользователя.
  • Восстановлен polkit-агент и изменён стиль диалога запроса предоставления полномочий.
  • В диалог выбора программ (AppChooserDialog) добавлена панель поиска.
  • Предоставлена возможность настройки клавиатурных комбинаций для внешних компонентов (spice), таких как действия, апплеты, десклеты и расширения.
  • В апплете для управления энергопотреблением обеспечен показ состояния зарядки и разрядки аккумулятора.
  • В различных диалогах, апплетах и десклетах реализация анимированных эффектов, переведена на использование библиотеки Clutter.
  • Добавлен интерфейс для подтверждения запросов через механизм xdg portal, применяемый для организации доступа к ресурсам пользовательского окружения из изолированных приложений (например, используется во flatpak).
  • Добавлены в чёрных список темы оформления adwaita, adwaita-dark и highcontrast, при выборе которых вместо штатных тем Linux Mint могут возникнуть проблемы с отображением некоторых новых приложений GNOME.
  • В интерфейсе настройки клавиатуры добавлена поддержка поиска по клавиатурным комбинациям.
  • В апплете Corner bar, размещаемом в углу экрана и позволяющем привязать свои действия к нажатию разных кнопок мыши, добавлена поддержка отдельных действий, активируемых при удерживании клавиши Shift.
  • В Workspace Switcher добавлена поддержка удаления виртуальных рабочих столов щелчком средней кнопки мыши.
  • При использовании VPN обеспечено отображение отдельных значков защиты проводной и беспроводной сетей.
  • В меню добавлена отдельная категория для научных приложений.
  • В апплете, показывающем список активных окон, убраны индикаторы свёрнутых и скреплённых (tiled) окон.

  1. OpenNews: Выпуск пользовательского окружения Cinnamon 6.0 с начальной поддержкой Wayland
  2. OpenNews: Первые результаты портирования Cinnamon на Wayland
  3. OpenNews: Ubuntu Cinnamon получил статус официальной редакции Ubuntu
  4. OpenNews: Релиз дистрибутива Linux Mint 21.3
Обсуждение (62 +10) | Тип: Программы |
·16.06.2024 Выпуск Python-библиотеки для научных вычислений NumPy 2.0.0 (66 +23)
  Доступен релиз Python-библиотеки для научных вычислений NumPy 2.0.0, ориентированной на работу с многомерными массивами и матрицами, а также предоставляющей большую коллекцию функций с реализацией различных алгоритмов, связанных с использованием матриц. NumPy является одной из наиболее востребованных библиотек, применяемых для научных расчётов. Код проекта написан на языке Python с применением оптимизаций на языке Си и распространяется под лицензией BSD.

NumPy 2.0.0 отмечен как первый значительный релиз с 2006 года. В новой версии помимо новых возможностей и оптимизации производительности внесены изменения в ABI, Python API и C-API, нарушающие обратную совместимость. Например, библиотека SciPy, собранная с NumPy 1.x, для работы с NumPy 2.0 потребует перекомпиляции. В отдельных случаях для использования NumPy 2.0 в приложениях может потребоваться внесение изменений в код.

Наиболее крупное нарушение связано с сохранением точности скалярных выражений, например, "np.float32(3) + 3" теперь вернёт значение с типом float32, а не float64, а в выражениях с несколькими типами для результата будет использован тип с наивысшей точностью, т.е. "np.array([3], dtype=np.float32) + np.float64(3)" вернёт значение с типом float64. Изменены целочисленные типы, применяемые по умолчанию на платфoрме Windows - на 64-разрядных системах теперь применяется 64-разрядный целый тип, а на 32-разрядных - 32-разрядный (ранее использовался аналог Си-типа long, а теперь эквивалент np.intp).

Заменены или удалены некоторые определения в C-API, например, изменена структура PyArray_Descr. Максимальное число измерений и аргументов, выставляемое через макросы NPY_MAXDIMS и NPY_MAXARGS, увеличено до 64. Все комплексные типы переведены на использование штатных типов из спецификации C99 (cfloat_t, cdouble_t, clongdouble_t). Добавлен новый C API для создания собственных dtype. Предложены новые упрощённые функции инициализации PyArray_ImportNumPyAPI и PyUFunc_ImportUFuncAPI.

В Python API обеспечено более явное разделение между публичными и приватными API, предложена новая структура модулей. Около 100 функций, модулей и констант вынесены из основного пространства имён "np", объявлены устаревшими или удалены. Почищено пространство имён np.lib. Число объектов в основном пространстве имён сокращено на 10%, а в пространстве имён numpy.lib - на 80%. Переведено в разряд приватных пространство имён numpy.core. Удалены некоторые методы из классов np.ndarray и np.generic. Создано новое пространство имён numpy.strings со строковыми операциями.

Из новых возможностей можно отметить поддержку типов float32 и longdouble во всех функциях numpy.fft, поддержку стандартного API Array в основном пространстве имён, новое пространство имён и типы для строк переменной длины. Проведена оптимизация производительности с использованием библиотек Intel x86-simd-sort и Google Highway для строковых функций sort, argsort, partition и argpartition, ускорены операции с фиксированными строками в модуле numpy.char. Добавлен новый API opt_func_info для трассировки и интроспектирования.

  1. OpenNews: Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0
  2. OpenNews: В Python добавлен JIT-компилятор
  3. OpenNews: Выпуск интерактивной оболочки IPython 8.0
  4. OpenNews: Выпуск SciPy 1.8.0, библиотеки для научных и инженерных расчётов
  5. OpenNews: Выпуск инженерного дистрибутива CAELinux 2020
Обсуждение (66 +23) | Тип: Программы |
·15.06.2024 В Fedora 41 планируют добавить AI-инструменты и расширить поддержку GPU NVIDIA (88 +8)
  Кристиан Шаллер (Christian Schaller), возглавляющий Fedora Desktop Team и группу по развитию десктоп-систем в компании Red Hat, рассказал о некоторых возможностях, которые планируют добавить в следующий выпуск Fedora Workstation:
  • В состав планируют включить инструментарий Instructlab, дающий возможность быстро установить большую языковую модель Granite, открытую компанией IBM под лицензией Apache 2.0, охватывающую 7 миллиардов параметров и способную учитывать при генерации текста до 4 тысячи токенов. Помимо работы с готовой моделью Instructlab предоставляет средства для добавления в модель дополнительных знаний и реализации новых навыков, которые могут потребоваться для решения специфичных задач.

    Кроме того, в Fedora планируют расширить возможности, которые могут применяться при использовании других моделей, например, идёт работа по добавлению в пакет с библиотекой PyTorch поддержки стека ROCm для аппаратного ускорения на GPU AMD. Из более отдалённых планов отмечается обеспечение в штатном пакете с PyTorch возможности использования аппаратного ускорения из коробки на системах с GPU AMD, NVIDIA и Intel.

  • Для упрощения использования GPU NVIDIA для графики и машинного обучения в GNOME Software планируют модернизировать возможность быстрой установки проприетарных драйверов NVIDIA. В недавнем выпуске Fedora опция для установки подобных драйверов была удалена, так как в конфигурации по умолчанию, в которой применяется загрузка в режиме Secure Boot, установка была усложнена необходимостью ручного добавления цифровой подписи для загруженных драйверов при помощи утилит из пакета mokutils. В Fedora 41 планируют вернуть возможность установки проприетарных драйверов NVIDIA в GNOME Software и реализовать графический интерфейс для создания и сохранения в MOK (Machine Owner Key) цифровой подписи для модуля ядра от компании NVIDIA.
  • Ведётся работа по интеграции поддержки драйверов NVIDIA в инструментарий Toolbx, позволяющий запускать дополнительные изолированные окружения для установки экспериментальных пакетов без влияния на основную систему или для создания окружений на основе других дистрибутивов. Изменение позволит использовать официальный CDI-модуль (Container Device Interface) NVIDIA для обеспечения полной поддержки возможностей драйверов NVIDIA и CUDA в контейнерах на базе Toolbx, например, для запуска в Toolbx контейнеров с компонентами систем машинного обучения.
  • В Fedora 41 планируют добавить написанный на языке Rust открытый драйвер Nova, поддерживающий GPU NVIDIA, в которых операции инициализации и управления GPU вынесены в прошивку и выполняются отдельным микроконтроллером GSP (GPU System Processor). Для поддержки графического API Vulkan поверх драйвера Nova будет задействован модуль NVK, а для OpenGL - модуль Zink, реализующий вызовы OpenGL через трансляцию в API Vulkan.
  • Ведётся работа по добавлению поддержки расширенного динамического диапазона (HDR) в композитный менеджер Mutter и GNOME Shell, а также включению изменений, позволяющих бок о бок использовать обычный (SDR) и расширенный (HDR) динамические диапазоны яркости. Также планируется опубликовать финальный вариант расширения протокола Wayland, определяющего возможности, связанные с HDR.
  • Подготовлены изменения с реализацией Wayland-протокола "DRM leasing", который можно использовать для организации вывода на шлемы виртуальной реальности или видеостены.
  • Для устранения нарушений вывода и подвисаний на системах с GPU NVIDIA при использовании Wayland в Fedora 41 планируют включить в ядре и GNOME поддержку технологии Explicit Sync, позволяющей информировать композитный менеджер на базе протокола Wayland о готовности вывода кадра на экран, что может использоваться для снижения задержек и избавления от появления артефактов при выводе графики.

  1. OpenNews: Red Hat представил дистрибутив RHEL AI и режим сборки RHEL на базе OSTree и bootc
  2. OpenNews: В Fedora 41 одобрена поставка сборки с композитным менеджером Miracle
  3. OpenNews: В Fedora одобрена поставка в пакете asahi-installer исполняемых файлов для macOS
  4. OpenNews: В Fedora 41 намерены удалить network-scripts и разрешить обновление атомарных редакций без пароля
  5. OpenNews: В Fedora 41 предложено перевести инсталлятор на Wayland и удалить X11-пакеты из сборок с GNOME
Обсуждение (88 +8) | Тип: Обобщение |
·15.06.2024 Утверждён стандарт POSIX 1003.1-2024 (132 +42)
  После семи лет разработки профессиональное общество института инженеров электротехники и электроники (IEEE Computer Society) и консорциум Open Group утвердили новую версию стандарта POSIX 1003.1-2024, нацеленного на обеспечение переносимости программ между UNIX-подобными системами. Стандарт определяет программные интерфейсы между операционными системами и прикладными программами и охватывает набор библиотечных функций, возможностей командного интерпретатора и утилит.

Текст стандарта пока доступен только в формате PDF для платных клиентов, образовательных учреждений и пользователей, имеющих учётную запись на сайте IEEE. В ближайшее время текст стандарта будет доступен на сайте Open Group (пока публично доступна только прошлая редакция POSIX 1003.1-2017, вышедшая в 2017 году).

Из изменений в POSIX 1003.1-2024, помимо исправления ошибок, можно отметить реализацию в shell строк $'...', добавление утилит readlink и realpath, появление в утилите find опций "-print0" и "-iname", добавление в xargs опции "-0" (использование нулевого символа в качестве разделителя, например, формируемого через find -print0), в read - опции "-d" (разделитель), в sed опции "-E" (расширенные регулярные выражения), в set - опции "-o pipefail".

Для программ на языке Си добавлена поддержка константы SIGWINCH, средств для создания разделяемых объектов, функций tcgetwinsize (определение размера окна терминала), gettext (организация многоязычных интерфейсов), asprintf (форматирует строку и выделяет буфер с учётом размера вывода), strlcpy и strlcat (аналоги strncpy и strncat, содержащие защиту от переполнения буфера и выставляющие замыкающий строку нулевой байт). В утилите make появилась поддержка вложенных макросов, разрешено указание нескольких файлов в директиве include, добавлены новые цели .NOTPARALLEL, .PHONY и .WAIT, добавлен макрос CURDIR, указывающий на текущий каталог, добавлены операторы назначения макросов и переменных "::=", ":::=", "+=", "?=" и "!=".

  1. OpenNews: Проект Ussury развивает новую стандартную библиотеку языка C
  2. OpenNews: Выпуск стандартной Си-библиотеки Musl 1.2.5
  3. OpenNews: Выпуск стандартной Си-библиотеки PicoLibc 1.8.6
  4. OpenNews: Опубликован новый международный стандарт для языка Си (C1X/C11)
Обсуждение (132 +42) | Тип: К сведению |
·14.06.2024 Доступен SELKS 10, дистрибутив для создания систем обнаружения вторжений (22 +9)
  Компания Stamus Networks опубликовала выпуск специализированного дистрибутива SELKS 10, предназначенного для развёртывания систем обнаружения и предотвращения сетевых вторжений, а также организации реагирования на выявленные угрозы и мониторинга безопасности сети. Пользователям предоставляется полностью готовое решение для управления сетевой безопасностью, которое можно использовать сразу после загрузки. Дистрибутив поддерживает работу в Live-режиме и запуск в окружениях виртуализации или контейнерах. Наработки проекта распространяются под лицензией GPLv3. Для загрузки сформированы два iso-образа: с графическим окружением Xfce (3.5 ГБ) и работающий в консольном режиме (2.7 ГБ).

Дистрибутив построен на пакетной базе Debian и использует открытую систему обнаружения атак Suricata. Поступающие из разных источников данные обрабатываются при помощи платформы Logstash и сохраняются в хранилище ElasticSearch. Для отслеживания текущего состояния и выявленных инцидентов предлагается web-интерфейс, реализованный поверх интерфейса Kibana. Для управления правилами и визуализации связанной с ними активности применяется web-интерфейс Stamus CE. В состав также входят система захвата, хранения и индексации сетевых пакетов Arkime, интерфейс для оценки произошедших событий EveBox и анализатор данных CyberChef.

Основные улучшения:

  • В интерфейс пользователя перенесены дополнительные возможности из параллельно развиваемой коммерческой платформы SSP (Stamus Security Platform). Проведена работа по упрощению web-интерфейса и сведению воедино информации об обнаружении угроз, поиске подозрительной активности и анализе доказательств.
  • Добавлена возможность выборочного захвата пакетов, связанных с выявленными событиями, и их экспорта из интерфейса для анализа подозрительной активности в формате PCAP. Экспортируемые дампы содержат полные данные о сетевом сеансе, ассоциированном с выявленной угрозой. Дамп можно использовать для анализа инцидента как в самом SELKS, так и в сторонних инструментах, таких как Wireshark.
  • Система для захвата, хранения и индексации сетевых пакетов Arkime обновлена до версии 5.0, в которой появилась поддержка поиска информации одновременно о нескольких объектах в открытых источниках (OSINT), изменено оформление блока с детальной информацией, задействована унифицированная подсистема конфигурации, добавлена поддержка методов формирования отпечатков трафика JA4 и JA4+ и реализована возможность импорта сохранённых PCAP-дампов.
  • Вместо SQLite для хранения данных задействована СУБД PostgreSQL.
  • Пакетная база обновлена до Debian 12.

  1. OpenNews: Обновление Suricata 7.0.3 и 6.0.16 с устранением критических уязвимостей
  2. OpenNews: Выпуск системы обнаружения атак Suricata 7.0
  3. OpenNews: В рамках сообщества wasp-guard началось формирование распределенной системы обнаружения вторжений
  4. OpenNews: Релиз Messor, децентрализованной системы для обнаружения вторжений
  5. OpenNews: Релиз системы обнаружения атак Snort 3
Обсуждение (22 +9) | Тип: Программы |
·13.06.2024 Выпуск Rust 1.79. Создан консорциум для разработки высоконадёжных систем на Rust (420 +11)
  Опубликован релиз языка программирования общего назначения Rust 1.79, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).

Методы работы с памятью в Rust избавляют разработчика от ошибок при манипулировании указателями и защищают от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo. Для размещения библиотек поддерживается репозиторий crates.io.

Безопасная работа с памятью обеспечивается в Rust во время компиляции через проверку ссылок, отслеживание владения объектами, учёт времени жизни объектов (области видимости) и оценку корректности доступа к памяти во время выполнения кода. Rust также предоставляет средства для защиты от целочисленных переполнений, требует обязательной инициализации значений переменных перед использованием, лучше обрабатывает ошибки в стандартной библиотеке, применяет концепцию неизменяемости (immutable) ссылок и переменных по умолчанию, предлагает сильную статическую типизацию для минимизации логических ошибок.

Основные новшества:

  • Добавлена поддержка inline-констант, которые можно указывать прямо в коде при помощи блоков "const { ... }", обрабатываемых в контексте констант и позволяющих обойтись без отдельного определения констант. Указанный в блоке "const { ... }" код вычисляется на этапе компиляции и используется как константа, без выполнения во время работы программы. В отличие от определения констант через выражение "const ITEM: ... = ..." в блоках "const { ... }" можно не указывать тип, так как в них поддерживается автоматический вывод типов. Например, код с отдельным определением константы
    
       const EMPTY: Option<Vec<u8>> = None;
       let foo = [EMPTY; 100];
    
    можно заменить на использование по месту:
    
       let foo = [const { None }; 100];
    
  • Стабилизирован синтаксис "T: Trait<Assoc: Bounds...>" для задания ограничений в позиции ассоциативного типа, позволяющий сократить определение выражений с вложенными ограничениями типа, которые ранее требовали указания вложенного impl Trait или нескольких условий "where".
  • Обеспечено автоматическое продление времени жизни временных значений, которые используются в конструкциях "match" и "if".
    
       let a = if true {
           ..;
           &temp() // время жизни будет продлено
       } else {
           ..;
           &temp() // время жизни будет продлено
       };
    
  • Стабилизирована возможность импорта функции main из других модулей и crate-пакетов.
  • При сборке стандартной библиотеки в компиляторе задействован флаг "-Cforce-frame-pointers=yes", добавляющий данные для реконструкции стека во время профилирования программ.
  • В разряд стабильных переведена новая порция API, в том числе стабилизированы методы и реализации типажей:
  • Признак "const", определяющий возможность использования в любом контексте вместо констант, применён в функциях:
  • Стабилизирована часть возможностей, которые можно использовать при компиляции в промежуточное представление Webassembly (WASM).
  • Реализован третий уровень поддержки для платформ aarch64-apple-visionos, aarch64-apple-visionos-sim и riscv32ima-unknown-none-elf. Третий уровень подразумевает базовую поддержку, но без автоматизированного тестирования, публикации официальных сборок и проверки возможности сборки кода.
  • Реализован второй уровень поддержки целевых платформ aarch64-pc-windows-gnullvm, i686-pc-windows-gnullvm и x86_64-pc-windows-gnullvm. Второй уровень поддержки подразумевает гарантию сборки.

Кроме того, организация Rust Foundation, которая курирует связанную с языком Rust экосистему, объявила о создании консорциума "Safety-Critical Rust Consortium", нацеленного на использовании языка Rust в решениях, требующих повышенной надёжности (Safety-Critical Software), сбой в которых может угрожать жизни людей, нанести вред окружающей среде или привести к серьёзным повреждениям оборудования. К консорциуму присоединились компании ARM, AdaCore, Ferrous Systems, OxidOS, Synopsys, HighTec EDV-Systeme GmbH, TrustInSoft, Veecle и Woven by Toyota. Среди задач, которые будет решать консорциум упоминается написание руководств и разработка библиотек, линтеров и статических анализаторов, а также применение методов формальной верификации надёжности и разработка подмножеств языка для высоконадёжных систем.

Из проектов, связанных с высоконадёжными системами, можно отметить Verus - инструментарий для проверки корректности кода, написанного на языке Rust. Проверка осуществляется путём определения спецификации, описывающей допустимое поведение кода. Во время выполнения исполняемого кода Verus проверяет соответствие спецификации для подтверждения корректности работы.

  1. OpenNews: В каждом пятом пакете на языке Rust используется ключевое слово unsafe
  2. OpenNews: Для ядра Linux предложен драйвер EXT2, написанный на языке Rust
  3. OpenNews: Выпуск Rust 1.78. Язык Borgo, сочетающий сильные стороны Go и Rust
  4. OpenNews: Red Hat представил Nova, драйвер для GPU NVIDIA, написанный на языке Rust
  5. OpenNews: В Rustls обеспечена совместимость с OpenSSL и nginx
Обсуждение (420 +11) | Тип: Программы |
·13.06.2024 Mozilla восстановила доступ к дополнениям, заблокированным по требованию Роскомнадзора (47 +56)
  Компания Mozilla пересмотрела своё решение в отношении дополнений к Firefox, ранее заблокированных в каталоге addons.mozilla.org (AMO) для пользователей из РФ. Блокировка была выполнена по требованию Роскомнадзора и затронула 4 популярные дополнения, позволяющие использовать VPN или прокси для получения доступа к ресурсам, занесённым в единый реестр запрещённых сайтов РФ.

Утверждается, что блокировка была временной мерой, принятой до окончательной оценки нормативно-правовой обстановки в РФ и рисков для сообщества и сотрудников Mozilla. По сути пришлось выбирать между выполнением требования соблюдения местного законодательства, которое идёт вразрез с определёнными в манифесте Mozilla принципами, и перспективой блокировки сервисов Mozilla в РФ за невыполнение требований и способствование получению доступа к запрещённому контенту. В итоге, компания Mozilla решила, что первоочерёдными являются принципы, в соответствии с которыми интернет рассматривается как глобальный публичный ресурс, открытый и доступный для всех, независимо от местоположения пользователя.

  1. OpenNews: Компания Mozilla начала блокировать доступ из РФ к дополнениям для обхода блокировок
  2. OpenNews: Mozilla отказывается от сервиса Onerep из-за связи его основателя со сбором информации о людях
  3. OpenNews: Компания Mozilla начала блокировать доступ из РФ к дополнениям для обхода блокировок
  4. OpenNews: Mozilla опубликовала сервис для AI-генерации сайтов Solo 1.0
  5. OpenNews: Релиз Firefox 127
Обсуждение (47 +56) | Тип: Тема для размышления |
·13.06.2024 Выпуск web-браузера Chrome 126 со встроенным OCR-движком (88 +6)
  Компания Google опубликовала релиз web-браузера Chrome 126. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается от Chromium использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого от копирования видеоконтента (DRM), системой автоматической установки обновлений, постоянным включением Sandbox-изоляции, поставкой ключей к Google API и передачей при поиске RLZ-параметров. Для тех, кому необходимо больше времени на обновление, отдельно поддерживается ветка Extended Stable, сопровождаемая 8 недель. Следующий выпуск Chrome 127 запланирован на 23 июля.

Основные изменения в Chrome 126:

  • Во встроенный PDF-просмотрщик интегрирована возможность извлечения текста из документа, вызываемая через опцию "Extract text from PDF" в контекстном меню. Для извлечения текста из отсканированных документов, в которых текст вставлен в виде изображения, используется механизм оптического распознавания символов (OCR) на базе системы машинного обучения. Ожидается, что новая возможность упростит работу с PDF-документами людей, имеющих проблемы со зрением и пользующихся экранными ридерами. В дальнейшем планируется реализовать распознавание текста на показываемых на страницах изображениях и на скриншотах. OCR-движок включён по умолчанию у 50% пользователей, а остальные могут активировать его через настройку "chrome://flags/#pdf-ocr".
  • На страницу конфигуратора с параметрами производительности ("Производительность/ Экономия памяти" в разделе chrome://settings/performance) добавлена возможность настройки уровня агрессивности применения режима экономии памяти (Memory Saver), который снижает потребление оперативной памяти за счёт освобождения памяти, занимаемой неактивными вкладками. Например, при выборе умеренного уровня браузер будет выгружать из памяти меньше вкладок, чем при установки максимального. Настройку, которая по умолчанию доступна лишь для части пользователей, можно активировать через параметр "chrome://flags/#memory-saver-aggressiveness".
  • Для некоторых пользователей в просмотрщике PDF задействована по умолчанию новая архитектура OOPIF (out-of-process iframe), при которой содержимое документа обрабатывается в отдельном процессе. Новая архитектура избавлена от усложнений, свойственных реализации на базе механизма GuestView, и упрощает добавление новых возможностей в PDF-просмотрщик. Для включения новой архитектуры можно использовать настройку "chrome://flags/#pdf-oopif".
  • Добавлен режим реактивной упреждающей загрузки (Reactive prefetch), осуществляющий загрузку связанных со страницей ресурсов во время навигации, не дожидаясь их фактического запроса, что позволяет ускорить открытие новых страниц. Для предсказания ресурсов, которые могут потребоваться в дальнейшем, задействован внешний сервис Google, возвращающий список рекомендаций после отправки в него URL страниц, по которым выполняется навигация.
  • Добавлена возможность поиска в сервисе Google Lens по любым изображениям и тексту, видимым на экране. Возможность включается через контекстное меню, индикатор в адресной строке или меню "⋮", после чего пользователь может выделить интересующий объект на экране и получить информацию о нём из Google Lens. При выполнении операции на сервер Google осуществляется отправка скриншота экрана. Возможность пока активирована по умолчанию для 1% пользователей. Для включения и выключения поддержки Google Lens может использоваться параметр "chrome://flags/#enable-lens-region-search-static-page".
  • Подведены итоги оптимизаций для ускорения прохождения теста Speedometer 3 - за два года производительность Chrome в этом тесте увеличилась на 72%. Например, была ускорена работа функции SpaceSplitString, используемой при разборе выражений типа "class='foo bar'", оптимизированы функции работы с памятью, убраны лишние операции при работе с элементами web-форм и ускорены наиболее часто используемые действия, оптимизировано использование innerHTML, ускорена отрисовка шрифтов. Ускорения также удалось добиться благодаря оптимизации сборщика мусора в движке V8, эффективность которого повысилась благодаря активации сборки мусора во время простоя процесса отрисовки, что бы не конкурировать с приложением за ресурсы CPU.
  • Значительно повышена эффективность работы с Cookie, позволившая снизить задержки при работе с сайтами. Ранее при каждом обращении к Cookie, из занимающегося обработкой сайта процесса отправлялся синхронный IPC-запрос в процесс, обеспечивающий сетевое взаимодействие. Так как в web-приложениях достаточно активно используются значения из Cookie подобные запросы между процессами замедляли работу, при том, что 87% обращений к другому процессу были избыточны.

    Для решения проблемы задействована новая архитектура, при которой каждый процесс содержит свою копию данных Cookie и обращается к ней напрямую, а изменения в Cookie, которые, например, могут произойти при работе с теми же Cookie в другой вкладке, отслеживаются через механизм версионирования. Суть данного механизма в том, что к каждому значению document.cookie прикрепляется счётчик с номером версии, который хранится в разделяемой памяти, увеличивается при изменении значения и сверяется с имеющимся экземпляром при чтении.

  • Добавлена возможность использования API View Transitions для создание переходных анимационных эффектов перехода от одной страницы к другой в пределах одного сайта (same-origin). Ранее данный API мог применяться только для эффектов между разными состояниями DOM на одной странице (например, плавный переход от одного изображения к другому). Для применения эффектов перехода между разными документами следует использовать свойство "navigation: auto" в @-правиле "view-transition".
  • Включён API CloseWatcher, позволяющий отслеживать в web-приложениях Close-запросы и реагировать на их поступление (например, можно создать обработчик нажатия кнопки "назад" на Android-смартфоне). Close-запросы формируются при попытке закрытия модальных (<dialog>) и всплывающих диалогов (popover="") через нажатие клавиши Esc, использование кнопки "Назад" или экранный жест на смартфонах.
  • В API Gamepad, позволяющий отслеживать и обрабатывать события от геймпадов и игровых контроллеров, добавлена поддержка механизмов обеспечения обратной связи (trigger-rumble), например, вибрации.
  • В интерфейсы GeolocationCoordinates и GeolocationPosition добавлен метод .toJSON() для сериализации объектов с координатами формате JSON.
  • В версии для ChromeOS добавлена поддержка режима отображения вкладок (CSS-свойство "display: tabbed"), позволяющего использовать вкладки в одном web-приложении, например, для организации редактирования нескольких документов.
  • Добавлена экспериментальная возможность (origin trial) предпросмотра содержимого, получаемого с камеры или микрофона.
  • В API WebGPU значительно ускорена компиляция шейдеров. В бэкенде для графического API Vulkan оптимизирована загрузка данных в GPU (обеспечена прямая запись в буфер GPU без промежуточного копирования).
  • Внесены улучшения в инструменты для web-разработчиков. В секции 'Application > Storage' добавлена возможность инспектирования данных, сохранённых с использованием API Storage Buckets, позволяющим организовать хранение данных с разбиением хранилища на отдельные сегменты, ассоциированные с API IndexedDB и CacheStorage. В панели оценки производительности добавлена возможность перемещения и скрытия треков, а также исключения информации о выполнении скриптов из графика производительности и включения режима искусственного замедления производительности системы в 20 раз.

    В панели отслеживания сетевой активности предоставлена поддержка подстановки в полученный ответ полной строки с HTTP-заголовком в формате "имя: значение". В панель наблюдения за потреблением памяти добавлены фильтры для выявления неэффективной работы с памятью, например, наличия дубликатов строк или оставления объектов, связанных с отсоединёнными DOM-узлами.

Кроме нововведений и исправления ошибок в новой версии устранена 21 уязвимость. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. 9 проблемам присвоен высокий уровень опасности. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 11 премии на сумму более 168 тысяч долларов США.

За уязвимость CVE-2024-5839, связанную с проблемой в реализации механизма выделения памяти, выплачена рекордная премия, размером 100115 долларов. Данной уязвимости присвоен средний уровень опасности, при том, что она потенциально позволяет добиться повреждения памяти в куче при обработке специально оформленного HTML-содержимого. Кроме того, выплачено по одной премии в 25000, 7000, 3000, 2000, 1000 и 500 долларов, а также по две премии в 10000 и 5000 долларов. Размер 7 вознаграждений пока не определён.

  1. OpenNews: Выпуск web-браузера Chrome 125
  2. OpenNews: Оценка эффективности применения MiraclePtr для предотвращения уязвимостей в Chrome
  3. OpenNews: Google отложил прекращение поддержки сторонних Cookie в Chrome
  4. OpenNews: Изучение влияния на производительность 5000 дополнений к Chrome
  5. OpenNews: Google анонсировал скорое прекращение поддержки второй версии манифеста в Chrome
Обсуждение (88 +6) | Тип: Программы |
·13.06.2024 Google переводит ChromeOS на компоненты платформы Android (73 +2)
  Компания Google объявила о работе по переводу операционной системы Chrome OS на вариант ядра Linux и фреймворки, используемые в платформе Android. Отмечается, что работа по переводу системного окружения Chrome OS на компоненты платформы Android находится на начальном этапе и потребует много времени, прежде чем новый вариант системы станет пригоден для работы конечных пользователей. Из уже предпринятых действий упоминается интеграция в ChromeOS 122 нового Bluetooth-стека Floss, основанный на Bluetooth-стеке Fluoride из платформы Android.

Новое окружение затронет только системные части платформы и не приведёт к изменению интерфейса пользователя и общей концепции платформы. После доведения проекта до готовности компания Google обеспечит прозрачную миграцию классического ChromeOS на новое окружение, основанное на компонентах из платформы Android. Ожидается, что унификация с Android позволит ускорить продвижение в ChromeOS новых технологий, связанных с машинным обучением, а также упростит сопровождение и поможет добиться более плотной интеграции с компьютерами Chromebook различных устройств, таких как телефоны и аксессуары к ним. Примечательно, что идея перевода ChromeOS на Android не нова, например, план по слиянию данных платформ обсуждался в 2015 году.

В текущем виде архитектура ChromeOS близка к атомарно обновляемым дистрибутивам Linux. Проектом используется ядро Linux со специфичными патчами, системный менеджер upstart и сборочный инструментарий ebuild/portage, созданный проектом Gentoo. Несмотря на то, что пользовательское окружение сосредоточено на использовании web-браузера, а вместо стандартных программ задействованы web-приложения, ChromeOS включает в себя полноценный многооконный интерфейс, рабочий стол и панель задач. Для запуска приложений, созданных для Linux и Android, используются виртуальные машины, запускаемые при помощи гипервизора CrosVM (основан на KVM).

По умолчанию в платформе применяется шифрование дисковых разделов c пользовательскими данными при помощи fscrypt, а системные разделы монтируются в режиме только для чтения, верифицируются по цифровой подписи и обновляются атомарно (два корневых раздела, рабочий и для установки обновления, которые меняются местами). Вывод на экран осуществляется при помощи графического стека Freon (ведётся работа по переходу на использование Wayland) и оконного менеджера Aura. Исходные тексты распространяются под свободной лицензией Apache 2.0.

  1. OpenNews: Google добавит в Chrome OS технологию облачного выполнения классических приложений
  2. OpenNews: Сведения о проекте Andromeda, расширяющем Android возможностями Chrome OS
  3. OpenNews: В ChromeOS намечено разделение браузера и системного интерфейса
  4. OpenNews: Google планирует осуществить слияние Chrome OS и Android
  5. OpenNews: Операционная система Chrome OS Flex готова для установки на любое оборудование
Обсуждение (73 +2) | Интересно
·12.06.2024 В программу защиты Linux от патентных претензий включено 800 новых пакетов (115 +14)
  Организация Open Invention Network (OIN), ставящая перед собой цель защиты экосистемы Linux от патентных претензий, объявила о расширении списка пакетов, на которые распространяется соглашение о невыдвижении патентных претензий и предоставлении возможности безвозмездного использования некоторых запатентованных технологий.

Список компонентов дистрибутивов, подпадающих под определение системы Linux ("Linux System"), на которую распространяется соглашение между участниками OIN, расширен на 800 пакетов. Из внесённых в список новых пакетов можно выделить компоненты платформы AGL (Automotive Grade Linux), Android Wear, Apache Solr, Apache Atlas, ash, bacula, bazel, сhromium, сinnamon, сouchdb, cups-filters, Dolphin, dotnet, eudev, fltk, FuseSoc, grafana, icewm, istio, falco, jenkins, kate, kernel-rt, ldb, libadwaita, libcamera, mbedtls, nano, openchange, opensearch, openthread, scipy, sddm, spire, terraform, tesseract, vagrant, verilator, vulkan-tools, wayland-utils, xwayland и zlib-ng.

В итоге определение системы Linux теперь охватывает 4530 пакетов, в том числе ядро Linux, платформу Android, KVM, Git, nginx, CMake, PHP, Python, Ruby, Go, QEMU, Kubernetes, KVM, Lua, LLVM, OpenJDK, WebKit, KDE, GNOME, QEMU, Firefox, LibreOffice, OpenStack, Qt, systemd, X.Org, Wayland, PostgreSQL, MySQL и т.д. Число участников OIN, подписавших лицензионное соглашение о совместном использовании патентов, преодолело отметку в 3800 компаний, сообществ и организаций.

Участники OIN обязуются не выдвигать патентные претензии и безвозмездно разрешают использовать запатентованные технологии в проектах, связанных с экосистемой Linux. В число участников OIN входит более 3800 компаний, сообществ и организаций, подписавших лицензионное соглашение о совместном использовании патентов. Среди основных участников OIN, обеспечивающих формирование защищающего Linux патентного пула, такие компании как Google, Amazon, IBM, NEC, Toyota, Renault, SUSE, Philips, Red Hat, Alibaba, HP, AT&T, Juniper, Facebook, Cisco, Casio, Huawei, Fujitsu, Sony и Microsoft.

Подписавшие соглашение компании получают доступ к имеющимся в руках OIN патентам в обмен на обязательство не предъявлять судебных претензий за использование технологий, применяемых в экосистеме Linux. В том числе в рамках присоединения к OIN компания Microsoft передала участникам OIN право на использование более 60 тысяч своих патентов, обязавшись не использовать их против Linux и открытого ПО.

Патентный пул OIN включает более 1300 патентов. В том числе в руках OIN находится группа патентов, в которых фигурируют одни из первых упоминаний технологий создания динамического web-контента, которые предвосхитили появление таких систем как ASP от Microsoft, JSP от Sun/Oracle и PHP. Другим существенным вкладом является приобретение в 2009 году 22 патентов Microsoft, которые до этого были проданы консорциуму AST как патенты, затрагивающие "open source" продукты. Все участники OIN имеют возможность использовать данные патенты безвозмездно. Действенность соглашения OIN была подтверждена решением Министерства юстиции США, потребовавшим учесть интересы OIN в условиях сделки о продаже патентов Novell.

  1. OpenNews: Инициативой OS Zone аннулировано 54 патента, направленных против открытого ПО
  2. OpenNews: Компания Foxconn присоединилась к инициативе по защите Linux от патентных претензий
  3. OpenNews: В программу защиты Linux от патентных претензий включено 337 новых пакетов
  4. OpenNews: OIN скооперировался с IBM, Linux Foundation и Microsoft для защиты открытого ПО от патентых троллей
  5. OpenNews: OIN поможет признать недействительным патент, используемый для атаки на GNOME
Обсуждение (115 +14) | Тип: К сведению |
·12.06.2024 Релиз дистрибутива openSUSE Leap 15.6 (58 +15)
  После года разработки состоялся релиз дистрибутива openSUSE Leap 15.6. Выпуск сформирован на основе единого с SUSE Linux Enterprise 15 SP 6 набора бинарных пакетов c некоторыми пользовательскими приложениями из репозитория openSUSE Tumbleweed. Использование одних и тех же бинарных пакетов в SUSE и openSUSE упрощает переход между дистрибутивами, экономит ресурсы на сборку пакетов, распространение обновлений и тестирование, унифицирует различия в spec-файлах и позволяет отойти от диагностики разных сборок пакетов при разборе сообщений об ошибках. Для загрузки доступна универсальная DVD-сборка, размером 4.4 ГБ (x86_64, aarch64, ppc64les, 390x), урезанный образ для установки с загрузкой пакетов по сети (200 МБ) и Live-сборки (~900 МБ) с KDE, GNOME и Xfce для архитектур X86_64 и ARM64.

Предполагается, что openSUSE Leap 15.6 станет последним выпуском в серии 15.x, а в 2025 году на платформе ALP будет сформирован релиз openSUSE Leap 16. Ключевым отличием ALP является разделение базовой основы дистрибутива на две части: урезанную "host OS" для работы поверх оборудования и слой для поддержки приложений, ориентированный на запуск в контейнерах и виртуальных машинах.

Основные новшества:

Обсуждение (58 +15) | Тип: Программы |
·12.06.2024 В ядре Linux появится возможность использования eBPF для создания планировщиков задач (58 +22)
  Линус Торвальдс выразил готовность принять в состав ядра Linux 6.11, релиз которого ожидается в конце сентября, патчей с реализацией механизма "sched_ext" (SCX), позволяющего использовать eBPF для создания планировщиков CPU, охватывающих практически все аспекты планирования выполнения задач и распределения ресурсов CPU. Подобные планировщики могут загружаться динамически и выполняться внутри ядра Linux в виртуальной машине eBPF, в которой, благодаря применению JIT-компиляции, байткод транслируется в машинные инструкции и выполняется с производительностью скомпилированного кода.

Предложенные патчи реализуют новый класс планирования SCHED_EXT, для которого выставлен приоритет вызова ядром между классами SCHED_IDLE и SCHED_NORMAL, что не позволяет в BPF-обработчиках, привязанных к SCHED_EXT, повлиять на задачи, уже прикреплённые к штатному планировщику задач (SCHED_NORMAL), но даёт возможность прикрепления к SCHED_EXT отдельных задач или перемещения для обработки с его помощью всех процессов, имеющих приоритет ниже выполнения в режиме реального времени. Если к SCHED_EXT не привязаны BPF-обработчики, то все процессы, перемещённые в класс SCHED_EXT, будут обрабатываться при помощи планировщика SCHED_NORMAL. Работа BPF-обработчиков сводится с разбору очередей задач, ожидающих выполнения на CPU (одна глобальная очередь и по одной очереди на ядро CPU), и выбора задачи, которой следует предоставить ресурсы CPU при освобождении очередного ядра CPU.

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

В настоящее время уже развивается около десятка планировщиков на базе sched_ext, логика планирования задач в которых определяется в пространстве пользователя и загружается в ядро в форме BPF-программ:

  • scx_layered - гибридный планировщик задач, разделяющий задачи на слои, для каждого из которых применяется своя стратегия планирования. Например, scx_layered позволяет выделить в отдельный слой некоторые задачи, для которых будет предоставлены определённые гарантированные ресурсы CPU, или повысить приоритет отдельных приложений. Планировщик развивается компанией Meta. Работающая в пространстве пользователя логика генерации BPF написана на языке Rust.
  • scx_rustland - планировщик оптимизирован для повышения приоритета интерактивных задач на фоне задач, интенсивно нагружающих CPU. Например, в тесте запуска игрового приложения Terraria одновременно со сборкой ядра планировщик scx_rustland позволил добиться в игре более высокого FPS, чем при использовании штатного планировщика EEVDF. Проект развивается сотрудником компании Canonical. Работающая в пространстве пользователя логика генерации BPF написана на языке Rust.
  • scx_lavd - реализации алгоритма планирования задач LAVD (Latency-criticality Aware Virtual Deadline), учитывающего актуальность снижения задержек для конкретных задач и использующего информацию о ходе выполнения процессов при принятии решений о распределении ресурсов CPU. Планировщик развивается компаниями Igalia и Valve для снижения задержек в компьютерных играх и интерактивных задачах. Работающая в пространстве пользователя логика генерации BPF написана на языке Rust.
  • scx_rusty, scx_rlfifo, scx_mitosis - примеры планировщиков с компонентами в пространстве пользователя на языке Rust, реализующие балансировку между группами задач в зависимости от нагрузки, простейший FIFO-планировщик и планировщик для привязки групп задач к ядрам CPU.
  • scx_central, scx_flatcg, scx_nest, scx_pair, scx_qmap, scx_simple, scx_userland - примеры планировщиков c компонентами в пространстве пользователя на языке Си, иллюстрирующие различные возможности sched-ext.

Изначально механизм sched_ext был предложен для рассмотрения разработчиками ядра в 2022 году, после чего было опубликовано шесть редакций патча. Несмотря на отсутствие поддержки в основном составе ядра, для дистрибутивов Ubuntu, Arch Linux, Fedora и NixOS предоставлена возможность установки sched_ext через дополнительные пакеты. Компания Canonical рассматривает возможность включения компонентов sched-ext в состав Ubuntu 24.10, а компания Valve работает над интеграцией sched_ext в Steam Deck. В компании Meta планировщик на базе sched_ext уже применяется в рабочей инфраструктуре.

Компания Google экспериментирует с использованием собственного фреймворка ghOSt, позволяющего влиять на решения планировщика задач при помощи BPF-программ. В настоящее время началась работа по портированию ghOSt на sched_ext. Google также развивает порт sched_ext для ChromeOS с намерением использовать его для задействования гибридного планировщика scx_layered для сокращения задержек без использования расширений для работы в режиме реального времени. Компания Oculus развивает порт sched_ext для Android.

  1. OpenNews: Использование BPF-программ для решения проблем в устройствах ввода
  2. OpenNews: Netflix опубликовал код утилиты bpftop
  3. OpenNews: Проект bpftime развивает реализацию eBPF, работающую в пространстве пользователя
  4. OpenNews: BumbleBee - инструментарий для упрощения создания и распространения eBPF-программ
  5. OpenNews: В состав GCC принят бэкенд для компиляции в eBPF
Обсуждение (58 +22) | Тип: К сведению |
·12.06.2024 Выпуск системного менеджера systemd 256 с утилитой run0 для замены sudo (333 +15)
  После полугода разработки представлен релиз системного менеджера systemd 256. Ключевые изменения: утилита run0 для замены sudo, утилита importctl для работы с дисковыми образами, возможность версионированного доступа к ресурсам, концепция капсул для запуска дополнительных сервисных менеджеров, режим перенаправления логов systemd-journald в произвольный сокет, поддержка протокола Varlink в systemd-networkd, systemd-machined, bootctl, systemd-creds и systemd-hostnamed, генератор юнитов "systemd-ssh-generator" и утилита "systemd-ssh-proxy".

Среди изменений в новом выпуске:

  • В состав включена утилита run0 для выполнения процессов под идентификаторами других пользователей, которая позиционируется как более безопасная замена программы sudo, реализованная в форме надстройки над командой systemd-run. В run0 вместо использования SUID осуществляется обращение к системному менеджеру с запросом запуска процесса, создания нового псевдотерминала (PTY) и пересылки данных между ним и текущим терминалом (TTY). Привилегированный процесс запускается в изолированном контексте, который порождается процессом PID 1, а не процессом пользователя, т.е. не наследует свойства окружения пользователя. Для авторизации и определения возможностей пользователя применяется Polkit. При работе с повышенными привилегиями в заголовок добавляется индикатор в виде красной точки, а оттенок фона в терминале меняется на красный.
  • Добавлена новая утилита командной строки importctl, предназначенная для загрузки, импорта и экспорта дисковых образов с использованием сервиса systemd-importd. В importctl реализованы команды pull-tar, pull-raw, import-tar, import-raw, import-fs, export-tar, export-raw, list-transfers и cancel-transfer, функциональность которых выделена в отдельную утилиту из программы machinectl.
  • Добавлен исполняемый файл systemd-vpick c реализацией протокола vpick, обеспечивающего версионированный доступ к ресурсам, таким как дисковые образы. Systemd-vpick позволяет загружать ресурсы из каталогов "*.v/", в которых может храниться несколько версий определённых файлов. Номер версии указывается в имени файлов, например, "mymachine_2.1.5.raw". Если при запросе явно не указывается номер версии, то автоматически будет использован файл с наиболее свежей версией. Поддержка версионированной загрузки ресурсов реализована в командах "systemd-nspawn --image=/--directory=", systemd-dissect и systemd-portabled, а также в настройках юнитов "RootDirectory=", "RootImage=", "ExtensionImages=" и "ExtensionDirectories=".
  • Реализована концепция капсул ("capsules"), позволяющих запускать дополнительные отдельные сервисные менеджеры для управления группой процессов, работающих под временными пользователями, создаваемыми динамически и удаляемыми после завершения работы сервисного менеджера. Капсулы позволяют обойтись без создания учётных записей пользователей для запуска групп сервисов, используют домашний каталог "/var/lib/capsules/<имя_капсулы>" и набор типовых сервисов. Для запуска капсулы достаточно выполнить команду "systemctl start capsule@<имя>.service". Для работы в контексте капсул в различные утилиты, такие как systemctl и systemd-run, добавлена опция "--capsule="/"-C".
  • В systemd-journald добавлена возможность перенаправления потока записей в сетевой или локальный сокет (AF_INET, AF_INET6, AF_UNIX, AF_VSOCK), указанный через параметр ForwardToSocket в journald.conf или через свойство 'journald.forward_to_socket'. Для ограничения отправляемых данных уровнем логгирования предложен параметр MaxLevelSocket. Для приёма логов может использоваться процесс systemd-journal-remote, в который добавлена поддержка сокетов AF_VSOCK и AF_UNIX.

    В systemd-vmspawn добавлена опция "--forward-journal" для перенаправления логов из виртуальной машины в хост-окружение, используя сокет AF_VSOCK. В systemd-journal-gatewayd добавлена возможность ограничения периодов времени, в которые будут приниматься логи. В утилиту journalctl добавлена опция "-T" ("--exclude-identifier") для игнорирования определённых идентификаторов syslog, а также опция "--list-namespaces" для показа списка доступных пространств имён.

  • Расширены возможности по интеграции с sshd. Добавлена поддержка использования при авторизации входящих соединений ключей, полученных через userdbctl. Добавлен новый генератор юнитов "systemd-ssh-generator", который при наличии исполняемого файла sshd позволяет настроить его активацию в привязке к различным сокетам (например, в контейнерах можно настроить вызов sshd при обращении к 22 порту через AF_VSOCK). Добавлен "systemd-ssh-proxy" - плагин к утилите ssh (включается через ProxyCommand/ProxyUseFdpass), позволяющий подключаться через сокеты AF_VSOCK и AF_UNIX (например, можно использовать ssh вместо sudo для организации доступа локальных пользователей к ресурсам).
  • В рамках инициативы по сокращению зависимостей у libsystemd реализована динамическая загрузка библиотек liblz4, libzstd, liblzma, libkmod и libgcrypt при помощи вызова dlopen() в ситуациях, когда их функции действительно необходимы.


  • Помимо каталога /etc, различные компоненты systemd теперь пытаются загрузить основной файл конфигурации из каталогов /usr/lib, /usr/local/lib и /run. Например, systemd-logind будет определять файл конфигурации в следующей последовательности: /etc/systemd/logind.conf, /run/systemd/logind.conf, /usr/local/lib/systemd/logind.conf и /usr/lib/systemd/logind.conf. В systemd-udevd аналогичным способом реализовано переопределние файла udev.conf.
  • Непривилегированным пользователям предоставлена возможность доступа к зашифрованным учётным данным сервисов. Для шифрования и расшифровки учётных данных для определённого пользователя в утилиту systemd-creds добавлены опции "--user" и "--uid".
  • Реализована возможности сборки systemd из исходных текстов при отключении всех устаревших возможностей в OpenSSL 3.0.
  • В системный менеджер добавлена настройка "ProtectSystem=", позволяющая управлять монтированием частей ФС в режиме только для чтения на уровне всей системы, а не только отдельных unit-ов. По умолчанию параметр ProtectSystem активирован для initrd для запрета записи в каталог /usr во время загрузки.
  • Для unit-ов предложены новые настройки "WantsMountsFor=" для определения монтирования раздела как необязательной зависимости и "MemoryZSwapWriteback=" для управления параметром memory.zswap.write, появившемся в ядре Linux 6.8. В unit-ах .mount и .swap разрешено использование настройке "What=" идентификаторов в стиле fstab, таких как "UUID=…" и "LABEL=…". В настройке "RestrictNetworkInterfaces=" разрешено использование альтернативных имён сетевых интерфейсов.
  • В юниты ".socket" с опцией "Accept=yes" добавлена настройка "MaxConnectionsPerSource=", позволяющая задать лимит на число одновременных соединений с одного IP-адреса или UID (для UNIX-сокетов).
  • В процесс "systemd-bsod", реализующий аналог "синего экрана смерти", добавлена опция "--tty" для выбора терминала, на котором будет показано полноэкранное уведомление в случае возникновения критических ошибок (LOG_EMERG).
  • В каталоге /dev обеспечено создание символических ссылок, сочетающих информацию на основе пути (by-path) и меток (by-{label,uuid}): "/dev/disk/by-path/<path>/by-<label|uuid|…>/<label|uuid|…>", что позволяет выделить одинаковые разделы на разных устройствах хранения (например, после клонирования содержимого диска на другое устройство). Для мультимедийных контроллеров systemd-udevd теперь создаёт символические ссылки "/dev/media/by-path/*" (например, "/dev/media/by-path/pci-0000:04:00.3-usb-0:1:1.0-media-controller").
  • Добавлен сервис systemd-udev-load-credentials.service для загрузки udev-правил из базы учётных записей (credential).
  • В процессах systemd-networkd и systemd-hostnamed реализован интерфейс Varlink. В systemd-hostnamed добавлена поддержка отдачи идентификаторов системы и загрузки через D-Bus, а также всех данных из файлов os-release и machine-info через D-Bus и Varlink. В systemd-networkd реализован экспорт свойств NamespaceId и NamespaceNSID через D-Bus и Varlink, а также перебор пиров LLDP, используя API на базе Varlink.
  • В systemd-networkd реализованы настройки IPv6RetransmissionTimeSec и UseRetransmissionTime для управлением временем повторной отправки NS-сообщений (Neighbor Solicitation), применяемых для определения соседних хостов IPv6. Добавлена поддержка получения ключей для VPN Wireguard из базы учётных записей (credential). В link-файлы добавлен параметр ReceivePacketSteeringCPUMask для организации привязки обработчиков входящих пакетов к определённым CPU.
  • В утилиту networkctl добавлены параметры 'mask' и 'unmask' для игнорирования файлов конфигурации (.network). Реализована команда 'networkctl edit --runtime' для редактирования временных файлов конфигурации в /run/systemd/network/.
  • В systemd-nspawn добавлена поддержка переноса в контейнер сетевых интерфейсов для Wi-Fi-устройств.
  • В systemd-resolved добавлена поддержка расширенных кодов ошибок DNS (Extended DNS Errors, RFC 8914), а также DNS-записей SVCB, NAPTR и HTTPS (RFC 9460, RFC 2915). Добавлена поддержка команды "systemctl reload systemd-resolved" для перезагрузки конфигурации systemd-resolved без перезапуска сервиса.
  • Добавлен режим 'systemctl edit --stdin', позволяющий создавать и изменять unit-файлы на основе содержимого, передаваемого через стандартный входной поток (например, для создания unit-ов из скриптов).
  • Добавлена команда 'systemd-analyze architectures' для вывода списка известных архитектур CPU.
  • Добавлена команда 'systemd-tmpfiles --purge' для удаления всех временных файлов и каталогов, созданных через настройки в tmpfiles.d, а также команда "systemd-tmpfiles --dry-run" для отображения журнала действий без их фактического выполнения. В portablectl добавлена опций "--clean" для очистки всех данных, связанных переносимыми сервисами (кэш, логи, состояние, runtime-данные и fdstore), после их отключения.
  • В hostnamectl, resolvectl и loginctl добавлена опция '-j' для вывода в формате JSON.
  • В утилите systemd-dissect реализована опция "--make-archive" для создания архивного файла (например, tar.gz) из дискового образа.
  • Расширены возможности по запуску виртуальных машин. В утилиту systemd-vmspawn, предназначенную для запуска виртуальных машин, добавлены опции: "--firmware" для настройки прошивки, "--tpm" для включения программной реализации TPM, "--linux" для указания загружаемого ядра, "--initrd" для указания образа initrd, "-D" для задания корневого каталога, "--private-users" для включения пространства имён для пользователей, "--bind=" и "--bind-ro" для проброса частей ФС их хост-окружения в гостевую систему, "--extra-drive" для подключения дополнительных устройств хранения, "-n/--network-tap/--network-user-mode" для настройки сети, "--console/--background" для выбора метода взаимодействия с VM, "--pass-ssh-key/--ssh-key-type" для размещения SSH-ключей в VM. В команде "machinectl start" помимо возможности пуска контейнеров через systemd-nspawn добавлена поддержка запуска виртуальных машин через systemd-vmspawn.
  • В systemd-homed реализована возможность разблокировки домашнего каталога пользователя после его входа через SSH. В утилиту homectl добавлен режим "--offline", позволяющий изменять свойства учётной записи без разблокировки домашнего каталога.
  • Переработаны компоненты для обработки дисковых квот в ФС XFS и EXT4, что позволило реализовать возможность включения квот во время работы, а не только на стадии загрузки.
  • В файл конфигурации sleep.conf добавлен параметр MemorySleepMode для настройки спящего режима.
  • В утилиту varlinkctl добавлена поддержка нового транспорта "ssh:", который можно использовать с OpenSSH 9.4 и более новыми выпусками.
  • Время хранения core-дампов увеличено с 3 дней до 2 недель.

  1. OpenNews: Леннарт Поттеринг представил run0, замену sudo, интегрированную в systemd
  2. OpenNews: Инициатива по сокращению зависимостей у libsystemd
  3. OpenNews: GNOME OS переходит на организацию атомарных обновлений при помощи systemd-sysupdate
  4. OpenNews: Проект postmarketOS представил сборки на базе systemd
  5. OpenNews: Выпуск системного менеджера systemd 255
Обсуждение (333 +15) | Тип: Программы | Интересно
·11.06.2024 Релиз Firefox 127 (135 +10)
  Состоялся релиз web-браузера Firefox 127 и сформировано обновление ветки с длительным сроком поддержки - 115.12.0. На стадию бета-тестирования переведена ветка Firefox 128, релиз которой намечен на 9 июля.

Основные новшества в Firefox 127:

  • В меню "V" со списком всех открытых вкладок и в контекстное меню вкладки добавлена кнопка для закрытия всех дублирующихся вкладок в текущем окне.
  • Включена автоматическая замена протокола HTTP на HTTPS для ресурсов в тегах <img>, <audio> и <video>, если эти теги используются на странице, открытой по HTTPS. Если загружаемые ресурсы недоступны по HTTPS, то они теперь не будут показаны со страниц, открытых по HTTPS.
  • Добавлена поддержка упреждающего определения IP-адресов хостов, не дожидаясь перехода пользователя по ссылке или запроса указанного на странице ресурса. Домены, которые нужно заранее отрезолвить в DNS, следует перечислить через элемент "link" с атрибутом 'rel="dns-prefetch"'.
  • С целью сокращения информации, которая может использоваться для косвенной идентификации пользователей, для 32-разрядных систем x86 в заголовке User-Agent, а также в JavaScript API navigator.platform и navigator.oscpu, теперь будет указываться архитектура x86_64.
  • В инструменте для сохранения снимков экрана появилась поддержка создания скриншотов для файлов в формате SVG и XML, а также для служебных страниц " about:". Добавлена возможность управления созданием скриншотов с использованием клавиатурных комбинаций, реализована совместимость в темами оформления и режимом отображения с повышенной контрастностью (HCM, High Contrast Mode). Повышена производительность сохранения больших областей экрана.
  • В about:config добавлены настройки toolkit.scrollbox.pagescroll.maxOverlapPercent и toolkit.scrollbox.pagescroll.maxOverlapLines, позволяющие изменить сдвиг страницы при прокрутке, указываемый в процентах и строках.
  • На платформе Windows реализована возможность автоматического запуска Firefox после загрузки компьютера. Благодаря предварительной загрузке пользователю не нужно ждать при первом запуске приложения - браузер будет готов к работе мгновенно. Режим включается в секции настроек General/Startup или через уведомление, показываемое по аналогии с приглашением задействовать Firefox в качестве браузера по умолчанию.
  • На платформах macOS и Windows реализована дополнительная защита доступа при использовании функции автозаполнения сохранённых паролей или при просмотре информации о паролях в менеджере паролей. Подобные операции с менеджером паролей потребуют подтверждения аутентификации в системе (например, ввод системного пароля, проверка отпечатка пальца, аутентификация по голосу или лицу).
  • На платформе macOS по умолчанию включена навигация по элементам ввода клавишей табуляция, вместо использования специфичного для macOS режима клавиатурной навигации, не соответствующего поведению для других платформ (в настройках можно вернуть старый режим).
  • В текстах для которых используется формат WebVTT (Web Video Text Tracks Format), добавлена поддержка символов, допустимых в разметке HTML. WebVTT применяется для организации вывода текста в определённые моменты времени, например, для показа субтитров.
  • В API Clipboard включён по умолчанию интерфейс ClipboardItem и поддержка методов navigator.clipboard.read() и navigator.clipboard.write(), позволяющих web-приложению читать и записывать данные в буфер обмена. При попытке чтения данных из буфера обмена, записанных не текущим web-приложением, перед выполнением операции пользователю будет показан запрос на подтверждение действия.
  • Реализована экспериментальная поддержка выставления симметричного межбуквенного интервала через CSS-свойство letter-spacing. В новом режиме интервал выставляется не между текущим и следующим символом, а делится на две части, которые применяются до и после символа. Режим включается через настройку layout.css.letter-spacing.model в about:config.
  • В атрибуте "href" тега "<base>", используемого для задания базового пути для относительных ссылок, запрещено использование схем "data:" и "javascript:".
  • В градиентах, созданных при помощи CSS-функций conic-gradient(), linear-gradient(), radial-gradient(), repeating-conic-gradient(), repeating-linear-gradient() и repeating-radial-gradient(), разрешено использовать тип "<color-interpolation-method>".
  • В объект Set, определяющий коллекцию значений, добавлены методы с реализацией типовых операций работы с множествами: Set.prototype.intersection(), Set.prototype.union(), Set.prototype.difference(), Set.prototype.symmetricDifference(), Set.prototype.isSubsetOf(), Set.prototype.isSupersetOf() и Set.prototype.isDisjointFrom().
  • Запрещена установка дополнений, XPI-файлы которых подписаны с использованием небезопасных алгоритмов (настройка PREF_XPI_WEAK_SIGNATURES_ALLOWED по умолчанию выставлена в значение false).
  • В WebRTC включена поддержка протокола DTLS 1.3, основанного на TLS 1.3.
  • В версии для платформы Android:
    • Добавлена поддержка перевода содержимого с одного языка на другой. Как и в настольной версии Firefox для перевода задействована встроенная в приложение система перевода, которая выполняет перевод на локальной системе пользователя без обращения к внешним облачным сервисам.
    • В меню "..." добавлен новый элемент "Пароли".
    • Разрешено использование клавиши Enter на боковой цифровой панели стационарных клавиатур для подтверждения введённого в адресной строке URL.
    • Включены дополнительные оптимизации на этапе компиляции, позволившие увеличить отзывчивость интерфейса, сократить время запуска и продлить автономную работу устройства.
    • Секция со списком недавно сохранённых страниц перенесена в раздел закладок. Элементы списка теперь не исчезают после устаревания.

Кроме новшеств и исправления ошибок в Firefox 127 устранены 22 уязвимости. 11 уязвимостей помечены как опасные, из которых 9 вызваны проблемами работы с памятью, такими как переполнения буферов и обращение к уже освобождённым областям памяти. Потенциально данные проблемы способны привести к выполнению кода злоумышленника при открытии специально оформленных страниц.

  1. OpenNews: Релиз Firefox 126
  2. OpenNews: В Firefox предложена дополнительная защита от отслеживания с использованием редиректов
  3. OpenNews: Mozilla начала формирование ночных сборок Firefox для Linux-систем на архитектуре ARM64
  4. OpenNews: Опубликован список идей по развитию Firefox, над которыми ведётся работа
  5. OpenNews: Mozilla добавит в Firefox 130 AI-возможность для генерации описаний изображений
Обсуждение (135 +10) | Тип: Программы |
Следующая страница (раньше) >>



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру