Опубликован исходный код начальной реализации развиваемой с нуля виртуальной машины. Проект примечателен тем, что код написан на русифицированном языке Си (например, вместо 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
Выпуск музыкального проигрывателя Audacious 4.3
Представлен релиз легковесного музыкального проигрывателя Audacious 4.3, ответвившегося в своё время от проекта Beep Media Player (BMP), являющегося форком классического плеера XMMS. Выпуск поставляется с двумя интерфейсами пользователя: на основе GTK и Qt.
Некоторые новшества:
- Добавлена поддержка GTK3, которая пока не применяется по умолчанию.
- Стабилизирована поддержка Qt 6, но по умолчанию продолжает применяться Qt 5.
- Добавлен плагин для вывода через мультимедийный сервер PipeWire.
- Добавлен плагин для декодирования формата Opus.
И другие изменения
Представлен релиз легковесного музыкального проигрывателя Audacious 4.3, ответвившегося в своё время от проекта Beep Media Player (BMP), являющегося форком классического плеера XMMS. Выпуск поставляется с двумя интерфейсами пользователя: на основе GTK и Qt.
Некоторые новшества:
- Добавлена поддержка GTK3, которая пока не применяется по умолчанию.
- Стабилизирована поддержка Qt 6, но по умолчанию продолжает применяться Qt 5.
- Добавлен плагин для вывода через мультимедийный сервер PipeWire.
- Добавлен плагин для декодирования формата Opus.
И другие изменения
👍14
💡Команда objdump
С помощью этой утилиты можно производить всесторонний анализ бинарных файлов.
Синтаксис:
Чтобы отобразить сводную информацию из заголовков разделов объектного файла:
С помощью этой утилиты можно производить всесторонний анализ бинарных файлов.
Синтаксис:
objdump <флаг> <файл>Чтобы отобразить сводную информацию из заголовков разделов объектного файла:
objdump -h some_file
Вывести заголовок файла:objdump -f some_file
Дизассемблирование всех разделов: objdump -D some_file
Вывести всё содержимое всех секций в шестнадцатеричном представлении:objdump -s some_file👍9🔥3
В открытой платформе домашней автоматизации Home Assistant выявлена критическая уязвимость (CVE-2023-27482), позволяющая обойти аутентификацию и получить полный доступ к привилегированному API Supervisor, через который можно менять настройки, устанавливать/обновлять ПО, управлять дополнениями и резервными копиями.
Проблема затрагивает установки, в которых используется компонент Supervisor и появляется на начиная с первых его выпусков (с 2017 года).
Уязвимость устранена в версии Home Assistant Supervisor 2023.01.1. Дополнительно обходной вариант защиты включён в состав выпуска Home Assistant 2023.3.0. На системах, на которых не удаётся установить обновление для блокирования уязвимости, можно ограничить доступ к сетевому порту web-сервиса Home Assistant из внешних сетей.
Метод эксплуатации уязвимости пока не детализируется (по оценке разработчиков около 1/3 пользователей установили обновление и многие системы остаются уязвимы).
Проблема затрагивает установки, в которых используется компонент Supervisor и появляется на начиная с первых его выпусков (с 2017 года).
Уязвимость устранена в версии Home Assistant Supervisor 2023.01.1. Дополнительно обходной вариант защиты включён в состав выпуска Home Assistant 2023.3.0. На системах, на которых не удаётся установить обновление для блокирования уязвимости, можно ограничить доступ к сетевому порту web-сервиса Home Assistant из внешних сетей.
Метод эксплуатации уязвимости пока не детализируется (по оценке разработчиков около 1/3 пользователей установили обновление и многие системы остаются уязвимы).
В корректирующих обновлениях Wasmtime 6.0.1, 5.0.1 и 4.0.1 устранена уязвимость (CVE-2023-26489), которой присвоен критический уровень опасности. Уязвимость позволяет организовать запись данных в область памяти вне границы, допустимой для изолированного WebAssembly-кода, что потенциально может быть использовано атакующим для организации выполнения своего кода вне изолированного окружения WASI.
Wasmtime представляет собой runtime для выполнения WebAssembly-приложений с расширениями WASI (WebAssembly System Interface) как обычных обособленных приложений.
Wasmtime представляет собой runtime для выполнения WebAssembly-приложений с расширениями WASI (WebAssembly System Interface) как обычных обособленных приложений.
Выпуск BSD-системы helloSystem 0.8.1, развиваемой автором AppImage
Дистрибутив helloSystem 0.8.1 основан на FreeBSD 13 и позиционируемого как система для обычных пользователей, на которую могут перейти любители macOS, недовольные политикой Apple. Система лишена усложнений, свойственных современным Linux-дистрибутивам, находится под полным контролем пользователя и позволяет чувствовать себя комфортно бывшим пользователям macOS.
Изменения новой версии:
- Реализована возможность выхода в сеть при подключении по USB к Android-смартфону (USB tethering).
- Добавлена поддержка USB-систем с объёмным звуком (5.1), таких как BOSE Companion 5.
- На дисках, размером больше 80 ГБ, по умолчанию включён раздел подкачки.
- Обеспечено сохранение настроек языка и клавиатуры в UEFI NVRAM.
- В диалог "About This Computer" добавлены сведения о графическом драйвере
И другие изменения
Дистрибутив helloSystem 0.8.1 основан на FreeBSD 13 и позиционируемого как система для обычных пользователей, на которую могут перейти любители macOS, недовольные политикой Apple. Система лишена усложнений, свойственных современным Linux-дистрибутивам, находится под полным контролем пользователя и позволяет чувствовать себя комфортно бывшим пользователям macOS.
Изменения новой версии:
- Реализована возможность выхода в сеть при подключении по USB к Android-смартфону (USB tethering).
- Добавлена поддержка USB-систем с объёмным звуком (5.1), таких как BOSE Companion 5.
- На дисках, размером больше 80 ГБ, по умолчанию включён раздел подкачки.
- Обеспечено сохранение настроек языка и клавиатуры в UEFI NVRAM.
- В диалог "About This Computer" добавлены сведения о графическом драйвере
И другие изменения
❤🔥11👌6👍3🔥2❤1
В новом "Ubuntu Flatpak Remix" предустановлена (неофициальная) поддержка Flatpak
После объявления Canonical о том, что будущие версии Ubuntu не будут включать поддержку Flatpak по умолчанию, кто-то уже создал неофициальный вариант Ubuntu, который поставляется с поддержкой приложений Flatpak, предустановленных и работающих "из коробки", под названием Ubuntu Flatpak Remix.
Несколько ключевых приложений предустановлены в формате Flatpak, а не как приложение Snap, включая веб-браузер Mozilla Firefox, почтовый клиент Mozilla Thunderbird и офисный пакет LibreOffice.
Однако, пожалуйста, обратите внимание, что это альфа-версия, которая может содержать ошибки, поэтому ее не рекомендуется использовать в производстве. Кроме того, она основан на Ubuntu 22.04.2 LTS.
После объявления Canonical о том, что будущие версии Ubuntu не будут включать поддержку Flatpak по умолчанию, кто-то уже создал неофициальный вариант Ubuntu, который поставляется с поддержкой приложений Flatpak, предустановленных и работающих "из коробки", под названием Ubuntu Flatpak Remix.
Несколько ключевых приложений предустановлены в формате Flatpak, а не как приложение Snap, включая веб-браузер Mozilla Firefox, почтовый клиент Mozilla Thunderbird и офисный пакет LibreOffice.
Однако, пожалуйста, обратите внимание, что это альфа-версия, которая может содержать ошибки, поэтому ее не рекомендуется использовать в производстве. Кроме того, она основан на Ubuntu 22.04.2 LTS.
❤🔥17🤡7👍3😁1