· | 22.01 |
Релиз мультимедийной библиотеки SDL 3 (48 +7) |
|
Представлен релиз библиотеки SDL 3.2.0 (Simple DirectMedia Layer), который помечен как первый официальный стабильный выпуск ветки SDL 3. Библиотека нацелена на упрощение написания игр и мультимедийных приложений, и предоставляет такие возможности, как аппаратно-ускоренный вывод 2D- и 3D-графики, обработка ввода, воспроизведение звука и вывод 3D через OpenGL, OpenGL ES, Metal, Direct3D или Vulkan. Код написан на языке Си и распространяется под лицензией Zlib. Предоставляются обвязки для использования SDL в проектах на различных языках программирования.
Основные новшества:
- Существенно улучшена поддержка протокола Wayland, который теперь активирован по умолчанию в окружениях, предоставляющих одновременную поддержку Wayland и X11, и поддерживающих расширения протокола fifo-v1 и commit-timing-v1.
- Задействован по умолчанию мультимедийный сервер PipeWire, который помечен как более приоритетный, чем PulseAudio.
- Добавлена поддержка видеозахвата с web-камер (при наличии PipeWire).
- Добавлена возможность использования графических планшетов и цифровых перьев.
- Значительно улучшена поддержка экранов с высокой плотностью пикселей (High DPI).
- Добавлена поддержка цветовых пространств и возможность управления несколькими цветовыми пространствами. Реализована начальная поддержка HDR.
- Полностью переработан код для работы со звуком. Добавлена поддержка логических звуковых устройств (разные части программы могут работать со своим отдельным звуковым устройством). Добавлены средства для работы со звуковыми потоками, преобразования потоков, изменение частоты дискретизации, микширования, управления буферизацией, изменения тона и громкости. Реализована автоматическая обработка подключения или отключения звуковых устройств, а также смена звукового устройства по умолчанию.
- В API 2D-отрисовки добавлен бэкенд для отрисовки через API Vulkan. Добавлены функции для работы с поверхностями через API Vulkan.
- Проведена большая чистка устаревших возможностей, потерявших актуальность в современных реалиях. Например, прекращена поддержка OpenGL ES 1.0 и DirectFB, удалён код для работы на устаревших платформах, таких как QNX, Pandora, WinRT и OS/2.
- Предоставлена возможность организации работы программы с использованием callback-вызовов и определения цикла обработки событий в функции main().
- В API внесены изменения, нарушающие совместимость. Унифицированы правила наименования API - вызовы в разных подсистемах теперь именуются с использованием одной общей схемы.
- Добавлены новые API:
- GPU API - кросс-платформенный доступ к GPU и возможностям 3D-рендеринга.
- Dialog API - использование диалогов для выбора/открытия/сохранения файлов и каталогов.
- Filesystem API - операции с файловой системой, управление каталогами и поиск файлов.
- Storage API - абстрактный программный интерфейс для доступа к разным системам хранения данных.
- Camera API - доступ к web-камерам.
- Pen API - работа с графическими планшетами и цифровыми перьями, такими как Wacom и Apple Pencil.
- Properties API - хранение параметров в формате ключ/значение.
- Process API - запуск дочерних процессов и организация канала связи с ними.
- App metadata API - формирование заставки со сведениями о приложении (диалог About).
- Заменён API для работы с прозрачными окнами.
- Расширен API для работы с буфером обмена - помимо текста через буфер обмена теперь можно передавать данные и других типов. Добавлена возможность помещения в буфер обмена данных в нескольких форматах.
- Расширены возможности для обработки ввода с клавиатуры. Добавлена возможность настройки виртуальных клавиатур для iOS и Android.
- Значительно улучшена и переработана документация по API. Добавлена подборка примеров программ, которые можно запускать прямо в браузере.
Одновременно опубликован релиз слоя совместимости sdl2-compat, который предоставляет API, совместимый с бинарными сборками и исходным кодом SDL 2.x, но работающий поверх SDL 3. Пакет sdl2-compat может выступать в качестве полной замены SDL 2, и пригоден для организации выполнения программ, написанных для SDL 2, используя возможности ветки SDL 3.
Также доступен корректирующий выпуск SDL_sound 2.0.4, надстройки над библиотекой SDL3 c функциями для декодирования звуковых форматов, таких как MP3, WAV, OGG, FLAC, AIFF, VOC, MOD, MID и AU. Для декодирования звуковых форматов в SDL_sound не применяются внешние библиотеки - все необходимые для декодирования исходные тексты входят в основной состав. Предоставляемый API позволяет получать звуковые данные из файлов или в форме звуковых потоков из одного или нескольких внешних источников. Поддерживается прикрепление своих обработчиков звука.
- Главная ссылка к новости
- OpenNews: В библиотеке SDL3 отменяют переход на Wayland по умолчанию
- OpenNews: Выпуск мультимедийной библиотеки SDL 2.30.0
- OpenNews: Выпуск мультимедийной библиотеки SDL 2.28.0. Переключение внимания на разработку SDL 3.0
- OpenNews: Первый выпуск sdl12-compat, слоя совместимости с SDL 1.2, работающего через SDL 2
- OpenNews: Выпуск библиотеки SDL_sound 2.0
|
|
|
| |
|
|
· | 22.01 |
Обновление VirtualBox 7.1.6 (30 +1) |
|
Компания Oracle опубликовала корректирующий релиз системы виртуализации VirtualBox 7.1.6, в котором отмечено 9 изменений. Одновременно сформировано обновление прошлой ветки VirtualBox 7.0.24 с 15 исправлениями. Помимо перечисленных ниже изменений в новых версиях устранены 2 уязвимости (максимальный уровень опасности 7.3 из 10), позволяющие локальному пользователю повысить свои привилегии.
- В дополнениях для гостевых систем с Linux реализована начальная поддержка ядра 6.13. Добавлены дополнительные патчи для ядер 6.4 и 6.12, решающие проблемы с графикой в драйвере vboxvideo.
- В дополнения для хостов и гостевых систем с Linux добавлена поддержка пакета с ядром, поставляемым в дистрибутиве RHEL 9.6. Добавлены дополнительные исправления, устраняющие предупреждения UBSAN
(Undefined Behavior Sanitizer).
- Добавлен новый тип гостевых систем для запуска Windows Server 2025.
- В менеджере виртуальных машин решены проблемы, приводящие к появлению "синего экрана смерти" при запуске Windows 11 24H2 в гостевой системе.
- В графическом интерфейсе пользователя улучшено диалоговое окно с расширенными настройками. Повышена наглядность показа отключённых настроек при использовании некоторых тем оформления в Linux. В конфигураторе при запуске виртуальной машины возвращена возможность изменения адаптера в режиме сетевого моста (bridged). Решены проблемы с недоступностью переключателя 3D-ускорения для некоторых гостевых систем и графических адаптеров.
- В VirtioNet устранены проблемы с повторным применением настроек после сброса.
- Решена проблема с мерцанием экрана гостевых систем с Linux при использовании графического адаптера VMSVGA.
- В VBoxManage добавлена поддержка импорта и экспорта виртуальных машин, использующих контроллер NVMe.
- Для хостов и гостевых систем с Windows переделана установка драйверов.
- Из пакета для хостов с Solaris удалены библиотеки libqgtk2styleVBox.so и libqgtk2VBox.so, зависящие от GTK2, поддержка которого прекращена.
- Главная ссылка к новости
- OpenNews: Обновление VirtualBox 7.1.4
- OpenNews: Обновление Java SE, MySQL, VirtualBox, Solaris и других продуктов Oracle с устранением уязвимостей
- OpenNews: Релиз системы виртуализации VirtualBox 7.1
- OpenNews: На соревновании Pwn2Own 2024 продемонстрированы взломы Ubuntu, Firefox, Chrome, Docker и VirtualBox
- OpenNews: VirtualBox адаптирован для работы поверх гипервизора KVM
|
|
|
| |
|
|
· | 22.01 |
Обновление Java SE, MySQL, VirtualBox, Solaris и других продуктов Oracle с устранением уязвимостей (17 +6) |
|
Компания Oracle опубликовала плановый выпуск обновлений своих продуктов (Critical Patch Update), нацеленный на устранение критических проблем и уязвимостей. В январском обновлении устранено 318 уязвимостей.
Некоторые проблемы:
- 2 проблемы с безопасностью в Java SE. Одна уязвимость в Java SE может быть эксплуатирована удалённо без проведения аутентификации и затрагивает окружения, допускающие выполнение не заслуживающего доверия кода. Наиболее опасная проблема в Java SE имеет уровень опасности 7.3 (уязвимость в Hotspot) и затрагивает инсталлятор (Sparkle). Удалённо эксплуатируемая уязвимость имеет уровень опасности 4.8 и затрагивает виртуальную машину Hotspot.
Уязвимости устранены в выпусках Java SE 23.0.2, 17.0.14, 11.0.26 и 8u441.
- 32 уязвимости в сервере MySQL, из которых 3 могут быть эксплуатированы удалённо. Две наиболее серьёзные проблемы имеют уровень опасности 9.1 и связаны с уязвимостями в компонентах Kerberos и Curl. Менее опасные уязвимости затрагивают InnoDB, Thread Pooling, DDL, оптимизатор, парсер и систему аутентификации. Проблемы устранены в выпусках MySQL Community Server 9.2.0, 8.4.4 и 8.0.41.
- 2 уязвимости в VirtualBox, одна из которых помечена как опасная (7.3 из 10). Уязвимости, которые позволяют локальным пользователям повысить свои привилегии, устранены в обновлениях VirtualBox 7.1.6 и 7.0.24.
- 1 уязвимость в Solaris, которая затрагивает файловую систему (уровень опасности 6 из 10). Уязвимость устранена в обновлении Solaris 11.4 SRU77. В новой версии Solaris также обновлены версии пакетов Django 4.2.17,
Firefox 128.5.0esr
MySQL 8.0.40,
PHP 8.3.14,
Thunderbird 128.5.0esr,
Wireshark 4.4.2,
ansible-core 2.18.0,
python 3.9.20,
virtualenv 20.27.1,
wget 1.25.0,
kernel/privilege и utility/net-snmp, в которых также были устранены уязвимости.
- Главная ссылка к новости
- OpenNews: Обновление Java SE, MySQL, VirtualBox, Solaris и других продуктов Oracle с устранением уязвимостей
- OpenNews: Выпуск операционной системы Solaris 11.4 SRU72
- OpenNews: Уязвимость в VirtualBox, эксплуатируемая через протокол RDP
- OpenNews: Возможность генерации фиктивных подписей ECDSA в Java SE. Уязвимости в MySQL, VirtualBox и Solaris
|
|
|
| |
|
|
· | 22.01 |
Выпуск системы шифрования дисковых разделов VeraCrypt 1.26.18 (36 +7) |
|
Опубликован выпуск проекта VeraCrypt 1.26.18, развивающего форк системы шифрования дисковых разделов TrueCrypt, прекратившей своё существование. VeraCrypt примечателен заменой используемого в TrueCrypt алгоритма RIPEMD-160 на SHA-512 и SHA-256, увеличением числа итераций хэширования, упрощением процесса сборки для Linux и macOS, устранением проблем, выявленных в процессе аудита исходных текстов TrueCrypt. Разработанный проектом VeraCrypt код распространяется под лицензией Apache 2.0, а заимствования из TrueCrypt продолжают поставляться под лицензией TrueCrypt License 3.0. Готовые сборки формируются для Linux, FreeBSD, Windows и macOS.
Среди изменений в новой версии:
- На системах x86 для ускорения работы алгоритма PBKDF2-HMAC-SHA256 задействованы специализированные инструкции CPU для вычисления хэшей SHA-256.
- Для платформ ARM64 добавлена поддержка расширенных инструкций для аппаратного ускорения шифрования AES.
- Упрощена логика определения сеансов, созданных с использованием утилиты sudo.
- Решены проблемы при сборке с библиотекой wxWidgets, поставляемой в Ubuntu.
- Добавлена проверка существования разделов перед монтированием.
- В сборках для macOS по умолчанию отключён захват экрана (для включения добавлена опция "--allow-screencapture").
- Прекращена поддержка 32-разрядных систем Windows. В качестве минимально поддерживаемого заявлен выпуск Windows 10 update 1809 (октябрь 2018 года). На системах с Windows задействован генератор псевдослучайных чисел BCryptGenRandom (вместо устаревшего CryptGenRandom) и современный API для накопления энтропии.
- Устранена уязвимость CVE-2024-54187, вызванная использованием относительных путей при запуске системных исполняемых файлов. Для защиты от подмены запускаемых файлов, путём их размещение в доступных пользователю каталогах, при запуске теперь используются только абсолютные пути.
- Устранена уязвимость CVE-2025-23021, позволявшая монтировать разделы в системные каталоги, например, в каталоги, упомянутые в переменной окружения PATH.
- Главная ссылка к новости
- OpenNews: Выпуск системы шифрования дисковых разделов VeraCrypt 1.26.14
- OpenNews: Доступен Cryptsetup 2.7 с поддержкой аппаратного дискового шифрования OPAL
- OpenNews: Опубликован Shufflecake, инструментарий для создания скрытых шифрованных разделов на диске
- OpenNews: Аудит VeraCrypt выявил 8 критических уязвимостей
- OpenNews: В Ubuntu появится поддержка полнодискового шифрования, использующего TPM
|
|
|
| |
|
|
· | 21.01 |
Стабильный релиз Wine 10.0 (114 +50) |
|
После года разработки и 29 экспериментальных версий представлен стабильный релиз открытой реализации Win32 API - Wine 10.0, который вобрал в себя более 6000 изменений. Из ключевых достижений в новой версии выделяется полная поддержка архитектуры ARM64EC, масштабирование на экранах с высокой плотностью пикселей, включение по умолчанию драйвера Wayland, реализация панелей для настройки экрана и джойстика, альтернативный мультимедийный бэкенд на базе FFmpeg, драйвер Bluetooth, поддержка Vulkan 1.4, возможность эмуляции переключения видеорежимов.
В Wine подтверждена полноценная работа 5372 программ для Windows (год назад 5336, два года назад 5266, три года назад 5156), ещё 4435 программ (год назад 4397, два года назад 4370, три года назад 4312) прекрасно работают при дополнительных настройках и внешних DLL. У 4020 программ (год назад 3943, два года назад 3888, три года назад 3813) наблюдаются небольшие проблемы в работе, которые не мешают использованию основных функций приложений.
Ключевые новшества Wine 10.0:
- ARM64
- Обеспечена полная поддержка архитектуры ARM64EC (ARM64 Emulation Compatible), уровень поддержки в Wine которой достиг паритета с архитектурой ARM64. Архитектура ARM64EC разработана для упрощения портирования на системы ARM64 приложений, изначально написанных для систем x86_64, и позволяет выполнять в окружении ARM64 отдельные модули с кодом x86_64 при помощи эмулятора.
- Реализована полная поддержка формата PE-файлов ARM64X, который позволяет совмещать в одном исполняемом файле код для архитектур ARM64EC и ARM64. Для сборки Wine в формате ARM64X необходимо установить LLVM из Git (необходимая функциональность войдёт в состав релиза LLVM 20) и при запуске скрипта "configure" указать опцию "--enable-archs=arm64ec,aarch64".
- Реализован интерфейс для эмуляции 64-разрядных систем x86. При использовании ARM64EC сам Wine выполняется как есть, а эмуляция применяется только для кода приложений x86-64. Библиотека с эмулятором пока не включена в основной состав Wine, но для запуска кода x86-64 в окружении ARM64 можно использовать внешний эмулятор FEX, собранный с поддержкой ARM64EC.
- Для поддержки ARM64 необходимо использование в системе страниц памяти размером 4КБ, как того требует ABI Windows (запуск в окружениях с ядрами Linux, использующими страницы памяти 16K или 64K пока не поддерживается).
- Графическая подсистема
- Реализовано более точное масштабирование на экранах с высокой плотностью пикселей (High-DPI). Обеспечена поддержка режима DPI Awareness для организации отображения приложений на экранах с высокой плотностью пикселей, с учётом того поддерживает приложение адаптацию к изменению DPI или нет (приложения, которые не учитывают DPI, масштабируются автоматически). Добавлены опции для переопределения поддержки High-DPI в привязке к отдельным приложениям или префиксам Wine.
- В драйвер для графического API Vulkan добавлена поддержка спецификации Vulkan 1.4 (в Wine 9.0 поддерживался Vulkan 1.3.272). Добавлена поддержка расширений Vulkan для кодирования и декодирования видео.
- При использовании бэкенда X11 реализована возможность отрисовки дочерних окон Vulkan для приложений, использующих подобные окна для вывода 3D-контента (ранее подобная возможность была доступна только для OpenGL).
- В библиотеку GdiPlus добавлена поддержка механизма связывания шрифтов ("Font Linking"), позволяющего при отображении текста задействовать несколько шрифтов, если отсутствуют шрифты по отдельности охватывающие все встречающиеся в тексте символы.
- Wayland
- Интеграция с рабочим столом
- Добавлен экспериментальный механизм эмуляции "modesetting", позволяющий эмулировать переключение видеорежимов без фактического изменения настроек экрана. Видимость изменения разрешения экрана без переключения видеорежима создаётся через расширение и масштабирование окон.
- Добавлен новый апплет Desktop Control Panel (desk.cpl) с реализацией интерфейса управления настройками дисплея (например, можно изменять виртуальное разрешение десктопа или настраивать эмулируемые параметры дисплея).
- Добавлена возможность сброса настроек экрана в значения по умолчанию в случае невозможности восстановить состояние после аварийного завершения процесса.
- Добавлена поддержка отключения показа пиктограмм в системном лотке (в "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" следует указать "NoTrayItemsDisplay=1").
- Добавлена поддержка отключения оболочек (Shell launcher) в режиме десктопа (в "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" следует указать "NoDesktop=1").
- Direct3D
- Для отрисовки с использованием OpenGL теперь требуется поддержка GLSL 1.20, а также расширений EXT_framebuffer_object и ARB_texture_non_power_of_two. Поддержка старого бэкенда ARB shader и настройки OffscreenRenderingMode прекращена.
- Для Direct3D 9 и более старых версий добавлен графический конвейер фиксированных функций (в старых Direct3D предоставлялись только предопределённые графические операции, которые нельзя было изменять), реализованный при помощи языка шейдеров HLSL и позволяющий эмулировать фиксированные функции при отрисовке через API Vulkan или OpenGL.
- При отрисовке с использованием Vulkan задействованы Vulkan-расширения для динамического изменения состояния графического конвейера, позволяющие сократить подвисания в играх.
- Добавлен альтернативный бэкенд glsl-vkd3d для шейдеров GLSL, использующий vkd3d-shader.
- Предоставлена начальная поддержка компиляции эффектов Direct3D, используя vkd3d-shader.
- В библиотеке D3DX9 реализована возможность генерации MIP-текстур (MipMap) при загрузке объёмных текстур. Добавлена поддержка форматов представления цвета 64bpp RGBA и 48bpp RGB в изображениях PNG, а также форматов X8L8V8U8, A2W10V10U10, A8P8, V16U16 и Q16W16V16U16.
- Звук и видео
- В качестве альтернативы бэкенду на базе GStreamer реализован новый мультимедийный бэкенд, основанный на использовании FFmpeg и пригодный
для обеспечения работы фреймворка Media Foundation. Для включения альтернативного бэкенда в секции реестра "HKCU\Software\Wine\MediaFoundation" следует указать "DisableGstByteStreamHandler=1".
- Улучшена реализация API Media Foundation, которая теперь лучше сочетается с приложениями, зависящими от компонентов демультиплексирования и декодирования.
- В API DirectMusic добавлена поддержка загрузки файлов MIDI.
- Устройства ввода
- Добавлена начальная версия драйвера Bluetooth.
- Добавлен апплет Joystick Control Panel (joy.cpl) c реализацией настроек для джойстика.
- Внесены улучшения, связанные с устройствами управления указателем (тачпады, мыши), использующими протокол HID (Human Interface Device). Добавлен драйвер mouhid.sys для HID-устройств. Реализован корректный разбор составных устройств ввода и обеспечена передача информации о них в Windows-приложения, как о раздельных устройствах.
- Для бэкенда X11 добавлена поддержка сенсорных экранов и реализована возможность использования режима мультитач через обработку сообщений WM_POINTER* (WM_POINTERENTER, WM_POINTERLEAVE и т.п.).
- Реализовано размещение некоторых внутренних структур библиотеки user32 в разделяемой памяти, что повысило производительность и снизило
нагрузку на Wine Server.
- В winex11 добавлена поддержка обработки событий XInput2 в привязке к отдельным окнам.
- Реализована корректная поддержка клавиатур с раскладкой Dvorak.
- Ядро (интерфейсы ядра Windows)
- Добавлена поддержка повышения привилегий процессов (процессу, изначально запущенному под обычным пользователем, могут быть предоставлены привилегии администратора). При создании серверных процессов (msi action server), а также процессов, вызывающих функции RtlCreateUserProcess() и CreateProcessInternal(), по умолчанию задействован ограниченный токен администратора.
- При получении информации о метках дисков по возможности теперь используется обращение к системным сервисам через DBus, вместо попытки прямого доступа к устройству.
- Однонаправленный механизм межпроцессного взаимодействия (IPC) Mailslots теперь реализован непосредственно в Wine server, что позволило добиться полной поддержки семантики Windows.
- Реализовано ожидание событий последовательного порта в асинхронном режиме.
- Добавлена полная поддержка процессорных расширений XSTATE в контекстах потока, что позволило использовать новые векторные расширения, такие как AVX-512.
- Встроенные приложения
- Переписан движок обработки входных данных, используемый в командном интерпретаторе cmd.exe. В cmd.exe добавлена поддержка операций "||" и "&&".
- В утилиту findstr добавлена поддержка регулярных выражений и поиска без учёта регистра символов.
- В утилиты regsvr32 и rundll32 добавлена возможность регистрации модулей ARM64EC.
- Добавлены утилиты: sort для сортировки входных данных, fc для сравнения файлов и where для поиска файлов.
- В приложении wmic реализован интерактивный режим работы.
- В Explorer добавлена опциональная поддержка стартового меню и панели инструментов. Обеспечен запуск explorer.exe с урезанными правами доступа.
- Инструменты для разработки
- В winebuild добавлена опция "-marm64x" для генерации гибридных библиотек ARM64X.
- В winegcc добавлена опция "-marm64x", обеспечивающая сборку для ARM64X.
- В файлах, генерируемых с использованием языка описания интерфейса IDL (Interface Definition Language), задействованы компоненты, полностью поддерживающие выполнение в режиме интерпретации.
- В компилятор языка описания интерфейса IDL (Interface Definition Language) добавлена поддержка генерации библиотек типов (TypeLib) в старом формате (SLTG).
- В утилиту winedump добавлена поддержка сохранения дампов таблиц minidump, информации об исключениях C++ и ресурсов typelib.
- Разное
- Улучшена поддержка протокола обмена ключами Диффи-Хеллмана (DH). Добавлена возможность настройки и получения параметров DH. Реализованы обработчики для создания пар из открытого и закрытого ключей.
- Обеспечено использование добавочного заполнения OAEP (Optimal Asymmetric Encryption Padding) вместе с алгоритмом RSA.
- В API DirectPlay реализована поддержка сетевых сеансов.
- Налажена обработка состояний асинхронного ввода/вывода при работе в режиме WoW64 (64-bit Windows-on-Windows), позволяющем выполнять 32-разрядные Windows-приложения в 64-разрядных Unix-системах.
- Добавлена поддержка загрузки ODBC-драйверов к СУБД, собранных для Windows.
- Для платформы ARM реализована полная поддержка RPC/COM, C++ RTTI (Run-Time Type Information) и исключений C++.
- В C runtime в ANSI-функциях реализована поддержка кодировки UTF-8.
- Расширены возможности движка MSHTML. Добавлена поддержка прототипов и конструкторов объектов. В JavaScript-движок добавлен новый интерфейс
связывания объектов для MSHTML. Встроенные функции MSHTML преобразованы в корректные объекты JavaScript. Улучшен сборщик мусора для JavaScript, который теперь охватывает все контексты выполнения скрипта в потоке. Добавлена поддержка JavaScript-объектов ArrayBuffer и DataView.
- В систему непрерывной интеграции на базе Gitlab добавлена поддержка статического анализа с использованием Clang и отчётов о прохождении тестов JUnit.
- В отладчике WineDb функциональность для дизассемблирования машинного кода переведена на использование библиотеки Capstone (в состав кодовой базы Wine встроен выпуск Capstone 5.0.3). В отличие от ранее используемой библиотеки Zydis, в Capstone поддерживается дизассемблирование не только для архитектур x86/x86-64, но и для ARM/ARM64, LoongArch и RISC-V.
- Обновлены до новых версий компоненты:
Vkd3d 1.14,
Faudio 24.10,
FluidSynth 2.4.0,
LDAP 2.5.18,
LCMS2 2.16,
LibJpeg 9f,
LibMPG123 1.32.9,
LibPng 1.6.44,
LibTiff 4.7.0,
LibXml2 2.12.8,
LibXslt 1.1.42 и
Zlib 1.3.1.
- Главная ссылка к новости
- OpenNews: Стабильный релиз Wine 9.0
- OpenNews: Стабильный релиз Wine 8.0
- OpenNews: Стабильный релиз Wine 7.0
- OpenNews: Стабильный релиз Wine 6.0
- OpenNews: Стабильный релиз Wine 5.0
|
|
|
| |
|
|
· | 21.01 |
Выпуск минималистичного набора системных утилит Toybox 0.8.12 (54 +11) |
|
Опубликован релиз набора системных утилит Toybox 0.8.12, оптимизированного для минимального потребления системных ресурсов. По аналогии с BusyBox все утилиты набора доступны через один исполняемый файл. Проект развивается бывшим мэйнтейнером BusyBox, написан на языке Си и распространяется под лицензией 0BSD. Целью создания Toybox является предоставление производителям возможности использования минималистичного набора стандартных утилит без открытия исходных текстов модифицированных компонентов. По возможностям Toybox пока отстаёт от BusyBox, но уже реализовано 316 базовых команд (235 полностью и 81 частично) из 392 запланированных. С 2015 года Toybox предлагается в основном составе платформы Android.
Среди новшеств Toybox 0.8.12:
- В tar добавлена поддержка алгоритма сжатия zstd и реализована возможность работы с устаревшими форматами архивов.
- В getconf реализована обработка переменных окружения NPROCESSORS_CONF и NPROCESSORS_ONLN.
- В netcat добавлены опции "-o" и "-O".
- В devmem реализованы опции "--no-mmap", "-f FILE" и "--no-sync".
- В test добавлены опции "-ef", "-ot" и "-nt".
- В dmesg добавлена опция "-W".
- В mount добавлена поддержка "LABEL=".
- В lsusb и lspci учтено содержимое /usr/share/hwdata.
- Устранены ошибки и улучшены реализации утилит grep, host, find, chmod, tar, ps, test, file, patch, cp, lsusb, top, blkid,
ionice, microcom.
- Добавлена поддержка сборки для платформ riscv32 и riscv64.
- Главная ссылка к новости
- OpenNews: Выпуск минималистичного набора системных утилит Toybox 0.8.9
- OpenNews: Оценка пригодности ядра Linux для систем с несколькими мегабайтами ОЗУ
- OpenNews: В BusyBox прекращена поддержка systemd
- OpenNews: Противоречивая ситуация вокруг создания альтернативы Busybox
- OpenNews: Релиз минималистичного набора системных утилит BusyBox 1.37
|
|
|
| |
|
|
· | 21.01 |
Выпуск 9front 10931, ответвления от операционной системы Plan 9 (95 +17) |
|
Представлен выпуск операционной системы 9front 10931, опубликованный под кодовым именем "THIS TIME DEFINITELY". Проект 9front с 2011 года развивает независимый от компании Bell Labs форк распределённой операционной системы Plan 9. Готовые установочные сборки сформированы для архитектур i386, x86_64 и плат Raspberry Pi 1-4. Код распространяется под лицензией MIT. Доступна приуроченная к релизу музыкальная композиция.
Основная идея Plan 9 связана со стиранием различий между локальными и удалёнными ресурсами. Система представляет собой распределённую среду, базирующуюся на трёх базовых принципах: все ресурсы можно рассматривать как иерархический набор файлов; нет различия в доступе к локальным и внешним ресурсам; каждый процесс имеет собственное изменчивое пространство имён. Для создания единой распределённой иерархии файлов-ресурсов используется протокол 9P.
Форк 9front примечателен реализаций дополнительных механизмов защиты, расширением поддержки оборудования, улучшением работы в беспроводных сетях, добавлением новых файловых систем, реализацией звуковой подсистемы и кодировщиков/декодировщиков звуковых форматов, поддержкой USB, созданием web-браузера Mothra, заменой загрузчика и системы инициализации, применением шифрования данных на диске, поддержкой Unicode, наличием эмулятора режима реальных адресов, поддержкой архитектуры AMD64 и 64-разрядного адресного пространства.
Значительные изменения:
- В инсталляторе включена новая файловая система gefs, созданная специально для Plan 9, поддерживающая снапшоты и оптимизированная для быстрого перебора файлов в очень больших каталогах. ФС спроектирована для сохранения целостности в случае сбоев, таких как экстренное отключение питания, и имеет средства для самодиагностики, не допускающие скрытого повреждения данных и возвращения некорректных данных. При этом gefs полностью совместима с традиционной файловой системой 9p, возможности которой воссозданы с использование режима copy-on-write и структуры Bε-tree.
- В утилиты ip и ipconfig добавлена поддержка динамического выделения IP-адресов через DHCPv6 и обработки истечения времени действия префиксов для IPv6.
- Устранена уязвимость CVE-2024-8158, вызванная ошибкой в механизме аутентификации, реализованном в библиотеке lib9p. Уязвимость позволяет пользователю, имеющему учётную запись в системе, выдать себя за любого другого пользователя при работе с файловой системой. Причиной уязвимости является отсутствие должного сопоставления имени пользователя, передаваемого в 9p-сообщениях Tauth и Tattach, с UID-идентификатором клиента, выдаваемом после прохождением пользователем аутентификации. Проблема проявляется во всех версиях 9front (ошибка допущена в коде Plan 9 ещё до создания форка), но затрагивает только конфигурации с файловой системой hjfs (в системах с ФС cwfs и gefs уязвимость не проявляется).
- Главная ссылка к новости
- OpenNews: Релиз операционной системы Inferno 0.6 для Raspberry Pi
- OpenNews: Компания Nokia перелицензировала ОС Plan9 под лицензией MIT
- OpenNews: Представлена распределённая ОС Node9, сочетающая технологии Inferno и язык Lua
- OpenNews: Представлена ОС Clive, основанная на идеях Plan 9 и Nix
- OpenNews: Glendix - новая ОС на основе Plan9 с ядром Linux
|
|
|
| |
|
|
· | 21.01 |
Доступен полностью свободный вариант ядра Linux-libre 6.13 (47 +8) |
|
Латиноамериканский Фонд свободного ПО опубликовал полностью свободный вариант ядра Linux 6.13 - Linux-libre 6.13-gnu, очищенный от элементов прошивок и драйверов, содержащих несвободные компоненты или участки кода, область применения которых ограничена производителем. В Linux-libre также отключены функции ядра для загрузки внешних несвободных компонентов, не входящих в поставку ядра, а из документации удалены упоминания об использовании несвободных компонентов.
Для очистки ядра от несвободных частей проектом Linux-libre создан универсальный shell-скрипт, который содержит тысячи шаблонов для определения наличия бинарных вставок и исключения ложных срабатываний. Также доступны для загрузки готовые патчи, созданные на основе использования вышеупомянутого скрипта. Ядро Linux-libre рекомендовано для использования в дистрибутивах, соответствующих критериям Фонда СПО по построению полностью свободных дистрибутивов GNU/Linux. Например, Linux-libre используется в таких дистрибутивах, как GNU Guix System, Dragora Linux, Trisquel, Dyne:Bolic, gNewSense, Parabola, Musix и Kongoni.
В выпуске Linux-libre 6.13-gnu добавлен код для чистки блобов в новых драйверах rtw8812a, rtw8821a, bmi270, aw88081, ntp8835, ntp8918.
Произведена чистка имён блобов в dts-файлах (devicetree) для архитектуры Aarch64. Обновлён код удаления блобов в драйверах wilc1000, rt1320, sh4-siu, ivpu, btnxpuart, adreno и r8169, а также в коде, связанном с поддержкой сенсорных экранов на системах с архитектурой x86. Прекращена чистка драйверов rtl8192e, rtl8712, vt6656 и ti-st, которые были удалены из состава ядра.
- Главная ссылка к новости
- OpenNews: Доступно ядро Linux-libre 6.12. Решение лицензионных проблем с драйверами Tuxedo
- OpenNews: Предложение по блокировке драйверов-прослоек, предоставляющих доступ к GPL-вызовам ядра Linux
- OpenNews: Технология DMA-BUF не может быть использована в проприетарных видеодрайверах без перелицензирования
- OpenNews: Из Debian удалены сборки пакетов с драйверами NVIDIA из-за подозрений в несовместимости с GPL
- OpenNews: Релиз ядра Linux 6.13
|
|
|
| |
|
|
· | 20.01 |
Открыт инструментарий для программируемых Ethernet-коммутаторов Intel Tofino (33 +12) |
|
Компания Intel открыла инструментарий, позволяющий создавать собственные приложения для обработки пакетов в программируемых Ethernet-коммутаторах серии Tofino. Под лицензией Apache 2.0 открыт исходный код бэкенда к компилятору p4c и компонентов среды разработки Intel P4 Studio, таких как драйверы, модель симуляции коммутатора, сервер и клиент для протокола BF Runtime. Для создания приложений применяется предметно-ориентированный язык программирования P4 (Programming Protocol-independent Packet Processors), предназначенный для определения логики обработки пакетов в сетевых устройствах, таких как сетевые карты, коммутаторы, маршрутизаторы и межсетевые экраны.
Опубликованный бэкенд позволяет транслировать программы на языке P4 в представление, пригодное для установки на коммутаторах серии Intel Tofino. Благодаря этому пользователи коммутаторов могут создавать приложения, расширяющие штатную функциональность, изменяющие логику работы или адаптирующие устройство к специфике своих сетей.
Программы на языке P4 компилируются в представления для целевых платформ, которые могут быть как аппаратными (FPGA, программируемые ASIC), так и программными (x86, BPF). Вместе с кодом для установки на целевые системы компилятор генерирует runtime для управления приложением с использованием протоколов Protobuf/gRPC и API P4Runtime.
Типовая логика работы программ сводится к классификации пакетов по их заголовкам и выполнению действий над входящими пакетами, таких как перенаправление, отбрасывание, изменение TTL и замена полей. Язык не привязан к сетевым протоколам и вместо вшитой поддержки типовых протоколов, таких как IP, Ethernet, TCP и VxLAN, предоставляет разработчикам возможность определения любых протоколов в привязке к компилируемым приложениям (разработчик прикрепляет описание форматов заголовков и полей протокола).
Кроме опубликованного бэкенда для коммутаторов Intel Tofino проектом P4 предоставляется бэкенд для компиляции P4-приложений в код на языке Си, который затем может быть скомпилирован в формат, пригодный для исполнения в виртуальной машине eBPF внутри ядра Linux. Проектом также развивается открытый симулятор коммутатора, который можно использовать для проведения экспериментов в виртуальной сети Mininet, и бэкенд для компиляции P4-программ для симулятора.
- Главная ссылка к новости
- OpenNews: Facebook открыл программные стеки для BMC-контроллеров и сетевых коммутаторов
- OpenNews: Компания Microsoft открыла код Linux-системы для сетевых коммутаторов
- OpenNews: Выпуск DentOS 2.0, сетевой операционной системы для коммутаторов
- OpenNews: Стек протоколов маршрутизации FRRouting и проект DPDK перешли под крыло Linux Foundation
- OpenNews: Выпуск DPDK 18.02, фреймворка для высокопроизводительных сетевых приложений
|
|
|
| |
|
|
· | 20.01 |
В Mesa принят amdgpu_virtio для использования OpenGL и Vulkan в гостевых системах (55 +36) |
|
В кодовую базу, используемую для формирования выпуска Mesa 25.0, принята прослойка amdgpu_virtio, позволяющая гостевой системе использовать OpenGL- и Vulkan-драйверы radeonsi, radeonsi_drv_video и radv, предоставляемые хост-окружением. Доступ осуществляется через VirtIO, что обеспечивает высокую производительность 3D-ускорения в виртуальной машине. На данный момент использование драйвера возможно только в связке QEMU+KVM.
Заявлено, что производительность amdgpu_virtio выше, чем при использовании драйверов virgl и venus, ранее разработанных для доступа к Vulkan и OpenGL из гостевых систем. При проведении тестов Unigine Heaven и Superposition производительность в гостевых системах составила примерно 99% по сравнению с производительностью при запуске тестов на стороне хоста.
Из достоинств нового метода также упоминается упрощение сопровождения, так как в гостевой системе используются те же драйверы, что и при работе без виртуализации, за исключением того, что вместо прямого обращения к libdrm (amdgpu) используется дополнительная прослойка на основе VirtIO.
- Главная ссылка к новости
- OpenNews: Опубликован эмулятор QEMU 9.2.0 с поддержкой Rust и Vulkan
- OpenNews: NVIDIA опубликовала код с реализацией vGPU на базе драйвера Nouveau
- OpenNews: Venus - виртуальный GPU для QEMU и KVM, реализованный на базе API Vulkan
- OpenNews: В Mesa-драйвере RADV сертифицирована поддержка Vulkan 1.3 для старых GPU AMD
- OpenNews: Релиз Mesa 24.3, свободной реализации OpenGL и Vulkan
|
|
|
| |
|
|
· | 20.01 |
Для ядра Linux предложен драйвер с реализацией режима NVMe PCI Endpoint (61 +30) |
|
Компания Western Digital разработала для ядра Linux драйвер с реализацией NVMe PCI Endpoint Function Target. При наличии контроллера PCIe, поддерживающего режим endpoint, драйвер позволяет системе под управлением Linux изображать из себя контроллер PCI NVMe, который для других систем будет выглядеть как накопитель с интерфейсом NVMe.
Как пример, подобный накопитель был реализован на основе платы Rock5B, использующей SoC Rockchip RK3588 с контроллером PCI Gen3x4, умеющем работать в режиме endpoint. При использовании блочного устройства null_blk и в конфигурации с 4 очередями ввода/вывода накопитель показал пропускную способность в 2.8 GB/sec при последовательном чтении блоков 512KB и производительность в 131 тысяч операций ввода/вывода в секунду при случайных операциях чтения блоками 4K.
- Главная ссылка к новости
- OpenNews: Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP из состава ядра Linux
- OpenNews: Выпуск UDisks 2.10.0 с поддержкой NVMe
- OpenNews: WD разрабатывает NVMe-драйвер на языке Rust. Эксперименты с Rust во FreeBSD
- OpenNews: Доступен набор утилит для управления SSD-накопителями - nvme-cli 2.0
|
|
|
| |
|
|
· | 20.01 |
Релиз ядра Linux 6.13 (169 +32) |
|
После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 6.13. Среди наиболее заметных изменений: режим ленивого вытеснения в планировщике задач, поддержка атомарной записи в XFS и Ext4, механизм "multigrain timestamps", адаптивный режим включения полинга в сетевой подсистеме, возможность сборки с оптимизациями AutoFDO, поддержка механизма защиты ARM65 Guarded Control Stack, изоляция виртуальных машин при помощи расширения ARM CCA, раздельные стеки в BPF, удаление ReiserFS, драйвер virtual-cpufreq, netlink API net-shaper, режим монтирования tmpfs учёта регистра символов, поддержка POSIX-расширений в SMB3, драйвер AMD Cache Optimizer.
В новую версию принято 14172 исправлений от 2086 разработчиков,
размер патча - 46 МБ (изменения затронули 15375 файлов, добавлено 598707 строк кода, удалено 406294 строк). В прошлом выпуске было 14607 исправлений от 2167 разработчиков, размер патча - 37 МБ. Около 52% всех представленных в 6.13
изменений связаны с драйверами устройств, примерно 13% изменений имеют
отношение к обновлению кода, специфичного для аппаратных архитектур, 11%
связано с сетевым стеком, 4% - с файловыми системами и 3% c внутренними
подсистемами ядра.
Основные новшества в ядре 6.13:
- Дисковая подсистема, ввод/вывод и файловые системы
- Добавлен механизм "multigrain timestamps", позволяющий получать информацию о времени изменения или доступа к файлам c более чем с миллисекундой точностью, но без негативного влияния на производительность. Повышение точности меток приводит к дополнительным накладным расходам из-за увеличения интенсивности записи метаданных на диск, поэтому в предложенной реализации более точные метки создаются не для всех файлов, а только для тех, для которых процессы запрашивают подобные метки через вызов getattr().
- Добавлена поддержка атомарных операций записи, при которых запись данных, размер которых превышает размер сектора, осуществляется атомарно на устройствах хранения, предоставляющих подобную возможность. В настоящее время атомарная запись реализована для XFS, Ext4 в режиме O_DIRECT (Direct I/O) и md RAID 0/1/10.
- Предложен новый механизм подсчёта ссылок для файлов, обеспечивающий прирост производительности на 3-5% в рабочих нагрузках, имеющих более 255 потоков.
- Удалена реализация файловой системы ReiserFS, которая в позапрошлом году была объявлена устаревшей.
- Добавлен sysctl-параметр "fs.dentry-negative" для выставления в VFS политики очистки записей "dentry" (внутреннее представление элементов каталогов) после удаления связанных с ними файлов. Для каких-то видов нагрузки оптимальнее оставлять подобные записи об удалённых файлах, а для каких-то - удалять, поэтому в ядре предоставлена возможность выбора (по умолчанию "dentry" автоматически не удаляются).
- В системный вызов statmount() добавлен флаг STATMOUNT_OPT_ARRAY для возвращения списка опций файловой системы в виде массива из строк, завершающихся нулевым символом и не использующих экранирование "\000". Добавлена поддержка возвращения подтипа ФС (fs_subtype, для определения использования FUSE), опций безопасного монтирования и исходного суперблока (sb_source).
- В OverlayFS предоставлена возможность указания слоёв через файловые дескрипторы, а не имена файловых путей.
- В файловую систему tmpfs добавлена опция монтирования "casefold" для работы без учёта регистра символов и опция "strict_encoding" для блокирования создания файлов с именами, содержащими некорректные символы UTF-8.
- Предложен новый набор системных вызовов для управления расширенными атрибутами файлов: setxattrat(), getxattrat(), listxattrat() и removexattrat(). В отличие от системных вызовов setxattr(), getxattr(), listxattr() и removexattr() новые варианты требуют указания файлового дескриптора каталога, относительно которого осуществляется поиск файлового пути.
- В Btrfs добавлена ioctl-операция BTRFS_IOC_SUBVOL_SYNC_WAIT, включающая ожидание завершения очистки подразделов, что позволяет выполнить команду "btrfs subvolume sync" непривилегированным пользователем, не имеющим доступа к ioctl SEARCH_TREE (полезно в приложениях резервного копирования, очищающих подразделы). Добавлена ioctl-операция ENCODED_READ для чтения через io_uring закодированных данных, например, для чтения напрямую сжатых экстентов без распаковки. Продолжена работа по переходу на использование фолиантов страниц памяти (page folios). Сокращено возникновение конкурирующих блокировок ("lock contention") при поиске встроенных обратных ссылок и при переборе буферов экстентов. Повышена эффективность сжатия карты экстентов.
- В файловой системе EROFS (Extendable Read-Only File System), предназначенной для использования на разделах, доступных в режиме только для чтения, реализована возможность использования в системном вызове lseek() опций SEEK_HOLE и SEEK_DATA.
- В F2FS добавлена поддержка отражения устройств ("device aliasing"), позволяющая временно зарезервировать область в F2FS для использования части блочного устройства в другой ФС. После завершения внешней операции зарезервированную область можно вернуть в F2FS. Например, можно создать ФС командой "mkfs.f2fs -c /dev/vdc@vdc.file /dev/vdb", после чего содержимое устройства /dev/vdc будет зарезервировано и отражено в файл vdc.file и раздел /dev/vdc можно использовать для своих нужд, например, отформатировать под другую ФС. Для возвращения зарезервированного содержимого достаточно удалить файл vdc.file.
- В XFS включена поддержка квот для realtime-устройств. Добавлена поддержка директории с метаданными (metadata directory), в которой размещаются все inode с метаданными.
- В механизме FUSE включена возможность динамического изменения максимального числа страниц (FUSE_MAX_MAX_PAGES), используя "sysctl fs.fuse.max_pages_limit". В работе задействованы фолианты страниц памяти (page folios).
- В SMB реализована поддержка POSIX-расширений для SMB3, необходимых для хранения специальных типов файлов, таких как fifo, файлы устройства и символические ссылки. Добавлена возможность монтирования раздела с альтернативным паролем, применяемым при ротации паролей. Добавлена новая опция монтирования "cifs.upcall" для определения пространства имён. Обеспечено распознавание файлов символьных и блочных устройств, созданных в Windows NFS
Server. Добавлена поддержка символических ссылок в стиле WSL (Windows Subsystem for Linux).
- Файловые системы UBIFS, ADFS, BEFS, HFS, HFSPLUS, HPFS, JFS и ECRYPTFS переведены на использование нового API монтирования разделов.
- Файловые системы и ECRYPTFS, UFS и NILFS2 переведены на использование фолиантов страниц памяти (page folios).
- Память и системные сервисы
- В планировщике реализована модель ленивого вытеснения задач (PREEMPT_LAZY, lazy preemption), которая соответствует модели полного вытеснения ("full preemption") для realtime-задач (RR/FIFO/DEADLINE), но задерживает вытеснение обычных задач (SCHED_NORMAL) до границы тика. Указанная задержка приводит к сокращению случаев вытеснения держателей блокировок, что позволяет приблизить производительность к конфигурациям, использующим модель добровольного вытеснения (voluntary preemption). Таким образом, новая модель позволяет сохранить возможности полного вытеснения в отношении realtime-задач, но сводит к минимуму проседание производительности для обычных задач. Кроме того, новая модель упрощает логику операций вытеснения задач в ядре, благодаря исключению из процесса планирования обработчиков, находящихся в других компонентах ядра (вне планировщика задач).
- При сборке компилятором Clang предоставлена возможность использования оптимизаций AutoFDO и добавлена конфигурация для инструментария Propeller. Оптимизация AutoFDO (Auto-Feedback-Directed Optimization) использует результаты профилирования c информацией о частоте выполнения различных участков кода для повышения производительности часто выполняемых операций. Propeller используется для накопления статистики о выполнении кода для её дальнейшего использования компилятором при принятии решений, связанных с оптимизацией. Проведённое тестирование показало снижение задержек на 10% при сборке с AutoFDO.
- В системный вызов madvise(), предоставляющий средства для оптимизации управления памятью процесса, добавлен флаг MADV_GUARD_INSTALL для подстановки в указанный диапазон адресов сторожевых страниц памяти (guard page), обращение к которым вызывает исключение и аварийное завершение процесса (SIGSEGV). По сравнению с маппингом в режиме PROT_NONE сторожевые страницы позволяют более эффективно блокировать выполнение кода за пределами выделенной области памяти, так как их создание не требует выделения новой области виртуальной памяти.
- Новые возможности подсистемы асинхронного ввода/вывода io_uring: поддержка изменения размера уже созданного кольцевого буфера; отправка в синхронном режиме сообщений в другой кольцевой буфер; частичное клонирование буфера; фиксированные области ожидания; гибридный полинг ввода/вывода; расширенный API для регистрации кольцевых буферов и областей памяти.
- На системах с CPU AMD реализована возможность выявления расщеплённых блокировок ("split-lock"), возникающих при доступе к невыровненным данным в памяти, когда при выполнении атомарной инструкции данные пересекают две линии кеша CPU. Подобные блокировки приводят к значительному падению производительности (на 1000 циклов медленнее, чем атомарная операция с данными, попадающими в одну линию кеша).
- Добавлен драйвер AMD Cache Optimizer, позволяющий для выполняющихся процессов настраивать предпочтение ядер CPU с технологией AMD 3D V-Cache (режим Cache) или повышенными частотами (режим Frequency).
- Для архитектуры MIPS добавлена поддержка систем с многокластерными (multi-cluster) контроллерами прерываний (для каждого кластера в CPU предусмотрен отдельный контроллер прерываний).
- Добавлена новая ioctl-операция PIDFD_GET_INFO, позволяющая получить сведения о процессе по его идентификатору PIDFD. Идентификатор PIDFD связывается с конкретным процессом и не меняется, в то время как PID может быть привязан к другому процессу после завершения процесса с используемым PID.
- В планировщик задач добавлены компоненты, необходимые для реализации механизма Proxy Execution, решающего проблему с инверсией приоритетов (ситуация, когда низкоприоритетная задача удерживает ресурс, необходимый высокоприоритетной (realtime) задаче, и тем самым блокирует её). Осуществлено разделение контекстов планировщика и исполнения процессов.
- Добавлен API, основанный на netlink, для выставления ограничений температуры в привязке к устройствам. При превышении выставленных ограничений в обработчик в пространстве пользователей передаются уведомления.
- Продолжен перенос изменений из ветки Rust-for-Linux, связанных с использованием языка Rust в качестве второго языка для разработки драйверов и модулей ядра (поддержка Rust не активна по умолчанию, и не приводит ко включению Rust в число обязательных сборочных зависимостей к ядру). Добавлены обвязки над структурами данных и интерфейсами VFS, необходимые для работы драйвера Binder, переписанного на Rust. Добавлена поддержка событий трассировки в коде на Rust. Добавлены дополнительные обвязки для написания драйверов. Добавлены обвязки для pid_namespace.
Предложен модуль 'alloc' с системой выделения памяти и специфичная для ядра реализация типажа Allocator, не привязанная к внешнему модулю Alloc и в отличие от последнего не использующая нестабильные возможности языка. На базе Allocator подготовлены реализации Kmalloc, Vmalloc и KVmalloc, а также созданы типы Vec и Box.
- В подсистеме BPF предоставлена возможность использования в BPF-программах отдельного стека с целью снижения риска переполнений при обработке больших цепочек вызовов.
Реализован итератор kmem_cache для получения из BPF-программы данных о состоянии механизма распределения памяти slab (slab allocator). Добавлена функция bpf_send_signal_task(), позволяющая BPF-программам отправлять сигналы другим процессам. Добавлен механизм разделяемой памяти BPF map, который можно использовать, например, для передачи сведений о нагрузке обработчикам планировщика задач sched_ext.
- В систему трассировки добавлена возможность генерации исключения (page fault) при срабатывании точек трассировки на входе или выходе из системного вызова, что может использоваться для чтения параметров, передаваемых из пространства пользователя.
- Добавлен параметр командной строки ядра "transparent_hugepage_shmem" для управления использованием больших страниц памяти в ФС tmpfs и shmem.
- Реализована поддержка работы в режиме реального времени на системах с архитектурой Loongarch.
- Для систем RISC-V реализована поддержка расширений "Smmpm", "Smnpm" и "Ssnpm" для маскирования указателей в пространстве пользователя (использования части битов указателей для хранения не связанных с адресацией метаданных).
- Для сжатия образов ядра по умолчанию вместо lz4c задействован алгоритм lz4.
- Виртуализация и безопасность
- Для систем на базе архитектуры ARM64 добавлена поддержка запуска Linux в виртуальных машинах, изолированных при помощи технологии ARM CCA (Confidential Compute Architecture). ARM CCA предоставляет гарантии целостности памяти виртуальных машин и защищает их от модификации и анализа со стороны администратора хост-системы, способного выполнить код на уровне гипервизора.
- Добавлена поддержка расширения ARM64 GCS (Guarded Control Stack) для аппаратной защиты адресов возврата из функций и блокирования эксплоитов, использующих методы возвратно-ориентированного программирования (ROP - Return-Oriented Programming, эксплоит формируется из уже имеющихся кусков машинных инструкций, завершающихся инструкцией возврата управления). ARM64 GCS позволяет использовать для защиты процессов в пространстве пользователя технику теневого стека (shadow stack) - после передачи управления функции, адреса возврата сохраняются процессором не только в обычном стеке, но и в отдельном теневом стеке, который не может быть изменён напрямую. Перед выходом из функции адрес возврата извлекается из теневого стека и сверяется с адресом возврата из основного стека.
- В SELinux реализована поддержка управления политиками безопасности в привязке к отдельным операциям Netlink. Объявлен устаревшим и будет удалён одном из будущих выпусков конфигурационный интерфейс /sys/fs/selinux/user, который до 2020 года использовался в библиотеке libselinux.
- В криптоподсистему ядра добавлен внутренний API Asymmetric Signature для генерации цифровых подписей по открытым ключам.
- В подсистеме "iommufd", позволяющей управлять таблицами страниц памяти ввода/вывода IOMMU (I/O Memory-Management Unit) через файловые дескрипторы из пространства пользователя, реализованы операции IOMMU_IOAS_MAP_FILE, IOMMU_IOAS_CHANGE_PROCESS, IOMMU_VIOMMU_ALLOC и IOMMU_VDEVICE_ALLOC. Добавлена возможность использования ARM SMMuv3 (System Memory Management Unit) для вложенной трансляции адресов.
- Добавлен виртуализированный драйвер virtual-cpufreq для ядер, запускаемых в гостевых системах. Драйвер позволяет отправлять хосту запросы на изменение частоты виртуального CPU (vCPU), которые могут использоваться на стороне хоста при планировании изменения частоты реального CPU.
- В драйвер vfio-virtio добавлена поддержка Live-миграции (при использовании VFIO поверх virtio-net).
- Сетевая подсистема
- Добавлен новый режим доставки пакетов, в зависимости от периодов активности приложения адаптивно переключающийся между активным полингом (NAPI/busy polling, периодический опрос устройства ядром) и генерацией прерываний. Когда приложение находится в состоянии простоя (idle) используется обработка прерываний, а когда фиксируется высокая нагрузка - используется полинг.
- Добавлен netlink API для управления полингом (NAPI) в сетевых драйверах, позволяющий настраивать отдельные экземпляры NAPI вместо настройки всего сетевого интерфейса.
- Добавлен netlink API net-shaper для настройки аппаратно ускоренного ограничения интенсивности отправки пакетов (TX H/W shaping) с поддержкой интроспекции аппаратных возможностей сетевой карты для шейпинга.
- В сетевом стеке проведена работа по избавлению от конкурирующих блокировок - глобальная блокировка RTNL (rtnl_lock) преобразована в блокировку, привязываемую к отдельным пространствам сетевых имён, что позволило сократить конкуренцию между блокировками в системах, активно использующих пространства имён, например, в конфигурациях с изолированными контейнерами. Оптимизация пока объявлена экспериментальной и отключена по умолчанию. Для включения следует использовать при сборке параметр DEBUG_NET_SMALL_RTNL.
- Для UDP-сокетов задействована новая хэш-таблица, позволяющая заметно ускорить поиск подключённых сокетов.
- Оборудование
- Продолжена работа над drm-драйвером (Direct Rendering Manager) Xe для GPU на базе архитектуры Intel Xe, которая используется в видеокартах Intel семейства Arc и интегрированной графике, начиная с процессоров Tiger Lake. Добавлена начальная поддержка GPU Intel на базе архитектуры Xe3, задействованной в процессорах Panther Lake.
- В драйвер i915 добавлены идентификаторы новых GPU на базе микроархитектуры Arrow Lake.
- В драйвере Nouveau реализована поддержка механизма drm_panic (отображает при сбоях подобие "синего экрана смерти") для GPU начиная с nv50.
- В драйвере AMDGPU реализована возможность сброса очередей SDMA. Добавлена поддержка SMU 13.0.6 и JPEG 4.0.3.
- В DRM-драйвер msm (GPU Qualcomm Adreno) добавлена поддержка GPU
Adreno A663, чипсетов MSM8917, MSM8937, MSM8953 и MSM8996, а также платформы Qualcomm SA8775P.
- В звуковой подсистеме ALSA предложен новый режим обращения к аппаратным устройствам, предоставляющим функции для ускорения вычислений, связанных с обработкой звука (например, аппаратные ускорители для преобразования частоты дискретизации, распаковки и декодирования звуковых потоков).
- Для управления энергопотреблением некоторых серверных процессоров AMD EPYC, например, AMD EPYC 9005 Turin, вместо драйвера acpi-cpufreq по умолчанию задействован драйвер amd-pstate. Драйвер amd-pstate динамически изменяет частоту CPU для достижения оптимальной производительности, используя механизм CPPC (Collaborative Processor Performance Control), который в отличие от acpi-cpufreq не ограничен тремя уровнями производительности и позволяет более оперативно реагировать на изменение состояния.
- Добавлена поддержка карт хранения SDUC (Ultra Capacity SD), которые могут иметь размер более 2 ТБ (максимальный размер до 128ТБ).
- Добавлена поддержка жёстких дисков с интерфейсом NVMe. В драйвере NVMe Target заявлена полная поддержка спецификации NVMe 2.1.
- Добавлена поддержка звуковых систем устройств Samsung Galaxy Book3 360, ASUS Zenbook UM5606WA, ASUS Zen AIO 27 и Ayaneo System CS35L41. Добавлена поддержка звуковых кодеков Realtek RT721 SDCA, Everest Semi ES8323, NXP UDA1342, Cirrus Logic CS42L84. Добавлена поддержка усилителей NeoFidelity NTP8918/NTP8835/NTP8835C, Awinic aw88081 и Iron Device SMA1307.
- Прекращена поддержка платформы PowerPC Maple, которая давно не используется на практике.
- Удалены устаревшие драйверы: fieldbus, gdm724x, olpc_dcon, rtl8192e,
rtl8712, rts5208, vt6655, vt6656.
- Добавлена поддержка ARM-плат, SoC и устройств: Nothing Phone 1, Microsoft Surface Pro 9 5G, Redmi 5A (MSM8917/PM8937), Samsung Galaxy S9, Samsung Exynos 8895, 9810 и 990 (применялись в смартфонах Samsung Galaxy), X1E Dell XPS 9345 (на базе Qualcomm Snapdragon X Elite), Apple A7/A8/A9/A10/A11*, FriendlyARM NanoPi R3S, Orange Pi 5b, Radxa ROCK 5C, Rockchip RK3528, Microchip sam9x7, TI J742S2, Renesas R-Car Gen4 E-FUSE, Marvell PXA1908, Nuvoton Arbel NPCM8XX, Kobo Clara 2E,
Kontron OSM-S i.MX8MP, Freescale Ivy, Boundary Device Nitrogen8MP, i.MX8M Plus Gateworks GW82XX-2X, iMX8MP, CS9100, Powkiddy RGB20SX, Rockchip RK3528, IPQ5424, IPQ5404.
- Добавлена поддержка экранных панелей Samsung AMS581VF01, Samsung AMS639RQ08, Samsung S6E3HA8 и Microchip AC69T88A LVDS.
- Главная ссылка к новости
- OpenNews: Релиз ядра Linux 6.12 с поддержкой Realtime-режима
- OpenNews: Релиз ядра Linux 6.11
- OpenNews: Релиз ядра Linux 6.10
- OpenNews: Релиз ядра Linux 6.9
- OpenNews: Релиз ядра Linux 6.8
|
|
|
| |
|
|
· | 19.01 |
Релиз минималистичного web-браузера Dillo 3.2.0 (132 +27) |
|
Представлен релиз web-браузера Dillo 3.2.0. Браузер предоставляет графический интерфейс на основе вкладок и поддерживает HTML 4.01, CSS и HTTPS (нет поддержки JavaScript). Функциональность Dillo может расширяться через плагины, например, имеются плагины для протоколов IPFS и Gemini. При открытии стартовой страницы Dillo расходует 12 МБ ОЗУ, а установочный deb-пакет занимает около 600 КБ. Графический интерфейс построен с использованием библиотеки FLTK. Код проекта распространяется под лицензией GPLv3.
В новой версии:
- Через подключение библиотеки nanosvg реализована поддержка векторных изображений в формате SVG и возможность отрисовки математических формул.
- Добавлена возможность сборки с библиотекой libwebp для поддержки изображений в формате WebP. Для выбора обрабатываемых форматов изображений может использоваться параметр "ignore_image_formats".
- Добавлен режим постраничной прокрутки содержимого, упрощающий навигацию по многостраничным документам. Режим включается через параметр "scrollbar_page_mode" и позволяет прокручивать содержимое на страницу вниз или вверх при щелчке левой или правой кнопкой мыши на вертикальной полосе прокрутки. Степень перекрытия прокручиваемой области можно настроить через параметр scroll_page_overlap.
- Добавлен параметр "scrollbar_on_left" для перемещения полосы прокрутки в левую сторону.
- Добавлен параметр "link_action allows" для привязки собственных обработчиков ссылок (например, можно добавить кнопки для открытия ссылок в другом браузере или в мультимедийном проигрывателе).
- Реализованы клавиатурные комбинации "Ctrl +" и "Ctrl -" для изменения уровня масштабирования текста на странице. Комбинация "Ctrl 0" сбрасывает масштаб с исходное состояние. Для задания масштаба по умолчанию добавлен параметр "zoom_factor option".
- Предоставлена возможность перезагрузки текущей страницы через отправку процессу сигнала SIGUSR1, что может оказаться полезным, например, для организации работы экранов, отображающих обновляемые данные с системы мониторинга.
- Главная ссылка к новости
- OpenNews: Web-браузеру Dillo исполнилось 25 лет
- OpenNews: После многолетнего забвения опубликован минималистичный web-браузер Dillo 3.1
- OpenNews: Представлен Fifth, минималистичный web-браузер с интерфейсом на основе FLTK
- OpenNews: Выпуск минималистичного web-браузера links 2.26
- OpenNews: Новая версия браузера NetSurf 3.11
|
|
|
| |
|
|
· | 19.01 |
Выпуск uutils 0.0.29, варианта GNU Coreutils на языке Rust (189 –9) |
|
Опубликован выпуск проекта uutils coreutils 0.0.29, развивающего аналог пакета GNU Coreutils, написанный на языке Rust. В состав coreutils входит более ста утилит, включая sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln и ls. Целью проекта является создание кроссплатформенной альтернативной реализации Coreutils, способной работать в том числе на платформах Windows, Redox и Fuchsia. В отличие от GNU Coreutils реализация на Rust распространяется под пермиссивной лицензией MIT, вместо копилефт-лицензии GPL. Дополнительно той же командой разработчиков развиваются написанные на Rust аналоги наборов утилит util-linux, diffutils, findutils и bsdutils.
В новой версии uutils:
- Учтены изменения в выпуске GNU Coreutils 9.6.
- Улучшена совместимость с эталонным тестовым набором GNU Coreutils, при прохождении которого успешно выполнено 506 тестов (в прошлой версии 476), 67 (94) тестов завершилось неудачей, а 41 (43) тест был пропущен.
- Обеспечена полная совместимость с GNU Coreutils для утилит
df, dircolors, chmod, chroot, comm, seq, split, uniq и more.
- Проведена оптимизация производительности утилит du, echo и seq.
- Расширены возможности, улучшена совместимость и добавлены недостающие опции для утилит basenc, base32, base64, checksum, chmod, chroot, comm, cp, csplit, cut, date, dd, df, dircolors, du, echo, env,
fmt, head, install, kill, ls, mkfifo, more, mv, numfmt, printf, rm, seq, sort, split, stat. tail, tr, tsort, uniq, wc и uucore.
- Главная ссылка к новости
- OpenNews: Выпуск набора утилит GNU Coreutils 9.6
- OpenNews: Адаптация Debian для использования реализации coreutils на языке Rust
- OpenNews: Выпуск набора утилит GNU Coreutils 9.5 и его варианта на языке Rust
- OpenNews: Эксперимент по переводу Gentoo на использование варианта Coreutils на языке Rust
- OpenNews: Выпуск набора утилит GNU findutils 4.10.0 с возобновлением поддержки Си-библиотеки Musl
|
|
|
| |
|
|
· | 18.01 |
Выпуск отладчика GDB 16 (54 +19) |
|
Представлен релиз отладчика GDB 16.1 (первый выпуск серии 16.x, ветка 16.0 использовалась для разработки). GDB поддерживает отладку на уровне исходных текстов для широкого спектра языков программирования (Ada, C, C++, D, Fortran, Go, Objective-C, Modula-2, Pascal, Rust и т.д.) на различных аппаратных (i386, amd64, ARM, Power, Sparc, RISC-V, LoongArch и т.д.) и программных платформах (GNU/Linux, *BSD, Unix, Windows, macOS).
Наиболее заметные улучшения:
- Для Linux-окружений на системах с архитектурой LoongArch реализована поддержка записи и повторного выполнения (record/replay).
- Для теггированных указателей, часть битов в которых используется для хранения дополнительных данных, реализована поддержка точек останова, срабатывающих при изменении данных (watchpoint).
- На системах с архитектурой AArch64 реализована поддержка отладки механизма защиты MTE (Memory Tagging Extension). MTE даёт возможность привязать теги к областям в памяти и организовать проверку корректности использования указателей для блокирования эксплуатации уязвимостей, вызванных некорректной работой с памятью.
- Добавлен bash-скрипт gstack, использующий GDB для вывода трассировок стека работающих процессов.
- Для точек остановка в состоянии ожидания (pending) ключевые слова 'thread' и 'task' теперь разбираются во время создания точки останова, а не после выхода из состояния ожидания.
- Обеспечена подстановка точек останова, привязанных к потокам, только в ту область программы, в которой выполняется необходимый поток.
- Расширены возможности трассировки на процессорах Intel: при пошаговой отладке, а также в командах "record instruction-history" и "record function-call-history" реализован вывод асинхронных событий и данных, сохраняемых при использовании инструкции ptwrite.
- В Python API добавлены: модуль gdb.missing_objfile, событие gdb.tui_enabled, атрибут gdb.Symbol.is_artificial и функция gdb.record.clear.
- Расширены возможности протокола DAP (Debugger Adapter Protocol), связанные с обработкой запросов "scopes", "launch" и "attach".
- В протокол удалённой отладки добавлена поддержка пакетов "vFile:stat" и "x addr,length".
- Прекращена поддержка QNX Neutrino, Nios II и Intel MPX.
- Главная ссылка к новости
- OpenNews: Выпуск отладчика GDB 15
- OpenNews: Проект OpenAI открыл Transformer Debugger, отладчик для моделей машинного обучения
- OpenNews: Выпуск системы динамической отладки SystemTap 5.0
- OpenNews: Проект Debian запустил сервис для динамического получения отладочной информации
- OpenNews: Для Linux представлена система динамической отладки BPFtrace (DTrace 2.0)
|
|
|
| |
|
|
Следующая страница (раньше) >> |