Выпуск мультимедиа-пакета FFmpeg 6.0
FFmpeg 6.0 включает набор приложений и коллекцию библиотек для операций над различными мультимедиа-форматами (запись, преобразование и декодирование звуковых и видеоформатов). Пакет распространяется под лицензиями LGPL и GPL, разработка FFmpeg ведётся смежно с проектом MPlayer.
Из изменений:
- В разряд обязательных переведена сборка ffmpeg в многопоточном режиме. Каждый упаковщик медиаконтейнеров (muxer) теперь запускается в отдельном потоке.
- Реализована поддержка VAAPI и QSV (Quick Sync Video) для кодирования и декодирования VP9 и HEVC с цветовой субдискретизации 4:2:2 и 4:4:4, 10- и 12-разрядного кодирования глубины цвета.
- Добавлена поддержка библиотеки oneVPL (oneAPI Video Processing Library) для использования технологии аппаратного ускорения Intel QSV (Quick Sync Video).
- Добавлен кодировщик AV1 с аппаратным ускорением на базе QSV.
И другие изменения.
FFmpeg 6.0 включает набор приложений и коллекцию библиотек для операций над различными мультимедиа-форматами (запись, преобразование и декодирование звуковых и видеоформатов). Пакет распространяется под лицензиями LGPL и GPL, разработка FFmpeg ведётся смежно с проектом MPlayer.
Из изменений:
- В разряд обязательных переведена сборка ffmpeg в многопоточном режиме. Каждый упаковщик медиаконтейнеров (muxer) теперь запускается в отдельном потоке.
- Реализована поддержка VAAPI и QSV (Quick Sync Video) для кодирования и декодирования VP9 и HEVC с цветовой субдискретизации 4:2:2 и 4:4:4, 10- и 12-разрядного кодирования глубины цвета.
- Добавлена поддержка библиотеки oneVPL (oneAPI Video Processing Library) для использования технологии аппаратного ускорения Intel QSV (Quick Sync Video).
- Добавлен кодировщик AV1 с аппаратным ускорением на базе QSV.
И другие изменения.
👍17
В Linux From Scratch 11.3 осуществлён переход на glibc 2.37, binutils 2.40 и ядро Linux 6.1.11, Systemd 252, SysVinit 3.06, Bash 5.2.15, Grep 3.8, Inetutils 2.4, Meson 1.0.0, Openssl 3.0.8, Python 3.11.2, Tcl 8.6.13, Vim 9.0.1273. Исправлены ошибки в загрузочных скриптах, выполнены редакторские работы в пояснительных материалах по всей книге.
В Beyond Linux From Scratch 11.3 отмечено 1357 обновлений, среди которых GNOME 43, Xfce 4.18, KDE Plasma 5.26.5, KDE Gears 22.12.2, LibreOffice 7.5, Fmpeg 5.1.2, Inkscape 1.2.2, Thunderbird 102.8.0, Firefox 102.8.0, SeaMonkey 2.53.15, IceWM 3.3.1, openbox 3.6.1, Mesa 22.3.5, GTK 4.8.3, MariaDB 10.6.12, PostgreSQL 15.2, Postfix 3.7.4, Exim 4.96, BIND 9.18.12, Apache httpd 2.4.55 и т.п. Добавлен драйвер intel-media-driver (Intel Media Driver for VAAPI) для аппаратного ускорения кодирования и декодирования видео на системах с CPU Intel Broadwell и более новых моделей.
В Beyond Linux From Scratch 11.3 отмечено 1357 обновлений, среди которых GNOME 43, Xfce 4.18, KDE Plasma 5.26.5, KDE Gears 22.12.2, LibreOffice 7.5, Fmpeg 5.1.2, Inkscape 1.2.2, Thunderbird 102.8.0, Firefox 102.8.0, SeaMonkey 2.53.15, IceWM 3.3.1, openbox 3.6.1, Mesa 22.3.5, GTK 4.8.3, MariaDB 10.6.12, PostgreSQL 15.2, Postfix 3.7.4, Exim 4.96, BIND 9.18.12, Apache httpd 2.4.55 и т.п. Добавлен драйвер intel-media-driver (Intel Media Driver for VAAPI) для аппаратного ускорения кодирования и декодирования видео на системах с CPU Intel Broadwell и более новых моделей.
👍8❤🔥3
Microsoft открыл CHERIoT, аппаратное решение для повышения безопасности кода на языке Си
CHERIoT предлагает решение, позволяющее защитить существующие кодовые базы на С/C++ без необходимости их переработки. Защита реализуется через применение модифицированного компилятора, использующего специальный расширенный набор процессорных инструкций (ISA), предоставляемых процессором и на аппаратном уровне отслеживающих доступ к памяти, проверяющих корректность работы с указателями и обеспечивающих изоляцию блоков кода.
Аппаратные компоненты CHERIoT оформлены в виде микроконтроллера на базе архитектуры RISC-V, реализующего защищённую процессорную архитектуру CHERI (Capability Hardware Extension to RISC-V). Она предоставляет модель управляемого доступа к памяти на основе "capability" (каждая операция чтения и записи в память авторизуется).
На базе предоставляемой в CHERIoT архитектуры набора команд (ISA) построена программная модель, гарантирующая безопасность работы с памятью на уровне отдельных объектов, предоставляющая защиту от обращения к уже освобождённой памяти и реализующая легковесную систему изоляции доступа к памяти. Указанная программная модель защиты напрямую отражается в языковую модель C/C++, что позволяет применять её для защиты существующих приложений (требуется лишь перекомпиляция и запуск на оборудовании, поддерживающем ISA CHERIoT).
CHERIoT предлагает решение, позволяющее защитить существующие кодовые базы на С/C++ без необходимости их переработки. Защита реализуется через применение модифицированного компилятора, использующего специальный расширенный набор процессорных инструкций (ISA), предоставляемых процессором и на аппаратном уровне отслеживающих доступ к памяти, проверяющих корректность работы с указателями и обеспечивающих изоляцию блоков кода.
Аппаратные компоненты CHERIoT оформлены в виде микроконтроллера на базе архитектуры RISC-V, реализующего защищённую процессорную архитектуру CHERI (Capability Hardware Extension to RISC-V). Она предоставляет модель управляемого доступа к памяти на основе "capability" (каждая операция чтения и записи в память авторизуется).
На базе предоставляемой в CHERIoT архитектуры набора команд (ISA) построена программная модель, гарантирующая безопасность работы с памятью на уровне отдельных объектов, предоставляющая защиту от обращения к уже освобождённой памяти и реализующая легковесную систему изоляции доступа к памяти. Указанная программная модель защиты напрямую отражается в языковую модель C/C++, что позволяет применять её для защиты существующих приложений (требуется лишь перекомпиляция и запуск на оборудовании, поддерживающем ISA CHERIoT).
👍6👎3
Выпуск OpenRA 20230225, открытого движка для игр Red Alert и Dune 2000
Код OpenRA написан на С# и Lua, и распространяется под лицензией GPLv3. Поддерживаются платформы Windows, macOS и Linux (AppImage, Flatpak, Snap).
В новой версии добавлена поддержка ресурсов из набора "C&C Remastered Collection", а также предварительная поддержка игры Tiberian Dawn HD. Улучшена реализация игры Dune 2000 и добавлены новые миссии для игры Red Alert. Реализован новый иерархический механизм поиска путей, позволивший значительно поднять производительность на крупных картах. Значительно улучшена реализация многопользовательской сетевой игры, юниты стали более отзывчивыми при разных настройках задержек. Для разработчиков модов предложен новый формат карт с поддержкой предпросмотра всей карты (миникарта) и реализована возможность использования звуковых форматов mp3 и ogg.
Код OpenRA написан на С# и Lua, и распространяется под лицензией GPLv3. Поддерживаются платформы Windows, macOS и Linux (AppImage, Flatpak, Snap).
В новой версии добавлена поддержка ресурсов из набора "C&C Remastered Collection", а также предварительная поддержка игры Tiberian Dawn HD. Улучшена реализация игры Dune 2000 и добавлены новые миссии для игры Red Alert. Реализован новый иерархический механизм поиска путей, позволивший значительно поднять производительность на крупных картах. Значительно улучшена реализация многопользовательской сетевой игры, юниты стали более отзывчивыми при разных настройках задержек. Для разработчиков модов предложен новый формат карт с поддержкой предпросмотра всей карты (миникарта) и реализована возможность использования звуковых форматов mp3 и ogg.
👍24🤡1
Представлен проект по переписыванию драйвера VGEM (Virtual GEM Provider) на языке Rust. VGEM включает около 400 строк кода и предоставляет не привязанный к оборудованию бэкенд GEM (Graphics Execution Manager), используемый для разделяемого доступа к буферам драйверов программных 3D-устройств, таких как LLVMpipe, с целью повышения производительности программной растеризации.
VGEM станет вторым графическим драйвером на Rust, работающим на уровне ядра. При разработке потребовалось создание новых привязок для работы из кода на языке Rust с устройством платформы, типом XArray и абстракциями, связанными с прямым доступом к памяти, такими как DMA-барьеры (DMA fence). На текущем этапе развития драйвер почти готов, проходит большинство тестов IGT, за исключением двух проверок (vgem_slow и vgem_basic@unload), но требует доработки поддержки IOCTL.
VGEM станет вторым графическим драйвером на Rust, работающим на уровне ядра. При разработке потребовалось создание новых привязок для работы из кода на языке Rust с устройством платформы, типом XArray и абстракциями, связанными с прямым доступом к памяти, такими как DMA-барьеры (DMA fence). На текущем этапе развития драйвер почти готов, проходит большинство тестов IGT, за исключением двух проверок (vgem_slow и vgem_basic@unload), но требует доработки поддержки IOCTL.
🔥10👎3👍1
Пользовательская оболочка GNOME Shell и композитный менеджер Mutter полностью переведены на использование библиотеки GTK4 и избавились от жёсткой зависимости от GTK3. Кроме того, зависимость gnome-desktop-3.0 заменена на gnome-desktop-4 и gnome-bg-4, а libnma на libnma4.
В целом GNOME пока остаётся привязан к GTK3, так как не все приложения и библиотеки портированы на GTK4. Например, на GTK3 пока остаются WebKit, libpeas, libibus, просмотрщик документов Evince, видеоплеер Totem, просмотрщик изображений Eog, Boxes, Connections, Disks, Simple-scan, File-roller, Photos и System Monitor.
В целом GNOME пока остаётся привязан к GTK3, так как не все приложения и библиотеки портированы на GTK4. Например, на GTK3 пока остаются WebKit, libpeas, libibus, просмотрщик документов Evince, видеоплеер Totem, просмотрщик изображений Eog, Boxes, Connections, Disks, Simple-scan, File-roller, Photos и System Monitor.
🤩10👍5🔥2
💡 Разбить файл на части можно используя команду
Команду можно также использовать для разделения файлов на части по размеру информации, например:
split
Для примера создадим файл с цифрами от 1 до 1000 в столбик командой:echo {1..1000} | tr ' ' '\n' > some_file
Разделим этот файл по 200 строк в каждом, командой:split -200 some_file
Цифру можно задать свою. Исходный some_file останется, рядом создадутся 5 (потому что на 200 делили) файлов.Команду можно также использовать для разделения файлов на части по размеру информации, например:
split -b100b some_file2
split -b100k some_file2
split -b100m some_file2
Первая команда разделит файл на части по 100 байтов каждая, вторая - на части по 100 Кбайт каждая, третья - по 100 Мбайт каждая.👍20🤯5
Опубликован исходный код начальной реализации развиваемой с нуля виртуальной машины. Проект примечателен тем, что код написан на русифицированном языке Си (например, вместо int - цел, long - длин, for - для, if - если, return - вернуть и т.п.). Русификация языка выполнена через макроподстановки и реализована через подключение двух заголовочных файлов ru_stdio.h и keywords.h. Исходные тексты распространяются под лицензией MIT.
Целью проекта является создание виртуальной машины с простой архитектурой и системой команд. Виртуальная машина будет легка для изучения, и её реализация не займёт много времени. Существенным преимуществом также будет исчерпывающая русскоязычная документация. Разработка под виртуальную машину будет полностью кириллической, в частности, кириллица будет использоваться для мнемоник инструкций, имён регистров и т.п.
Целью проекта является создание виртуальной машины с простой архитектурой и системой команд. Виртуальная машина будет легка для изучения, и её реализация не займёт много времени. Существенным преимуществом также будет исчерпывающая русскоязычная документация. Разработка под виртуальную машину будет полностью кириллической, в частности, кириллица будет использоваться для мнемоник инструкций, имён регистров и т.п.
🤡34👍12🥴6🤔3👎2
- В виджете GtkFileChooserWidget с реализацией диалога, открываемого для выбора файлов в приложениях, реализован режим представления содержимого каталогов в форме сети значков.
- Добавлены новые классы GtkColorDialog, GtkFontDialog, GtkFileDialog и GtkAlertDialog с реализацией диалогов для выбора цветов, шрифтов и файлов, вывода предупреждений. Новые варианты отличаются переходом на более целостный и сбалансированный API, работающий в асинхронном режиме (GIO async).
- Добавлен новый бэкенд CPDB (Common Printing Dialog Backend), предоставляющий типовые обработчики для использования в диалогах вывода на печать. Поддержка ранее используемого бэкенда вывода на печать lpr прекращена.
- В утилите gtk-builder-tool улучшена обработка шаблонов.
И другие изменения.
- Добавлены новые классы GtkColorDialog, GtkFontDialog, GtkFileDialog и GtkAlertDialog с реализацией диалогов для выбора цветов, шрифтов и файлов, вывода предупреждений. Новые варианты отличаются переходом на более целостный и сбалансированный API, работающий в асинхронном режиме (GIO async).
- Добавлен новый бэкенд CPDB (Common Printing Dialog Backend), предоставляющий типовые обработчики для использования в диалогах вывода на печать. Поддержка ранее используемого бэкенда вывода на печать lpr прекращена.
- В утилите gtk-builder-tool улучшена обработка шаблонов.
И другие изменения.
👍5❤🔥3👎1
Для избавления Glibc от проблемы 2038 года предложено прекратить использование utmp
19 января 2038 года произойдёт переполнение счётчиков эпохального времени, заданных 32-разрядным типом time_t. В библиотеке Glibc, несмотря на внедрение 64-разрядного типа time_t, для сохранения совместимости с 32-разрядными приложениями пространства пользователя в некоторых случаях на 64-разрядных платформах продолжает применяться 32-разрядный тип time_t. Одним из таких случаев является файл /var/run/utmp, хранящий данные о пользователях, в данный момент работающих в системе. Поле с временем в utmp задаётся с использованием 32-разрядного значения time_t.
Просто заменить поле со временем в utmp с 32-разрядного на 64-разрядный тип не получится, так как это приведёт к изменению ABI Glibc (изменится тип в функциях, подобных login(), getutid() и utmpname()) и нарушению совместимости с приложениями, использующими utmp.
В качестве наиболее простого решения предлагается перевести все приложения на использование уже существующего альтернативного сервиса systemd-logind и после того как не останется актуальных программ, обращающихся к utmp, прекратить запись в utmp. Для замены wtmp предлагается подготовить программные интерфейсы для записи и чтения информации о пользователях при помощи systemd-journald. В кодовую базу следующего выпуска systemd 254 уже включены необходимые функции для предоставления заменяющих utmp данных через libsystemd с использованием API sd-login.h или через DBUS.
19 января 2038 года произойдёт переполнение счётчиков эпохального времени, заданных 32-разрядным типом time_t. В библиотеке Glibc, несмотря на внедрение 64-разрядного типа time_t, для сохранения совместимости с 32-разрядными приложениями пространства пользователя в некоторых случаях на 64-разрядных платформах продолжает применяться 32-разрядный тип time_t. Одним из таких случаев является файл /var/run/utmp, хранящий данные о пользователях, в данный момент работающих в системе. Поле с временем в utmp задаётся с использованием 32-разрядного значения time_t.
Просто заменить поле со временем в utmp с 32-разрядного на 64-разрядный тип не получится, так как это приведёт к изменению ABI Glibc (изменится тип в функциях, подобных login(), getutid() и utmpname()) и нарушению совместимости с приложениями, использующими utmp.
В качестве наиболее простого решения предлагается перевести все приложения на использование уже существующего альтернативного сервиса systemd-logind и после того как не останется актуальных программ, обращающихся к utmp, прекратить запись в utmp. Для замены wtmp предлагается подготовить программные интерфейсы для записи и чтения информации о пользователях при помощи systemd-journald. В кодовую базу следующего выпуска systemd 254 уже включены необходимые функции для предоставления заменяющих utmp данных через libsystemd с использованием API sd-login.h или через DBUS.
👍16👎7🤡2🔥1
Выпуск пакетного менеджера APT 2.6
- Инструментарий и файлы конфигурации адаптированы для поддержки нового репозитория non-free-firmware, в который из репозитория non-free перенесены пакеты с прошивками, что позволяет обеспечить доступ к прошивкам без включения общего репозитория non-free.
- Оформление файла со списком авторских прав и текстами используемых лицензий (COPYING) переделано для упрощения автоматизированного разбора.
- Документирован параметр "--allow-insecure-repositories", отключающий ограничения по работе с незащищёнными репозиториями.
- В поисковых шаблонах реализована поддержка группировки с использованием круглых скобок и операции "|" (логическое ИЛИ).
- Добавлена поддержка поэтапных обновлений (phased update), позволяющих перед доставкой всем пользователям, вначале протестировать обновления на небольшой тестовой группе пользователей.
- Инструментарий и файлы конфигурации адаптированы для поддержки нового репозитория non-free-firmware, в который из репозитория non-free перенесены пакеты с прошивками, что позволяет обеспечить доступ к прошивкам без включения общего репозитория non-free.
- Оформление файла со списком авторских прав и текстами используемых лицензий (COPYING) переделано для упрощения автоматизированного разбора.
- Документирован параметр "--allow-insecure-repositories", отключающий ограничения по работе с незащищёнными репозиториями.
- В поисковых шаблонах реализована поддержка группировки с использованием круглых скобок и операции "|" (логическое ИЛИ).
- Добавлена поддержка поэтапных обновлений (phased update), позволяющих перед доставкой всем пользователям, вначале протестировать обновления на небольшой тестовой группе пользователей.
👍17👎1
В коде с эталонной реализацией спецификации TPM 2.0 выявлены уязвимости (CVE-2023-1017, CVE-2023-1018), приводящие к записи или чтению данных за границей выделенного буфера.
Атака на реализации криптопроцессоров, использующих уязвимый код, может привести к извлечению или перезаписи хранящейся на стороне чипа информации, такой как криптографические ключи. Возможность перезаписи данных в прошивке TPM может быть использована атакующим для организации выполнения своего кода в контексте TPM, что, например, может быть использовано для реализации бэкдоров, работающих на стороне TPM и не определяемых из операционной системы.
Эксплуатация уязвимости осуществляется через отправку TPM-модулю специально оформленных команд (атакующий должен иметь доступ к интерфейсу TPM). Проблемы устранены в выпущенном в январе обновлении спецификации TPM 2.0 (1.59 Errata 1.4, 1.38 Errata 1.13, 1.16 Errata 1.6).
Уязвимости также подвержена открытая библиотека libtpms. Уязвимость устранена в выпуске libtpms 0.9.6.
Атака на реализации криптопроцессоров, использующих уязвимый код, может привести к извлечению или перезаписи хранящейся на стороне чипа информации, такой как криптографические ключи. Возможность перезаписи данных в прошивке TPM может быть использована атакующим для организации выполнения своего кода в контексте TPM, что, например, может быть использовано для реализации бэкдоров, работающих на стороне TPM и не определяемых из операционной системы.
Эксплуатация уязвимости осуществляется через отправку TPM-модулю специально оформленных команд (атакующий должен иметь доступ к интерфейсу TPM). Проблемы устранены в выпущенном в январе обновлении спецификации TPM 2.0 (1.59 Errata 1.4, 1.38 Errata 1.13, 1.16 Errata 1.6).
Уязвимости также подвержена открытая библиотека libtpms. Уязвимость устранена в выпуске libtpms 0.9.6.
🗿10🤡3👍1🏆1