· | 05.06 | Представлен новый видеодрайвер для чипа Apple M1, поддерживающий Vulkan 1.3 (7 +2) |
Алиса Розенцвейг (Alyssa Rosenzweig) из компании Collabora, развивающая OpenGL-драйверы Panfrost для GPU Mali и Asahi для GPU Apple AGX, представила новый Vulkan-драйвер Honeykrisp для графического процессора, поставляемого в чипах Apple M1. Несмотря на то, что драйвер разрабатывается всего месяц, он уже признан консорциумом Khronos, как полностью реализующий спецификацию Vulkan 1.3 на оборудовании Apple c чипом M1. Honeykrisp стал первым драйвером для чипов Apple, имеющим сертифицированную поддержку графического API Vulkan.
Высокая скорость разработки нового драйвера объясняется использованием в качестве основы Vulkan-драйвера NVK, развиваемого для GPU NVIDIA, который был портирован для GPU Apple, используя наработки из OpenGL-драйвера Asahi. При создании драйвера NVK его разработчики изначально проектировали его с оглядкой на создание нового эталонного Vulkan-драйвера для Mesa, код которого можно заимствовать при создании других драйверов. Код драйвера Honeykrisp пока развивается в отдельной ветке и не передан в основной состав Mesa. Отмечается, что драйвер пока не выпущен для конечных пользователей, так как ещё продолжается работа по оптимизации производительности и наращивания функциональности. Кроме того, драйвер намерены адаптировать и для других чипов семейства Apple Silicon. Что касается недостающей функциональности, то драйвер планируется довести до состояния, поддерживающего все дополнительные расширения, такие как VK_EXT_transform_feedback, необходимые для реализации поверх него графического API Direct3D, используя прослойки DXVK и vkd3d-proton. Поддержка DXVK и vkd3d-proton позволит использовать драйвер Honeykrisp в Asahi Linux на оборудовании с ARM-чипами Apple для запуска Windows-игр при помощи Wine и эмулятора архитектуры x86.
| ||
Обсуждение (7 +2) |
Тип: К сведению |
| ||
· | 05.06 | Доступна система резервного копирования nxs-backup 3.7.0 (18 +2) |
Опубликован выпуск инструментария резервного копирования nxs-backup 3.7.0, позволяющего создавать резервные копии, выполнять их ротацию и сохранять на локальных или внешних хранилищах. Помимо резервного копирования файлов поддерживается создание бэкапов различных СУБД: MySQL, PostgreSQL, MongoDB, Redis. Код проекта распространяется под лицензией Apache 2.0.
Резервные копии могут храниться как локально, так и в удалённых хранилищах (S3, FTP, SSH, SMB, NFS, WebDAV), для работы с которыми используются различные библиотеки. Благодаря мини-фреймворку go-nxs-appctx, есть возможность использовать в конфигурации переменные окружения. Резервное копирование можно осуществлять не только за указанный период времени, но и с учётом поддержания конкретного количества бэкапов. Есть функция самообновления и возможность расширить функциональность за счет пользовательских скриптов. В новой версии:
| ||
· | 05.06 | Google опубликовал GWPSan, инструмент для выявления ошибок на стадии выполнения приложений (12 +7) |
Компания Google опубликовала исходные тексты инструментария GWPSan, предназначенного для выявления ошибок на этапе выполнения приложений, собранных для архитектур x86-64 и ARM64. GWPSan собирается в виде разделяемой библиотеки, которая связывается при запуске приложения при помощи LD_PRELOAD и использует для анализа работы программы доступные в ядре Linux механизмы остановки (PERF_TYPE_BREAKPOINT) и сэмплинга процессов. Код написан на языке С++ и распространяется под лицензией Apache 2.0.
GWPSan оформлен в виде модульного фреймворка, поддерживающего подключение модулей с реализацией детекторов различных классов ошибок. GWPSan выполняет динамический анализ, активируемый через обработчики сигналов, что позволяет обойтись без изменения исполняемого кода приложения. Для эффективной работы большинства детекторов требуется сборка приложения с определёнными флагами компилятора, добавляющими необходимые метаданные. Для работы требуется как минимум Clang 18 и ядро Linux 6.4. В настоящее время доступно три детектора:
GWPSan анализирует исполняемый код программы, используя фреймворк DynamoRIO для декодирования машинного кода в абстрактные инструкции ISA, которые затем выполняются с использованием эмуляции. Через периодические сигналы от таймера вызывается обработчик unified, который при каждом вызове выполняет определённую порцию инструкций для анализируемого потока. В случае обнаружения при выполнении определённых инструкций, запускается специфичный для данных инструкций детектор проблем, например, для инструкций, обращающихся к памяти, запускается детектор состояний гонки.
| ||
Обсуждение (12 +7) |
Тип: Программы |
| ||
· | 05.06 | Выпуск git-совместимой системы управления версиями Got 0.100 (20 +5) |
Разработчики проекта OpenBSD опубликовали выпуск системы управления версиями Got 0.100 (Game of Trees), при разработке которой основной акцент делается на простоте устройства и использования. Для хранения версионированных данных Got использует хранилище, совместимое с дисковым форматом репозиториев Git, что позволяет работать с репозиторием при помощи инструментариев Got и Git. Например, при помощи Git можно выполнять работы, не реализованные в Got. Код распространяется под свободной лицензией ISC.
Проект ставит основной целью сопровождение разработки OpenBSD с оглядкой на специфику проекта. Среди прочего, в Got применяются принятые в OpenBSD правила обеспечения безопасности (например, разделение привилегий и использование вызовов pledge и unveil) и стиль написания кода. Инструментарий рассчитан на процесс разработки с общим централизованным репозиторием и локальными ветками для разработчиков, внешним доступом по SSH и рецензированием изменений по электронной почте. Для управления версиями предлагается утилита got с привычным набором команд. Для упрощения работы утилита поддерживает только минимально необходимый набор команд и опций, достаточный для выполнения основных операций без лишних усложнений. Для расширенных операций предлагается использовать обычный git. Операции по управлению репозиторием вынесены в отдельную утилиту gotadmin, выполняющую такие задачи как инициализация репозитория, упаковка индексов и чистка данных. Для навигации по данным в репозитории предлагается web-интерфейс gotwebd и утилита tog для интерактивного просмотра содержимого репозитория из командной строки. Среди изменений:
| ||
Обсуждение (20 +5) |
Тип: Программы |
| ||
· | 05.06 | Выпуск Chrome OS 125 с новыми AI-инструментами (17 –1) |
Представлен релиз операционной системы Chrome OS 125, основанной на ядре Linux, системном менеджере upstart, сборочном инструментарии ebuild/portage, открытых компонентах и web-браузере Chrome 125. Пользовательское окружение Chrome OS ограничивается web-браузером, а вместо стандартных программ задействованы web-приложения, тем не менее, Chrome OS включает в себя полноценный многооконный интерфейс, рабочий стол и панель задач. Вывод на экран осуществляется при помощи графического стека Freon (ведётся работа по переходу на использование Wayland) и оконного менеджера Aura. Исходные тексты распространяются под свободной лицензией Apache 2.0. Сборка Chrome OS 125 доступна для большинства актуальных моделей Chromebook. Для использования на обычных компьютерах предлагается редакция Chrome OS Flex.
Основные изменения в Chrome OS 125:
| ||
Обсуждение (17 –1) |
Тип: Программы |
| ||
· | 05.06 | Доступен дистрибутив Nitrux 3.5.0 с пользовательским окружением NX Desktop (28 +4) |
Опубликован выпуск дистрибутива Nitrux 3.5.0, построенного на пакетной базе Debian, технологиях KDE и системе инициализации OpenRC. Проект предлагает собственный рабочий стол NX Desktop, который представляет собой надстройку над KDE Plasma. На основе библиотеки Maui для дистрибутива развивается набор типовых пользовательских приложений, которые можно использовать как на настольных системах, так и на мобильных устройствах. Для установки дополнительных приложений продвигается система самодостаточных пакетов AppImages. Размер полного загрузочного образа составляет 4.6 ГБ. Наработки проекта распространяются под свободными лицензиями.
Рабочий стол NX Desktop предлагает иное стилевое оформление, собственную реализацию системного лотка, центра вывода уведомлений и различных плазмоидов, таких как конфигуратор сетевых соединений и мультимедийный апплет для регулирования громкости и управления воспроизведением мультимедийного контента. Из приложений, созданных при помощи фреймворка MauiKit, можно отметить файловый менеджер Index (можно использовать и Dolphin), текстовый редактор Note, эмулятор терминала Station, музыкальный проигрыватель VVave, видеопроигрыватель Clip, центр управления приложениями NX Software Center и просмотрщик изображений Pix. Основные новшества Nitrux 3.5:
| ||
Обсуждение (28 +4) |
Тип: Программы |
| ||
· | 04.06 | Выявлена возможность управления модемами миллионов абонентов ISP Cox без аутентификации (35 +20) |
Клиент Cox Communications, третьего по величине провайдера кабельного телевидения в США и одного из крупнейших операторов широкополосного доступа, насчитывающего 6.5 млн абонентов, опубликовал результаты экспериментов с используемым провайдером внутренним Web API, доступным для внешних запросов и применяемым, среди прочего, для доступа к абонентским модемам и базе пользователей сервиса Cox Business. Оказалось, что, зная лишь MAC-адрес абонентского устройства, можно получить полный контроль над модемом, позволяющий изменять настройки и выполнять любые команды на модеме. По сути, любой атакующий мог получить доступ к модему, аналогичный инженерному доступу, который получает служба поддержки оператора связи. Компания Cox была уведомлена о проблеме 3 апреля и устранила уязвимость на следующий день.
Примечательно, что MAC-адрес абонентского устройства можно было узнать через обращение к публичному Web API без прохождения аутентификации, используя функцию поиска абонентов, например, через выборку по email или по номеру учётной записи (перебирая номера можно последовательно выгрузить данные о клиентах). Помимо MAC-адреса выводились и другие сведения об абоненте, включая адрес, телефон, ФИО и email. Вся информация была доступна для запросов из внешней сети без аутентификации. При этом информацию можно было не только получить, но и изменить. Всего публично доступный API насчитывал более 700 обработчиков, среди которых многие реализовывали операции по администрированию. Обращение к API осуществлялось через хост myaccount-business.cox.com, связанный с сервисом Xox Business, который среди прочего позволяет пользователям удалённо управлять устройствами, настраивать межсетевой экран и выполнять мониторинг трафика. Непосредственно управление модемом выполнялось провайдерским сервисом через протокол TR-069 (принимает соединения через сетевой порт 7547), предназначенный для удалённой диагностики и управления оборудованием. Для верификации передачи команд и настроек на модемы пользователей использовался зашифрованный параметр, но функции для шифрования были найдены в одном из скриптов на языке JavaScript, отдаваемых сайтом webcdn-business.cox.com. Ключ для шифрования удалось определить установив в JavaScript-отладчике браузера точку останова на эти функции во время регистрации на сайте myaccount-business.cox.com. Ключ для шифрования формировался с использованием MAC-адреса, идентификатора устройства и номера учётной записи пользователя, а также нескольких вспомогательных параметров, таких как модель устройства и вид доступа. Сценарий атаки сводится к поиску жертвы через публичный Web API, используя запрос по имени, номеру телефона, email или номеру учётной записи. Далее атакующий обращается к Web API для выгрузки полного набора персональных данных абонента, используя UUID, полученный при поиске на первом этапе. Используя MAC-адрес модема, указанный среди данных об абоненте, атакующий мог посмотреть список подключённых к модему устройств, поменять любые параметры на модеме, запросить пароль, используемый для подключения к Wi-Fi, и выполнить любые команды на устройстве, что можно применить, например, для организации анализа или перенаправления трафика пользователя.
| ||
Обсуждение (35 +20) |
Тип: Проблемы безопасности |
| ||
· | 04.06 | Первый стабильный релиз СУБД DuckDB (26 +13) |
После шести лет разработки представлен выпуск СУБД DuckDB 1.0, позиционируемой как вариант SQLite для аналитических запросов. DuckDB сочетает такие свойства SQLite, как компактность, возможность подключения в форме встраиваемой библиотеки, хранение БД в одном файле и удобный CLI-интерфейс, со средствами и оптимизациями для выполнения аналитических запросов, охватывающих значительную часть хранимых данных, например, выполняющих агрегирование всего содержимого таблиц или слияние нескольких больших таблиц. Код проекта написан на языке C++ и распространяется под лицензией MIT.
Версия 1.0 отмечена как первый стабильный релиз проекта, при подготовке которого основное внимание было уделено повышению стабильности, а не наращиванию функциональности. В новой версии также закреплена фиксация формата хранения данных, для которого начиная с прошлого выпуска обеспечивается обратная совместимость. В последующих выпусках разработчики намерены более осторожно относиться к добавлению новых возможностей и заботиться о сохранении совместимости между выпусками, а также стабилизации диалекта SQL и C API. Если в будущем потребуется изменение семантики SQL разработчики заранее опубликуют предупреждение о грядущих изменениях и предоставят обходные пути для сохранения работоспособности существующего кода. DuckDB поддерживает расширенный диалект языка SQL, включающий дополнительные возможности для обработки очень сложных и длительно выполняемых запросов. Например, возможно использование сложных типов (массивы, структуры, объединения), а также выполнение произвольных и вложенных коррелирующих подзапросов. Поддерживается одновременное выполнение нескольких запросов, выполнение запросов напрямую из файлов в формате CSV и Parquet. Доступна поддержка импорта из СУБД PostgreSQL. Помимо кода оболочки из SQLite проектом используется вынесенный в отдельную библиотеку парсер из PostgreSQL, компонент Date Math из MonetDB, своя реализация оконных функций (на базе алгоритма Segment Tree Aggregation), обработчик регулярных выражений на основе библиотеки RE2, собственные оптимизатор запросов, MVCC-механизм управления одновременным выполнением заданий (Multi-Version Concurrency Control), а также векторизованный движок выполнения запросов на базе алгоритма Hyper-Pipelining Query Execution, позволяющий в одной операции разом обрабатывать большие наборы значений.
| ||
Обсуждение (26 +13) |
Тип: Программы |
| ||
· | 04.06 | Компания Canonical опубликовала монолитный дистрибутив Ubuntu Core 24 (44 +2) |
Компания Canonical представила релиз Ubuntu Core 24, компактного варианта дистрибутива Ubuntu, адаптированного для применения на устройствах интернета вещей (IoT), в контейнерах, потребительском и промышленном оборудовании. Ubuntu Core поставляется в форме неделимого монолитного образа базовой системы, в котором не применяется разбивка на отдельные deb-пакеты. Образы Ubuntu Core 24, состав которых синхронизирован с пакетной базой Ubuntu 24.04, подготовлены для систем x86_64 и ARM64 (в анонсе также заявлена поддержка RISC-V, но сборки пока недоступны). Время сопровождения выпуска составит 12 лет.
Ubuntu Core служит основой для запуска дополнительных компонентов и приложений, которые оформляются в виде самодостаточных надстроек в формате snap. Компоненты Ubuntu Core, включая базовую систему, ядро Linux и системные надстройки, также поставляются в формате snap и управляются инструментарием snapd. Технология Snappy даёт возможность сформировать образ системы как единое целое, без разбиения на отдельные пакеты. Вместо поэтапного обновления на уровне отдельных deb-пакетов в Ubuntu Core применяется механизм атомарного обновления snap-пакетов и базовой системы, по аналогии с Fedora Atomic, ChromeOS, Endless и openSUSE Leap Micro. При обновлении базового окружения и snap-пакетов имеется возможность отката состояния до прошлой версии, в случае проблем, выявленных после обновления. Для обеспечения безопасности каждый компонент системы верифицируется по цифровой подписи, что позволяет защитить дистрибутив от внесения скрытых модификаций или установки непроверенных snap-пакетов. Поставляемые в формате Snap компоненты изолируются при помощи AppArmor и Seccomp, что создаёт дополнительный рубеж для защиты системы в случае компрометации отдельных приложений. Базовая система включает только минимальный набор необходимых приложений, что не только позволило уменьшить размер системного окружения, но и положительно сказалось на безопасности за счёт уменьшения возможных векторов для атак. Базовая файловая система монтируется в режиме только для чтения. Имеется возможность использования шифрования данных на накопителе с использованием TPM. Обновления выпускаются регулярно, доставляются в режиме ОТА (over-the-air) и синхронизированы с составом Ubuntu 24.04. Для минимизации трафика обновления поставляются в сжатом виде и включают только изменения, относительно прошлого обновления (delta-обновления). Автоматизация установки обновлений решает проблемы с поддержанием безопасности системы при использовании на встраиваемых устройствах. Благодаря логическому отделению базовой системы от приложений, поддержанием кодовой базы Ubuntu Core в актуальном виде занимаются разработчики Ubuntu, а об актуальности дополнительных приложений заботятся разработчики приложений. Подобный подход позволяет снизить затраты на сопровождение продуктов, программное окружение которых построено на основе Ubuntu Core, так как их производителям не требуется заниматься выпуском и доставкой системных обновлений и достаточно сосредоточить внимание только на своих специфичных компонентах. Основные новшества:
| ||
Обсуждение (44 +2) |
Тип: Программы |
| ||
· | 04.06 | Выпуск системы мониторинга Zabbix 7.0, поменявшей лицензию на AGPL (52 +15) |
Состоялся релиз открытой системы мониторинга Zabbix 7.0, который отнесён к версиям с расширенным сроком официальной поддержки (LTS). Zabbix - универсальная система для мониторинга производительности и доступности серверов, инженерного и сетевого оборудования, приложений, баз данных, систем виртуализации, контейнеров, ИТ-сервисов, веб-сервисов, облачной инфраструктуры.
Система реализует полный цикл от сбора данных, их обработки и преобразования, анализа этих данных для обнаружения проблем, и заканчивая хранением этих данных, визуализацией и рассылкой оповещений с использованием правил эскалаций. Также система предоставляет гибкие возможности расширения методов сбора данных и оповещений, а также возможности автоматизации через мощный API. Единый веб-интерфейс реализует централизованное управление конфигурациями мониторинга и ролевым распределением прав доступа различным группам пользователей. Начиная с версии 7.0 код проекта распространяется под лицензией AGPLv3, вместо лицензии GPLv2. Особенностью лицензии AGPLv3 является введение дополнительных ограничений для приложений, обеспечивающих функционирование сетевых сервисов. При использовании AGPL-компонентов в работе сетевых сервисов, разработчик обязан предоставить пользователю исходный код всех внесённых в эти компоненты изменений, даже если лежащее в основе сервиса программное обеспечение не распространяется и используется исключительно во внутренней инфраструктуре для организации работы сервиса. Кроме того, лицензия AGPLv3 совместима только с GPLv3, что приводит к лицензионному конфликту с приложениями, поставляемыми под лицензией GPLv2, например, поставка библиотеки под AGPLv3 требует от всех использующих данную библиотеку приложений распространения кода под лицензией AGPLv3 или GPLv3. Официальные пакеты подготовлены для Linux-дистрибутивов Alma Linux, CentOS, Debian, OpenSUSE, Oracle Linux, Raspberry Pi OS, RedHat Enterprise Linux, Rocky Linux, SUSE Linux Enterprise Server, Ubuntu; систем виртуализации на базе VMWare, VirtualBox, Hyper-V, XEN; Docker; OpenStack Nova. Предоставлена возможность быстрой установки Zabbix в облачных платформах AWS, Azure, Google Cloud, Digital Ocean, IBM/RedHat Cloud, Oracle Cloud и Yandex Cloud. Для перехода с более ранних версий необходима лишь установка новых бинарных файлов (сервера и прокси) и нового интерфейса (Zabbix автоматически проведёт процедуру обновления, установка новых агентов не требуется). Основные улучшения версии 7.0 LTS:
| ||
Обсуждение (52 +15) |
Тип: Программы |
| ||
· | 04.06 | Релиз FreeBSD 14.1 с улучшенным звуковым стеком и поддержкой cloud-init (188 +20) |
После шести месяцев разработки сформирован релиз FreeBSD 14.1. Установочные образы подготовлены для архитектур amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv7, aarch64 и riscv64. Дополнительно подготовлены сборки для систем виртуализации (QCOW2, VHD, VMDK, raw) и облачных окружений Amazon EC2, Google Compute Engine и Vagrant.
Основные изменения:
| ||
Обсуждение (188 +20) |
Тип: Программы |
| ||
· | 04.06 | В Android-платформе GrapheneOS появилась возможность создания деструктивного PIN-кода (85 +37) |
В очередном обновлении защищённой мобильной платформы GrapheneOS 2024053100 появилась функция экстренной блокировки данных на устройстве. Пользователю предоставлена возможность задания дополнительного пароля и PIN-кода, ввод которых приведёт к очистке всех ключей в аппаратных хранилищах, включая ключи, используемые для шифрования данных на накопителе, а также к очистке eSIM и перезагрузке. Таким образом, в случае оказания давления на пользователя и его принуждения к разблокировке экрана или при появлении угрозы попадания смартфона не в те руки, владелец устройства может ввести деструктивный PIN-код и блокировать данные без возможности восстановления доступа.
Проект GrapheneOS развивает ответвление от кодовой базы Android (AOSP, Android Open Source Project), расширенное и изменённое для усиления безопасности и обеспечения конфиденциальности. Официально поддерживается большинство актуальных устройств Google Pixel (Pixel 4/5/6/7/8, Pixel Fold, Pixel Tablet). Наработки проекта распространяются под лицензией MIT. В состав включены многие экспериментальные технологии, связанные с усилением изоляции приложений, детальным управлением доступом, блокированием проявления типовых уязвимостей и усложнением работы эксплоитов. Например, в платформе применяется собственная реализация malloc и модифицированный вариант libc с защитой от повреждения памяти, а также более жёсткое разделение адресного пространства процессов. Вместо JIT в Android Runtime применяется только упреждающая (AOT, ahead-of-time) компиляция. В ядре Linux включены многие дополнительные механизмы защиты, например, в slub добавляются канареечные метки для блокирования переполнения буферов. Для усиления изоляции приложений задействованы SELinux и seccomp-bpf. Имеется возможность выборочного предоставления доступа отдельным приложениям к сетевым операциям, датчикам, адресной книге и периферийным устройствам (USB, камере). По умолчанию запрещено получение сведений о IMEI, MAC-адресе, серийном номере SIM-карты и других аппаратных идентификаторах. Чтение из буфера обмена разрешено только приложениям, в которых в данный момент активен фокус ввода. Включены дополнительные меры для изоляции связанных с Wi-Fi и Bluetooth процессов и предотвращения утечек в результате беспроводной активности. Многие из разработанных в рамках проекта механизмов усиления безопасности перенесены в основную кодовую базу Android. В GrapheneOS применяется криптографическая верификация загружаемых компонентов и расширенное шифрование данных на уровне файловых систем ext4 и f2fs (данные шифруются при помощи AES-256-XTS, а имена файлов - AES-256-CTS c использованием HKDF-SHA512 для генерации отдельного ключа для каждого файла), а не блочного устройства. Данные в системных разделах и в каждом профиле пользователя шифруются разными ключами. Используются доступные аппаратные возможности для ускорения операций шифрования. На экране блокировки отображается кнопка завершения сеанса, после нажатия которой ключи для расшифровки сбрасываются и хранилище переводится в неактивированное состояние. Имеется настройка для запрета установки дополнительных приложений в выбранных профилях пользователей. Для защиты от подбора паролей задействована система задержек, зависящих от числа неудачных попыток (от 30 секунд до 1 дня). В состав GrapheneOS принципиально не включаются приложения и сервисы Google, а также альтернативные реализации сервисов Google, такие как microG. При этом имеется возможность установки сервисов Google Play в отдельном изолированном окружении, не имеющем специальных привилегий. Проектом также развивается несколько собственных приложений, сфокусированных на защите информации и приватности. В частности, предлагаются браузер Vanadium на базе Chromium и модифицированный вариант движка WebView, защищённый PDF-просмотрщик, межсетевой экран, приложение Auditor для верификации устройств и выявления вторжений, приложение для работы с камерой, нацеленное на обеспечение конфиденциальности, и система создания шифрованных резервных копий Seedvault.
| ||
Обсуждение (85 +37) |
Тип: К сведению |
| ||
· | 03.06 | Лидер SerenityOS сложил с себя полномочия и основал форк браузера Ladybird (104 +19) |
Андреас Клинг (Andreas Kling), создатель операционной системы SerenityOS, объявил о снятии с себя полномочий "великодушного пожизненного диктатора" (BDFL) проекта и переключении на развитие форка web-браузера Ladybird, ранее развивавшегося в составе SerenityOS. По словам Андреаса последние два года он отстранился от разработки операционной системы и был сосредоточен только на развитии собственного браузерного движка и основанного на нём приложения Ladybird с реализацией web-браузера. Так как вокруг SerenityOS сформировалось крепкое сообщество, насчитывающее более тысячи участников и способное обходиться без него, Андреас решил целиком переключиться на развитие браузера Ladybird и продвижение его как самодостаточного и независимого от SerenityOS проекта.
Браузер Ladybird преодолел путь от простого HTML-просмотрщика, специфичного для SerenityOS, до кроссплатформенного продукта, использующего собственный браузерный движок. Фактически браузер перерос SerenityOS и разделил сообщество на две группы - разработчиков ОС и разработчиков кроссплатформенного браузера. Так как занимающиеся браузером и операционной системой разработчики со временем всё больше и больше отдалялись и теряли общие интересы, в конечном счёте было решено полностью разделить эти проекты. После разделения Андреас возглавит разработку браузера, а группа основных мэйнтейнеров получит управление над SerenityOS. После отделения разработчики браузера Ladybird прекратят поддержку ОС SerenityOS и сосредоточатся на разработке для платформ Linux и macOS. Разработчики же SerenityOS смогут вернуться к исходной модели разработки ради удовольствия, общения с единомышленниками и в качестве хобби. В отличие от SerenityOS в проекте Ladybird будут убраны ограничения, запрещавшие использование в проекте стороннего кода. Старый репозиторий Ladybird переведён в архивный режим. Браузер Ladybird использует собственные движок LibWeb, JavaScript-интерпретатор LibJS, библиотеку отрисовки текста и 2D-графики LibGfx, движок для регулярных выражений LibRegex, XML-парсер LibXML, интерпретатор промежуточного кода WebAssembly (LibWasm), библиотеку для работы с Unicode LibUnicode, библиотеку для преобразования текстовых кодировок LibTextCodec, парсер для разметки Markdown (LibMarkdown), библиотеки с криптографическими примитивами (LibCrypto, LibTLS), библиотеку для работы с архивами LibArchive, библиотеки для воспроизведения звука и видео (LibAudio, LibVideo) и библиотеку LibCore с общим набором полезных функций, таких как преобразование времени, ввода/вывод и обработка MIME-типов. Графический интерфейс оформлен в классическом стиле и поддерживает вкладки. Для построения интерфейса в macOS используется AppKit, в Android - родной для данной платформы API создания графического интерфейса, а на остальных платформах - Qt. Поддерживаются основные web-стандарты (браузер проходит тесты Acid3), HTTP/1.1 и HTTPS. Код написан на языке C++ и распространяется под лицензией BSD. Поддерживается работа в Linux, macOS, Android, Haiku и OpenIndiana. В Ladybird применяется многопроцессная архитектура, в которой занимающийся формированием интерфейса процесс отделён от процессов, обеспечивающих обработку web-контента, отправку запросов по сети, декодирование изображений и хранение Cookie. Связанные с декодированием изображений и сетевым взаимодействием обработчики выделены в отдельные процессы для усиления изоляции и защиты. Для каждой вкладки используется отдельный процесс обработки web-контента, изолированный от остальной системы.
| ||
Обсуждение (104 +19) |
Тип: К сведению |
| ||
· | 03.06 | Выпуск дистрибутива NixOS 24.05, использующего пакетный менеджер Nix (152 +6) |
Увидел свет дистрибутив NixOS 24.05, основанный на пакетном менеджере Nix и предоставляющий ряд собственных разработок, упрощающих настройку и сопровождение системы. Например, в NixOS вся настройка системы происходит посредством единого файла системной конфигурации (configuration.nix), предоставляется возможность быстрого отката системы на предыдущую версию конфигурации, присутствует поддержка переключения между различными состояниями системы, поддерживается установка индивидуальных пакетов отдельными пользователями, есть возможность одновременного использования нескольких версий одной программы, обеспечены воспроизводимые сборки. Для архитектур x86_64 и ARM64 подготовлены установочные образы с KDE (2.6 ГБ) и GNOME (2.5 ГБ), а также сокращённый консольный вариант (1 ГБ).
При использовании Nix результат сборки пакетов хранится в отдельном подкаталоге в /nix/store. Например, после сборки пакет firefox может записываться в /nix/store/1onlv5pc3ed4n5nskg8ew4twcfd0d5ce4ec5d4-firefox-125.0.1/, где "1onlv5pc3ed4n5nskg8ew4twcfd0d5ce4ec5d4" является хешем всех его зависимостей и инструкций сборки. Под установкой пакета подразумевается его сборка или скачивание уже собранного (при условии, что он был уже собран на Hydra - сервисе сборки проекта NixOS), а также формирование директории с символическими ссылками на все пакеты в профиле системы или пользователя, с последующим добавлении этой директории в список PATH. Аналогичный подход применяется в пакетном менеджере GNU Guix, который основан на наработках Nix. Коллекция пакетов представлена в специальном репозитории Nixpkgs. Основные новшества:
| ||
Обсуждение (152 +6) |
Тип: Программы |
| ||
· | 03.06 | Mozilla добавит в Firefox 130 AI-возможность для генерации описаний изображений (92 –7) |
Разработчики Firefox поделились планами по расширению использования в браузере возможностей на основе механизмов машинного обучения. Начиная с выпуска Firefox 130, намеченного на 3 сентября, в браузер будет включена функциональность для автоматической генерации текстовых описаний изображений. Тестирование реализации уже началось в ночных сборках Firefox, в которых подобная функциональность встроена в PDF-просмотрщик. На первом этапе для тестирования работы алгоритма описание генерируется только при добавлении новых изображений в качестве подсказки, но в дальнейшем его планируют применить и для существующих изображений.
Предполагается, что наличие текстовых описаний, которые можно будет выводить через экранные ридеры, упростит работу людей, имеющих проблемы со зрением. Функция реализована через интеграцию модели машинного обучения, выполняемой на локальной системе пользователя без обращения к внешним сервисам, по аналогии с тем как уже работает встроенная система перевода с одного языка на другой. Модель для генерации текстовых описаний занимает примерно 200 МБ на диске, использует данные модели DistilGPT2 и охватывает 182M параметров. Для анализа изображений задействован декодировщик на базе модели Vision Transformer (ViT). Для работы с моделью в состав браузера включён ONNX Runtume, скомпилированный в представление WASM, и библиотека Transformers.js. Модель загружается динамически перед первым использованием.
| ||
Обсуждение (92 –7) |
Тип: К сведению |
| ||
Следующая страница (раньше) >> |
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |