The OpenNET Project / Index page

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

·20.11.2024 Выпуск свободной САПР FreeCAD 1.0 (57 +18)
  После более года разработки опубликован релиз открытой системы параметрического 3D-моделирования FreeCAD 1.0, которая отличается гибкими возможностями кастомизации и наращивания функциональности через подключение дополнений. Интерфейс построен с использованием библиотеки Qt. Дополнения могут создаваться на языке Python. Поддерживается сохранение и загрузка моделей в различных форматах, в том числе в STEP, IGES и STL. Код FreeCAD распространяется под лицензией LGPLv2, в качестве моделирующего ядра используется Open CASCADE. Готовые сборки подготовлены для Linux (AppImage), macOS и Windows.

FreeCAD позволяет, меняя параметры модели, обыгрывать различные варианты проектирования и оценивать работу в различные моменты разработки модели. Проект может выступать свободной заменой коммерческим САПР, таким как CATIA, Solid Edge и SolidWorks. Несмотря на то, что основным назначением FreeCAD является машиностроение и разработка дизайна новых продуктов, система может использоваться и в других областях, таких как архитектурное проектирование.

Значительное изменение номера версии объясняется достижением определённого рубежа в развитии. Проект существует уже более 20 лет и много лет назад сообщество разработчиков сформировало критерии, которые определяли функциональность, соответствующую выпуску 1.0. В представленной версии реализованы две последние задачи из этого списка - решение проблемы топологического именования и реализация встроенного модуля для проектирования работы сборных конструкций (Assembly).

Суть проблемы топологического именования в том, что при выполнении операций с моделью, таких как выдавливание (pad), вырезание (cut), объединение (union), фаска (chamfer) или скругление (fillet), могла измениться структура модели и соответственно поменяться внутренние имена объектов (форм), используемые для отслеживания зависимостей и связей. В новой версии реализован алгоритм Realthun­der-а, обеспечивающий сохранение неизменности связей объектов в модели после изменения топологии в параметрической цепочке.

Вторым важным изменением стал новый встроенный верстак для проектирования работы сборных многокомпонентных конструкций, собранных из отдельных деталей (Assembly Workbench), построенное на основе 3D-решателя Ondsel Solver.

Другие заметные изменения в новой версии:

  • Утверждён новый логотип проекта.
  • Значительно улучшен интерфейс пользователя. Реализованы фильтры, упрощающие выбор вершин, ребер и граней. Добавлен индикатор центра вращения, показываемый при вращении объектов мышью.

    Панель задач преобразована в отдельный виджет, который может быть закреплён поверх Комбо-панели для воссоздания старого поведения. В инструменте "Преобразование" (Transform) модернизирован внешний вид интерфейса для изменения ориентации объекта по трём плоскостям.

    Добавлена возможность наложения виджетов. В настройках (Preferences → Display) появилась поддержка выставления позиции источника света.

    Изменено оформление окна с настройками, в котором вместо вкладок предложено древовидное представление.

    Реализована новая панель с вкладками для переключения между доступными верстаками (workbench).

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

  • Верстак Start (Start Workbench) заменён на стартовую страницу, реализованную в форме приложения на Qt, и простой виджет первого запуска.
  • Осуществлено слияние верстаков для архитектурного проектирования (Arch) и информационного моделирования строительных объектов (BIM, Building Information Modelling).
  • Полностью переработан интерфейс для работы с материалами (Material Workbench) и редактор материалов.
  • Значительно расширена функциональность верстака для создания эскизов 2D-фигур (Sketch­er). Добавлены новые инструменты, такие как Dimension для выставления размеров с учётом контекста, Off­set для смещение кривых (например, для добавления параллельных контуров), Arc slot для создания искривлённых прорезей, Polar transform для поворота частей. Добавлена возможность выравнивания по вертикали и горизонтали, а также операций копирования и вставки с учётом выставленных ограничений. Реализована возможность выставления размеров во время рисования форм.
  • В верстак для 2D-моделирования и создания 2D-проекций 3D-моделей (TechDraw) добавлены новые инструменты: Snap­ping для автоматического выравнивания видов и размеров, Cos­met­ic­Cir­cle для создания косметических кругов, не влияющих на геометрию модели, Add­Off­setVer­tex для создания косметических вершины на основе отступа от других вершин, ArcLengthAnnotation для прикрепления аннотаций с информацией о длине дуги, BrokenView для визуализации длинных элементов с разрывом.
  • Верстак для генерации инструкций G-Code для станков ЧПУ и 3D-принтеров значительно улучшен и переименован из Path в CAM. Добавлен новый CAM-симулятор, использующий OpenGL.
  • Расширены возможности верстаков для двумерного рисования (Draft), анализа воздействий (FEM, Finite Element Module), создания заготовок (PartDesign), ведения электронных таблиц с параметрами моделей (Spreadsheet).

  1. OpenNews: Выпуск свободной САПР FreeCAD 0.21
  2. OpenNews: Учреждена компания Ondsel для продвижения профессионального применения FreeCAD
  3. OpenNews: Выпуск свободной САПР LibreCAD 2.2
  4. OpenNews: Выпуск САПР KiCad 8.0
  5. OpenNews: Выпуск свободной 2D САПР CadZinho 0.6
Обсуждение (57 +18) | Тип: Программы |
·20.11.2024 Компания Canonical представила первый LTS-выпуск инструментария MicroCloud (30 +6)
  Компания Canonical опубликовала инструментарий управления облачной инфраструктурой MicroCloud 2.1, позволяющий быстро развёртывать на своём оборудовании облачные системы и вычислительные кластеры с общим распределённым хранилищем данных и защищённой виртуальной сетью. MicroCloud 2.1 заявлен как первый LTS-выпуск для которого будет обеспечен длительный цикл поддержки. MicroCloud оформлен в виде snap-пакета, включающего компоненты, необходимые для управление работой узлов кластера. Инструментарий написан на языке Go и распространяется под лицензией AGPL 3.0.

MicroClouds позволяет создавать кластеры, насчитывающие от 3 до 50 хостов при включении обеспечения отказоустойчивости и от 1 хоста, если отказоустойчивость не требуется. Программный стек для управления кластером основан на инструментарии LXD, платформе для построения виртуальных сетей OVN (Open Virtual Network) и распределённом отказоустойчивом хранилище Ceph. Настройка LXD, Ceph и OVN на всех узлах кластера осуществляется автоматически. В качестве основной платформы рассматривается дистрибутив Ubuntu Server, но инструментарий не привязан к Ubuntu и может быть использован в любых дистрибутивах, для которых доступна возможность установки инструментария snap (Arch Linux, CentOS, Fedora, Debian, openSUSE, RHEL и т.п.).

Для определения новых серверов в сети, которые могут быть подключены к кластеру, используется mDNS, что позволяет настроить весь кластер запустив всего одну команду "microcloud init" на одном из узлов и команду "sudo microcloud join" на остальных узлах, предварительно установив snap-пакеты lxd, microceph, microcloud и microovn. После запуска команды "microcloud init" инструментарий определит наличие других серверов в локальной сети, выдаст запрос на добавление дисков в общее хранилище Ceph и предложит настроить параметры виртуальной сети. Для добавления дополнительных узлов после завершения инициализации можно использовать команду "microcloud add". Конфигурация кластера может быть сохранена в формате YAML для последующего развёртывания аналогичных систем.

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

После готовности кластера пользователям предоставляется возможность запуска своих приложений, используя контейнеры или виртуальные машины, а также возможность доступа к общему хранилищу Ceph и инструментарию централизованного управления на базе LXD. Возможно гибкое управление предоставляемыми ресурсами CPU, памяти и ввода/вывода, проброс в окружения USB-устройств, GPU и накопителей. Изолированные и виртуальные окружения могут переноситься между узлами в режиме live-миграции и сохраняться с использованием снапшотов. Метрики о работе кластера и лог событий могут экспортироваться для мониторинга при помощи Prometheus и Grafana.

В новой версии:

  • Предоставлена возможность развёртывания MicroCloud на одном узле без поддержания отказоустойчивости, что может быть полезным для экспериментов и тестирования на локальной системе перед развёртыванием в рабочем окружении.
  • Добавлены новые возможности инициализации кластера, позволяющие узлам заранее инициировать процесс установки доверия, не дожидаясь начала процедуры присоединения к кластеру.
  • Предоставлена возможность указания дополнительных настроек на этапе инициализации, например, теперь можно выбрать отдельные сетевые интерфейсы для трафика Ceph (для направления через разные интерфейсы данных, требующих низких задержек и высокой пропускной способности), включить шифрование дисков и определить параметры распределённой ФС Ceph.
  • Обновлены версии используемых компонентов: LXD 5.21, MicroCeph Squid (Ceph 19.2.0) и MicroOVN 24.04 (Open vSwitch 3.3). Включён по умолчанию пользовательский интерфейс к LXD.



  1. OpenNews: Уязвимость в Fluent Bit, затрагивающая многих облачных провайдеров
  2. OpenNews: Выпуск облачной платформы Apache CloudStack 4.18
  3. OpenNews: Сanonical предложил Anbox Cloud, облачную платформу для запуска Android-приложений
  4. OpenNews: Amazon адаптировал инструментарий управлениями контейнерами Finch для работы в Linux
  5. OpenNews: Выпуск Nextcloud Hub 9, платформы для организации совместной работы
Обсуждение (30 +6) | Тип: Программы |
·20.11.2024 Microsoft представил обновление WSL, прослойки для запуска Linux в Windows (122 +2)
  Компания Microsoft объявила о расширении возможностей прослойки WSL (Windows Subsystem for Linux) и реализации официальной поддержки запуска в WSL окружений с дистрибутивом Red Hat Enterprise Linux. Заявлено, что в скором времени компания Red Hat начнёт формировать специальные сборки RHEL для WSL, которые можно будет найти и установить при помощи команд "wsl --list --online" и "wsl --install".

WSL предоставляет виртуальную машину с полноценным ядром Linux (на базе веток 6.6 или 5.15), в которой могут запускаться специально адаптированные для WSL дистрибутивы Linux. Ядро включает специфичные для WSL изменения, такие как оптимизации для сокращения времени запуска и уменьшения потребления памяти, возможность возвращения Windows освобождённой Linux-процессами памяти и настройки для исключения лишних драйверов и подсистем. Система устанавливается в отдельный дисковый образ (VHD) c файловой системой ext4 и виртуальным сетевым адаптером. Помимо RHEL для установки в WSL доступны сборки Ubuntu, Debian GNU/Linux, Kali Linux, Fedora, Alpine, Arch Linux, Almalinux и SUSE и openSUSE.

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

  • Добавлен новый способ упаковки дистрибутивов Linux для установки в WSL. Кроме поставки дистрибутива через каталог Microsoft Store в формате appx и ручного импорта компонентов из tar-архива командой "wsl --import", в новой версии предоставлена возможность установки Linux-дистрибутива из файла или сетевого хранилища, без необходимости написания кода, специфичного для Windows. Новый метод сводится к добавлению в tar-архив с системным окружением дистрибутива файла /etc/wsl-distribution.conffile с метаданными, такими как название, пиктограмма, идентификатор пользователя по умолчанию и скрипты для настройки окружения, выполняемые при первом запуске. Подобный tar-архив можно просто переименовать в файл с расширением ".wsl" и установить командой "wsl --install".
  • Добавлен новый интерфейс первого запуска, предлагающий настройки и информацию с обзором возможностей WSL и инструкцией для пользователей, первый раз использующих Linux. Интерфейс показывается при первом запуске виртуальной машины с Linux, а также может быть вызван через кнопку Welcome to WSL в конфигураторе.
  • Реализована интеграция с платформой Intune для определения политик поддержки дистрибутивов и отслеживания используемых в WSL версий.
  • Интегрирована поддержка инструментария Microsoft Entra ID для управления идентификацией и организации доступа к защищённым корпоративным ресурсам из WSL-окружений.

  1. OpenNews: Microsoft опубликовал дистрибутив Azure Linux 3.0
  2. OpenNews: Microsoft развивает GUI для настройки WSL, прослойки для запуска Linux-приложений в Windows
  3. OpenNews: Microsoft прекращает поддержку прослойки WSA для запуска Android-приложений в Windows
  4. OpenNews: Microsoft опубликовал WSL 2.0.0, прослойку для запуска Linux-приложений в Windows
  5. OpenNews: В июньском обновлении Windows Server 2022 появилась поддержка WSL2 (Windows Subsystem for Linux)
Обсуждение (122 +2) | Тип: Программы |
·19.11.2024 Уязвимости в утилите needrestart, позволяющие получить root-доступ в Ubuntu Server (49 +19)
  Компания Qualys выявила три уязвимости в утилите needrestart, предназначенной для перезапуска фоновых процессов после обновления разделяемых библиотек, используемых данными процессами. Начиная с Ubuntu 21.04 утилита needrestart включена в состав базового окружения Ubuntu Server, в котором запускается с правами root в конце каждой транзакции пакетного менеджера APT, сканирует запущенные процессы и перезапускает те из них, что связаны с файлами, изменившимися после обновления пакетов. Выявленные уязвимости позволяют локальному непривилегированному пользователю получить права root в Ubuntu Server в конфигурации по умолчанию.

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

  • CVE-2024-48990 - локальный пользователь может добиться выполнения кода с правами root через создание условий для запуска Python-интерпретатора с выставленной атакующим переменной окружения PYTHONPATH. Кроме использования Python атака также может быть проведена (CVE-2024-48992) через запуск интерпретатора Ruby с переменной окружения RUBYLIB.

    Уязвимость вызвана тем, что в процессе перезапуска изменившегося скрипта утилита needrestart выставляет переменную окружения PYTHONPATH на основе содержимого файла /proc/pid/environ, которую затем использует и для запуска собственного Python-кода. Соответственно, атакующий может дождаться активности, связанной с работой пакетного менеджера APT, симулировать изменение своего скрипта и установить для него переменную окружения PYTHONPATH, которая также будет применена при запуске встроенного в needrestart Python-кода ("import sys\n print(sys.path)"), выполняемого с правами root.

    
         if(exists($e{PYTHONPATH})) {
             $ENV{PYTHONPATH} = $e{PYTHONPATH};
         }
         ...
         my ($pyread, $pywrite) = nr_fork_pipe2($self->{debug}, $ptable->{exec}, '-');
         print $pywrite "import sys\nprint(sys.path)\n";
         close($pywrite);
    

    Например, для эксплуатации уязвимости можно запустить постоянно висящий в памяти Python-процесс, выставив для него переменную окружения "PYTHONPATH=/home/test", и разместить разделяемую библиотеку "/home/test/importlib/__init__.so", которая будет выполнена при выполнении привилегированного Python-кода в needrestart.

  • CVE-2024-48991 - локальный пользователь может добиться выполнения кода с правами root через инициирование состояния гонки (race condition), в результате которого needrestart запустит Python-скрипт с использованием фиктивного файлового пути к исполняемому файлу python, указанного атакующим. Суть уязвимости похожа на вышеотмеченную проблему, разница только в том, что needrestart определяет имя процесса Python (например, /usr/bin/python3) через чтение "/proc/pid/exe".

    Для эксплуатации уязвимости можно создать процесс /home/test/race, который при помощи механизма inotify дождётся момента, когда needrestart начнёт читать содержимое /proc/pid/exe, и сразу запустит через функцию execve системный интерпретатор Python. Так как needrestart не выполняет проверку настоящий ли это Python, то он посчитает, что /home/test/race и есть интерпретатор Python и запустит его для своего кода.

  • CVE-2024-11003 - локальный пользователь может добиться выполнения произвольных shell-команд с правами root через создание условий для обработки в needrestart имён файлов в формате "команда|", передача которых в Perl-функцию open() без экранирования переменной приведёт к запуску команды. Фактически уязвимость проявляется в Perl-модуле ScanDeps (CVE-2024-10224), но вызвана передачей в этот модуль внешних параметров без должной проверки.

    Атака может быть осуществлена через запуск Perl-скрипта с символом "|" в имени, например, "/home/test/perl|". В процессе выполнения функции scan_deps() в needrestart данный файл будет открыт через функцию open(), которая обработает символ "|" как флаг для запуска программы "/home/test/perl" и использования полученного от данной программы выходного потока. В процессе изучения патча с исправлением в ScanDeps выявлена ещё одна похожая уязвимость, связанная с возможностью подстановки внешнего содержимого при вызове функции eval().

Уязвимости присутствуют в needrestart начиная с версии 0.8 (2014 год) и устранены в выпуске needrestart 3.8. Проблемы также уже исправлены в дистрибутивах Debian и Ubuntu. В качестве обходного пути блокирования эксплуатации уязвимости можно отключить режим сканирования интерпретаторов, указав в файле конфигурации /etc/needrestart/needrestart.conf параметр "$nrconf{interpscan} = 0".

  1. OpenNews: Уязвимость в OpenSSH, позволяющая удалённо выполнить код с правами root на серверах с Glibc
  2. OpenNews: Уязвимость в glibc, позволяющая получить root-доступ в системе
  3. OpenNews: Уязвимость в Glibc ld.so, позволяющая получить права root в большинстве дистрибутивов Linux
  4. OpenNews: Root-уязвимость в инструментарии управления пакетами Snap
  5. OpenNews: Критическая уязвимость в PolKit, позволяющая получить root-доступ в большинстве дистрибутивов Linux
Обсуждение (49 +19) | Тип: Проблемы безопасности |
·19.11.2024 Опубликована 64 редакция рейтинга самых высокопроизводительных суперкомпьютеров (86 +6)
  Опубликован 64-й выпуск рейтинга 500 самых высокопроизводительных компьютеров мира. Первое место в 64 редакции рейтинга занял новый кластер El Capitan, запущенный в Ливерморской национальной лаборатории Министерства энергетики США. Кластер насчитывает 11 миллионов процессорных ядер (CPU AMD EPYC 24C 1.8GH с ускорителем AMD Instinct MI300X) и обеспечивает производительность 1.742 экзафлопса. В качестве операционной системы применяется HPE Cray OS (редакция SUSE Linux Enterprise Server 15).

Смещённый на второе место прошлый лидер рейтинга, кластер Frontier, размещённый в Ок-Риджской национальной лаборатории Министерства энергетики США, модернизирован - число процессорный ядер (CPU AMD EPYC 64C 2GHz, ускоритель AMD Instinct MI250X) увеличено с 8.7 до 9 млн, что позволило повысить производительность с 1.206 до 1.353 экзафлопсов.

Со второго на третье место переместился кластер Aurora, развёрнутый в Аргоннской национальной лаборатории Министерства энергетики США. Кластер содержит 9.2 млн процессорных ядер (CPU Xeon CPU Max 9470 52C 2.4GHz, ускоритель Intel Data Center GPU Max) и обеспечивает производительность 1.012 экзафлопса. В качестве операционной системы в Aurora используется SUSE Linux Enterprise Server 15 SP4.

С третьего на четвёртное место сместился кластер Eagle запущенный в начале года компанией Microsoft для облака Azure. Кластер содержит 2 млн процессорных ядер (CPU Xeon Platinum 8480C 48C 2GHz) и демонстрирует пиковую производительность в 561 петафлопс. Программное обеспечение кластера базируется на Ubuntu 22.04.

Пятое место занял новый кластер HPC6, развёрнутый в итальянской нефтегазовой компании "Эни". Кластер содержит 3 млн процессорных ядер (AMD EPYC 64C 2GHz) и демонстрирует пиковую производительность в 477 петафлопс. Программное обеспечение кластера базируется на RHEL 8.9.

Что касается отечественных суперкомпьютеров, то созданные компанией Яндекс кластеры Червоненкис, Галушкин и Ляпунов опустились с 42, 69 и 79 мест на 60, 86 и 99 места. Данные кластеры созданы для решения задач машинного обучения и обеспечивают производительность 21.5, 16 и 12.8 петафлопса соответственно. Кластеры работают под управлением Ubuntu 16.04 и оснащены процессорами AMD EPYC 7xxx и GPU NVIDIA A100: кластер Chervonenkis насчитывает 199 узлов (193 тысячи ядер AMD EPYC 7702 64C 2GH и 1592 GPU NVIDIA A100 80G), Galushkin - 136 узлов (134 тысячи ядер AMD EPYC 7702 64C 2GH и 1088 GPU NVIDIA A100 80G), Lyapunov - 137 узлов (130 тысяч ядер AMD EPYC 7662 64C 2GHz и 1096 GPU NVIDIA A100 40G).

Развёрнутый Сбербанком кластер Christofari Neo опустился с 83 на 104 место. Christofari Neo работает под управлением NVIDIA DGX OS 5 (редакция Ubuntu) и демонстрирует производительность 11.95 петафлопса. Кластер насчитывает более 98 тысяч вычислительных ядер на базе CPU AMD EPYC 7742 64C 2.25GHz и поставляется с GPU NVIDIA A100 80GB. Второй кластер Сбербанка (Christofari) за полгода сместился с 142 на 172 место в рейтинге.

В рейтинге также остаётся ещё один отечественный кластер: Lomonosov 2, который сместился с 406 на 453 место (в 2015 году кластер Lomonosov 2 занимал 31 место, а его предшественник Lomonosov в 2011 году - 13 место). Кластер MTS GROM, который в прошлом рейтинге занимал 472 место, выбыл из списка 500 самых производительных систем. Таким образом, число отечественных кластеров в рейтинге уменьшилось с 7 до 6 систем (для сравнения в 2020 году в рейтинге было 2 отечественные системы, в 2017 году - 5, а в 2012 году - 12).

Наиболее интересные тенденции:

  • Распределение по количеству суперкомпьютеров в разных странах:
    1. США: 172 (171 - полгода назад). Суммарная производительность оценивается в 55.2% всей производительности рейтинга (полгода назад - 34.2%);
    2. Китай: 63 (80). В сумме китайские кластеры генерируют 2.7% от всей производительности (полгода назад - 16%);
    3. Германия: 41 (40). Суммарная производительность - 3.5% (8%);
    4. Япония: 34 (29). Суммарная производительность - 8% (5.8%);
    5. Франция: 24 (24). Суммарная производительность - 2.5% (4.8%);
    6. Великобритания: 14 (16);
    7. Южная Корея 13 (13);
    8. Италия: 13 (11). Суммарная производительность - 7.1% (4%);
    9. Нидерланды: 10 (9);
    10. Канада 10 (10);
    11. Бразилия 9 (8);
    12. Польша: 8 (8);
    13. Швеция 8 (7);
    14. Саудовская Аравия 7 (8);
    15. Тайвань: 7 (6);
    16. Индия: 7 (4);
    17. Норвегия: 6 (5);
    18. Россия 6 (7);
    19. Швейцария 5 (5);
    20. Австралия 4 (5);
    21. Ирландия 4 (4);
    22. Сингапур: 4 (3);
    23. Чехия: 3 (3);
    24. Испания: 3 (3).
    25. Финляндия: 3 (3);
    26. Австрия: 3;
    27. Объединённые Арабские Эмираты: 3.
  • В рейтинге операционных систем, используемых в суперкомпьютерах, c ноября 2017 года остаётся только Linux;
  • Распределение по дистрибутивам Linux (в скобках - 6 месяцев назад):
    • 38.2% (42.4%) используют системы на базе Linux, но не детализируют дистрибутив;
    • 17.4% (16.8%) - RHEL;
    • 10.2% (8.4%) - Ubuntu;
    • 8.4% (9.4%) CentOS;
    • 8.4% (9.2%) - Cray Linux;
    • 4.2% (4.4%) - SUSE;
    • 4% (3%) - Rocky Linux;
    • 1% (1.2%) - Alma Linux;
    • 0.2% (0.2%) - Amazon Linux
  • Минимальный порог производительности для вхождения в Top500 за 6 месяцев составил 2.31 петафлопса (полгода назад - 2.13 петафлопса). Десять лет назад лишь 51 кластер показывал производительность более петафлопса. Для Top100 порог вхождения вырос с 9.46 до 12.8 петафлопсов, а для Top10 - со 121.4 до 208 петафлопсов.
  • Суммарная производительность всех систем в рейтинге за 6 месяцев возросла с 8.2 до 11.7 экзафлопсов (пять лет назад было 1.65 экзафлопса, десять лет назад - 0.31 экзафлопса). Система, замыкающая нынешний рейтинг, в прошлом выпуске находилась на 454 месте.
  • Общее распределение по количеству суперкомпьютеров в разных частях света выглядит следующим образом: 181 суперкомпьютер находится в Северной Америке 181 (181 - полгода назад), 161 в Европе (157), 143 в Азии (147), 10 в Южной Америке (9), 4 в Океании (5) и 1 в Африке (1).
  • В качестве процессорной основы лидируют CPU Intel - 61.8% (полгода назад было 62.8%), на втором месте AMD 32.4% (31.4%), на третьем Fujitsu A64FX - 1.8% и NVIDIA Grace - 1.8%, на четвёртом IBM Power - 0.8% (было 1.2%).
  • 21.4% (полгода назад 20%) всех используемых процессоров имеют 64 ядра, 17.2% (17.8%) - 24 ядра, 10.2% (9.4%) - 32 ядра, 8.4% (5.8%) - 48 ядер, 7.6% (9%) - 20 ядер, 7.4% (4.4%) - 56 ядер, 4.6% (5.4%) - 16 ядер, 4.6% (5.6%) - 18 ядер, 4.4% (5.2%) - 28 ядер, 2% - 96 ядер. Суммарное число процессорных ядер во всех кластерах рейтинга за полгода увеличилось с 114.6 млн до 128.7 млн.
  • 209 из 500 систем (полгода назад - 196) дополнительно используют ускорители или сопроцессоры, при этом в 183 (142) системах задействованы чипы NVIDIA, в 19 (14) - AMD, в 1 (1) - Intel Xeon Phi, в 4 (4) - Intel DataCenter GPU, в 1 (1) - Matrix-2000.
  • Среди производителей кластеров на первом месте закрепилась компания Lenovo - 32.4% (полгода назад 32.6%), на втором месте компания Hewlett-Packard Enterprise - 23% (22.4%), на третьем месте компания EVIDEN - 10.4% (9.8%), далее следуют Dell EMC 7.4% (6.8%), NVIDIA 5.2% (4.4%), Fujitsu 3% (2.8%), NEC 2.8% (2.8%), Inspur - 2.2% (4.4%), Microsoft Azure - 1.6% (1.4%), Penguin Computing - 1.4% (1.4%), MEGWARE 1.4% (1.4%), IBM 0.6% (1%), Sugon 0.6% (1%), Supermicro 0.6%.
  • InfiniBand применяется для связи узлов в 50.6% (полгода назад 47.8%) кластеров, Ethernet используется в 37.4% (39%) кластеров, Omnipath - 6.2% (6.4%). Если рассматривать суммарную производительность, то системы на базе InfiniBand охватывают 33.6% (39.2%) всей производительности Top500, а Ethernet - 58.1% (48.5%).

Одновременно опубликован новый выпуск альтернативного рейтинга кластерных систем Graph 500, ориентированного на оценку производительности суперкомпьютерных платформ, связанных с симулированием физических процессов и задач по обработке больших массивов данных, свойственных для таких систем. Рейтинги Green500, HPCG (High-Performance Conjugate Gradient) и HPL-AI объединены с Top500 и отражаются в основном рейтинге Top500.

Дополнительно можно отметить релиз кластерной файловой системы Lustre 2.16, используемой в большей части крупнейших Linux-кластеров, содержащих десятки тысяч узлов. Ключевыми компонентами Lustre являются серверы обработки и хранения метаданных (MDS), управляющие серверы (MGS), серверы хранения объектов (OSS), хранилище объектов (OST, поддерживается работа поверх ext4 и ZFS) и клиенты. Код проекта распространяется под лицензией GPLv2. В новой версии реализована полноценная поддержка работы Lustre в сетях IPv6, используя компоненты LNet (Lustre Network) и LND (Lustre Network Daemon). Также проведена оптимизация обработки содержимого больших каталогов и добавлена поддержка RHEL 9.4 и Rocky Linux 9.4.

  1. OpenNews: Опубликована 63 редакция рейтинга самых высокопроизводительных суперкомпьютеров
  2. OpenNews: Выпуск кластерной ФС Lustre 2.15
  3. OpenNews: Опубликована 62 редакция рейтинга самых высокопроизводительных суперкомпьютеров
  4. OpenNews: Опубликована 61 редакция рейтинга самых высокопроизводительных суперкомпьютеров
  5. OpenNews: Опубликована 60 редакция рейтинга самых высокопроизводительных суперкомпьютеров
Обсуждение (86 +6) | Тип: К сведению |
·19.11.2024 Google намерен перевести Chrome OS на платформу Android (157 +6)
  Издание Android Authority получило сведения о намерении компании Google заменить платформу Chrome OS на новую реализацию, построенную на базе платформы Android. О планах задействования отдельных компонентов Android в Chrome OS, таких как ядро и системные библиотеки, сообщалось в июне, но судя по новым сведениям планы более глобальные, чем просто задействование частей Android в Chrome OS, и сводятся к полной унификации и оставлению только Android с воссозданием интерфейса в стиле Chrome OS поверх данной платформы.

В качестве причин упоминается желание усилить конкуренцию с iPad и более эффективно использовать инженерные ресурсы чтобы не распылять усилия на две операционные системы. Подробности о планах по интеграции проектов не сообщается, но предполагается, что Google постепенно начнёт вытеснение классического Chrome OS путём поставки на новых моделях Chromebook похожего по функциональности интерфейса, работающего на базе Android. По неофициальной информации первым подобным устройством станет ноутбук Pixel Laptop c прошивкой на базе платформы Android, в которой по умолчанию включён появившийся в Android 15 режим рабочего стола.

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

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

Дополнительно можно отметить публикацию изданием Bloomberg неподтверждённой информации о том, что в рамках антимонопольного разбирательства, в котором Google был признан монополистом на рынке поисковых систем, Министерство юстиции США намерено рекомендовать суду вынести предписание, обязывающее Google продать часть бизнеса, связанную с разработкой браузера Chrome. Судебное слушание по вопросу изменений, которые компания Google должна будет реализовать для устранения нарушения антимонопольного законодательства, намечено на апрель 2025 года, а окончательное решение суд намерен вынести в августе 2025 года. Изначально предполагалось, что требованием к Google станет продажа бизнеса, связанного с мобильной платформой Android.

  1. OpenNews: Google переводит ChromeOS на компоненты платформы Android
  2. OpenNews: Google добавит в Chrome OS технологию облачного выполнения классических приложений
  3. OpenNews: Сведения о проекте Andromeda, расширяющем Android возможностями Chrome OS
  4. OpenNews: Google планирует осуществить слияние Chrome OS и Android
  5. OpenNews: Google экспериментирует с возможностью запуска Linux-приложений в Android
Обсуждение (157 +6) | Тип: К сведению |
·19.11.2024 Доступно ядро Linux-libre 6.12. Решение лицензионных проблем с драйверами Tuxedo (70 +6)
  Латиноамериканский Фонд свободного ПО опубликовал полностью свободный вариант ядра Linux 6.12 - Linux-libre 6.12-gnu, очищенный от элементов прошивок и драйверов, содержащих несвободные компоненты или участки кода, область применения которых ограничена производителем. Кроме того, Linux-libre отключает функции ядра по загрузке внешних несвободных компонентов, не входящих в поставку ядра, и удаляет упоминание об использовании несвободных компонентов из документации.

Для очистки ядра от несвободных частей проектом Linux-libre создан универсальный shell-скрипт, который содержит тысячи шаблонов для определения наличия бинарных вставок и исключения ложных срабатываний. Также доступны для загрузки готовые патчи, созданные на основе использования вышеупомянутого скрипта. Ядро Linux-libre рекомендовано для использования в дистрибутивах, соответствующих критериям Фонда СПО по построению полностью свободных дистрибутивов GNU/Linux. Например, Linux-libre используется в таких дистрибутивах, как Dragora Linux, Trisquel, Dyne:Bolic, gNewSense, Parabola, Musix и Kongoni.

В выпуске Linux-libre 6.12-gnu добавлен код для чистки блобов в драйверах для SoC CPM/QE QMC, беспроводных чипов Realtek 8852BE-VT, bluetooth-адаптеров Amlogic, сетевых адаптеров amcc qt2025, датчиков aw96103/aw96105 и кодеков TI TLV320AIC31XX. Проведена дополнительная чистка блобов в драйверах для xHCI-контроллеров Renesas и Intel ISH (Integrated Sensor Hub) HID. Обновлён код удаления блобов в драйверах и подсистемах MHI PCI host, Adreno 620/621, r8169, Qualcomm q6v5 remoteproc, rtw8852c, rtw8922a, а также в dts-файлах для ARM54-чипов TI PRU и Qualcomm. Прекращена чистка драйверов для беспроводных карт ks7010 и звуковой подсистемы Intel SkyLake, так как данные драйверы были удалены из состава ядра.

Отдельно отмечается выявление в исходных текстах одного из драйверов исполняемого объектного кода, сгенерированного из неопубликованных исходных текстов и встроенного в форме последовательности шестнадцатеричных чисел. Проблемный драйвер явно не называется, но, судя по изменениям, речь про наличие микрокода шейдера в файле gfx_v9_4_3_cleaner_shader.h, входящего в состав драйвера AMDGPU. Первая подобная вставка была выявлена в ядре 6.11 и затем предложена одним из разработчиков к удалению, так как исходные тексты не были предоставлены (возникла ситуация поставки под лицензией GPL программы, доступной только в бинарном виде). Тем не менее, в ядре 6.12 указанный бинарный код был сохранён, а в тот же драйвер была добавлена ещё одна подобная вставка.

Кроме того, в анонсе Linux-libre 6.12 упомянуты ещё два события:

  • Для включения в состав ядра предложено исправление, блокирующее драйверам для ноутбуков Tuxedo доступ к подсистемам ядра, доступным только для кода под лицензией GPLv2 (EXPORT_SYMBOL_GPL). Возможность блокировки изначально была введена для ограничения связывания проприетарных драйверов с компонентами ядра Linux, экспортируемыми только для модулей под лицензией GPLv2, но успешно обходится через создание модулей-прослоек, транслирующих доступ проприетарного драйвера к необходимым API ядра. В случае с драйверами Tuxedo, ситуация обратная - несмотря на то, что драйверы Tuxedo развиваются отдельно от ядра, они поставляются под лицензией GPLv3, которая с одной стороны не совместима с GPLv2, но с другой стороны отстаивает больше свобод, например, защищает от тивоизации.

    Отмечается, что компании Tuxedo давно предлагали сменить лицензию на свои драйверы, но она продолжала поставлять код под лицензией GPLv3 и при этом указывала в коде драйвера макрос 'MODULE_LICENSE("GPL")' вместо 'MODULE_LICENSE("GPL v3")' для получения доступа ко всем подсистемам ядра. Компания Tuxedo согласилась с критикой и изменила лицензию на GPLv2+ для части своих драйверов. Изменение применено к драйверам gxtp7380, ite_8291, ite_8291_lb, ite_8297, ite_8297, stk8321, tuxedo_compatibility_check, tuxedo_nb02_nvidia_power_ctrl и tuxedo_tuxi. Более десятка драйверов пока не перелицензированы, так как для смены лицензии на них требуется получение согласия от сторонних разработчиков.

    Использование в коде 'MODULE_LICENSE("GPL")' вместо 'MODULE_LICENSE("GPL v3")' представитель Tuxedo объяснил отсутствием внятного пояснения в документации на ядро, что маркер "GPL" нельзя использовать для лицензии GPLv3. Также он рассказал, что компания намерена передать свои драйверы в основной состав ядра Linux и для этого ведёт работу по их полному переписыванию под лицензией GPLv2 c учётом требований к компонентам ядра.

  • Разработчики ядра обсуждают инициативу по добавлению флага X86_BUG_OLD_MICROCODE, сигнализирующего о том, что в системе используется не самая свежая версия микрокода CPU. При выставлении данного флага систему предлагается рассматривать как имеющую потенциальные неисправленные уязвимости. Попытки уравнять состояние системы с необновлённым микрокодом с ситуацией наличия реальных неисправленных уязвимостей в коде привело к критике со стороны одного из сопровождающих проект Linux-libre.

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

  1. OpenNews: Релиз ядра Linux 6.12 с поддержкой Realtime-режима
  2. OpenNews: Предложение по блокировке драйверов-прослоек, предоставляющих доступ к GPL-вызовам ядра Linux
  3. OpenNews: Технология DMA-BUF не может быть использована в проприетарных видеодрайверах без перелицензирования
  4. OpenNews: Из Debian удалены сборки пакетов с драйверами NVIDIA из-за подозрений в несовместимости с GPL
  5. OpenNews: Апелляционный суд встал на сторону VMware в деле о нарушении GPL
Обсуждение (70 +6) | Тип: Тема для размышления |
·18.11.2024 Релиз ядра Linux 6.12 с поддержкой Realtime-режима (185 +39)
  После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 6.12. Среди наиболее заметных изменений: возможность включения Realtime-режима, sched_ext для создания планировщиков CPU через eBPF, вывод QR-кода при аварийных состояниях, механизм Device Memory TCP, механизм резервирования ресурсов SCHED_DEADLINE server, улучшение планировщика задач EEVDF, модуль IPE для задания политик обеспечения целостности.

В новую версию принято 14607 исправлений от 2167 разработчиков, размер патча - 37 МБ (изменения затронули 13087 файлов, добавлено 507913 строк кода, удалено 234083 строки). В прошлом выпуске было 15130 исправлений от 2078 разработчиков, размер патча - 85 МБ (в ядре 6.10 патч был размером 41 МБ). Около 45% всех представленных в 6.12 изменений связаны с драйверами устройств, примерно 12% изменений имеют отношение к обновлению кода, специфичного для аппаратных архитектур, 13% связано с сетевым стеком, 6% - с файловыми системами и 3% c внутренними подсистемами ядра.

Основные новшества в ядре 6.12:

  • Память и системные сервисы
    • Предоставлена возможность сборки ядра с опцией PREEMPT_RT без дополнительных патчей для работы в режиме реального времени. Последней отсутствующей в ядре возможностью, не позволявшей активировать режим PREEMPT_RT, была поддержка неблокирующего атомарного вывода через функцию printk, которая также принята в состав ядра. Поддержка PREEMPT_RT доступна для архитектур x86, x86_64, ARM64 и RISC-V. До сих пор реализация режима PREEMPT_RT поставлялась в форме внешних патчей, на основе которых некоторые дистрибутивы, такие как RHEL, SUSE и Ubuntu, создавали отдельные Realtime-редакции своих продуктов, востребованные в таких областях, как финансовые системы, устройства обработки звука и видео, авиация, медицина, робототехника, телекоммуникационные и промышленные системы, в которых необходимо обеспечить предсказуемое время обработки событий.
    • Добавлен механизм "sched_ext" (SCX), позволяющий использовать eBPF для создания планировщиков CPU, охватывающих практически все аспекты планирования выполнения задач и распределения ресурсов CPU. Подобные планировщики могут загружаться динамически и выполняться внутри ядра Linux в виртуальной машине eBPF. Механизм sched_ext упрощает создание специфичных для определённых задач планировщиков, даёт возможность экспериментировать с различными техниками и стратегиями планирования, а также позволяет быстро создавать рабочие прототипы и заменять планировщики на лету в рабочих инфраструктурах. Например, при помощи sched_ext можно создать планировщик, учитывающий специфику определённого приложения и динамически меняющий стратегию планирования его выполнения в зависимости от состояния системы и каких-то дополнительных факторов.
    • В состав включена оставшаяся часть патчей, необходимых для работы механизма SCHED_DEADLINE server, решающего проблему с недополучением ресурсов CPU обычными задачами в условиях монополизации CPU высокоприоритетными (realtime) задачами. Для предотвращения монополизации CPU в ядре ранее использовался механизм Realtime throttling, который пытался резервировать 5% для низкоприоритетных задач, оставляя 95% времени realtime-задачам. Данный механизм оставлял желать лучшего так как обычные задачи во многих ситуациях недополучали процессорное время. SCHED_DEADLINE server реализует более эффективный механизм резервирования ресурсов.
    • Завершена интеграция планировщика задач EEVDF (Earliest Eligible Virtual Deadline First), который пришёл на смену планировщику CFS (Completely Fair Scheduler), поставлявшемуся начиная с ядра 2.6.23. Новый планировщик при выборе следующего процесса для передачи выполнения учитывает процессы, которые недополучили процессорные ресурсы или получили незаслуженно много процессорного времени. В первом случае форсируется передача управления процессу, а во втором, наоборот, откладывается. Старый планировщик CFS использовал для определения процессов, требующих отдельного внимания, эвристику и тонкие настройки, в то время как новый планировщик отслеживает их более явно и не требует тонкой настройки. Предполагается, что EEVDF позволит снизить задержки при выполнении задач, с которыми у CFS возникали проблемы с планированием.
    • В обработчик аварийных ситуаций в ядре - DRM Panic, использующий подсистему DRM (Direct Rendering Manager) для отображения наглядного отчёта в стиле "синего экрана смерти", добавлена возможность показа на экране логотипа и QR-кода с отчётом kmsg при возникновении аварийного состояния. Так как в QR-код умещается только 2953 байт, предусмотрена опция DRM_PANIC_SCREEN_QR_CODE_URL, при которой отчёт kmsg сжимается при помощи zlib и прикрепляется в качестве параметра к URL, что позволяет передать через QR-код V40 около 7500 байтов. При сборке пакетов с ядром дистрибутивы могут задать базовую ссылку для URL, что позволит организовать переход на страницу для отправки сообщения о проблеме. Для выбора формата QR-кода предусмотрена настройка DRM_PANIC_SCREEN_QR_VERSION.
    • Добавлена поддержка расширения ARM POE (Permission Overlay Extension), позволяющего задавать права доступа к областям памяти. При помощи данного расширения на системах с процессорами ARM64 может быть реализован механизм Memory Protection Keys, применяемый для ограничения доступа к страницам памяти без изменения таблицы страниц памяти.
    • Для архитектур Loongarch, ARM64, PowerPC и s390 перенесена реализация системного вызова getrandom(), оптимизированная при помощи механизма vDSO (virtual dynamic shared object), дающего возможность перенести обработчик системного вызова из ядра в пространство пользователя и избежать переключений контекста. Оптимизация позволяет до 15 раз ускорить получение случайных чисел.
    • В подсистему асинхронного ввода/вывода io_uring добавлена возможность использования абсолютных таймаутов, срабатывающих при достижении определённого времени на системных часах (ранее могли выставляться только относительные таймауты, в которых указывалась продолжительность с начала операции).
    • Добавлены файлы для генерации биндингов для библиотеки libcpupower при помощи инструментария SWIG, позволяющего формировать биндинги из кода на C/C++ для различных языков программирования. Биндинги позволяют создавать скрипты на Python и других языках, и использовать их для расширения функциональности библиотеки libcpupower, предоставляющей API для управления cpufreq и драйверами из пространства пользователя.
    • В утилите cpuidle реализовано отображение значения состояния простоя "residency", применяемого для realtime-систем и учитывающего минимальное время, которое процессор должен находиться в состоянии простоя, чтобы оправдать затраты энергии на переход в это состояние и выход из него.
    • Добавлена возможность использования компилятора Clang для сборки стандартной Си-библиотеки nolibc, входящей в состав исходных текстов ядра Linux и предоставляющей обвязку над базовыми системными вызовами. При сборке nolibc в Clang допускается использование оптимизации на этапе связывания (LTO).
    • Объявлены устаревшими некоторые интерфейсы cgroup1, такие как аккаунтинг TCP, первая версия мягких ограничений (soft limit) и управление исчерпанием свободной памяти. Поддержка указанных функций пока сохраняется в полном объёме, а предупреждение сделано для изучения числа пользователей, которые продолжают использовать данные возможности.
    • Добавлена возможность настройки кольцевого буфера трассировки для сохранения накопленных данных после перезагрузки, что позволит не терять накопленную отладочную информацию в случае аварийного завершения работы ядра. Данные сохраняются в памяти. Включение осуществляется через параметр командной строки ядра trace_instance, например, выставление "trace_instance=boot_map@0x285400000:12M" зарезервирует 12 МБ памяти по адресу 0x285400000 для буфера "boot_map", который будет доступен через файл /sys/kernel/tracing/instances/boot_map.
    • Продолжен перенос изменений из ветки Rust-for-Linux, связанных с использованием языка Rust в качестве второго языка для разработки драйверов и модулей ядра (поддержка Rust не активна по умолчанию, и не приводит ко включению Rust в число обязательных сборочных зависимостей к ядру). Добавлены модули 'list' и 'rbtree' для работы с двунаправленными связными списками и красно-чёрными деревьями поиска (red-black tree). Расширены возможности модулей 'init', 'sync', 'types' и 'error'. Предоставлена возможность использования кода на Rust при сборке ядра с защитой от атак Spectre (опции MITIGATION_{RETHUNK,RETPOLINE,SLS}), использования отладочной системы KASAN, механизмов защиты kCFI (kernel Control Flow Integrity) и Shadow Call, а также при использовании дополнительных плагинов GCC. Добавлен драйвер для Ethernet-контроллера Applied Micro QT2025 PHY, написанный на Rust. Подготовлен отдельный сайт с документацией - rust.docs.kernel.org.
    • В состав исходных текстов ядра добавлена утилита xdrgen для преобразования XDR-спецификаций (eXternal Data Representation) в функции кодирования и декодирования XDR, написанные с использованием Си-стиля, принятого в ядре Linux.
    • В ядро принято изменение с реализацией механизма маскирования указателей для снижения числа медленных вызовов barrier_nospec() в 64-битной функции copy_from_user(), применяемой для копирования данных в ядро из пространства пользователя. Применение маскирования ускоряет на 2.6% прохождение теста "per_thread_ops", оценивающего число операций, которые могут быть выполнены в одном потоке.
    • Добавлен новый USB-драйвер, позволяющий использовать протокол 9pfs в качестве транспорта для передачи и приёма данных с USB-устройства, при монтировании ФС 9p поверх USB (например, "mount -t 9p -o trans=usbg,aname=/path/to/fs <device> /mnt/9"). В качестве примера применения нового драйвера называется использование вместо NFS для организация загрузки корневого раздела при разработке встраиваемых устройств.
  • Дисковая подсистема, ввод/вывод и файловые системы
    • В подсистему VFS добавлена возможность работы c устройствами хранения, размер блоков в которых больше, чем размер страницы памяти в системе. В файловых системах данная возможность пока поддерживается только в XFS.
    • В подсистему FUSE, позволяющую создавать реализации файловых систем, работающие в пространстве пользователя, добавлена поддержка маппинга идентификаторов пользователей примонтированных файловых систем, применяемого для сопоставления файлов определённого пользователя на примонтированном чужом разделе с другим пользователем в текущей системе.
    • Реализована новая fcntl-операция F_CREATED_QUERY, дающая приложению возможность определить был ли создан файл, открытый с использованием флага O_CREAT, или он уже существовал до этого.
    • В системный вызов name_to_handle_at() добавлена возможность использования уникальных 64-разрядных идентификаторов точек монтирования для исключения состояния гонки при разборе /proc/mountinfo.
    • Размер структуры "file" в ядре сокращён с 232 до 184 байт, что позволяет сократить потребление памяти на системах, активно работающих с файлами.
    • Запрещено монтирование файловых систем к точкам монтирования внутри иерархии /proc, например, в /proc/PID/fd, что создавало потенциальные проблемы с безопасностью.
    • В псевдо-ФС NSFS (NameSpace FS), используемой для работы с пространствами имён, реализовано предоставление дополнительной информации о пространствах имён точек монтирования.
    • В файловой системе EROFS (Extendable Read-Only File System), предназначенной для использования на разделах, доступных в режиме только для чтения, появилась поддержка монтирования файловых систем напрямую из дисковых образов, сохранённых в виде файлов.
    • В XFS добавлены новые ioctl-команды XFS_IOC_START_COMMIT и XFS_IOC_COMMIT_RANGE для обмена содержимым между двумя файлами.
    • В NFS добавлена поддержка протокола "LOCALIO", позволяющему определить находятся ли клиент и сервер NFS на одном и том же хосте, для задействования соответствующих оптимизаций.
    • В файловой системе Btrfs предложены оптимизации производительности, проведён рефакторинг кода, сокращена область блокировки экстентов при операциях чтения, продолжена работа по переводу на использование фолиантов страниц памяти (page folios), реализовано автоматическое освобождение памяти для структуры btrfs_path.
    • В файловой системе Ext4 устранены ошибки, связанные с выделением блоков, управлением экстентами, механизмом "fast commit" и журналированием.
  • Виртуализация и безопасность
    • Добавлен LSM-модуль IPE (Integrity Policy Enforcement), разработанный компанией Microsoft для расширения существующей системы мандатного управления доступом. Модуль позволяет определить общую политику обеспечения целостности для всей системы, указывающую какие операции допустимы и каким способом следует верифицировать подлинность компонентов. Например, при помощи IPE можно указать какие исполняемые файлы разрешено запускать с учётом проверки их соответствия эталонной версии при помощи криптографических хэшей, предоставляемых системой dm-verity.
    • На этапе компиляции ядра предоставлена возможность раздельного включения доступных методов защиты от разных уязвимостей класса Spectre в CPU. В Kconfig предложены новые параметры: MITIGATE_MDS (защита от уязвимости Microarchitectural Data Sampling), MITIGATE_TAA (защита от уязвимости TSX Asynchronous Abort), MITIGATE_MMIO_STALE_DATA (защита от уязвимости MMIO Stale Data), MITIGATE_L1TF (защита от уязвимости L1 Terminal Fault), MITIGATE_RETBLEED (защита от уязвимости Retbleed), MITIGATE_SPECTRE_V1, MITIGATE_SPECTRE_V2 (защита от уязвимостей Spectre), MITIGATE_SRBDS (защита от уязвимости Special Register Buffer Data Sampling), MITIGATE_SSB (защита от уязвимости Speculative Store Bypass).
    • Добавлен параметр командной строки proc_mem.force_override и набор сборочных настроек в Kconfig (PROC_MEM_FORCE_ALWAYS, PROC_MEM_FORCE_PTRACE и PROC_MEM_FORCE_NEVER), позволяющих запретить изменение памяти через /proc/pid/mem.
    • Подсистема LSM (Linux security module) переведена на использование статических вызовов, что позволило усилить безопасность и повысить производительность.
    • Обеспечена возможность использования штатных ядер для архитектуры ARM64 в гостевых окружениях, выполняемых на Android-системах с модифицированным гипервизором KVM (protected KVM).
    • В LSM-модуле Landlock, позволяющем ограничить взаимодействие группы процессов с внешним окружением, реализована концепция "IPC scoping" для выборочного ограничения взаимодействия с sandbox-окружениями, используя Unix-сокеты и сигналы. Например, можно запретить установку соединений с использованием Unix-сокетов из sandbox-окружения к процессам, в которых не применяется изоляция, но разрешить соединения с процессами в той же scope-области.
    • В гипервизоре KVM в CPUID для гостевых систем добавлен флаг, сигнализирующий о поддержке расширений AVX10.1.
  • Сетевая подсистема
    • Добавлен механизм Device Memory TCP, позволяющий использовать сетевые сокеты для прямой отправки содержимого памяти периферийного устройств по сети (режим zero-copy) и прямого размещения содержимого сетевых пакетов в области памяти устройства на стороне получателя. Передаваемые в пакетах данные передаются от сетевой карты в память периферийного устройства или из памяти устройства в сетевую карту напрямую, минуя CPU, а заголовки пакетов попадают в обычные буферы ядра.
    • Расширены возможности многих Ethernet и беспроводных драйверов. Например, в драйвере Intel iwlwifi добавлена поддержка выноса операций RLC/SMPS на сторону прошивки, в драйвере RealTek rtw89 повышена производительность и добавлена поддержка чипов RTL8852BT/8852BE-VT (WiFi 6), в Ethernet-драйвере microchip добавлена поддержка спецификаций IEEE 802.3bw (100BASE-T1) и IEEE 802.3bp, улучшены реализации виртуальных Ethernet Microsoft vNIC и IBM veth. Добавлены новые драйверы для Ethernet-чипов Realtek RTL9054, RTL9068, RTL9072, RTL9075, RTL9068, RTL9071 и Microchip LAN8650/1 10BASE-T1S MAC-PHY.
    • В MPTCP (MultiPath TCP), расширении протокола TCP для организации доставки TCP-пакетов одновременно по нескольким маршрутам через разные сетевые интерфейсы, размер используемых при маршрутизации весовых коэффициентов увеличен с 8 до 16 бит. Реализовано определение теряющегося (blackhole) трафика и приостановки на некоторое время попыток установки соединений с системами, приводящими к потере трафика.
    • Для IPv6 реализована поддержка флага "p" в PIO (Prefix Information Option), применяемого в анонсах RA (IPv6 Router Advertisements) для выбора модели развёртывания клиентов через DHCPv6-PD (DHCPv6 Prefix Delegation, RFC9663) вместо присвоения отдельных адресов на базе префиксов, используя SLAAC (Stateless Address Autoconfiguration). В IPv6 IOAM6 добавлена поддержка нового режима инкапсуляции tunsrc, позволяющего добиться более высокой производительности.
    • Повышена производительность обработки управляющих пакетов IPsec.
    • Повышена производительность сброса (flush) больших наборов правил nftables. В nfnetlink_queue улучшена поддержка протокола SCTP.
    • В API ethtool добавлена поддержка привязки нескольких сетевых карт к одному сетевому интерфейсу.
  • Оборудование
    • В драйвере AMDGPU продолжена работа по реализации поддержки GPU AMD RDNA4 ("GFX12"). Добавлена возможность сброса отдельных очередей задач без сброса состояния всего GPU.
    • Продолжена работа над drm-драйвером (Direct Rendering Manager) Xe для GPU на базе архитектуры Intel Xe, которая используется в видеокартах Intel семейства Arc и интегрированной графике, начиная с процессоров Tiger Lake. В новой версии включена поддержка GPU на базе микроархитектур Battlemage и Lunar Lake. Представлена поддержка CCS-модификаторов (Color Control Surface) Xe2 для управления параметрами встроенных и дискретных GPU.
    • В драйвере i915 реализована возможность вывода через интерфейс HWMON или sysfs (атрибут "fan1_input") информации о скорости вращения кулера. Объявлен устаревшим параметр "i915.modeset", вместо "i915.modeset=0" следует использовать параметр "i915.nomodeset".
    • В DRM-драйвер msm (GPU Qualcomm Adreno) добавлена поддержка GPU A615, A306 и A621.
    • В драйвере Nouveau проведена переработка и чистка внутренних структур.
    • В драйвер intel_pstate, управляющий параметрами энергопотребления (P-state) на системах с процессорами Intel, добавлена поддержка гибридных систем с асимметричными (отличающимися по характеристикам) CPU, а также поддержка управления питанием процессоров на базе микроархитектур Granite Rapids и Sierra Forest. В драйвер intel_idle добавлена поддержка CPU Xeon Granite Rapids. В драйвере intel_rapl обеспечено распознание процессов AMD семейства 1Ah и процессоров Intel ArrowLake-U.
    • Продолжено включение изменений для поддержки ARM SoC Snapdragon X Elite, в котором используется собственный 12-ядерный CPU Qualcomm Oryon и GPU Qualcomm Adreno. Чип нацелен на использование в ноутбуках и ПК, и опережает во многих тестах производительности чипы Apple M3 и Intel Core Ultra 155H.
    • Добавлена поддержка ARM-плат, SoC и устройств: Broadcom bcm2712 (Raspberry Pi 5), Renesas R9A09G057 (RZ/V2H), Qualcomm Snapdragon 414 (MSM8929), Lenovo ThinkPad T14s Gen 6, Lenovo A6000/A6010, Surface Laptop 7, Anbernic RG35XXSP, Firefly Core-PX30-JD4, Lunzn Fastrhino R68S, Aspeed Riser, AGX Orin, Rockchip Qnap-TS433, Huashan Pi, Meta Catalina, BeagleY-AI, NanoPi R2S Plus, ExynosAuto v920, SOPHGO SG2002, Qualcomm IPQ5332, LG G4 (h815), Cool Pi CM5 GenBook, Anbernic RG35XXSP, GameForce Ace, IBM P11, Kontron i.MX93 OSM-S, NanoPC-T6
    • Добавлена поддержка экранных панелей Anbernic RG28XX, On Tat Industrial Company KD50G21-40NT-A1, Innolux G070ACE-LH3, Melfas lmfbx101117480, Densitron DMT028VGHMCMI-1D, Microchip AC40T08A, AOU B116XTN02.3, AUO B116XAN06.1, AOU B116XAT04.1, BOE TV101WUM-LL2, BOE NV140WUM-N41, BOE NV133WUM-N63, BOE NV116WHM-A4D, BOE NE140WUM-N6G, CMN N116BCA-EA2, CMN N116BCP-EA2, CSW MNB601LS1-4, Starry er88577.
    • В звуковой подсистеме добавлена поддержка чипов и кодеков RME Digiface USB, AMD ACP 7.1, Mediatek MT6367, MT8365, Realtek RTL1320, C-Media CM9825. Объявлены устаревшими старые звуковые драйверы для ASoC Intel, вместо которых рекомендовано использовать драйверы AVS. Внесено много улучшений в драйвер SoundWire.

  1. OpenNews: Релиз ядра Linux 6.11
  2. OpenNews: Релиз ядра Linux 6.10
  3. OpenNews: Релиз ядра Linux 6.9
  4. OpenNews: Релиз ядра Linux 6.7
  5. OpenNews: Релиз ядра Linux 6.8
Обсуждение (185 +39) | Тип: Программы |
·17.11.2024 Fil-C - компилятор для языков C и C++, гарантирующий безопасную работу с памятью (403 +40)
  Филипп Пизло (Filip Pizlo) представил на конференции SPLASH'24 открытый C/C++ компилятор Fil-C, предоставляющий защиту от проблем, вызванных ошибками при работе с памятью. Проект нацелен на обеспечение полной совместимости с существующим кодом на языках C и C++ - для обеспечения безопасной работы с памятью достаточно просто пересобрать существующий код. Компилятор построен с использованием компонентов от проекта LLVM и распространяется под лицензией Apache 2.0. Runtime поставляется под лицензией BSD. В отличие от недавно анонсированного проекта TrapC, находящегося на стадии проектирования, компилятор Fil-C уже доведён до готовности сборки существующего кода.

Проектом также поставляются безопасно работающие с памятью варианты стандартных библиотек C (libc) и C++ (libc++), основанные на библиотеках Musl и LLVM libc++. Среди прочего, в собираемых программах могут использоваться такие возможности, как многопоточность, обработка сигналов, маппинг файлов в память (mmap), longjmp/setjmp и обработка исключений в C++. При помощи Fil-C без внесения изменений могут быть собраны проекты bzip2, zip, pcre и ncurses. С незначительными модификациями поддерживается сборка OpenSSH, OpenSSL, CPython, SQLite, Lua, Curl, Lynx, jpeg6b, zsh, xzutils и simdutf.

Защита от проблем с памятью обеспечивается благодаря применению 128-разрядных указателей MonoCaps с метаданными для проверки типов и отслеживания границ буферов, а также задействованию сборщика мусора FUGC, контролирующего все операции по выделению и освобождению памяти. В случае ошибок при работе с памятью приложение сразу аварийно завершается, что не позволяет эксплуатировать возможные уязвимости.

Заявлено, что комбинация из MonoCaps и FUGC позволяет отлавливать и блокировать все ошибки, связанные с выходом за границы буфера в стеке и куче, обращением к уже освобождённой памяти, состояниями гонки при работе с указателями, а также неправильной обработкой типов (Type Confusion) в контексте пересечения типов указателей и не указателей, проблем при динамической компоновке (linking) и некорректного использования va_lists. Кроме того, Fil-C отдельно проверяет границы и типы в буферах, передаваемых в системные вызовы.

Ценой возможности использования Fil-C для защиты существующих проектов, без необходимости переписывания их кода или задействования особых языковых конструкций, является снижение производительности. На текущем этапе развития, собираемые в Fil-C программы медленнее примерно в 1.5-5 раз, по сравнению со сборкой обычными компиляторами. В планах заявлена работа по проведению оптимизации. Предполагается, что после завершения этой работы в большинстве случаев код будет выполняться медленнее в 1.2 раза, а в наихудших сценариях замедление не превысит полтора раза. Компилятор пока поддерживает только платформу Linux на системах X86_64. Предыдущие версии поддерживали macOS и FreeBSD, но затем было решено не распылять усилия и вначале подготовить качественный порт libc для одной платформы.

Другим ограничением Fil-C является принципиальный отказ от сохранения совместимости на уровне ABI для кода на C/C++, что не позволяет связывать собираемый в Fil-C код с бинарными библиотеками и объектными файлами, собранными другими компиляторами (обязательно необходима пересборка этих библиотек при помощи Fil-C, так как методы вызова функций и способ динамического связывания в Fil-C отличается от существующих компиляторов и компоновщиков). Подобное решение объясняется тем, что при связывании с незащищённым кодом теряется суть предлагаемой в Fil-C защиты и возникает иллюзия защищённого приложения - при наличии совместимости ABI, у разработчиков возникал бы соблазн собрать в Fil-C лишь отдельные файлы, не утруждая себя портированием всего проекта.

Задействованный в Fil-C механизм MonoCap основывается на применении 16-байтовых указателей, в которых, помимо адреса в памяти, указывается ссылка на объект, включающий сведения о возможностях (capability), таких как верхняя и нижняя границы буфера, ассоциированного с указателем, а также массив, определяющий типы данных, хранимые в каждом блоке памяти (1 байт с информацией о типе (unset, int, ptr, free) для каждого 16-байтового блока памяти). При каждом обращении к памяти по указателю осуществляется проверка границ и типа (например, в память с типом "ptr" не могут быть записаны данные с типом "int" и наоборот).

Все операции выделения и освобождения памяти обрабатываются сборщиком мусора FUGC (Fil's Unbelievable Garbage Collector), который при освобождении памяти переводит все связанные с освобождаемым буфером записи о типах в значение "free" и затем перенаправляет все указатели на освободившиеся объекты на отдельный объект, сигнализирующий о том, что память уже освобождена. Любое дальнейшее обращение к блоку данных с типом "free" или по указателю, связанному с освобождённым объектом, приводит к генерации исключения, что позволяет защититься от уязвимостей класса use-after-free. Сборщик мусора работает параллельно и не приостанавливает выполнение других потоков.

Использование комбинации из MonoCaps и FUGC позволяет сохранить возможность привычной работы с указателями и оставить неизменной семантику вызовов malloc и free, предоставив при этом гарантированную защиту. Код программы может содержать различные логические ошибки, такие как неправильное приведение типов, неверные арифметические операции с указателями, состояния гонки и несвоевременный вызов функции free(), но, независимо от всего этого, Fil-C запомнит исходные границы и тип данных и прервёт выполнение, если будет предпринята попытка доступа по указателю к области вне запомненных границ, обращения к освобождённому блоку памяти или чтения данных с типом "int" как указателя или наоборот.

Автор Fil-C, Филипп Пизло, занимает в компании Epic Games пост директора, отвечающего за проекты, связанные с языками программирования. Филипп имеет богатый опыт работы над виртуальными машинами, языками программирования, компиляторами и сборщиками мусора, например, в IBM он развивал язык программирования X10, в Microsoft работал над сборщиками мусора Stopless, Clover и Chicken, в Apple занимался JIT-компилятором и оптимизациями браузерного движка WebKit, в Epic Games возглавляет команду разработчиков, развивающую язык программирования Verse и связанную с ним виртуальную машину. Филипп также является одним из ключевых разработчиков виртуальных машин Jikes RVM, Ovm и Fiji VM.

  1. OpenNews: Проект TrapC развивает Си-подобный язык, безопасно работающий с памятью
  2. OpenNews: C++ Alliance продвигает в C++ механизмы безопасной работы с памятью, опробованные в Rust
  3. OpenNews: Методы безопасной работы с памятью позволили существенно снизить число уязвимостей в Android
  4. OpenNews: 70% проблем с безопасностью в Chromium вызваны ошибками при работе с памятью
  5. OpenNews: DARPA развивает AI-транслятор для переписывания Си-кода на Rust
Обсуждение (403 +40) | Тип: Программы | Интересно
·16.11.2024 Дистрибутив OpenWrt переходит на пакетный менеджер APK (79 +42)
  Разработчики дистрибутива OpenWrt, ориентированного на применение в различных сетевых устройствах, таких как маршрутизаторы, коммутаторы и точки доступа, объявили о переходе на пакетный менеджер APK, развиваемый проектом Alpine. В ноябрьских снапшотах, созданных на базе находящейся в разработке основной ветки OpenWrt, ранее использовавшийся пакетный менеджер opkg уже заменён на инструментарий apk.

Тестовая ветка OpenWrt 24.10 пока продолжает использовать opkg, но в ближайшее время будет переведена на APK (OpenWrt 24.10 станет первым релизом на базе APK). Стабильная ветка OpenWrt 23.05 до окончания своего сопровождения продолжит использование opkg. После завершения миграции на новый пакетный менеджер opkg будет переведён в разряд устаревших и больше не будет развиваться как часть проекта OpenWrt.

Переход на APK позволит расширить возможности управления пакетами, а также приведёт к изменению методов установки и работы с пакетами. Среди причин перехода упоминаются более эффективная работа с метаданными в APK и возможность модернизации процесса обновления всей системы до новой версии дистрибутива. Кроме того, APK по умолчанию требует наличия корректных цифровых подписей для всех пакетов (если не указывать опцию "--allow-untrusted"), в то время как opkg не проводит проверку для локально устанавливаемых пакетов.

Из расширенных возможностей APK также отмечается: Команда "apk list --installed --orphaned", при помощи которой можно посмотреть все не используемые зависимости, которые без ущерба для системы могут быть удалены. Возможность обойтись без отдельной команды обновления индекса - операции opkg, требовавшие запуска разных команд, в apk могут быть сведены к одной команде, например, вместо "opkg update && opkg install dnsmasq-full" можно запустить "apk --update-cache add dnsmasq-full".

Сравнение некоторых команд apk и opkg для выполнения типовых действий:

apk update opkg update
apk add pkg opkg install pkg
apk del pkg opkg remove pkg
apk list opkg list
apk list P opkg list P
apk list --installed [P] opkg list-installed
apk list --upgradeable [P] opkg list-upgradable
apk list --providers [P] opkg -A whatprovides P
apk info P opkg info P
apk info --all P нет эквивалента
apk info --contents P opkg files P

  1. OpenNews: Опубликован OpenWrt 23.05.0
  2. OpenNews: Доступен маршрутизатор OpenWrt One, развиваемый сообществами OpenWrt и Banana Pi
  3. OpenNews: Обновление OpenWrt 19.07.1 с устранением уязвимости, допускающей подмену пакетов
  4. OpenNews: Релиз минималистичного дистрибутива Alpine Linux 3.20
  5. OpenNews: Уязвимость в пакетном менеджере APK, позволяющая удалённо выполнить код в Alpine Linux
Обсуждение (79 +42) | Тип: К сведению |
·16.11.2024 Выпуск web-браузера Chrome 131 (89 +6)
  Компания Google опубликовала релиз web-браузера Chrome 131. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается от Chromium использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого от копирования видеоконтента (DRM), системой автоматической установки обновлений, постоянным включением Sandbox-изоляции, поставкой ключей к Google API и передачей при поиске RLZ-параметров. Для тех, кому необходимо больше времени на обновление, отдельно поддерживается ветка Extended Stable, сопровождаемая 8 недель. Следующий выпуск Chrome 132 запланирован на 14 января.

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

  • Во встроенном PDF-просмотрщике расширена возможность распознавания текста в отсканированных PDF-документах, в которых текст размещён в виде изображения. Текст распознаётся на локальной системе при помощи встроенного движка оптического распознавания символов (OCR), построенного на базе машинного обучения. В отличие от прошлых версий отсканированные документы теперь автоматически преобразуются в текстовое представление, для которого доступны функции выделения, поиска и копирования в буфер обмена.
  • Представлена возможность включения расширенных проверок в системе распределения памяти PartitionAlloc, которые позволяют блокировать уязвимости, вызванные обращением к уже освобождённым областям памяти (use-after-free). По умолчанию данные проверки отключены из-за возможного негативного влияния на производительность. Тем не менее, для внедрений, в которых безопасность важнее производительности, теперь предоставляется отдельные enterprise-политики для активации дополнительной защиты.
  • Во встроенном хранилище корневых сертификатов (Chrome Root Store) прекращено доверие к удостоверяющему центру Entrust из-за множественных нарушений требований к удостоверяющим центрам, не соблюдение сроков реагирования на проблемные сертификаты, затягивание отзыва сертификатов, ненадлежащее оформление отчётов об инцидентах и не соблюдение правил при выдаче TLS-сертификатов уровня EV (Extended Validation), требующих проведения проверки документов о принадлежности домена и подтверждение владельца ресурса. В связи с отсутствием действий по устранению выявленных недостатков, TLS-сертификаты, выданные Entrust после 11 ноября 2024 года, воспринимаются в Chrome как не заслуживающие доверия. Сертификаты, выпущенные до 11 ноября, продолжают восприниматься как нормальные.
  • В версии для Android включена возможность подключения сторонних провайдеров автоматического заполнения форм и сохранения паролей, не завязанная на API Accessibility.
  • В версии для Android упрощено подключение к учётной записи в Google и управление синхронизацией данных между разными браузерами. Синхронизация больше не преподносится как отдельная функция в настройках, а объединена с функцией подключения к учётной записи Google, что позволяет использовать и сохранять в Google Account такую информацию, как пароли и закладки.
  • Началась постепенная активация среди пользователей нового режима экономии потребления энергии (Energy saver), при котором автоматически замораживаются вкладки, потребляющие много ресурсов CPU, но при этом не выводящие звук и скрытые в течение более 5 минут. Исключение делается только для вкладок, связанных с управлением внешними устройствами или проведением видео и аудио конференций (подобные вкладки определяются на основании доступа к API для работы с USB, Bluetooth, камерой, устройствами ввода и микрофоном, а также организации канала связи с использованием RTCDataChannel или MediaStreamTrack). Для управления включением автозаморозки можно использовать настройку "chrome://flags/#freezing-on-energy-saver".
  • Добавлены экспериментальные режимы экономии памяти (Memory saver) - Moderate, Balanced и Maximum, позволяющие выбрать метод высвобождения памяти от неактивных вкладок. В режиме Moderate память вкладки деактивируются только при нехватке памяти в системе, в режиме Maximum вкладки деактивируются через небольшое время после того как становятся неактивными, а в режиме Balanced неактивные вкладки деактивируются с учётом свободной памяти в системе.
  • Добавлены дополнительные настройки, связанные с производительностью, например, появилась возможность указания сайтов, постоянно остающихся в активном режиме (без замедления работы в фоне), выбора способа визуальной индикации деактивированных вкладок и показа потребления памяти во всплывающих эскизах вкладок.
  • Добавлен инструмент "Performance Detection", выявляющий потенциальные проблемы с производительностью просматриваемых страниц и выводящий уведомление с рекомендациями по решению проблемы в один клик. Например, чтобы ускорить текущую вкладку браузер может предложить деактивировать другие вкладки, потребляющие много ресурсов.
  • В TLS 1.3 и QUIC алгоритм инкапсуляции ключей (KEM, Key Encapsulation Mechanism) "X25519Kyber768", устойчивый к подбору на квантовых компьютерах, переведён на использование финальной спецификации ML-KEM (CRYSTALS-Kyber), стандартизированной Национальным институтом стандартов и технологий США (NIST). X25519Kyber768 представляет собой комбинацию из X25519 ECDH и алгоритма ML-KEM, использующего методы криптографии, основанные на решении задач теории решёток, время решения которых не отличается на обычных и квантовых компьютерах.
  • В функцию поиска по изображению при помощи сервиса Google Lens, доступную через контекстное меню, добавлена поддержка наложения перевода на другой язык (переведённый текст показывается поверх исходного текста на изображении).
  • Добавлен API Direct Sockets, позволяющий устанавливать прямые TCP- и UDP-соединения с внешними системами, а также создавать слушающие сокеты для приёма соединений. При первой первой попытке соединения с новым хостом пользователю выводится запрос для подтверждения операции. Необходимость добавления нового API объясняется предоставлением возможности взаимодействия с сетевыми устройствами, которые используют собственные протоколы, работающие поверх TCP и UDP, и не поддерживают взаимодействие через HTTPS или WebSockets. API доступен только в изолированных web-приложениях, распространяемых в виде подписанного пакета.
  • В режиме "Origin trials" реализован API Summarizer для резюмирования текста (краткого изложения сути), используя большую языковую модель.
  • В режиме "Origin trials" добавлен API Playout Statistics, определяющий интерфейс AudioContext.playoutStats для получения статистики о качестве и задержках при воспроизведения звука через API WebAudio.
  • Для защиты от злоупотреблений добавлен вывод запроса подтверждения полномочий при использовании сайтом API Keyboard Lock и Pointer Lock, предоставляющих дополнительный контроль над клавиатурой и мышью (например, можно скрыть штатный указатель мыши и обеспечить собственную обработку перемещения мыши). Проверить статус предоставления полномочий можно через API Permissions.
  • Разрешено указание дополнительных тегов в HTML-элементе "<select>", помимо штатных тегов "<option>", "<optgroup>" и "<hr>". Изменение внесено в качестве подготовки к реализации в будущих выпусках настраиваемого варианта "<select>", расширяющего возможности оформления меню.
  • В CSS-свойствах "clip-path", "fill", "stroke" и "marker-*" добавлена поддержка указания внешних SVG-ресурсов. Например, теперь можно указывать 'clip-path: url("resources.svg#myPath")'.
  • Изменена модель наследования свойств стилей выделения текста, определяемых через псевдоклассы "::selection" и "::target-text", которая приведена к модели наследования псевдоклассов "::highlight", "::spelling-error" и "::grammar-error", и теперь зависит не от структуры документа (цепочки HTML-элементов), а от того, как выделяется текст (цепочки выделения). В примере ниже цвет вложенных элементов с текстом в параграфе "<p class="blue">" теперь будет выбран в соответствии со стилем псевдокласса "::selection", а не стилем цвета, указанного для параграфа.
    
       p {
         color: deeppink;
       }
    
       .blue::selection {
         color: blue;
       }
    
       <p class="blue">
        This is
        <em>emphasized</em>
        text.
       </p>
    
    
  • Убраны ограничения, не позволявшие выставлять CSS-свойства "display" для HTML-элементов "<details>" и "<summary>". В CSS добавлен псевдоэлемент "::details-content" для настройки оформления сворачиваемого и раскрываемого блока.
  • Добавлено CSS-свойство "font-variant-emoji" для настройки стиля отображения Emoji. Например, можно выбрать текстовое или графическое представление.

  • В CSS-правиле @page, предназначенном для изменения оформления страницы перед выводом на печать или экспортом в формат PDF, появилась возможность определения областей для размещения контента в области полей страницы, например, для добавления своего заголовка, примечания сбоку или футера.

  • Объявлено устаревшим CSS-свойство "inset-area", применявшееся для управления показом элементов, привязанных к местоположению других элементов (CSS Anchor Positioning). В соответствии с рекомендацией рабочей группы, занимающейся стандартизацией СSS, на смену "inset-area" пришло полностью аналогичное свойство "position-area".
  • Расширены возможности инструментов для web-разработчиков. В панель Performance добавлены новые возможности для анализа производительности. Предложена экспериментальная панель с AI-ассистентом, в которой в форме чата можно получить ответы, возникающие при отладке, или уточнить какие-то моменты, связанные с CSS.


Кроме нововведений и исправления ошибок в новой версии устранены 12 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Одной проблеме присвоен высокий уровень опасности (проблема в коде для работы с расширениями в движке Blink). Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 8 премий на сумму 1 тысяча долларов США (одна премия $1000). Размер 7 вознаграждений пока не определён.

  1. OpenNews: Выпуск web-браузера Chrome 130
  2. OpenNews: Google экспериментирует со встраиванием в Chrome большой языковой модели
  3. OpenNews: В Chrome появилось предупреждение о скором прекращении поддержки uBlock Origin
  4. OpenNews: Google передумал прекращать поддержку сторонних Cookie в Chrome
  5. OpenNews: Google анонсировал скорое прекращение поддержки второй версии манифеста в Chrome
Обсуждение (89 +6) | Тип: Программы |
·15.11.2024 Опубликован стандарт параллельного программирования OpenMP 6.0 (72 +19)
  После трёх лет разработки опубликован набор спецификаций OpenMP 6.0 (Open Multi-Processing), определяющих API и способы применения методов параллельного программирования для языков Си, Си++ и Фортран на многоядерных и гибридных (CPU+GPU/DSP) системах с общей памятью и блоками векторизации (SIMD). Предполагается, что начальная поддержка отдельных возможностей OpenMP 6.0 будет включена в состав выпусков LLVM/Clang 20 и GCC 15.

Основные изменения в OpenMP 6.0:

  • Упрощён процесс программирования задач (task), определяющих независимые части программы, которые могут выполняться параллельно с другими частями.
    • Добавлена возможность выполнения задач в потоках free-agent, не привязанных к группам потоков (teams), выполняющих параллельные регионы (parallel region, блок кода, выполняемый в нескольких потоках).
    • Обеспечена поддержка сохранения графа задач (taskgraph), определяющего зависимости между задачами и порядок выполнения задач, для повышения эффективности последующего повторного воспроизведения.
    • Реализован механизм прозрачных задач ("transparent tasks") для упрощения управления зависимостями и автоматического управления выполнением дочерних задач.
  • Расширена поддержка вычислительных устройств, которые могут использоваться для выполнения параллельных задач (CPU, GPU, DSP и т.п.).
    • Добавлен новый синтаксис массивов, позволяющий использовать директиву "workdistribute" для разделения обработки массивов между разными единицами работы.
    • Расширены возможности управления выделением памяти, упрощающие управление переменными, для которых память выделяется динамически.
    • Расширена поддержка атрибутов, определяющих распределение данных между устройствами по умолчанию.
    • Упрощено написание кода для асинхронной передачи данных дополнительным вычислительным устройствам (GPU).
    • Улучшено управление памятью и её привязкой к вычислительным устройствам.
    • Добавлена директива "groupprivate" для закрепления памяти за группой потоков, выполняемых на определённом вычислительном устройстве.
  • Упрощено программирование некоторых видов трансформации циклов, таких как объединение нескольких циклов, изменение порядка вложенных циклов и реверсия циклов.
  • Добавлена новая операция индукции (induction) для организации распараллеливания в циклах простых арифметических вычислений и пользовательских операций, зависящих от предыдущих значений.
  • Добавлена полная поддержка распараллеливания программ, написанных с использованием стандартов C23 (включая синтаксис атрибутов), Fortran 2023 и C++23. Добавлены новые атрибуты для C/C++.
  • Расширены возможности управления хранилищем и памятью. Добавлены новые атрибуты для контроля над тем, как должна выделяться и использоваться память. Добавлен API для определения и запроса пространств памяти (memory space).
  • Удалены возможности, объявленные устаревшими в спецификациях OpenMP 5.0, 5.1 и 5.2.

  1. OpenNews: Опубликован стандарт параллельного программирования OpenMP 5.1
  2. OpenNews: Опубликован стандарт параллельного программирования OpenMP 5.0
  3. OpenNews: В Clang обеспечена полноценная поддержка OpenMP
  4. OpenNews: Утверждён стандарт POSIX 1003.1-2024
  5. OpenNews: Релиз PoCL 6.0 с независимой реализацией стандарта OpenCL
Обсуждение (72 +19) | Тип: К сведению |
·14.11.2024 Каталог PyPI внедрил новую систему проверки подлинности пакетов (98 +4)
  Разработчики репозитория Python-пакетов PyPI (Python Package Index) объявили о внедрении поддержки механизма цифровой аттестации для проверки подлинности опубликованных пакетов, которая пришла на смену верификации с использованием PGP-подписей. Ключевым отличием аттестации является то, что публикация пакета заверяется не разработчиком, а третьим лицом (каталогом пакетов) после подтверждения достоверности публикации через внешнего провайдера OpenID Connect (например, после проверки, что публикуемый пакет соотносится со связанным с ним репозиторием на GitHub или GitLab).

Система аттестации устраняет недостатки, свойственные механизму верификации по PGP-подписям, который ранее был объявлен в PyPI устаревшим. Данное решение принято из-за проблем с проверкой принадлежности разработчикам открытых PGP-ключей, используемых для проверки цифровых подписей - из 1069 PGP-ключей, использованных с 2020 года для формирования подписей в PyPI, 29% открытых ключей отсутствовали на крупных публичных серверах ключей, а 35% ключей оказалось невозможно подтвердить в ходе аудита. При этом подтверждённые 36% PGP-ключей охватывали лишь 0.3% от всех подписанных файлов.

В новой системе используемые для заверения пакетов подписи создаются с использованием короткоживущих эфемерных ключей, генерируемых на основе полномочий, подтверждённых провайдерами OpenID Connect. В момент генерации ключей, необходимых для создания цифровой подписи, разработчик идентифицирует себя через провайдера OpenID, подтверждающего его связь с основным проектом. Инфраструктура для цифровой аттестации построена при помощи системы Sigstore и инструментария in-toto Attestation Framework.

Из достоинств аттестации называется отсутствие привязки к постоянным PGP-ключам - утеря или компрометация закрытого ключа разрушает доверие к созданным на его основе подписям, в то время как при аттестации подпись формируется в привязке к токену, подтверждающему полномочия в момент размещения пакета и связь пакета с основным репозиторием с кодом. Например, при публикации пакета, подготовленного через GitHub Action, аттестация определяет верифицируемую и подтверждённую связь между размещаемым в PyPI файлом, репозиторием, workflow-процессом и хэшем коммита на основе которого сформирован пакет.

Для отслеживания подлинности пакетов и выявления возможных компрометаций формирующих пакеты проектов и самого PyPI применяется публичный централизованный лог, для обеспечения целостности и защиты от искажения данных задним числом в котором задействована структура "дерево Меркла" (Merkle Tree, каждая ветка верифицирует все нижележащие ветки и узлы благодаря древовидному хешированию). По сути аттестация сводится к ведению лога заверенных цифровой подписью утверждений, охватывающих такие сведения, как хэш от содержимого пакета и данные об источнике пакета, например, репозитории из которого собран пакет.

Внедрение аттестации находится на начальном этапе - из 360 наиболее часто загружаемых пакетов в PyPI аттестация задействована для 21 пакета. Аттестация пока применяется только на стороне PyPI, а проверки устанавливаемых пакетов на основе предоставляемого лога ещё не интегрированы в клиенты, такие как pip и uv (для pip ведётся разработка плагина, добавляющего логику проверки в команду "pip install"). Без поддержки на стороне клиентов проверки ограничиваются взаимодействием PyPI с источниками публикации пакетов, но не позволяют пользователям, устанавливающим пакеты, верифицировать PyPI.

Дополнительно можно отметить выявление в каталоге PyPI вредоносного пакета "fabrice", который при помощи тайпсквотинга (назначение похожих имён, отличающихся отдельными символами, например, exampl вместо example, djangoo вместо django, pyhton вместо python и т.п.) маскировался под популярную библиотеку "fabric", насчитывающую 201 миллионов загрузок (7 миллионов загрузок за прошлый месяц). Вредоносный пакет оставался незамеченным с 2021 года и с тех пор был загружен более 37 тысяч раз.

Пакет "fabrice" повторял базовую функциональность исходной библиотеки и дополнительно включал код для выявления и отправки на внешний хост ключей для доступа к AWS (Amazon Web Services), установки бэкдора и выполнения определённых скриптов. Активация вредоносных компонентов производилась в Linux и Windows. В Linux связанные с вредоносной активностью файлы загружались в каталог ~/.local/bin/vscode.

  1. OpenNews: Утечка токена для полного доступа к GitHub-репозиториям проекта Python
  2. OpenNews: Атакующие получили доступ к 174 учётным записям в каталоге PyPI
  3. OpenNews: Каталог PyPI перешёл на обязательную двухфакторную аутентификацию
  4. OpenNews: PyPI пересмотрит политику в отношении персональных данных и прекратит поддержку PGP-подписей
  5. OpenNews: В PyPI реализована возможность публикации пакетов без привязки к паролям и токенам API
Обсуждение (98 +4) | Тип: К сведению |
·14.11.2024 Microsoft опубликовал открытую платформу .NET 9.0 (168 +11)
  Компания Microsoft представила выпуск открытой платформы .NET 9, созданной благодаря унификации продуктов .NET Framework, .NET Core и Mono. На основе .NET 9 можно создавать многоплатформенные приложения для браузера, облачных систем, рабочего стола, IoT-устройств и мобильных платформ, используя единые библиотеки и общий процесс сборки, не зависящий от типа приложения. Сборки .NET SDK 9, .NET Runtime 9 и ASP.NET Core Runtime 9 сформированы для Linux, macOS и Windows. .NET Desktop Runtime 9 поставляется только для Windows. Связанные с проектом наработки распространяются под лицензией MIT.

В состав .NET входит Runtime с JIT-компилятором RyuJIT, спецификации API, библиотеки WPF, Windows Forms, WinUI и Entity Framework, интерфейс командной строки dotnet, а также инструменты для разработки микросервисов, библиотек, серверных, графических и консольных приложений. Отдельно поставляются стек для разработки web-приложений ASP.NET Core 9.0, ORM-прослойка Entity Framework Core 9.0 (драйверы имеются, в том числе, для SQLite и PostgreSQL), библиотека WPF 9 (Windows Presentation Foundation), фреймворк Windows Forms 9 для разработки GUI, платформа Aspire 9 для создания приложений Cloud Native, фреймворк MAUI 9 для разработки многоплатформенных интерфейсов пользователя, а также выпуски языков C# 13 и F# 9. Поддержка .NET 9.0 и C# 13 включена в свободный редактор кода Visual Studio Code.

Особенности нового выпуска:

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

    В JIT-компилятор добавлены новые оптимизации на основе профилирования (PGO), улучшены обработка циклов, inline-развёртывание и проверка границ. В .NET runtime расширено использование векторных инструкций и добавлена поддержка расширений Arm64 SVE и Intel AVX10. На 50% ускорен код для обработки исключений. Для кода с операциями приведения типов, таких как "(IFoo)myFoo" и "myFoo is IFoo", зафиксировано увеличение производительности до 70%. Производительность некоторых методов в языке обработки запросов LINQ (Language-Integrated Query), таких как Take и DefaultIfEmpty, возросла до 10 раз при работе с пустыми массивами и коллекциями.

    Значительно повышена производительность и эффективность библиотеки System.Text.Json. В методе JsonProperty.WriteTo реализована возможность прямой записи строк UTF8, исключающая лишнее выделение памяти. Оптимизированы операции изменения размера JsonObject. При проведении тестов TechEmpower, оценивающих эффективность кода для обработки JSON-запросов, по сравнению с .NET 8 наблюдается увеличение производительности на 15% и снижение потребления памяти на 93%.

  • В Runtime предложена новая модель атрибутов для активации и урезания функциональности в библиотеках.
  • В языке C# 13 расширены возможности использования модификатора "params", в котором помимо массивов разрешено указание коллекций. При инициализации массивов в значении индекса разрешено использование оператора "^" для отчёта индекса с конца массива (например, "buffer = { [^1] = 0, [^2] = 1,....}" запишет 0 в последний элемент, а 1 в предпоследний). В итераторах и async-методах разрешено использование выражений ref и unsafe. Добавлена новая escape-последовательность "\e". Разрешено определение интерфейсов для типов "ref struct" и использование типов "ref struct" в качестве аргументов в обобщённых функциях. Предложен новый тип Lock для установки блокировок в многопоточных приложениях.
    
       Lock myLock = new();
    
       void Concat<T>(params List<T> items)
       {
           lock (myLock)
               Console.WriteLine(string.Join("\e[1mItem: \e[0m", items));
       }
    
  • В языке F# 9 появилась поддержка типов, которые могут принимать значение null. В объединениях реализованы автоматически генерируемые свойства ".Is*" (например, person.contact.IsEmail), которые можно использовать для проверки принадлежности значения множеству. Добавлена поддержка пустых вычисляемых выражений ("let xs = seq { }"). В директивах, начинающихся с символа "#", разрешено указание нестроковых значений (например, можно писать #nowarn 0070 вместо #nowarn "0070"). В модули List, Array и Seq добавлены функции для случайного выбора или перемешивания элементов. К спискам (list и set) разрешено применение операций с коллекциями.
  • Расширены возможности стека .NET Aspire, предоставляющего набор компонентов для создания приложений, запускаемых в облачных окружениях. Добавлены новые возможности для управления ресурсами и жизненным циклом приложений. Расширены средства для сбора телеметрии.
  • Предложен новый набор абстракций C# для разработки AI-приложений, использования больших языковых моделей, обращения к векторным хранилищам и взаимодействия с AI-сервисами. Представлен новый тип "Tensor<T>" и коллекция методов для вычислений и манипуляции с многомерными данными. Дополнения для AI распространяются в форме пакетов System.Numerics.Tensors, Microsoft.Extensions.AI и Microsoft.Extensions.VectorData. Обновлён фреймворк ML.NET, предназначенный для интеграции моделей машинного обучения в приложения. Добавлена библиотека Microsoft.ML.Tokenizers для кодирования и декодирования текста в токены.
  • В стеке для разработки web-приложений ASP.NET Core расширена поддержка упреждающей компиляции (ahead-of-time), расширены возможности мониторинга и трассировки, сокращено время запуска и снижено потребление памяти, оптимизирована работа со статическими файлами. Добавлен новый API для аутентификации и авторизации. В Blazor, платформе для создания web-приложений на языке C#, реализованы новые шаблоны для гибридных и web-приложений.
  • Расширены возможности фреймворка MAUI для разработки многоплатформенных интерфейсов пользователя. Проведена оптимизация производительности. Усилена интеграция с настольными и мобильными приложениями. Добавлены новые элементы интерфейса TitleBar и HybridWebView.
  • В WPF (Windows Presentation Foundation) расширена поддержка тем оформления и добавлена поддержка акцентных цветов.

  1. OpenNews: Компания Microsoft передала разработку проекта Mono сообществу Wine
  2. OpenNews: Microsoft опубликовал открытую платформу .NET 8
  3. OpenNews: Доступна платформа OpenSilver 3.0, продолжающая развитие технологии Silverlight
  4. OpenNews: Microsoft удалил функциональность Hot Reload из открытого .NET для поставки только в Visual Studio 2022
Обсуждение (168 +11) | Тип: Программы |
·13.11.2024 Бета-выпуск Red Hat Enterprise Linux 10 и релиз RHEL 9.5 (141 +10)
  Компания Red Hat представила бета-версию дистрибутива Red Hat Enterprise Linux 10 и релиз Red Hat Enterprise Linux 9.5. Готовые установочные образы подготовлены для зарегистрированных пользователей Red Hat Customer Portal (для оценки функциональности также можно использовать iso-образы CentOS Stream 10 и CentOS Stream 9.5, а также бесплатные сборки RHEL для разработчиков). Репозитории с бинарными пакетами RHEL 10 доступны публично. Выпуски сформированы для архитектур x86_64, s390x (IBM System z), ppc64le и Aarch64 (ARM64). Релиз RHEL 10 ожидается в первой половине следующего года.

Ветка RHEL 10 использует в качестве основы пакетную базу CentOS Stream 10, который позиционируется как upstream-проект для RHEL, дающий возможность сторонним участникам контролировать подготовку пакетов для RHEL, предлагать свои изменения и влиять на принимаемые решения. В соответствии с 13-летним циклом поддержки дистрибутива RHEL 10 будет сопровождаться до 2035 года + 3 года расширенной платной поддержки. Обновления для RHEL 9 продолжат выпускаться до конца мая 2032 года, а RHEL 8 - 2029 года.

Исходные тексты rpm-пакетов RHEL 10 опубликованы для свободной загрузки. Пакеты RHEL 9.5 не размещены в публичном репозитории git.centos.org и предоставляются клиентам компании только через закрытый раздел сайта, на котором действует пользовательское соглашение (EULA), запрещающее редистрибуцию данных, что не позволяет использовать эти пакеты для создания производных дистрибутивов. Исходные тексты RHEL 9.5 остаются доступны в репозитории CentOS Stream, но он полностью не синхронизирован с RHEL и в нём не всегда самые свежие версии пакетов совпадают с пакетами из RHEL. Rocky Linux, Oracle и SUSE воспроизводят исходные тексты rpm-пакетов релизов RHEL в рамках проекта OpenELA.

Основные изменения в RHEL 10:

  • При создании новых пользователей через интерфейс инсталлятора Anaconda, данным пользователям по умолчанию предоставляются права администратора (для отключения данного поведения доступна специальная настройка). В инсталляторе также предложен новый интерфейс для выбора часового пояса. Для удалённого доступа к инсталлятору задействован протокол RDP вместо VNC.
  • Добавлена поддержка алгоритмов шифрования, стойких к подбору на квантовом компьютере. Данные алгоритмы доступны в OpenSSL, OpenSSH и в системных криптографических политиках (crypto-policies). В OpenSSL добавлена возможность создания файлов с сертификатами и ключами в формате PKCS #12, соответствующих требованиям FIPS. Вместо движка openssl-pkcs11 задействован pkcs11-provider, позволяющий использовать аппаратные ключи в apache httpd, libssh, bind и других приложениях, использующих OpenSSL. Права доступа к хостовым ключам SSH изменены с 0640 на 0600 (доступ только владельцу). В GnuTLS добавлена поддержка сжатия сертификатов методами zlib, brotli и zstd.
  • В дополнение к GnuPG в состав включён инструментарий командной строки Sequoia (утилиты sq и sqv) с реализацией стандарта OpenPGP (RFC-4880) на языке Rust.
  • В пакетном менеджере DNF по умолчанию отключена загрузка метаданных со списками файлов, входящих в пакеты (filelist). Подобные данные редко используются, но имеют большой размер и замедляют работу. Для работы с PGP в DNF и RPM задействована библиотека rpm-sequoia.
  • Обновлены версии пакетов для разработчиков: GCC 14.2, LLVM 18.1.8, Python 3.12, Ruby 3.3, OpenJDK 21, Rust 1.79.0, Go 1.22, Node.js 22, Perl 5.40, PHP 8.3, Git 2.45, Subversion 1.14, SystemTap 5.1, Valgrind 3.23.0.
  • Обновлены серверные пакеты: OpenSSH 9.8, nginx 1.26, Apache HTTPD 2.4.62, Varnish Cache 7.4, Squid 6.10, MariaDB 10.11, MySQL 8.4, PostgreSQL 16, PCP 6.3.0, Grafana 10.2.6, libreswan 4.15, Pacemaker 2.1.8, 389-ds-base 3.0.4, Podman 5.0.
  • Обновлены системные пакеты: ядро Linux 6.11, glibc 2.39, binutils 2.41, NSS 3.101, gnutls 3.8.7, polkit 125.
  • Добавлены новые пакеты tuned-ppd (вместо power-profiles-daemon), libcpuid и dnsconfd (фоновый процесс для кэширования DNS). В связи с переводом кодовой базы СУБД Redis на проприетарную лицензию вместо Redis предложен форк Valkey. Вместо DHCP-сервера ISC DHCP задействован Kea DHCP. Вместо zlib задействован пакет zlib-ng-compat.
  • По умолчанию включён режим предсказуемого выбора имён для сетевых интерфейсов (net.ifnames=1). В NetworkManager для IPv4 включён механизм определения дублирования IP-адресов DAD (Duplicate Address Detection) для предотвращения присвоения одного и того же IP на разных системах в локальной сети.
  • В дисковых образах (например, в системных образах для AWS и KVM) прекращено использование отдельного раздела /boot.
  • Добавлена экспериментальная поддержка файловой системы Сomposefs, реализованной в виде надстройки над ФС OverlayFS и EROFS, и оптимизированной для эффективного совместного хранения содержимого нескольких примонтированных дисковых образов.
  • Предоставлена экспериментальная (Technology Preview) поддержка AMD SEV, SEV-SNP и SEV-ES в гипервизоре KVM.
  • Работающий в пространстве пользователя инструментарий SELinux (libsepol, libselinux, libsemanage, policycoreutils, checkpolicy, mcstrans) обновлён до версии 3.7, в которой реализован параметр "audit2allow -C" для вывода в формате CIL (Common Intermediate Language). В утилиту sandbox добавлена поддержка протокола Wayland.
  • В компоненте Keylime добавлена поддержка идентификации устройств через IDevID (Initial Device Identity) и IAK (Initial Attestation Key), и по умолчанию задействован протокол TLS 1.3.
  • В web-консоли предложен новый файловый менеджер (пакет cockpit-files), позволяющий управлять файлами и каталогами.
  • В сервере печати CUPS по умолчанию отключена работа в режимах mDNS и broadcast, задействованных в недавно выявленных удалённо эксплуатируемых уязвимостях.
  • В glibc включены варианты функций memcpy и memmove, оптимизированные для процессоров AMD Zen 3 и Zen 4.
  • Осуществлён переход на поставку Firefox и Thunderbird в пакетах в формате Flatpak.
  • В классическом сеансе GNOME добавлен обзорный режим для просмотра открытых окон, который ранее был доступен только в стандартном сеансе GNOME.
  • Добавлено большое число новых драйверов, среди которых драйверы для встроенного в процессоры Intel ускорителя QAT (QuickAssist Technology), предлагающего средства для ускорения вычислений, используемых при сжатии и шифровании.
  • Прекращена поставка пакетов: sendmail (рекомендовано перейти на postfix), redis, dhcp, dhcp-client, mod_security (вынесен в EPEL), spamassassin (вынесен в EPEL), xsane, runc.
  • Объявлены устаревшими пакеты squashfs и wget, а также интерфейсы utmp и utmpx в glibc.
  • Из поставки удалён X.org Server и связанные с ним компоненты (в примечании к тестовому выпуску об этом не упомянуто, но это изменение было в планах). Возможность запуска X11-приложений в сеансе Wayland обеспечивается при помощи DDX-сервера XWayland.
  • Звуковой сервер PulseAudio заменён на пакет PipeWire. Удалены пакеты TigerVNC, Totem, power-profiles-daemon, gedit, gtkmm, WebKitGTK, Evolution, Festival, Eye of GNOME, Cheese, Tweaks и Qt5 (оставлен только Qt 6).




Основные изменения в RHEL 9.5:

  • Обновлены пакеты для разработчиков: GCC 11.5, Node.js 22, GCC Toolset 14, LLVM Toolset 18.1.8, Rust Toolset 1.79.0, Go Toolset 1.22, OpenJDK 17, GDB 14.2, Valgrind 3.23.0, SystemTap 5.1, elfutils 0.191, libabigail 2.5.
  • Обновлены версии системных пакетов: OpenSSL 3.2.2, NSS 3.101, clevis 20, ipa 4.12.0, Podman 5.0.
  • Обновлены серверные пакеты: Apache HTTPD 2.4.62, BIND 9.18, PCP 6.2.2, Grafana 10.2.6, libreswan 4.15, PostgreSQL 16, samba 4.20.2.
  • Добавлена новая системная роль для управления и настройки sudo. В роль snapshot добавлена поддержка управления снапшотами в пуле LVM. Расширены возможности ролей postfix, podman, ssh, network, nbde_client, journald, logging и storage.
  • Под защиту SELinux переведены сервисы nbdkit и bootupd. Добавлена поддержка выполнения команд под защитой SELinux через QEMU Guest Agent.
  • Добавлена поддержка live-миграции виртуальных машин, в которые проброшены vGPU NVIDIA.
  • Для web-консоли предложен пакет cockpit-files с реализацией файлового менеджера.
  • В NetworkManager добавлена поддержка подключения к IPsec VPN с использованием адресов IPv6.
  • Разрешено одновременное использование сервисов firewalld и nftables.
  • Добавлена поддержка файловой системы Composefs.
  • При сборке CPython в GCC включён режим оптимизации "-O3", что позволило повысить производительность Python примерно на 4%.
  • Для Glibc реализован режим "GLIBC_TUNABLES=glibc.cpu.prefer_map_32bit_exec=1", включающий размещение динамических объектов в адресном пространстве не случайным образом, а вплотную друг к другу, что позволяет в некоторых конфигурациях добиться повышения производительности ценой снижения ASLR-защиты. В glibc включены варианты функций memcpy и memmove, оптимизированные для процессоров AMD Zen 3 и Zen 4.
  • Реализация подсистемы eBPF синхронизирована с ядром Linux 6.8 (в прошлом выпуске использовалась реализация eBPF из ядра Linux 6.6).
  • Для файловой системы tmpfs, обычно используемой для раздела /tmp, реализована поддержка дисковых квот.
  • В OpenSSL добавлена экспериментальная поддержка протокола QUIC на стороне клиента.
  • Добавлена экспериментальная поддержка offload-режима для выноса операций инкапсуляции UDP-пакетов в IPsec на сторону сетевой карты.
  • Добавлена экспериментальная поддержка HSM (Hardware Security Module).
  • Добавлена экспериментальная возможность использования БД LMDB в Directory Server.
  • В Identity Management добавлена экспериментальная команда ipa-migrate для миграции данных на другой сервер IdM.
  • Продолжено предоставление экспериментальной (Technology Preview) поддержки:
    • VPN WireGuard,
    • kTLS (TLS на уровне ядра),
    • интерфейса асинхронного ввода/вывода io_uring,
    • DAX (Direct Access) для ext4 и XFS,
    • AMD SEV и SEV-ES в гипервизоре KVM,
    • сервиса systemd-resolved,
    • механизма Sigstore для верификации контейнеров по цифровым подписям,
    • протоколов PRP (Parallel Redundancy Protocol) и HSR (High-availability Seamless Redundancy),
    • аппаратного ускорения IPsec через вынос операций инкапсуляции пакетов на сторону сетевой карты,
    • протокола управления сертификатами ACME, применяемого в Let's Encrypt,
    • SRv6 (Segment Routing over IPv6,
    • пакета с графическим редактором GIMP 2.99.8,
    • настройки MPTCP (Multipath TCP) через NetworkManager,
    • DNSSEC в IdM,
    • virtio-mem,
    • Socket API для TuneD,
    • Soft-iWARP (Internet Wide-area RDMA Protocol),
    • GNOME для ARM64 и IBM Z.
  • Объявлены устаревшими пакеты libgcrypt и pam_ssh_agent_auth.

  1. OpenNews: Релиз дистрибутива Red Hat Enterprise Linux 9.4
  2. OpenNews: Red Hat опубликовал первый выпуск дистрибутива Red Hat Enterprise Linux AI
  3. OpenNews: Изменения в подготовке промежуточных выпусков Red Hat Enterprise Linux
  4. OpenNews: Red Hat Enterprise Linux 9 доступен для загрузки
  5. OpenNews: Началось формирование сборок CentOS Stream 10
Обсуждение (141 +10) | Тип: Программы |
Следующая страница (раньше) >>



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

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