The OpenNET Project / Index page

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

·19.09 Выпуск fheroes2 1.1.2, открытого движка Heroes of Might and Magic 2 (16 +4)
  Доступен выпуск проекта fheroes2 1.1.2, который воссоздаёт движок игры Heroes of Might and Magic II с нуля. Код проекта написан на C++ и распространяется под лицензией GPLv2. Для запуска игры требуются файлы с игровыми ресурсами, которые можно получить из оригинальной игры Heroes of Might and Magic II.

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

  • Улучшен ИИ для защиты замков.
  • Улучшен ИИ для прокачки навыков героев.
  • Оптимизированы алгоритмы, отвечающие за соблюдение радиуса героями-патрулями.
  • Снижены бонусы для ИИ соперников.
  • В редакторе карт теперь можно настраивать альянсы игроков.
  • В редакторе появились новые дельты рек, расположенные горизонтально.
  • Оптимизировано воспроизведение MIDI-композиций.
  • Доработана опция "3D-аудио".
  • Добавлена поддержка специальных символов для виртуальной клавиатуры.
  • Улучшены переводы на некоторые языки.
  • Закрыто свыше 40 уведомлений об ошибках и предложений по улучшению проекта.

  1. Главная ссылка к новости
  2. OpenNews: Выпуск fheroes2 1.1.1, открытого движка Heroes of Might and Magic 2
  3. OpenNews: Выпуск открытого игрового движка VCMI 1.5.0, совместимого с Heroes of Might and Magic III
  4. OpenNews: Проект OpenEnroth развивает открытый движок для игр Might and Magic VI-VIII
Обсуждение (16 +4) | Автор: sirDranik | Тип: Программы |


·19.09 Релиз инструмента анонимизации баз данных nxs-data-anonymizer 1.11.0 (3 +1)
  Опубликован nxs-data-anonymizer 1.11.0 - инструмент для анонимизации дампа баз данных PostgreSQL и MySQL/MariaDB/Percona. Инструмент написан на языке Go и выпускается под лицензией Apache License 2.0.

Инструмент можно использовать через неименованные каналы (pipe) в командной строке для перенаправления дампа из исходной БД непосредственно в целевую БД с необходимыми преобразованиями. В зависимости от типа сущностей в настройках безопасности инструмент анонимизирует столбцы для таблиц с правилами, описанными в разделе filters. Если таблица не содержит никаких правил, данные все равно будут защищены, так как анонимайзер не включит их в результирующий дамп. Можно связывать анонимизацию сущностей БД в разных таблицах по различным правилам и работать с разово-сгенерированными данными с помощью глобальных переменных.

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

  • В фильтры добавлены новые переменные "Raw column data type" и "Regex's capturing groups", позволяющие использовать регулярные выражения с группами захвата для различных типов данных в столбцах.
  • Реализована генерация значений для типизированных данных. Теперь, когда политика безопасности столбца настроена на рандомизацию значений ячеек, эти значения автоматически генерируются в соответствии с их типами данных. Ранее все типы обрабатывались одинаково, с этим обновлением добавили классификацию (например, для столбцов MySQL с типами date и datetime).

  1. Главная ссылка к новости
  2. OpenNews: Релиз инструмента анонимизации баз данных nxs-data-anonymizer 1.9.0
  3. OpenNews: Выпуск Whonix 17.2, дистрибутива для обеспечения анонимных коммуникаций
  4. OpenNews: PostgreSQL Anonymizer 0.6, расширение для анонимизации данных в СУБД
  5. OpenNews: Вышел Datanymizer, анонимайзер чувствительных данных
  6. OpenNews: Релиз инструмента резервного копирования nxs-backup 3.11.0
Обсуждение (3 +1) | Автор: nixys | Тип: Программы |


·18.09 Выпуск среды рабочего стола GNOME 47 (163 +23)
  После шести месяцев разработки представлен выпуск среды рабочего стола GNOME 47. Для быстрой оценки возможностей GNOME 47 предложены специализированные Live-сборки на основе openSUSE и установочной образ, подготовленный в рамках инициативы GNOME OS. GNOME 47 также уже включён в состав экспериментальных сборок Ubuntu 24.10 и Fedora 41.

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

  • Добавлена поддержка настройки акцентных цветов (accent), применяемых для выделения активных элементов. Если ранее тема оформления GNOME предоставляла единый синий акцентный цвет, то теперь в конфигураторе внешнего вида предоставлена возможность выбора из нескольких вариантов.
  • Улучшена работа на системах с низким разрешением экрана, для которых оптимизирован процесс отрисовки пиктограмм и элементов интерфейса. Решена проблема с отображением слишком мелких пиктограмм - GNOME теперь автоматически выбирает уровень масштабирования пиктограмм для обеспечения адекватного для низких разрешений размера.
  • На системах с GPU Intel и AMD добавлена поддержка задействования средств аппаратного ускорения кодирования видео при записи скринкастов, что позволяет снизить нагрузку на систему и устранить влияние записи скринкастов в высоком разрешении на отзывчивость интерфейса и приложений.
  • До версии 4.16 обновлена версия библиотеки GTK, в которой по умолчанию в окружениях на базе протокола Wayland задействован движок отрисовки "vulkan", напрямую использующий графический API Vulkan. Значительно улучшено качество и производительность отрисовки на старом оборудовании и на мобильных устройствах.
  • При удалённом подключении к рабочему столу реализована поддержка сохранения сеансов - при случайном отключении от удалённого рабочего стола предоставлена возможность возвращения к прерванному сеансу без потери его состояния (сеанс будет возобновлён в том же виде, что и до выхода).
  • Предложен новый стиль диалоговых окон, используемых в системе и приложениях. Изменения нацелены на повышение удобства работы независимо от разрешений экрана и типа устройств.
  • Существенно переработаны диалоги открытия и сохранения файлов, которые теперь не обособлены, а основаны на коде штатного файлового менеджера и приближены к нему во внешнем виде и поведении. В новых диалогах появились такие возможности, как изменение масштаба, выбор режима сортировки пиктограмм, встроенные функции переименования каталогов и файлов, предпросмотр файлов, генерация эскизов по мере необходимости и расширенный поиск.
  • В файловом менеджере Nautilus (GNOME Files) обновлён интерфейс диалогов, применяемых при создании нового каталога и сжатии файлов. В панели поиска обеспечен вывод контекстной информации, связанной с производительностью и влияющей на результаты поиска, например, отсутствие выбранного файлового пути в поисковом индексе или попытка поиска на части ФС, примонтированной с удалённого сервера.

    Расширены возможности боковой панели файлового менеджера. Сведён в одном месте список внутренних накопителей. Добавлена возможность удаления различных точек входа (Places), включая элементы для перехода к документам, загрузкам, музыке и видео. Добавлен новый раздел "Network" со списком сетевых хранилищ, включающий секции с подключёнными, ранее используемыми и доступными для подключения хранилищами.

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

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

  • В средствах управления внешними учётными записями (GNOME Online Accounts) реализовано автоматическое заполнение деталей подключения к IMAP/SMTP на основании указанного email-адреса. Обеспечена интеграция электронной почты, календаря-планировщика и адресной книги с учётными записями Microsoft 365. При настройке WebDAV реализовано автоматическое определение доступных серверов.
  • В web-браузере Epiphany (GNOME Web) предложена новая функциональность для автоматического заполнения web-форм с учётом ранее предоставленных данных. В настройках можно выбрать доступную для автоматического заполнения информацию, такую как имя, адрес и контактные данные. Предложена новая панель с закладками, упрощающая навигацию и поиск закладок. Добавлен отчёт о конфиденциальности, отражающий число заблокированных браузером скриптов для отслеживания перемещений. Из-за изменений процесса аутентификации временно отключена поддержка сервиса Firefox Sync.
  • В календаре-планировщике переработано всплывающее окно с детальной информацией о событии. Улучшена обработка событий в режиме только для чтения. Улучшен внешний вид и изменены отступы между элементами. В диалогах импорта и редактирования событий обеспечена корректная обработка скрытых календарей и календарей в режиме только для чтения.
  • В коллекцию GNOME Circle добавлены новые приложения: Binary, Biblioteca, Hieroglyphic, Resources, Tuba и Valuta.
  • Обновлён интерфейс анализатора свободного места на диске. Изменено оформление панели, списка файлов и пиктограмм.
  • Изменено оформление курсора, показываемого в процессе ожидания завершения действия.
  • В менеджере приложений (GNOME Software) переработан вывод рекомендованных приложений.
  • В приложении для работы с картами (GNOME Maps) для представления географической информации по умолчанию задействована векторная графика. Добавлена поддержка использования поддерживаемого сообществом сервиса для построения маршрутов.
  • Улучшена поддержка дробного масштабирования в приложениях на базе X11.
  • В сеансах на базе Wayland реализована возможность использования шлемов виртуальной реальности для игр.
  • Добавлены базовые возможности для применения аппаратного ускорения при организации совместного доступа к экрану на системах с видеокартами NVIDIA.
  • Добавлена возможность сборки GNOME Shell и композитного менеджера Mutter без поддержки X11, оставив только компоненты для Wayland.
  • В композитном менеджере Mutter добавлена поддержка расширения протокола Wayland drm-lease, которое предоставляет ресурсы, необходимые для формирования стереокартинки с разными буферами для левого и правого глаза при выводе на шлемы виртуальной реальности.


  1. Главная ссылка к новости
  2. OpenNews: В gnome-session и GDM реализована возможность сборки без поддержки X11
  3. OpenNews: В GNOME намерены перейти на другой шрифт по умолчанию
  4. OpenNews: В GNOME реализована возможность сборки только с Wayland и улучшена поддержка графических планшетов
  5. OpenNews: Начальный прототип нового инсталлятора для GNOME OS
  6. OpenNews: Опубликована среда рабочего стола GNOME 46
Обсуждение (163 +23) | Тип: Программы | Интересно


·18.09 В Vulkan-драйвер PanVK добавлена поддержка GPU ARM на базе архитектуры V10 (22 +13)
  Компания Collabora объявила о реализации поддержки GPU ARM Mali на базе микроархитектуры V10 в драйвере PanVK, обеспечивающем поддержку графического API Vulkan. Изменения, которые уже приняты в основную ветку проекта Mesa, позволяют использовать открытые драйверы на системах с GPU ARM Mali-G610 и Mali-G310. Тем не менее, отмечается, что поддержка ещё достаточно сырая, так как сам драйвер PanVK и добавленный для ARM V10 код не признаны готовыми для повсеместного использования (некоторые приложения могут не запускаться), а также ограничены поддержкой версии Vulkan 1.0.

  1. Главная ссылка к новости
  2. OpenNews: В драйвере Panthor для GPU Mali G610 обеспечена совместимость с OpenGL ES 3.1
  3. OpenNews: Представлен новый видеодрайвер для чипа Apple M1, поддерживающий Vulkan 1.3
  4. OpenNews: Компания Collabora развивает PanCSF, новый Linux-драйвер для GPU Mali
  5. OpenNews: Объявлено о готовности panthor, открытого драйвера для 10 поколения GPU Mali
  6. OpenNews: NVK и Zink существенно улучшили ситуацию с открытыми драйверами для GPU NVIDIA
Обсуждение (22 +13) | Тип: Программы |


·18.09 Опубликован Valkey 8.0, форк СУБД Redis от Amazon, Google, Oracle и Ericsson (45 +20)
  Представлен релиз проекта Valkey 8.0, развивающего форк СУБД Redis, созданный после перевода кодовой базы Redis на проприетарную лицензию. Проект развивается на нейтральной площадке под покровительством организации Linux Foundation при участии разработчиков из таких компаний, как Amazon, Google, Oracle, Ericsson и Snap. В числе разработчиков Valkey - Маделин Олсон (Madelyn Olson), бывший мэйнтейнер Redis. Код проекта написан на языке Си и распространяется под лицензией BSD. Поддерживается работа в Linux, macOS, OpenBSD, NetBSD и FreeBSD.

Начиная с выпуска 7.4 СУБД Redis переведена на использование лицензий RSALv2 (Redis Source Available License v2) и SSPLv1 (Server Side Public License v1), которые приводят к дискриминации отдельных категорий пользователей, что не позволяет считать их открытыми или свободными. По своим целям обе лицензии походят друг на друга, а отличия сводится к тому, что лицензия SSPL основана на копилефт лицензии AGPLv3, а лицензия RSAL основана на пермиссивной лицензии BSD. Лицензия RSAL позволяет использовать, изменять, распространять и интегрировать код в приложения, за исключением случаев, когда эти приложения является коммерческими или используются для предоставления управляемых платных сервисов). Лицензия SSPL дополнительно содержит требование поставки под той же лицензией не только кода самого приложения, но и исходных текстов всех компонентов, вовлечённых в предоставление облачного сервиса.

СУБД Valkey и Redis предоставляют функции для хранения данных в формате ключ/значение, расширенные поддержкой структурированных форматов данных, таких как списки, хэши и множества, а также возможностью выполнения на стороне сервера скриптов-обработчиков на языке Lua. БД хранится в памяти и синхронизируется с версией на диске или отражается в логе изменений на диске, что гарантирует сохранность данных в случае аварийного завершения работы. Поддерживаются транзакции, режим "публикация/подписка", команды для инкремента/декремента, операции над списками и множествами (объединение, пересечение), переименование ключей, master-slave репликация, множественные выборки и функции сортировки.

Выпуск Valkey 8.0 позиционируется как первый значительный релиз проекта. Среди изменений:

  • Внесены оптимизации, обеспечивающие распределение нагрузки между доступными ядрами CPU и позволяющие потокам обработки ввода/вывода функционировать одновременно с основным потоком, что даёт возможность параллельно выполнять команды и обрабатывать операции ввода/вывода. Повышена эффективность обработки команд в пакетном режиме, например, добавлена поддержка упреждающего извлечения часто используемых данным для их оседания в процессорном кэше. При тестировании в окружении AWS r7g новая версия продемонстрировала способность обрабатывать до 1.2 млн. запросов в секунду, что в три раза больше, чем прошлый выпуск.
  • Повышена масштабируемость и живучесть кластерных конфигураций. Добавлена поддержка автоматического переключения на запасные серверы в случае сбоя (Failover) для узлов с ещё незаполненными пустыми слотами шардинга. Обеспечена репликация данных о состоянии слотов - все команды "CLUSTER SETSLOT" теперь синхронно реплицируются перед выполнением на основном узле, что повышает живучесть кластера в случае выхода из строя основного узла. Добавлена возможность автоматического восстановления состояния слота миграции.
  • Ускорена работа репликации, благодаря одновременной передаче дампов RDB (Redis Database Backup) и лога накопившихся изменений (backlog) в разных потоках. Проведённое тестирование показало сокращение задержек операций записи и снижение времени синхронизации до 50% при нагрузках с очень интенсивным потоком команд чтения. Значительно снижено потребление памяти на первичном узле.
  • Добавлены новые метрики со статистикой в привязке к отдельным слотам и клиентам. Например, доступны метрики о клиентах, использующих механизм "публикация/подписка", задержках при обработке событий, трафике канала передачи команд, статистике о реорганизации хеш-таблиц памяти, а также числе ключей, трафике и нагрузке на CPU в привязке к слотам.
  • Проведена оптимизация хранилища ключей, позволившая примерно на 10% сократить потребление памяти.
  • Добавлена возможность работы в системах, в которых одновременно используется IPv4 и IPv6.
  • Повышена эффективность работы механизма "публикация/подписка", при котором создаётся канал, сообщения из которого распространяются клиентам по подписке.
  • Добавлена экспериментальная поддержка работы поверх RDMA.

  1. Главная ссылка к новости
  2. OpenNews: Выпуск СУБД Redis 7.4, переведённый на проприетарные лицензии
  3. OpenNews: Проект Redka развивает реализацию протокола и API Redis поверх SQLite
  4. OpenNews: Выпуск Redict 7.3.0, форка СУБД Redis
  5. OpenNews: Amazon, Google, Oracle, Ericsson и Snap основали Valkey, форк СУБД Redis
  6. OpenNews: СУБД Redis переходит на проприетарную лицензию. Обсуждение удаления Redis из Fedora
Обсуждение (45 +20) | Тип: Программы |


·18.09 Выпуск Java SE 23 и OpenJDK 23 (81 +7)
  После шести месяцев разработки компания Oracle опубликовала платформу Java SE 23 (Java Platform, Standard Edition 23), в качестве эталонной реализации которой используется открытый проект OpenJDK. За исключением удаления некоторых устаревших возможностей в Java SE 23 сохранена обратная совместимость с прошлыми выпусками платформы Java - большинство ранее написанных Java-проектов без изменений будут работоспособны при запуске под управлением новой версии. Готовые для установки сборки Java SE 23 (JDK, JRE и Server JRE) подготовлены для Linux (x86_64, AArch64), Windows (x86_64) и macOS (x86_64, AArch64). Разработанная в рамках проекта OpenJDK эталонная реализация Java SE 23 полностью открыта под лицензией GPLv2 с исключениями GNU ClassPath, разрешающими динамическое связывание с коммерческими продуктами.

Java SE 23 отнесён к категории выпусков с обычным сроком поддержки, обновления для которого будут выпускаться до следующего релиза. В качестве ветки с длительным сроком поддержки (LTS) следует использовать Java SE 21 или Java SE 17, обновления для которых будут выпускаться до 2031 и 2029 годов соответственно (общедоступные - до 2028 и 2026 годов). Расширенная поддержка LTS-ветки Java SE 8 продлится до 2030 года, а Java SE 11 - до 2032 года.

Среди предложенных в Java SE 23 новшеств:

  • Включён по умолчанию генеративный режим работы сборщика мусора ZGC (Generational Z Garbage Collector), использующий раздельную обработку "старых" и "молодых" объектов, что повышает эффективность очистки недавно созданных объектов с небольшим временем жизни. Применение Generational ZGC уменьшает риски приостановок во время выделения ресурсов, снижает нагрузку на CPU и потребление памяти при сборке мусора. Тестирование Generational ZGC с Apache Cassandra 4 показало увеличение пропускной способности в 4 раза при фиксированном размере кучи (heap) и уменьшение размера кучи на четверть при неизменной пропускной способности.
  • В JavaDoc добавлена поддержка использования разметки Markdown для документирования кода в комментариях, которую можно использовать вместо смеси из HTML и @-тегов JavaDoc.
  • Механизмы сопоставления с образцом расширены предварительной поддержкой использования примитивных типов (int, byte, char и другие базовые типы, не являющиеся объектами) во всех видах шаблонов, в операторе "instanceof" и в блоках "switch".
    
       switch (x.getStatus()) {
           case 0 -> "okay";
           case 1 -> "warning";
           case 2 -> "error";
           case int i -> "unknown status: " + i;
       }
       if (i instanceof byte b) {
        ... b ...
       }
    
  • Добавлена предварительная поддержка использования одного выражения "import module M" для импорта сразу всех пакетов, экспортируемых указанным модулем. Изменение существенно упрощает повторное использование модульных библиотек, позволяя подключать библиотеки и классы без определения их места в иерархии пакетов. Например, указание "import module java.base" приведёт к импорту всех 54 пакетов, входящих в модуль java.base, которые ранее потребовалось бы упоминать по-отдельности ("import java.io.*", "import java.util.*" и т.п.).

    Предложена вторая предварительная реализация API Class-File для разбора, генерации и преобразования файлов с классами Java.

    
       ClassFile cf = ClassFile.of();
       ClassModel classModel = cf.parse(bytes);
       byte[] newBytes = cf.build(classModel.thisClass().asSymbol(),
            classBuilder -> {
                for (ClassElement ce : classModel) {
                    if (!(ce instanceof MethodModel mm
                            && mm.methodName().stringValue().startsWith("debug"))) {
                        classBuilder.with(ce);
                    }
                }
            });
    
  • Предложена восьмая предварительная реализация API Vector, предоставляющего функции для векторных вычислений, которые выполняются с использованием векторных инструкций процессоров x86_64 и AArch64 и позволяют одновременно применить операции сразу к нескольким значениям (SIMD). В отличие от предоставляемых в JIT-компиляторе HotSpot возможностей по автовекторизации скалярных операций, новый API даёт возможность явно управлять векторизацией для параллельной обработки данных.
  • В класс java.io.Console добавлены методы format, printf, readPassword и readLine для форматирования, вывода и чтения текста с учётом выбранной локали.
    
       System.console().printf(Locale.FRANCE, "%1$tY-%1$tB-%1$te %1$tA", new Date())
       2024-mai-16 jeudi
    
  • Добавлена вторая предварительная реализация расширенного API Stream, поддерживающего определение собственных промежуточных операций, которые могут оказаться полезны в случаях, когда существующих встроенных промежуточных операций недостаточно для желаемого преобразования данных. Собственные обработчики подключаются при помощи новой промежуточной операции Stream::gather(Gatherer), которая обрабатывает элементы потока, применяя к ним заданный пользователем обработчик.
    
       jshell> Stream.of(1,2,3,4,5,6,7,8,9).gather(new WindowFixed(3)).toList()
       $1 ==> [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
    
  • Добавлена третья предварительная реализация неявно объявленных классов и безымянных экземпляров метода "main", в которых можно обойтись без объявлений public/static, передачи массива аргументов и прочих сущностей, связанных с объявлением класса.
    
       // было
       public class HelloWorld {
         public static void main(String[] args) {
           System.out.println("Hello world!");
         }
       }
    
       // теперь можно
       void main() {
           System.out.println("Hello, World!");
       }
    
  • Добавлен второй предварительный вариант возможности, разрешающей указание в конструкторах выражений перед вызовом super(...), используемого для явного вызова конструктора родительского класса из конструктора наследуемого класса, если эти выражения не ссылаются на создаваемый конструктором экземпляр.
    
       class Outer {
           void hello() {
               System.out.println("Hello");
           }
           class Inner {
               Inner() {
                   hello();
                   super();
               }
           }
       }
    
  • Добавлена третья предварительная реализация ограниченных значений (Scoped Values), позволяющих совместно использовать неизменяемые данные в потоках и эффективно обмениваться данными между дочерними потоками (значения наследуются). Scoped Values развиваются для замены механизма переменных локальных к потоку (thread-local variables) и более эффективны при использовании очень большого числа виртуальных потоков (тысячи и миллионы потоков). Главное отличие Scoped Values от переменных локальных к потоку в том, что первые записываются один раз, в дальнейшем не могут быть изменены и остаются доступны только на время выполнения потока.
  • Предложен для тестирования третий предварительный вариант API для cтруктурированного параллелизма (Structured Concurrency), упрощающего разработку многопоточных приложений за счёт обработки нескольких задач, выполняемых в разных потоках, как единого блока.
  • Объявлены устаревшими и намечены к удалению методы доступа к внешней памяти (вне JVM), предоставляемые классом sun.misc.Unsafe. Для обращения к памяти вне кучи (off-heap) и взаимодействия с внешними кодом рекомендуется использовать API VarHandle и API FFM (Foreign Function & Memory).

Дополнительно можно отметить публикацию обновления платформы для создания приложений с графическим интерфейсом JavaFX 23 и включение в основной состав Oracle JDK 23 JIT-компилятора GraalVM.

Также представлен новый выпуск универсальной виртуальной машины GraalVM, поддерживающей запуск приложений на JavaScript (Node.js), Python, Ruby, R, любых языках для JVM (Java, Scala, Clojure, Kotlin) и языках, для которых может формироваться биткод LLVM (C, C++, Rust). Кроме поддержки JDK 23 в новой версии проведена оптимизация потребления памяти и размера исполняемого кода, реализована полноценная поддержка средств для встраивания Python и WebAssembly в Java-код с использованием JIT-компиляции.

  1. Главная ссылка к новости
  2. OpenNews: Выпуск платформы Java SE 22 и открытой эталонной реализации OpenJDK 22
  3. OpenNews: Треть Java-проектов на базе библиотеки Log4j продолжают использовать уязвимые версии
  4. OpenNews: Доступен Jakarta EE 10, продолжающий развитие Java EE после передачи проекту Eclipse
  5. OpenNews: Компания Oracle представила универсальную виртуальную машину GraalVM
  6. OpenNews: Компания Oracle убрала ограничение по использованию JDK в коммерческих целях
Обсуждение (81 +7) | Тип: Программы |


·17.09 Опубликован набор компиляторов LLVM 19 (47 +16)
  После шести месяцев разработки представлен релиз проекта LLVM 19.1.0, развивающего инструментарий (компиляторы, оптимизаторы и генераторы кода), компилирующий программы в промежуточный биткод RISC-подобных виртуальных инструкций (низкоуровневая виртуальная машина с многоуровневой системой оптимизаций). Сгенерированный псевдокод может быть преобразован в машинный код для заданной целевой платформы или использован JIT-компилятором для формирования машинных инструкций непосредственно во время выполнения программы. На базе технологий LLVM проектом развивается компилятор Clang, поддерживающий языки программирования C, C++ и Objective-C. Начиная с прошлой ветки проект перешёл на новую схему формирования номеров версий, в соответствии с которой нулевой выпуск ("N.0") используется в процессе разработки, а первая стабильная версия снабжается номером "N.1".

Среди улучшений в Clang 19:

  • Добавлены возможности, определённые в Си-стандарте C23:
    • поддержка использования спецификатора constexpr для определения объектов;
    • макросы INFINITY, NAN, FLT_NORM_MAX, DBL_NORM_MAX и LDBL_NORM_MAX во float.h;
    • механизм "#embed" для интеграции бинарных ресурсов;
    • тип char8_t для строк и символов в UTF-8.
  • Обеспечена реализация всех возможностей, определённых в стандарте C++17. Завершающим звеном стало включение поддержки элементов для сопоставления параметров шаблона с совместимыми аргументами, которые были отключены по умолчанию из-за имевшихся проблем с совместимостью.
  • В режиме C++14 включена по умолчанию поддержка функции delete с указанием размера (sized deallocation),
  • Добавлены возможности, связанные со стандартом C++20: встроенные функции __is_layout_compatible и __is_pointer_interconvertible_base_of; полная поддержка выражений для импорта модулей; начальная поддержка автоматического определения типов аргументов шаблона класса для создаваемых при помощи шаблонов псевдонимов типов (CTAD для Alias Template).
  • Добавлены возможности, связанные со стандартом C++20: продление времени жизни временных объектов в циклах, перебирающих диапазоны; переносимые предположения; ослабление ограничений для constexpr и отключение диагностики "-Winvalid-constexpr"; поддержка статических и явных функций-членов объектов с одинаковыми списками параметров.
  • Добавлены возможности, связанные с будущим стандартом C++2с (C++26): индексирование пакета параметров в шаблонах; синтаксис '= delete("причина")'; атрибуты для структурированных привязок; запрет на привязку возвращаемого glvalue к временному значению; тривиальные бесконечные циклы без неопределенного поведения; вывод ошибки при удалении указателя на неполный тип; применение ограничений в выражениях свёртки ("...").
  • Добавлены новые флаги компилятора:
    • "-fsanitize=implicit-bitfield-conversion" для проверки неявного усечения и изменения знака при работе с битовыми полями.
    • "-fsanitize=implicit-integer-conversion" для проверки неявных преобразований целых чисел.
    • "-Wmissing-designated-field-initializers" для выявления отсутствующих инициализаторов полей.
    • "-fexperimental-modules-reduced-bmi" для включения урезанного BMI (Binary Module Interface) для именованных модулей C++20, позволяющего использовать стандартные модули C++.
    • "-fexperimental-late-parse-attribute" для включения позднего парсинга атрибутов в специфичных контекстах, например, атрибута counted_by.
    • "-fseparate-named-sections" для создания отдельных уникальных секций для глобальных символов в именованных специальных секциях.
    • "-fms-define-stdc" для совместимости STDC с MSVC.
    • "-Wc++23-compat" и "-Wc++2c-compat" - группы предупреждений для упрощения миграции на C++23 и C++26.
    • "-fdisable-block-signature-string" для отключения генерации строки с подписью для блоков.
    • "-fpointer-tbaa" для пометки несовместимых указателей, используя анализ алиасов на основе типов (TBAA).
  • Добавлены новые атрибуты: sized_by, counted_by_or_null, nonblocking, nonallocating, blocking, allocating, sized_by_or_null, amdgpu_max_num_work_groups(x, y, z).
  • Добавлены новые встроенные функции: __builtin_readsteadycounter, __builtin_popcountg, __builtin_clzg, __builtin_ctzg, __is_bitwise_cloneable.
  • Расширены средства диагностики и статического анализа, добавлены новые проверки.

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

  • В бэкенде для архитектуры RISC-V добавлена экспериментальная поддержка расширений Zabha (атомарные операции с памятью), Ssqosid, Ssnpm, Smnpm, Smmpm, Sspm и Supm (использование масок для указателей), Zba, Zbb, Zbs. Стабилизирована поддержка расширений Ztso, Zabha, Zaamo и Zalrsc.
  • В бэкенд для архитектуры AArch64 добавлена поддержка процессоров Cortex-R82AE, Cortex-A78AE, Cortex-A520AE, Cortex-A720AE, Cortex-A725, Cortex-X925, Neoverse-N3, Neoverse-V3 и Neoverse-V3AE.
  • В бэкенд для архитектуры ARM добавлена поддержка процессора Cortex-R52+.
  • Улучшены бэкенды для архитектур X86, LoongArch, WebAssembly, MIPS, PowerPC и AMDGPU.
  • Расширены возможности компоновщика LLD. Добавлены новые виды перемещений (relocations): CREL, GNU_PROPERTY_AARCH64_FEATURE_PAUTH, R_AARCH64_AUTH_ABS64 и R_AARCH64_AUTH_RELATIVE. Добавлен параметр "--compress-sections <section-glib>={none,zlib,zstd}[:level]" для выбора алгоритма сжатия секций.
  • В библиотеке Libc++ продолжена реализация возможностей стандартов C++20, C++23 и C++26.
  • C 3.6 до З.8 повышены требования к версии Python, необходимой для сборки LLVM.

  1. Главная ссылка к новости
  2. OpenNews: Доступен набор компиляторов LLVM 18
  3. OpenNews: Обеспечена возможность сборки ядра Linux в окружении macOS с LLVM
  4. OpenNews: Опубликованы результаты аудита безопасности кодовой базы LLVM
  5. OpenNews: Проект LLVM меняет схему нумерации версий
  6. OpenNews: Релиз набора компиляторов GCC 14
Обсуждение (47 +16) | Тип: Программы |


·17.09 Инженер из AMD предложил упростить в ядре Linux управление блокировками уязвимостей CPU (78 +34)
  Так как число поддерживаемых в ядре Linux режимов для противостояния уязвимостям в CPU достигло 15 и перечисление всех уязвимостей в командной строке ядра стало довольно сложной задачей, разработчик ядра из компании AMD предложил перейти от настройки блокировки конкретных уязвимостей к выбору блокировки векторов атаки.

Методы блокировки предлагается активировать в зависимости от вида нарушения изоляции: между пользователем и ядром (mitigate_user_kernel), между пользователем и другим пользователем (mitigate_user_user), между гостевой системой и хост-окружением (mitigate_guest_host), между разными гостевыми системами (mitigate_guest_guest) и между разными потоками (mitigate_cross_thread).

Предложенный подход даст возможность активировать только защиту от тех классов уязвимостей, которые реально волнуют пользователя. Например, владельцы облачных окружений могут включить режимы mitigate_guest_host и mitigate_guest_guest, после чего будут активированы методы защиты от уязвимостей BHI, GD, L1TF, MDS, MMIO, Retbleed, RFDS, Spectre_v2, SRBDS, SRSO и TAA.

 
=============== ============== ============ ============= ============== ============
Vulnerability   User-to-Kernel User-to-User Guest-to-Host Guest-to-Guest Cross-Thread
=============== ============== ============ ============= ============== ============
BHI                   X                           X
GDS                   X              X            X              X
L1TF                                              X                            X        
MDS                   X              X            X              X             X        
MMIO                  X              X            X              X             X        
Meltdown              X
Retbleed              X                           X                            X        
RFDS                  X              X            X              X
Spectre_v1            X
Spectre_v2            X                           X
Spectre_v2_user                      X                           X
SRBDS                 X              X            X              X
SRSO                  X                           X
SSB         
TAA                   X              X            X              X             X        

  1. Главная ссылка к новости
  2. OpenNews: Indirector - новая микроархитектурная атака, затрагивающая CPU Intel Raptor Lake и Alder Lake
  3. OpenNews: TikTag - атака на механизм спекулятивного выполнения в CPU ARM, позволяющая обойти защиту MemTag
  4. OpenNews: Новый вариант атаки BHI на CPU Intel, позволяющий обойти защиту в ядре Linux
  5. OpenNews: GhostRace - атака на механизм спекулятивного выполнения в процессорах Intel, AMD, ARM и IBM
  6. OpenNews: SLAM - атака на CPU Intel, AMD и ARM, позволяющая определить содержимое памяти
Обсуждение (78 +34) | Автор: Аноним | Тип: К сведению |


·17.09 C++ Alliance продвигает в C++ механизмы безопасной работы с памятью, опробованные в Rust (317 +49)
  Президент организации C++ Alliance объявил о работе над спецификацией, добавляющей в язык C++ расширения для безопасной работы с памятью, напоминающие возможности, реализованные в языке Rust. Для осуществления проекта привлечён Шон Бакстер (Sean Baxter), автор экспериментального C++-компилятора Circle, развивающего идеи по повышению безопасности кода C++, реализуемые на стороне компилятора без использования сборки мусора. В рамках проекта Шон опубликовал документ с анализом применимости тех или иных мер защиты, предлагаемых в языке Rust, оценкой возможности их реализации для C++ и предложениями по добавлению в язык C++ расширений, повышающих безопасность кода.

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

Безопасность работы с памятью предлагается обеспечить при помощи механизмов, реализуемых на этапе компиляции и не приводящих к дополнительным накладным расходам, свойственным языкам, использующим сборщики мусора. В качестве основных предлагаемых методов обеспечения безопасности упоминается отслеживание владения объектами, проверка заимствования переменных (borrow checker), использование безопасного контекста (safe), создание интерфейсов std2::send и std2::sync. Работа также охватывает создание защищённого варианта стандартной библиотеки, предлагающего реализации алгоритмов и структур данных, позволяющих безопасно работать с памятью.

  1. Главная ссылка к новости
  2. OpenNews: DARPA развивает AI-транслятор для переписывания Си-кода на Rust
  3. OpenNews: Создатель C++ раскритиковал навязывание безопасных языков программирования
  4. OpenNews: 70% проблем с безопасностью в Chromium вызваны ошибками при работе с памятью
  5. OpenNews: Cloudflare перешёл с NGINX на собственный прокcи Pingora, написанный на языке Rust
  6. OpenNews: АНБ рекомендует переходить на языки программирования, безопасно работающие с памятью
Обсуждение (317 +49) | Тип: К сведению |


·17.09 Компания AMD опубликовала документацию по архитектуре набора команд GPU RDNA 3.5 (154 +32)
  Компания AMD объявила о публикации в открытом доступе руководства по архитектуре набора команд GPU RDNA 3.5, применяемой в новейшей серии процессоров Ryzen AI 300 (APU Strix Point), а также в платформах с GPU Radeon 880M и 890M. Документация может пригодиться тем, кто хочет разобраться в низкоуровневой работе с GPU, а также будет полезна для реализации оптимизаций при разработке шейдеров, игр и взаимодействующих с GPU утилит. Руководство полностью охватывает реализованную в RDNA 3.5 модель выполнения шейдеров, возможные состояния, доступные инструкции, форматы кодирования информации и особенности взаимодействие движка шейдеров с памятью.

  1. Главная ссылка к новости
  2. OpenNews: Опубликован инструментарий ZLUDA, позволяющий запускать CUDA-приложения на GPU AMD
  3. OpenNews: AMD воспользовался DMCA для борьбы с утечкой внутренней документации по GPU Navi и Arden
  4. OpenNews: Компания AMD представила проект GPUOpen, сделав ставку на открытое ПО в конкуренции с NVIDIA
  5. OpenNews: NVIDIA опубликовала документацию по интерфейсам GPU для упрощения разработки открытых драйверов
  6. OpenNews: NVIDIA начнёт использовать открытые модули ядра для GPU, начиная с Turing
Обсуждение (154 +32) | Тип: К сведению |


·17.09 OpenSearch, форк платформы Elasticsearch, перешёл под крыло Linux Foundation (18 +9)
  Компания Amazon объявила о создании организации OpenSearch Software Foundation, контролируемой Linux Foundation, которая будет курировать дальнейшую разработку проекта OpenSearch, развивающего форк платформы поиска, анализа и хранения данных Elasticsearch, а также web-интерфейса Kibana. Отмечается, что перевод OpenSearch на независимую нейтральную площадку, не контролируемую отдельными компаниями, позволит привлечь к разработке новых участников и сделает проект более привлекательным для внедрения.

Управление проектом будет осуществляться техническим комитетом, сформированным из представителей сообщества и компаний, принимающих участие в разработке. Основной принцип модели управления определён как "разработка сообществом для сообщества". О присоединении к работе над OpenSearch в новой организации заявили компании Amazon, SAP, Uber, Aiven, Aryn, Atlassian, Canonical, DigitalOcean, Eliatra, Graylog, NetAp Instaclustr и Portal26. Сформировавшее вокруг OpenSearch сообщество насчитывает несколько тысяч участников, включая более 200 сопровождающих из 25 компаний и организаций. С момента создания форка проектом зафиксировано более 700 млн загрузок.

Форк был создан в ответ на перевод проекта Elasticsearch на несвободную лицензию SSPL (Server Side Public License) и прекращение публикации изменений под старой лицензией Apache 2.0. Несмотря на недавнее возвращение Elasticsearch на использование свободной лицензии, проект OpenSearch не потерял актуальность, так как в нём продолжено использование пермиссивной лицензии Apache 2.0 вместо лицензии AGPLv3, на которую перешёл Elasticsearch, а также развивается ряд специфичных надстроек, ранее поставлявшихся компанией Amazon в отдельном дистрибутиве Open Distro for Elasticsearch и заменяющих платные компоненты Elasticsearch.

  1. Главная ссылка к новости
  2. OpenNews: Elasticsearch возвращается на использование открытой лицензии
  3. OpenNews: В официальных клиентах Elasticsearch блокирована возможность подключения к форкам
  4. OpenNews: Amazon опубликовал OpenSearch 1.0, форк платформы Elasticsearch
  5. OpenNews: Amazon представил OpenSearch, форк платформы Elasticsearch
  6. OpenNews: Amazon и Logz.io объявили о создании форков Elasticsearch
Обсуждение (18 +9) | Тип: К сведению |


·17.09 Релиз FreeBSD 13.4 (140 +11)
  После 6 месяцев разработки опубликован релиз операционной системы FreeBSD 13.4, который стал первым выпуском, сформированным в рамках обновлённого цикла разработки, подразумевающего формирование промежуточных выпусков раз в полгода. Установочные образы FreeBSD 13.4 сформированы для архитектур amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 и riscv64. Дополнительно подготовлены сборки для систем виртуализации (QCOW2, VHD, VMDK, raw) и облачных окружений Amazon EC2, Google Compute Engine и Vagrant. Следующий выпуск 13.5, который намечен на март, станет финальным и будет сопровождаться до апреля 2026 года. Параллельно развивается ветка FreeBSD 14, следующий выпуск (14.2) в которой намечен на декабрь 2024 года. Первый выпуск ветки FreeBSD 15 будет сформирован в декабре 2025 года.

Ключевые изменения:

  • В библиотеке libcapsicum реализовано кэширование дополнительной информации о часовых поясах, что позволило снизить число обращений к функции tzset и привело к повышению производительности.
  • Обновлены версии LLVM 18.1.5, SQLite 3.46.0, OpenSSH 9.7p1, libarchive 3.7.4.
  • В сетевой стек внесены оптимизации производительности и исправления. Улучшена поддержка протокола SCTP, в loopback-интерфейс добавлена возможность выноса на сторону сетевой карты операций вычислений контрольных сумм для пакетов SCTP.
  • В драйверы amdsmn (System Management Network) и amdtemp добавлена поддержка процессоров AMD Ryzen 7 "Phoenix", позволившая определять температуру с датчиков на CPU через sysctl.
  • Обновлены драйверы устройств irdma и ice для сетевых адаптеров Intel Ethernet 8xx. В драйвер u3g добавлена поддержка LTE-модема SIM7600G. Внесены исправления в драйверы для беспроводных устройств.
  • Внесены изменения в состав пакетов, поставляемых на установочном носителе (dvd1):
    • Порт devel/git заменён на сокращённый вариант devel/git@lite.
    • Добавлены порты sysutils/seatd и x11-wm/sway для формирования окружений на базе Wayland.
    • Удалён порт archivers/unzip, так как утилита unzip перенесена в базовую систему.
    • Удалён порт emulators/linux_base-c7, в котором нет смысла без установки Linux-пакетов.
    • Удалён порт ports-mgmt/portmaster, вместо которого следует использовать пакетный менеджер pkg и бинарные пакеты.
    • Из портов удалены драйверы x11-drivers/xf86-video-vmware, которые проблематично использовать с текущей версией X-сервера.

  1. Главная ссылка к новости
  2. OpenNews: Релиз FreeBSD 13.3
  3. OpenNews: Фонд Sovereign инвестирует 686 тысяч евро в обновление инфраструктуры FreeBSD
  4. OpenNews: FreeBSD переходит на сокращённый цикл подготовки релизов
  5. OpenNews: Обсуждение ветки FreeBSD 15 и интеграции поддержки Rust во FreeBSD
  6. OpenNews: Релиз FreeBSD 14.1 с улучшенным звуковым стеком и поддержкой cloud-init
Обсуждение (140 +11) | Тип: Программы |


·17.09 21 сентября в Москве состоится конференция разработчиков на языке Perl (48 +16)
  В субботу 21 сентября пройдёт встреча разработчиков, использующих язык программирования Perl. Проведение конференций возобновлено после четырёхлетнего перерыва. На мероприятии будут предложены доклады, посвящённые разбору новых возможностей Perl, оптимизации кода, поддержке устаревшего кода и VIM-плагину для работы с Perl и SQL. На конференции также будет предоставлена возможность обсудить актуальные вопросы, пообщаться вживую и обменяться опытом. Участие бесплатное, но требуется предварительная регистрация. Планируется онлайн-трансляция из зала.

  1. Главная ссылка к новости
  2. OpenNews: Доступен язык программирования Perl 5.40.0
  3. OpenNews: Опубликован разбор инцидента с потерей контроля над доменом perl.com
  4. OpenNews: Релиз компилятора Rakudo 2023.04 для языка программирования Raku (бывший Perl 6)
  5. OpenNews: Perl 7 плавно продолжит развитие Perl 5 без нарушения обратной совместимости
  6. OpenNews: Руководство Perl приостановило работу команды, следящей за соблюдением кодекса поведения
Обсуждение (48 +16) | Автор: zhmylove | Тип: К сведению |


·16.09 Исследование Open Source в области машинного обучения и работы с данными в РФ (31 +14)
  Участники опенсорс-сообщества Университета ИТМО опубликовали результаты исследования, в котором проанализировали особенности и тенденции в развитии и использовании в России общемирового открытого ПО в области машинного обучения и работы с данными. В отчёте приведены мнения экспертов Яндекса, Сбера, Т-Банка, VK, Wildberries, Рокет Контрола, CodeScoring и МФТИ, проанализированы открытые данные из GitHub и смежных сервисов, построены рейтинги, графики и таблицы.

В процессе проведения исследования был реализован парсер данных из GitHub API и сторонних сервисов (таких, как pepy, star-history и др.), на основе которых проанализированы данные о местоположении пользователей, использующих открытые проекты и участвующих в их развитии. Также уделено внимание существующим опенсорс-сообществам, другим исследованиям на схожие темы, перспективам развития опенсорса в эпоху ИИ и многому другому.

Топ-5 используемых в РФ решений:



  1. Главная ссылка к новости
Обсуждение (31 +14) | Автор: Николай Никитин | Тип: Обобщение | яз. русский


·16.09 Релиз ядра Linux 6.11 (169 +48)
  После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 6.11. Среди наиболее заметных изменений: поддержка операций атомарной записи на блочном уровне, поддержка операций bind() и listen() в io_uring, новый механизм блокировок программных обработчиков прерываний, возможность записи в отзеркаленные в память исполняемые файлы, поддержка написания драйверов блочных устройств на языке Rust, оптимизация вызова getrandom(), новая реализация AES-GCM.

В новую версию принято 15130 исправлений от 2078 разработчиков, размер патча - 85 МБ (изменения затронули 13282 файлов, добавлено 985857 строк кода, удалено 268915 строк). В прошлом выпуске было 14564 исправлений от 1989 разработчиков, размер патча - 41 МБ (в два раза меньше, чем патч для ядра 6.11). Около 46% всех представленных в 6.11 изменений связаны с драйверами устройств, примерно 17% изменений имеют отношение к обновлению кода, специфичного для аппаратных архитектур, 10% связано с сетевым стеком, 5% - с файловыми системами и 3% c внутренними подсистемами ядра.

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

  • Дисковая подсистема, ввод/вывод и файловые системы
    • Реализована поддержка атомарных операций записи на блочном уровне, при которых на накопитель записывается либо весь указанный набор блоков, либо ни один из блоков, что позволяет защититься от ситуаций, когда после сбоя оборудования записывается лишь часть блоков, а в другой части остаётся старая информация. Для включения атомарного режима записи в системный вызов pwritev() добавлен флаг RWF_ATOMIC. Информацию о поддержке атомарной записи (atomic_write_unit_min, atomic_write_unit_max и atomic_write_segments_max) в привязке к отдельным файлам можно получить при помощи функции statx().
    • Предоставлена поддержка записи в исполняемые файлы, связанные с работающими процессами. Ранее, как и в других Unix-подобных системах, ядро выводило ошибку при попытке записи в исполняемый файл запущенного процесса. Данное ограничение снято, так как оно лишено практического смысла.
    • Реализована возможность разработки драйверов блочных устройств на языке Rust. В качестве примера в ядро добавлен драйвер rnull, представляющий собой аналог драйвера null_blk, написанный на языке Rust.
    • В файловой системе Btrfs в опции монтирования "rescue=" реализована поддержка новых режимов "ignoremetacsums" и "ignoresuperflags", которые можно использовать для выноса некоторых проверок в пространство пользователя при восстановлении ФС после сбоя. Реализация операции динамического возвращения групп блоков переделана для исключения возникновения ситуации нехватки свободного пространства в условиях неполной заполненности ФС.
    • В файловой системе ntfs3 реализована поддержка атрибутов "compressed" и "immutable", определяющих сжатые и неизменяемые файлы.
    • В ФС F2FS и Ext4 обработка имён файлов без учёта регистра символов (casefold) упрощена через хранение имён в форме qstr-строк без лишних преобразований регистра.
    • В ФС Ext4 реализация функции jbd2_transaction_committed оптимизирована для повышения производительности на очень быстрых накопителях (в тестах отмечен прирост обрабатываемых операций в секунду, достигающий 20%).
    • В системном вызове statx() разрешена передача указателя NULL вместо пустой строки с файловым путём, в случае если выставлен флаг AT_EMPTY_PATH.
    • В системном вызове open_by_handle_at() смягчены проверки прав доступа к файлу, в случае отсутствия полномочий CAP_DAC_READ_SEARCH для поиска в начальном пространстве имён. Ранее необходимость наличия полномочий CAP_DAC_READ_SEARCH к начальному пространству имён не позволяла использовать системный вызов open_by_handle_at() в контейнерах.
    • Расширены возможности системных вызовов listmount() и statmount(). В listmount() добавлен флаг LISTMOUNT_REVERSE для вывода содержимого таблицы точек монтирования в обратном порядке (самые новые записи в верху). В statmount() реализован вывод опций, выставленных при монтировании ФС. В обоих системных вызовах разрешена работа при отсутствии доступа к начальному пространству имён (когда имеется только доступ к локальному или внешнему пространству имён).
    • В ФС Bcachefs реализована поддержка автоматического прозрачного восстановления проблемных данных, используя коды восстановления ошибок - если при чтении возникает ошибка ввода/вывода или вычислено несоответствие контрольной суммы, проблемный блок данных автоматически перезаписывается при наличии избыточности для его восстановления.
  • Память и системные сервисы
    • В состав приняты патчи с реализацией нового механизма блокировок программных обработчиков прерываний (BH, bottom-half), который обеспечивает блокировку используемых структур данных, но при этом не вызывает блокирования параллельного выполнения не связанного с ними кода. Отмечается, что изменение позволило не только снизить задержки для ядер, работающих в режиме realtime, но и повысить производительность обычных ядер (например, для некоторых видов нагрузки наблюдается повышение производительности сетевой подсистемы на 14.5%).
    • В подсистему асинхронного ввода/вывода io_uring добавлена поддержка операций для реализации функций bind() и listen(), используемых для создания принимающих соединения сетевых сокетов.
    • Добавлен набор ioctl-операций для псевдо-ФС NSFS (NameSpace FS), используемой для работы с пространствами имён. Новые ioctl позволяют преобразовывать идентификаторы процессов и групп потоков между разными пространствами имён идентификаторов процессов (PID namespace). Похожие ioctl, позволяющие на основе pidfd-идентификаторов определять файловые дескрипторы процессов в отдельных пространствах имён, также добавлены в псевдо-ФС pidfd.
    • Для BPF-программ добавлена поддержка нового итератора для работы с битовыми масками, который можно использовать, например, для перебора отдельных битов в областях памяти, таких как cpumask. Добавлен механизм для отправки процессам в пространстве пользователя уведомлений об отсоединении (detach/unregister) объекта struct_ops. Расширен спектр типов, которые можно использовать в массивах (например, можно объявлять массивы, имеющие элементы с типами kptr, bpf_rb_root и bpf_list_head). Предложен более надёжный механизм Split BTF (BPF Type Format), используемый для проверки типов в псевдокоде BPF.
    • Добавлена подсистема, позволяющая организовать подачу питания на устройства в заданном порядке, на случай, когда одно устройство должно быть активировано раньше другого (например, при активации беспроводных чипов на платформах Qualcomm).
    • Добавлен модуль "Sloppy logic analyzer", позволяющий создавать простые логические анализаторы сигнала, использующие GPIO и работающие на отдельном ядре CPU.
    • Добавлена поддержка runtime-констант, которые могут использоваться вместо переменных, инициализируемых один раз. Например, runtime-константы могут применяться вместо переменных, хранящих указатель и размер для кэша dentry. Данные переменные выставляются во время загрузки и затем никогда не меняются. Идея в том, чтобы подставить значения подобных переменных напрямую в инструкции в коде, исключив накладные расходы, связанные с манипуляциями с указателями.
    • Продолжен перенос изменений из ветки Rust-for-Linux, связанных с использованием языка Rust в качестве второго языка для разработки драйверов и модулей ядра (поддержка Rust не активна по умолчанию, и не приводит ко включению Rust в число обязательных сборочных зависимостей к ядру). Добавлена поддержка выпуска Rust 1.80 (в качестве минимальной версии по-прежнему поддерживается Rust 1.78). Помимо ранее отмеченных средств для разработки драйверов блочных устройств, в новой версии добавлены абстракции для загрузки прошивок, доступа к пространству пользователя (uaccess) и работы структурой "page".
    • Для систем x86-64 реализован новый системный вызов uretprobe(), оптимизирующий работу механизма трассировки uretprobe, позволяющего отслеживать значения, возвращаемые функциями в приложениях пространства пользователя.
    • Добавлены параметры командной строки ядра: "reserve_mem" для резервирования именованной области памяти во время загрузки и "ramoops.mem_name" для использования в pstore области памяти, созданной через reserve_mem.
    • В контроллер памяти на базе cgroup в файл memory.reclaim, через который определяются настройки вытеснения памяти, добавлен параметр "swappiness", позволяющий изменить баланс между вытеснением анонимных страниц памяти в раздел подкачки и освобождением страниц памяти, занятых под файловый кэш.
    • Добавлен ioctl-интерфейс PROCMAP_QUERY для более эффективного поиска виртуальных областей памяти (Virtual Memory Area) в /proc/PID/maps.
    • В системный вызов mmap() добавлен флаг MAP_DROPPABLE для запроса памяти, которая никогда не будет сброшена в раздел подкачки, а в случае нехватки памяти может быть удалена.
    • Для архитектуры ARM64 реализована поддержка горячего подключения (перевода в режимы online/offline) физических и виртуальных CPU на системах с ACPI.
    • Для архитектуры RISC-V обеспечена поддержка горячего подключения памяти и добавлена поддержка GCC-плагина STACKLEAK (выполняет инициализацию всех хранимых в стеке переменных для предотвращения утечки информации из ядра через неинициализированные переменные, которые могут содержать остатки ранее сохранённых в стеке данных).
    • Удалён механизм фиктивного маппинга памяти EFI (fake EFI memory map) на этапе загрузки. Данный механизм не использовался на практике и мешал разработкам в области конфиденциального выполнения виртуальных машин.
    • Прекращена поддержка платформы PowerPC 40x.
    • Повышены требования к версии GNU Make - для сборки ядра требуется как минимум выпуск GNU Make, опубликованный в 2013 году.
  • Виртуализация и безопасность
    • Интегрированы патчи, значительно (до 15 раз) ускоряющие получение случайных чисел через системный вызов getrandom(). Оптимизация основана на использовании механизма vDSO (virtual dynamic shared object), дающего возможность перенести обработчик системного вызова из ядра в пространство пользователя и избежать переключений контекста. Загрузка реализации системного вызова в адресное пространство процесса непосредственно ядром.
    • Для систем x86-64 включена новая реализация алгоритма шифрования AES-GCM, поддерживающая использование векторных инструкций VAES, VPCLMULQDQ и AVX512/AVX10 для ускорения вычислений. В проведённых тестах прирост производительности после перехода на новую реализацию достигает 156%. Ассемблерная реализация AES-GCM полностью переписана с учётом корректности, производительности, размера и исчерпывающего документирования кода.
    • Реализована возможность запуска ядра в качестве гостевой системы в виртуализированных окружениях, использующих процессорное расширение AMD SEV-SNP (Secure Nested Paging), предназначенное для обеспечения безопасной работы с вложенными таблицами страниц памяти. Для дополнительной изоляции доступа к ресурсам из виртуальных машин может применяться модуль SVSM (Linux Secure VM Service Module). В гипервизор KVM добавлена начальная поддержка запуска гостевых систем, защищённых при помощи AMD SEV-SNP.
    • Добавлен отдельный bucket slab allocator, включаемый через параметр CONFIG_SLAB_BUCKETS и обеспечивающий защиту от атак с использованием техники "heap spraying".
    • В гипервизор KVM добавлен ioctl-вызов для упреждающего выделения памяти гостевой системе до её фактического запуска.
  • Сетевая подсистема
    • Добавлен sysctl-параметр net.tcp_rto_min_us, через который можно настроить минимальный таймаут повторной передачи (retransmission timeout) для TCP-сокетов.
    • В утилиту ethtool добавлена возможность тонкой настройки конфигурации обработчиков прерываний для сетевых интерфейсов, использующих интерфейс Net DIM.
  • Оборудование
    • В драйвере AMDGPU включена начальная поддержка GPU AMD RDNA4 ("GFX12"). Добавлена поддержка технологий DCN 4.0.x, GC 12.0, GMC 12.0, SDMA 7.0, MES12 и MMHUB 4.1.
    • Продолжена работа над drm-драйвером (Direct Rendering Manager) Xe для GPU на базе архитектуры Intel Xe, которая используется в видеокартах Intel семейства Arc и интегрированной графике, начиная с процессоров Tiger Lake. Улучшена поддержка GPU на базе микроархитектур Battlemage, Arrow Lake и Lunar Lake.
    • В подсистеме DRM (Direct Rendering Manager) переписан обработчик выставляемых монитором параметров EDID (Extended Display Identification Data).
    • В драйвере i915 добавлена поддержка GPU Battlemage Xe2 и включён по умолчанию режим CMRR (Content Match Refresh Rate).
    • В DRM-драйвер msm (GPU Qualcomm Adreno) добавлена поддержка платформы SM7150 и GPU X185 и a505.
    • Добавлена поддержка экранных панелей Lincoln Tech Sol LCD185-101CT, Microtips Technology 13-101HIEBCAF0-C, Microtips Technology MF-103HIEB0GA0, BOE nv110wum-l60, IVO t109nw41, WL-355608-A8, PrimeView PM070WL4, Lincoln Technologies LCD197, Ortustech COM35H3P70ULC, AUO G104STN01, K&d kd101ne3-40ti.
    • В звуковой подсистеме добавлена поддержка чипов и кодеков Intel Panther Lake, Asahi Kasei AK4619, Cirrus Logic CS530x, Everest Semiconductors ES8311, NXP i.MX95, LPC32xx, Qualcomm LPASS v2.5, WCD937x, Realtek RT1318, RT1320 и Texas Instruments PCM5242.
    • Внесена финальная порция изменений, обеспечивающих поддержку ARM SoC Snapdragon X Elite, в котором используется собственный 12-ядерный CPU Qualcomm Oryon и GPU Qualcomm Adreno. Чип нацелен на использование в ноутбуках и ПК, и опережает во многих тестах производительности чипы Apple M3 и Intel Core Ultra 155H. Добавленные в ядро 6.11 изменения связаны с поддержкой GPU Adreno X1-85 и управлением энергопотреблением. Из устройств на базе SoC Snapdragon X Elite заявлена поддержка ноутбуков ASUS Vivobook S15 и Lenovo Yoga Slim7x.

Одновременно латиноамериканский Фонд свободного ПО сформировал вариант полностью свободного ядра 6.11 - Linux-libre 6.11-gnu, очищенного от элементов прошивок и драйверов, содержащих несвободные компоненты или участки кода, область применения которых ограничена производителем. В выпуске 6.11 обновлён код чистки блобов в драйверах mdgpu, adreno, vgxy61, atomisp, btnxpuart, prueth и tas2781. Проведена чистка новых драйверов amdgpu isp, tn40, rtl8192du, cs40l50, rt1320 и pcie-rcar-gen4. Выполнена чистка имён блобов в dts-файлах (devicetree) для архитектуры Aarch64. Добавлена не выдающая предупреждения и запросов (nowait-nowarn) версия примитивов для загрузки прошивок. Добавлен код для определения примитивов загрузки прошивок в коде на языке Rust.

  1. Главная ссылка к новости
  2. OpenNews: Релиз ядра Linux 6.10
  3. OpenNews: Релиз ядра Linux 6.9
  4. OpenNews: Релиз ядра Linux 6.8
  5. OpenNews: Релиз ядра Linux 6.7
  6. OpenNews: Релиз ядра Linux 6.6
Обсуждение (169 +48) | Тип: Программы | Интересно


Следующая страница (раньше) >>



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

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