Доступен выпуск проекта MicroPythonOS 0.9.0, разрабатывающего операционную систему для микроконтроллеров, таких как ESP32, написанную с использованием инструментария MicroPython. Операционная система оснащена графическим интерфейсом, развиваемым с оглядкой на Android и iOS, и поддерживающим управления через сенсорные экраны. Из областей применения MicroPythonOS упоминаются устройства интернета вещей (IoT), системы управления домашней автоматизацией, интерактивные панели, роботы и умные носимые устройства с управлением экранными жестами. Проект также может применяться для быстрой разработки прототипов новых устройств. Код написан на языках Си и Python и распространяется под лицензий MIT.
MicroPythonOS предлагает минимальную базовую систему, отвечающую за инициализацию и взаимодействие с аппаратным обеспечением, монтирование накопителей, многозадачность и интерфейс пользователя. Вся остальная функциональность, такая как настройка Wi-Fi и установка обновлений, вынесена в приложения. В базовый набор входит меню приложений, конфигуратор, виджет для настройки Wi-Fi, программа установки и обновления приложений.
Для приложений предлагается использовать язык MicroPython (урезанная редакция Python 3) и подмножество библиотек Python. Возможна установки внешних приложений, распространяемых через централизованный каталог App Store (например, через App Store распространяются просмотрщик изображений и программа для работы с камерой). Обновления доставляются по сети в режиме OTA (over-the-air). Имеется поддержка Wi-Fi, Blutooth, датчиков IMU (Inertial Measurement Unit), сенсорных экранов и камер.
В новой версии
В конфигураторе подгруппы настроек вынесены в отдельные приложения (например, создано отдельное приложение для настройки Wi-Fi). Добавлены новые подгруппы с настройками беспроводной точки доступа (Hotspot) и web-сервера.
Улучшено воспроизведение и запись звуковых файлов - добавлено отображение прогресса операции и добавлена поддержка аппаратных кнопок изменения громкости.
Переработаны IMU-драйверы для датчиков, добавлен драйвер для магнитометра.
Добавлен инструменатрий для запуска web-сервера. Для плат ESP32 реализован компонент WebREPL (не активирован по умолчанию), предоставляющий оболочку для удалённого доступа к окружению MicroPython через браузер.
Реализована возможность создания беспроводных точек доступа.
Добавлена поддержка плат LilyGo T-Display-S3,
LilyGo T-Watch S3 Plus, M5Stack Fire, ODroid Go и unPhone 9.
Команда CLE (Community Linux Engineering Team), учреждённая в компании Red Hat для решения технических задач проектов Fedora и CentOS, таких как предоставление инфраструктуры, подготовка релизов и обеспечение качества, объявила о готовности к использованию платформы совместной разработки Fedora Forge, построенной на базе проекта Forgejo. Проект Fedora Forge создан для замены собственной платформы Pagure, применяемой в Fedora для совместной работы c кодом и метаданными пакетов. От Pagure решено отказаться, так как данная платформа требует больших ресурсов для сопровождения, находится в состоянии стагнации и не получила широкого распространения вне Fedora.
Командам, участвующим в разработке Fedora Linux, дано время на переход с pagure.io на Fedora Forge до июня 2026 года. После конференции Flock 2026, которая состоится 14-16 июня, содержимое pagure.io будет переведено в архивный режим, допускающий только чтение. После этого до релиза Fedora 46 в 2027 году планируют вывести из обихода и все остальные сервисы, использующие Pagure, включая репозитории с исходным кодом пакетов на src.fedoraproject.org.
В Fedora Forge будет выполняться работа, связанная с:
поддержанием инфраструктуры проекта (управление конфигурацией, разработка инструментов и скриптов развёртывания);
подготовкой релизов и поддержанием пакетов (инструменты, утилиты и шаблоны для сборки, формирования и распространения релизов Fedora);
организацией работы проекта (подготовка документации и спецификаций, совместная работа команд);
Разработка специфичных для Fedora приложений, таких как Fedora Badges, Bodhi и fedmsg.
В Fedora Forge запрещено развивать личные проекты, напрямую не связанные с Fedora. Fedora Forge также не должен применяться в качестве основной площадки для разработки сторонних проектов, даже если пакеты с ними распространяются в репозиториях Fedora.
Отмечается, что в Forgejo пока реализована не вся функциональность
Pagure. Например, отсутствуют необходимые средства для ведения конфиденциальных обсуждений в публичных репозиториях (приватные issue для обсуждения исправления уязвимостей до раскрытия информации). В настоящее время представители Fedora работают с разработчиками Forgejo над реализацией недостающих функций.
Платформа Forgejo является форком проекта Gitea, который в свою очередь ответвился от платформы Gogs. Ключевыми особенностями Forgejo является низкое потребление ресурсов (может использоваться в дешёвых VPS) и простой процесс установки. Предоставляются типовые возможности работы с проектами, такие как управление задачами, отслеживание проблем (issues), pull-запросы, wiki, средства для координации групп разработчиков, подготовка релизов, автоматизация размещения пакетов в репозиториях, управление правами доступа, сопряжение с платформами непрерывной интеграции, поиск кода, аутентификация через LDAP и OAuth, доступ к репозиторию по протоколам SSH и HTTP/HTTPS, подключение web-хуков для интеграции со Slack, Discord и другими сервисами, поддержка Git-хуков и Git LFS, инструменты для миграции и зеркалирования репозиториев.
На конференции KubeCon Europe издание The Register взяло интервью у Грега Кроа-Хартмана (Greg Kroah-Hartman), отвечающего за поддержку стабильной и "staging" веток ядра Linux, занимающего пост мэйнтейнера в 16 подсистемах ядра. В интервью обсуждается отношение Грега к отчётам об ошибках, которые находит AI. AI в ядре уже используется при рецензировании изменений в сетевой подсистеме, eBPF и DRM, плюс для проверки отправляемых изменений недавно интегрировали инструмент Sashiko от Google.
Некоторые из высказываний Грега:
"Несколько месяцев назад мы получали то, что мы называли AI-мусор - сгенерированные через AI отчёты о проблемах с безопасностью, которые были явно неверными или низкого качества. Это было даже забавно. Мы не особо об этом беспокоились... Месяц назад произошло нечто, и ситуация кардинально изменилась. Теперь у нас появляются корректные отчёты."
"Подобная ситуация наблюдается не только в Linux, - все открытые проекты получают подобные отчёты, составленные с помощью AI, но теперь они качественные и валидные. Команды, отвечающие за безопасность в крупнейших открытых проектах, в ходе неформального общения между собой фиксируют одну и ту же тенденцию."
На вопрос, чем это вызвано, Грег ответил: "Мы не знаем. Похоже, никто не знает. Либо многие инструменты стали намного лучше, либо люди начали говорить: 'Эй, давайте разберёмся с этим'. Похоже, это касается множества разных групп и компаний. Что касается ядра, мы с этим справимся. Наша команда стала намного больше, она очень разбросана по миру, и наш рост - это реальность, и он не замедляется. Это мелочи, ничего серьёзного, но помощь в этом вопросе может потребоваться для всех открытых проектов. У небольших проектов гораздо меньше возможностей справиться с внезапно возросшим потоком отчётов об ошибках и уязвимостях, сгенерированных AI, в которых упоминаются настоящие ошибки, а не мусор".
Грег рассказал, что когда он попросил AI найти ошибки из предложенного набора изменений - тот нашёл 60 и предоставил патчи для их исправления. Только треть найденных ошибок являлись таковыми, а из патчей лишь 2/3 оказались верными решениями, не требующими доработки, но всё это было далеко не бесполезно. По словам Грега, мэйнтенеры не могут это игнорировать, тем более, что результаты работы AI становятся всё лучше. Для пометки патчей, созданных с использованием AI, добавили тег "Co-developed-by:". При этом, несмотря на отдельные попытки применения AI для создания новой функциональности, в основном AI в ядре пока используется при рецензировании изменений.
Одним из самых заметных преимуществ AI называется сокращение времени обработки патчей. Когда AI-ассистент выявляет очевидные проблемы, авторы патчей получают отзыв задолго до того, как реальный мэйнтейнер успел бы прочитать патч: "Если я вижу, что система реагирует на что-то, она даёт отзыв автору быстрее, чем это смог бы сделать мэйнтейнер, и это здорово. У нас и так есть ряд ботов, которые проверяют патчи. Если я замечаю, что они выдают ошибку, я сразу понимаю, что мне как мэйнтейнеру даже не нужно на это смотреть. А разработчик думает 'О, я могу завтра сделать другую версию', что помогает немного улучшить обратную связь".
После года разработки опубликован релиз открытой системы параметрического 3D-моделирования FreeCAD 1.1, которая отличается гибкими возможностями кастомизации и наращивания функциональности через подключение дополнений. Интерфейс построен с использованием библиотеки Qt. Дополнения могут создаваться на языке Python. Поддерживается сохранение и загрузка моделей в различных форматах, в том числе в STEP, IGES и STL. Код FreeCAD распространяется под лицензией LGPLv2, в качестве моделирующего ядра используется Open CASCADE. Готовые сборки подготовлены для Linux (AppImage), macOS и Windows.
FreeCAD позволяет, меняя параметры модели, обыгрывать различные варианты проектирования и оценивать работу в различные моменты разработки модели. Проект может выступать свободной заменой коммерческим САПР, таким как CATIA, Solid Edge и SolidWorks. Несмотря на то, что основным назначением FreeCAD является машиностроение и разработка дизайна новых продуктов, система может использоваться и в других областях, таких как архитектурное проектирование.
В интерфейсе пользователя реализована поддержка трёхточечного освещения для повышения качества отрисовки 3D-моделей.
В систему настройки добавлена панель поиска.
Добавлен новый редактор тем оформления и расширены возможности для изменения таблицы стилей.
Расширены возможности диалога для добавления свойств, в котором появилась поддержка вычисляемых выражений, перечислений и единиц измерения. В редакторе свойств улучшено автодополнение табуляцией, работа с наборами переменных (VarSet) и масштабирование окна.
В окружении для создания заготовок (Part Design) реализованы опции для использования прозрачности и подсветки эскиза при предпросмотре для оценки скрытых поверхностей и структуры детали в объёме. Добавлены интерактивные элементы управления, позволяющие манипулировать параметрами в окне 3D-виде, перетаскивая элементы мышью. Переработана панель задач в инструменте проектирования отверстий (Hole Tool), в которой обеспечено скрытые нерелевантных и показ только актуальных элементов для текущей конфигурации.
Добавлен инструмент "Уточнить выбор" Clarify Selection, позволяющий уточнить выделение скрытых или внутренних элементов. Активация инструмента производится горячей клавишей, через контекстное меню или при удержании левой кнопки мыши, после чего геометрия модели становится прозрачной и показывается меню выбора перекрывающихся объектов.
В окружении CAM, применяемом для создания машинных инструкций к станкам с ЧПУ из 3D-моделей, предложена новая система управления инструментами. Компонент
CAM Tool Management заменён на пакет Better Tool Library, ранее развиваемый в форме внешнего плагина.
В CAM также добавлены новые интерфейсы для редактирования и выбора тулбитов (ToolBits), появилась возможность импорта из симулятора G-Code Camotics, предоставлены утилиты командной строки для импорта и экспорта, реализован режим Drag & Drop и возможность использования буфера обмена, добавлен браузер форм (shape browser), встроена функция поиска инструментов, для хранения библиотек инструментов задействован формат JSON.
Добавлены инструменты для создания опорных элементов (Core Datum), применяемых при проектировании моделей, таких как системы координат, опорные точки, вспомогательные плоскости и линии.
Полностью переработан инструмент трансформации (Transform). Добавлена возможность выравнивания перетаскивателя (Dragger) по центру масс объекта, а также учёта локальной (U, V, W) или глобальной системы координат. Добавлена функция перемещения объекта на целевую позицию в документе.
Расширены возможности окружений для проектирования работы сборных многокомпонентных конструкций (Assembly), моделирования строительных объектов (BIM, Building Information Modelling), двумерного рисования (Draft), анализа воздействий (FEM, Finite Element Module), работы с материалами (Material), создания деталей (Part), эскизов 2D-фигур (Sketcher), ведения электронных таблиц с параметрами моделей (Spreadsheet), 2D-моделирования и создания 2D-проекций 3D-моделей (TechDraw).
Улучшена работа в системах на базе Wayland.
Одновременно опубликован выпуск параметрической системы 2D- и 3D-моделирования SolveSpace 3.2. Система поддерживает различные методы моделирования 3D-деталей (выдавливанием, вращением и т.п.), может имитировать плоские и пространственные связи, использовать плоскую и объёмную геометрию при создании чертежей, экспортировать модели в двумерных и объёмных форматах, таких как PDF, SVG, HPGL, STEP, DXF и STL. Код проекта написан на языке С++ и распространяется под лицензией GPLv3.
В SolveSpace 3.2 в дополнение к интерфейсу на GTK предложен опциональный фронтэнд для Linux на базе Qt6. Добавлена экспериментальная версия, способная работать через Web, реализованная при помощи инструментария Emscripten. Предоставлена возможность применения ограничений к граням, а также расширен спектр объектов, к которым могут применяться ограничения. Изменено поведение при работе с эскизами. Добавлена поддержка кернинга в шрифтах TrueType.
Дополнительно можно отметить развитие параметрической системы 3D-проектирования Dune 3D, оптимизированной для создания корпусов электронных устройств, изготавливаемых при помощи 3D-печати. Система поддерживает создание и ограничение эскизов в двумерном и трёхмерном пространстве, добавление скосов и скруглений на рёбра 3D-модели, импорт эталонных моделей в формате STEP, экспорт в форматах STEP, STL и DXF. Код проекта написан на языках С/C++ с интерфейсом на GTK и распространяется под лицензией GPLv3.
После двух лет разработки доступен выпуск платформы LibreQoS 2.0, предназначенной для организации справедливого распределения имеющейся полосы пропускания между пользователями и снижения негативных эффектов, возникающих из-за промежуточной буферизации пакетов (Bufferbloat) сетевым оборудованием. Платформа может использоваться провайдерами или администраторами частных сетей для оптимизации потоков трафика, поддержания задержек на минимальном уровне и распределения полосы пропускания с учётом приоритетов. Код проекта написан на языках Си, JavaScript, Python и Rust, и распространяется под лицензией GPLv2. Платформа устанавливается на сервер, размещаемый между граничным маршрутизатором провайдера и базовым маршрутизатором локальной сети.
LibreQoS позволяет снизить задержки и повысить надёжность работы интерактивных сеансов, игр, платформ online-обучения, VoIP-трафика и видеовызовов в условиях большой нагрузки на сеть, например, из-за загрузки некоторыми пользователями фильмов в несколько потоков или активности любителей torrent-ов (LibreQoS решает проблему с заиканием видеовызовов, когда кто-то в той же сети начинает загружать 4K-видео). Применение LibreQoS снижает доступную одному пользователю пиковую пропускную способность, но зато даёт возможность значительно уменьшить задержки и справедливо распределить ресурсы между всеми участниками обмена данных.
LibreQoS базируется на применении системы управления сетевыми очередями CAKE (Common Applications Kept Enhanced) и планировщика пакетов fq_codel (Fair Queuing Controlled Delay), а также использует eBPF и XDP (Express Data Path) для выполнения обработчиков на уровне сетевого драйвера с возможностью прямого доступа к DMA-буферу пакетов. Алгоритм CAKE спроектирован для замены и упрощения сложной иерархии дисциплин обработки очередей пакетов, способен выжать максимально возможную пропускную способность и предоставить минимальный уровень задержек даже на самых медленных каналах связи с провайдером и при работе на маломощных устройствах.
Проект также предоставляет средства для отслеживания задержек между отправкой запроса и получением ответа (RTT, round-trip time), в привязке к отдельным пользователям, точкам доступа и сайтам. Для анализа состояния разработан web-интерфейс, дающий возможность наглядно оценить трафик в сети, проследить изменение нагрузки и задержек, выявить наиболее активных пользователей. Возможно создание гибких иерархических схем ограничения трафика и интеграция с
UISP и Splynx для маппинга топологий и клиентов.
Выпуск LibreQoS 2.0 посвящён Дэйву Тахту (Dave Taht), скоропостижно скончавшемуся год назад в возрасте 59 лет. Дэйв руководил разработкой LibreQoS и был сооснователем проекта Bufferbloat, создателем дистрибутива CeroWrt и автором многочисленных RFC, связанных с обработкой сетевых очередей.
Модернизирован web-интерфейс оператора, в котором расширены возможности диагностики сетевых проблем и добавлены новые отчёты и графики.
В режиме древовидного просмотра (Tree view) обеспечено отображение иерархической структуры сети, улучшена обработка топологии и детализировано поведение узлов.
Добавлены новые инструменты диагностики проблем, позволяющие анализировать состояние сетевых очередей, отслеживать потоки трафика, наглядно представлять трафик в виде диаграмм Санки, выполнять мониторинг повторных передач пакетов (retransmit) и визуализировать циклы приёма-передачи TCP (RTT).
Добавлены новые режимы визуализации карт и потоков трафика, добавлен анализатор автономных систем (ASN Analysis).
Улучшена интеграции с системами организации взаимодействия с клиентами (CRM) и системами управления сетью (NMS). Добавлена поддержка интеграции с UISP,
Splynx,
Netzur,
VISP,
WISPGate,
Powercode и
Sonar.
Улучшены возможности для ограничения пропускной способности (shaping), связанные с управлениям очередями и использованием TreeGuard и StormGuard для предотвращения перегрузок.
Улучшены мониторинг состояния планировщика и информирование о критических проблемах.
После двух с половиной лет разработки опубликованы релизы растрового графического редактора Krita 5.3.0 и 6.0.0, предназначенного для художников и иллюстраторов. Редактор поддерживает многослойную обработку изображений, предоставляет средства для работы с различными цветовыми моделями и предлагает инструменты для цифровой живописи, создания скетчей и формирования текстур. Для установки подготовлены самодостаточные образы в формате AppImage для Linux, APK-пакеты для Android, а также бинарные сборки для macOS и Windows. Проект написан на языке С++ с использованием библиотеки Qt и распространяется под лицензией GPLv3.
Ветки Krita 5.3 и 6.0 развивались параллельно, построены на одной кодовой базе и выпущены одновременно. Базовая функциональность у веток 5.3 и 6.0 совпадает, различия сводятся к переводу ветки 6.0 на использование библиотеки Qt6, в то время как в Krita 5.3 продолжает применяться Qt5. Помимо портирования на Qt6 ветка Krita 6.0 примечательна предоставлением поддержки Wayland, дробного масштабирования, 10-разрядного представления цвета и отображения содержимого с расширенным динамическим диапазоном (HDR), реализованного при помощи Wayland-протокола color-management-v1.
Полностью переработана и значительно расширена функциональность для работы с текстом. Появилась возможность редактирования текста прямо на холсте, используя привычную навигацию по тексту при помощи мыши и клавиатуры. Реализован отдельный режим типографики для редактирования на холсте свойств текста, таких как размер шрифта, методы выравнивания, высота строки и позиция каждого глифа, без вызова отдельного диалога с настройками.
Добавлена возможность автоматического обтекания текстом одной или нескольких векторных фигур, а также заполнения текстом определённой области и выравнивания текста по заданному контуру.
Реализована отдельная панель для настройки стиля текста, предоставляющая более 50 редактируемых свойств. Имеется возможность одновременного редактирования нескольких текстовых объектов, настройки видимости свойств и автоскрытия неиспользуемых свойств. Расширена панель выбора шрифтов, в которой обеспечено индексирование имеющихся шрифтов в системе, добавлена пометка шрифтов тегами, расширен поиск и обеспечен вывод примеров и названий с учётом выбранного языка. Добавлена возможность сохранения преднастроек стилей для быстрого применения сохранённых наборов свойств к текущему тексту.
Реализована полная поддержка формата OpenType и добавлена палитра грифов, позволяющая выбирать альтернативные глифы, доступные для текущего шрифта.
Добавлен инструмент редактирования комиксов, позволяющий быстро разделять и объединять векторные объекты для упрощения создания раскладки картинок в стиле комиксов.
В инструменте трансформации реализована возможность поворота рамки вокруг выделенной области независимо от ориентации пикселей для упрощения трансформации объектов, расположенных под углом. Заметно ускорена работа режима пластической деформации (liquify).
Реализовано адаптивное изменение степени сглаживания в зависимости от скорости рисования (при медленном движении для компенсации дрожания руки сглаживание усиливается, а при быстром - уменьшается). Добавлен отдельный режим стабилизации пиксельной графики, позволяющий повысить чёткость при рисовании однопиксельными линиями.
Реализована плавающая панель с инструментами для работы с выделенной областью, появляющаяся при наличии выделения.
Добавлена возможность рисования одновременно несколькими кистями с фиксированным интервалом между ними.
В инструмент заливки добавлена опция "Размыть выделение" ("Close Gaps"), позволяющая автоматически перекрывать небольшие разрывы в линиях при определении области заливки.
Добавлен фильтр "Выбрать цвет" ("Propagate Colors"), который расширяет цвета в прозрачные области, т.е. заполняет окружающие объект прозрачные пиксели соседними цветами, расширяя непрозрачную область на указанное расстояние. В дополнение добавлен фильтр "Сбросить прозрачность" ("Reset Transparent"), который принудительно обнуляет остаточные цветовые каналы для всех полностью прозрачных пикселей.
Добавлен фильтр "Наложение цвета" ("Fast Color Overlay Mask") для быстрой тонировки эскизов заданным цветом.
В командах трансформации зеркало, поворот, масштабирование, сдвиг и смещение реализована возможность работы одновременно с несколькими выделенными слоями.
В панели записи (Recorder Docker) реализован многопоточный захват кадров, позволяющий выполнять запись видео в реальном времени.
Реализована возможность добавлять панели (Docker) во всплывающую палитру и вплывающие окна с инструментами.
Для кистей реализован режим мягкого текстурирования, при котором сила нажатия контролирует интенсивность прорисовки текстуры кисти.
Обеспечено автоматическое инвертирование текстуры кисти в режиме ластика.
В редакторе кистей появился режим углов для кривых, позволяющий использовать заострённые переходы между кривыми.
Добавлен режим наложения "Marker", предотвращающий накопление непрозрачности при нанесении нескольких штрихов.
Добавлена поддержка форматов файлов Radiance RGBE (.hdr), многослойных и многостраничных изображений JPEG-XL, PSD-изображений с фигурами, текстом, направляющими и векторными масками.
Состоялся первый публичный релиз проекта VitruvianOS, c 2019 года развивающего операционную систему на базе Debian/Linux, которая переносит простоту, отзывчивость и гибкость BeOS на современное оборудование и реализует API-совместимость с приложениями, созданными для Haiku и BeOS. Код проекта написан на языке С++ и распространяется под лицензией GPLv2.
VitruvianOS использует компоненты пользовательского пространства из ОС Haiku. Вместо привычных оконных менеджеров X11 и композитных серверов Wayland для вывода графики в VitruvianOS применяется app_server - графический сервер из Haiku, адаптированный для работы поверх Linux KMS/DRM. В качестве графического тулкита используется реализация Interface Kit из Haiku. Вместо systemd в будущем планируется использовать систему инициализации janus_daemon, который будет работать как launch_daemon в Haiku.
Для реализации большей части BeAPI используется своя версия библиотеки libroot, которая оборачивает многие нестандартные функции Haiku/BeOS поверх Linux, что даёт возможность запускать приложения и использовать более высокоуровневые компоненты Haiku OS на стандартном ядре Linux. Для реализации специфичных функций Kernel Kit из BeAPI разработана подсистема ядра Nexus, реализующая API node_monitor, отслеживание устройств и обмен сообщениями в стиле BeOS, что позволяет реализовать все специфические технологии Haiku/BeOS поверх ядра Linux.
На данный момент реализовано:
Загрузка с файловых систем XFS и SquashFS с полной поддержкой расширенных атрибутов (xattr).
Модифицированное ядро Linux-rt для повышения отзывчивости при выполнении десктоп-задач.
Слой совместимости с API BeOS/Haiku c поддержкой нативных приложений.
Deskbar, Tracker и основные компоненты рабочего стола Vitruvian.
Система ввода с поддержкой мыши, жестов, планшетов и многого другого.
Специально разработанный графический слой (без использования X11 и Wayland).
Планируется:
В версии 0.3.1 будут включены многие недостающие компоненты и исправлены ошибки, основанные на первых отзывах пользователей.
В версии 0.3.2 ожидается создание самодостаточной системы, в которой VitruvianOS сможет собираться самостоятельно.
В версии 0.4 будет проведена стабилизация и расширена поддержка аппаратного обеспечения, включая продолжающуюся разработку ARM-версии (arm32 и aarch64).
Разработчики Python-библиотеки LiteLLM, насчитывающей 95 млн загрузок в месяц и 3.5 млн за последние сутки, сообщили о компрометации проекта. Атакующие смогли перехватить учётные данные сопровождающего и опубликовать в PyPI два вредоносных выпуска - 1.82.7 и 1.82.8, содержащих код для кражи ключей и паролей с систем пользователей. В настоящее время вредоносные версии удалены из PyPI, а проект временно заморожен до окончания разбирательства.
Токен доступа к учётной записи LiteLLM в PyPI попал в руки атакующих из-за использования в системе непрерывной интеграции сканера безопасности зависимостей trivvy. До этого в конце февраля атакующие смогли получить доступ к инфраструктуре проекта Trivy, воспользовавшись уязвимостью в обработчике pull_request_target, запускаемом в системе непрерывной интеграции Trivy. После компрометации атакующие опубликовали вредоносные выпуски Trivy 0.69-0.69, подменили GitHub Action обработчик trivy-action и разместили модифицированный Docker-образ с Trivy.
24 марта в 11:30 (MSK) перехваченные учётные данные сопровождающего LiteLLM (krrishdholakia) были использованы для прямой публикации вредоносных релизов LiteLLM 1.82.7 и 1.82.8 в PyPI в обход официального GitHub CI/CD. Репозиторий проекта на GitHub не пострадал - вредоносная активность наблюдалась только в PyPI. В выпуске LiteLLM 1.82.7 вредоносный код был встроен в файл litellm/proxy/proxy_server.py и активировался при импорте litellm.proxy. В выпуске 1.82.8 в состав был включён файл site-packages/litellm_init.pth, а в файл proxy_server.py был добавлен обработчик, упакованный в формате base64 и активируемый при любом запуске.
Добавленный вредоносный код осуществлял сканирование и отправку конфиденциальных данных. Отправлялись найденные в системе ключи SSH и SSL/TLS, содержимое переменных окружения, учётные данные к AWS, GCP, Azure и K8s, ключи от криптокошельков, пароли к СУБД, история операций в командном интерпретаторе, файлы конфигурации от Git, CI/CD, пакетных менеджеров и Docker. Обнаруженные данные шифровались с использованием алгоритмов AES-256-CBC + RSA-4096 и отправлялись HTTP POST-запросом на сайт "https://models.litellm.cloud/" (домен litellm.cloud был зарегистрирован за несколько часов до публикации вредоносных релизов).
Пользователям LiteLLM рекомендовано убедиться в отсутствии в каталоге site-packages файла litellm_init.pth, обновить все ключи и учётные данные в случае установки версии 1.82.7 или 1.82.8, закрепить конкретные версии LiteLLM в параметрах загрузки зависимостей и сверить используемые выпуски LiteLLM с кодом релизов на GitHub.
Включена поддержка режима Split View, позволяющего бок о бок в одном окне просмотреть содержимое двух вкладок. Режим активируется через кнопку "Add Split View" в контекстном меню, показываемом при клике правой кнопкой мыши на вкладках. При нажатии данной кнопки содержимое окна разделяется на две части и в правой части открывается содержимое страницы новой вкладки. Если выбрать опцию для группы из двух вкладок, указанные вкладки сразу будут раскрыты рядом с друг другом. Допускается произвольное изменение размера правой и левой области просмотра через перетаскивание мышью полосы-разделителя. Активная вкладка при одновременном просмотре выделяется красной рамкой.
В состав интегрирован бесплатный VPN-сервис Firefox VPN (не путать с Mozilla VPN), позволяющий обращаться к сайтам не напрямую, а через промежуточные прокси-серверы в разных странах, скрывающие IP-адрес пользователя. Имеется возможность включать VPN только для выбранных сайтов. Для активации VPN необходима регистрация учётной записи в Mozilla. На первом этапе VPN-сервис доступен пользователям из США, Франции, Германии и Великобритании. В VPN-сервисе действует ограничение в 50 гигабайт трафика в месяц.
Добавлена функция Tab Notes для прикрепления произвольных примечаний к вкладкам. Кнопка для добавления заметок помещена в контекстное меню и также показывается на эскизе, появляющемся при наведении курсора на вкладке. Для включения можно использовать настройку "browser.tabs.notes.enabled" на странице about:config или опцию в секции Firefox Labs на странице с настройками (about:preferences#experimental).
Предложена панель TrustPanel, вызываемая при нажатии на пиктограмму с изображением щита перед адресной строкой и комбинирующая ранее выводимые раздельно панели c параметрами приватности и безопасности.
Добавлена защита от отправки нечистыми на руку сайтами фоновых уведомлений для рекламы, спама и фишинга. Уведомления теперь автоматически блокируются, а предоставленные полномочия отзываются для любых сайтов, помеченных вредоносными сервисом SafeBrowsing.
Для ускорения вывода PDF-файлов задействовано аппаратное ускорение.
В конфигуратор панели (Customize Toolbar) добавлена возможность добавления на панель кнопки Share для отправки текущей вкладки другим пользователями и на другие устройства при помощи предоставляемых платформами Windows и macOS системных сервисов обмена информацией.
Для уменьшения поверхности атаки ужесточены требования к JavaScript-файлам, которые могут запускаться в родительском процессе, отвечающим за запуск дочерних процессов и базовую функциональность браузера, такую как интерфейс, профили, управление процессами и навигация.
Переделано оформление страниц, показываемых при возникновении ошибок при попытке открытия сайтов.
На платформе Linux вместо диалога GTK3 по умолчанию теперь используется XDG-портал org.freedesktop.portal.FileChooser, предоставляющий более функциональный интерфейс для выбора файлов.
Повышена надёжность загрузки с использованием протокола HTTP/3 при нестабильном сетевом соединении.
На платформе Windows для доступа к информации о местоположении задействован API Windows.Devices.Geolocation вместо старого API времён Windows 7.
Реализация декодировщика формата изображений JPEG XL переведена на использование библиотеки jxl-rs, написанной на языке Rust. Поддержка JPEG XL пока отключена по умолчанию и требует активации параметра "image.jxl.enabled" на странице about:config.
В инструментах для web-разработчиков в панель инспектирования хранилища добавлена кнопка для удаления всех записей в выбранном хранилище. В панели работы со стилями рядом с каждым CSS-элементом, связанным с показываемым в секции "Computed" вычисляемым значением, добавлена пиктограмма для перехода к этому элементу в секции "Rules".
Добавлена возможность вызова предоставляемой браузером реализации выпадающего меню при помощи метода showPicker() для
показа рекомендаций автозаполнения текстового поля <input type="text"> на основе вариантов, определённых в блоке <datalist>.
В CSS-свойство "shape-outside" добавлена поддержка функций rect() и xywh() для формирования области обтекания текста. Ранее данные функции поддерживались только в CSS-свойствах clip-path и offset-path.
Для выбора шрифта с дополнительными математическими символами в CSS-свойство "font-family" добавлена поддержка значения "math", которое также используется по умолчанию для шрифта при выводе содержимого элемента <math>.
В HTML-элементы добавлена поддержка атрибута 'popover="hint"', позволяющего отображать автоматически скрываемые всплывающие подсказки, не приводящие к скрытию других типов всплывающих popover-блоков.
Для мультимедийных элементов (<audio>, <video>)
включена поддержка псевдо-классов
":playing",
":paused",
":seeking",
":muted",
":buffering",
":stalled" и ":volume-locked".
Включена соответствующая требованиям спецификации реализация API HTMLMediaElement.captureStream(), позволяющего захватывать содержимое, отрисовываемое при помощи HTMLMediaElements (например, контент, выводимый через теги video и audio).
Добавлен API Reporting для получения информации о различных возможностях и проблемах, таких как нарушении правил CSP (Content Security Policy), Permissions-Policy, Integrity-Policy, Cross-Origin-Embedder-Policy, а также использовании устаревшей функциональности.
Реализован API CloseWatcher, позволяющий отслеживать в web-приложениях Close-запросы и реагировать на их поступление (например, можно создать обработчик нажатия кнопки "назад" на Android-смартфоне). Close-запросы формируются при попытке закрытия модальных (<dialog>) и всплывающих диалогов (popover="") через нажатие клавиши Esc, использование кнопки "назад" или экранный жест на смартфонах.
В версии
Firefox для Android проведена работа по улучшению навигации и обновлены панель инструментов, список вкладок и меню. Добавлена возможность закрытия всплывающих popover-элементов и диалогов системной кнопкой "назад". Добавлена настройка "media.peerconnection.ice.obfuscate_host_addresses" для обфускации имён хостов, определяемых через mDNS, что позволяет скрыть информацию о внутренних адресах при использовании WebRTC.
Кроме новшеств и исправления ошибок в Firefox 149 устранено 70 уязвимостей. 55 уязвимостей вызваны проблемами работы с памятью, такими как переполнения буферов и обращение к уже освобождённым областям памяти. Потенциально данные проблемы способны привести к выполнению кода злоумышленника при открытии специально оформленных страниц.
Компания Microsoft опубликовала релиз TypeScript 6.0, языка для разработки web-приложений, расширяющего возможности JavaScript, и связанного с ним инструментария. Код компилятора, транслирующего код TypeScript в представление JavaScript, распространяется под лицензией Apache 2.0, разработка ведётся в публичном репозитории через сервис GitHub. Спецификации языка открыты и опубликованы в рамках соглашения Open Web Foundation Specification Agreement.
Язык TypeScript расширяет возможности JavaScript, оставаясь полностью обратно совместимым, что упрощает перевод существующих приложений на TypeScript. Итоговое приложение на TypeScript компилируется в обычный JavaScript, который можно выполнить в любом современном web-браузере или использовать c платформами Node.js, Bun и Deno. В программах на TypeScript можно использовать существующие JavaScript-библиотеки. От JavaScript язык TypeScript отличается средствами для явного определения типов, а также поддержкой использования полноценных классов. Статическая типизация позволяет избежать многих ошибок в процессе разработки, даёт возможность задействовать дополнительные техники оптимизации, упрощает отладку, делает код более читаемым и простым для доработки и сопровождения.
Ветка TypeScript 6.0 отмечена как последняя, поставляемая с компилятором на языке TypeScript, транслируемом в JavaScript. В ветке TypeScript 7.0 проект перейдёт на новый компилятор typescript-go (tsgo), разрабатываемый с 2024 года на языке Go. Новый компилятор существенно увеличит скорость сборки, уменьшит потребление памяти и сократит время запуска редакторов кода, что решит наблюдаемые ныне проблемы с масштабированием при использовании в очень больших проектах. Также будет предоставлен компактный инструментарии командной строки, позволяющий быстро собирать код для проверки его работоспособности.
Ветка TypeScript 6.x продолжает поставляться со старым компилятором, но включает отдельные изменения для подготовки к миграции на новую реализацию. Впуск TypeScript 6.0 позиционируется как
связующее звено между ветками TypeScript 5.9 и 7.0, и содержит изменения, главным образом нацеленные на упрощение будущего перехода на ветку TypeScript 7.0. Для тестирования доступен предварительный выпуск TypeScript 7.0, опубликованный в форме дополнения к VSCode и NPM-пакета. После релиза TypeScript 7.0 ветки 6.x и 7.x будут сосуществовать и сопровождаться параллельно до тех пор, пока ветка TypeScript 7.x не достигнет зрелого состояния, готового полностью заменить старый инструментарий.
Среди изменений в TypeScript 6.0:
Реализована возможность использования префиксов "#/" в стиле Node.js для импорта псевдонимов модулей, определённых внутри пакета, вместо указания относительных путей. Например, 'import * as utils from "#root/utils.js"' вместо 'import * as utils from "../../utils.js'.
Добавлен флаг "--stableTypeOrdering" для включения применяемого в ветке TypeScript 7 алгоритма детерминированной сортировки типов внутри компилятора, гарантирующего одинаковый порядок определения типов в любых окружениях. Режим рекомендуется использовать только для диагностики возможных проблем перед переходом на ветку TypeScript 7, так как его включение в TypeScript 6.0 может замедлить компилятор на 25%.
Реализованы встроенные типы для API Temporal, предлагающего альтернативные методы для работы с датами и временем, позволяющие манипулировать датами с учётом и без учёта часовых поясов, конвертировать время, форматировать вывод и выполнять арифметические операции со временем.
Добавлены типы для upsert-методов getOrInsert и getOrInsertComputed в объектах Map и WeakMap, возвращающих уже имеющееся в коллекции значение, ассоциированное с указанными ключом, или создающих новую запись, если ключа не нашлось.
Добавлена поддержка функции RegExp.escape, экранирующей спецсимволы в строках для
из безопасного использования в качестве шаблона внутри регулярных выражений, задаваемых через конструктор RegExp().
Изменены настройки по умолчанию:
Параметр rootDir теперь указывает на текущий каталог ".", в котором размещён файл конфигурации tsconfig.json, в не на типовой каталог с исходным кодом.
Поле "types" в tsconfig.json теперь определяется как "[]" вместо "["*"]", т.е. TypeScript теперь по умолчанию не включает все пакеты из "node_modules/@types" и требует явного указания глобальных пакетов (например, ["node", "jest"])). Изменение приводит к сокращению времени компиляции на 20-50%.
Значение target теперь включает актуальную версию ECMAScript (es2025). В поле tagret объявлена устаревшей версия es5 (ECMAScript 5), в качестве минимальной заявлена версия es6 (ECMAScript 2015).
По умолчанию активирован режим strict для строгой проверки типов.
Параметр module по умолчанию выставлен в значение "esnext", включающем поддержу JavaScript-модулей (ESM) с директивами import и export, вместо устаревшего формата CommonJS.
Для повышения производительности компилятора объявлены устаревшими:
Опция "--baseUrl".
Использование ключевого слова module для определения пространств имён модулей ("module Foo { ... }" вместо "namespace Foo { ... }").
Опция "--outFile " (следует использовать внешние упаковщики, такие как esbuild, Rollup, и Webpack);
Режим "--moduleResolution: classic" (рекомендуется использовать nodenext или bundler).
Компания Qt Company опубликовала релиз фреймворка Qt 6.11, в котором продолжена работа по стабилизации и наращиванию функциональности ветки Qt 6. В Qt 6.11 предоставлена поддержка платформ Windows 10+, macOS 13+, Linux (Ubuntu 22.04/24.04, openSUSE 15.6/16, SUSE 15 SP6, RHEL 8.10/9.6/10, Debian 11.6/12), iOS 17+, Android 9+(API 23+), webOS, WebAssembly, INTEGRITY, VxWorks, FreeRTOS и QNX. Исходные тексты компонентов Qt поставляются под лицензиями LGPLv3 и GPLv2. Qt 6.11 получил статус промежуточного выпуска, общедоступная поддержка которого будет осуществляться 6 месяцев (+ ещё 6 месяцев для коммерческих пользователей).
Добавлен модуль Qt Canvas Painter, предоставляющий API для аппаратно ускоренной отрисовки 2D-контента, построенный с оглядкой на HTML-спецификацию Canvas 2D Context. Для отрисовки задействован движок RHI (Rendering Hardware Interface), поддерживающий различные 3D API (OpenGL, Vulkan, Metal и Direct 3D), благодаря чему удалось добиться существенного повышения производительности. В проведённых тестах Qt Canvas Painter оказался быстрее QPainter с бэкендом OpenGL в 2 раза на типовом ноутбуке Lenovo ThinkPad P16 Gen 2, в 5 раз на бюджетном Android-планшете Lenovo Tab M10 HD и в 10 раз на топовом Android-планшете Samsung Galaxy Tab S8.
Помимо высокой производительности в Qt Canvas Painter реализована поддержка таких расширенных возможностей, как настраиваемое сглаживание (antialiasing), обрамляющие градиенты и тени (QCanvasBoxGradient и QCanvasBoxShadow наподобие CSS-свойства box-shadow), сетчатые шаблоны (QCanvasGridPattern), пользовательские шейдерные кисти и цветовые эффекты для изменения прозрачности, яркости, контраста и насыщенности.
Функциональность модуля Qt Quick 3D приближена к возможностям игровых движков. Добавлена поддержка техники рендеринга
SSGI (Screen Space Global Illumination) для симуляции отражения света от поверхностей на стадии пост-обработки (альтернатива запеканию карт освещения (lightmap)) и SSR (Screen Space Reflections) для реалистичной отрисовки отражений в реальном времени. Алгоритм сглаживания движущихся объектов улучшен за счёт генерации векторов движения для каждого объекта. Реализованы настраиваемые проходы рендеринга (render-pass), которые можно использовать напрямую из QML для масок слоёв, эффектов пост-обработки и определения объектов по цвету (color picking). Добавлены новые программные интерфейсы для слоёв и тегов, позволяющие управлять отдельными проходами рендеринга, включением элементов на разных этапах конвейера рендеринга (render pipeline) и перенаправлением в целевые буферы рендеринга.
Расширены возможности модуля Qt Graphs. Добавлен тип CustomSeries, позволяющий создавать собственные графики, в которых за отрисовку каждого элемента данных отвечает заданный пользователем делегат. В
3D-графиках реализована поддержка нескольких экземпляров осей, например, в QBar3DSeries можно использовать отдельные оси для rowAxis, valueAxis и columnAxis, а в QScatter3DSeries и QSurface3DSeries - отдельные оси для axisX, axisY и axisZ. Добавлены новые свойства для переопределения цветов для отдельных осей, настройки градиентов на графиках, изменения стиля линий, позиционирования меток. Добавлен пример создания настраиваемых 2D- и 3D-графиков - Wind Turbine Dashboard.
Добавлен экспериментальный модуль Qt TaskTree, предоставляющий декларативный подход для создания и выполнения асинхронных задач на C++. Ключевыми компонентами Qt TaskTree являются: "рецепты" - повторно используемые объекты, описывающие асинхронный рабочий процесс; "группы" - определяют политики для дочерних задач; "хранилище" для совместного использования данных между задачами; "итераторы" для циклов и повторного выполнения задач. Qt TaskTree также решает проблему несовместимости между API, унифицируя различные асинхронные API в типовой интерфейс.
Расширены возможности для работы с анимированной векторной графикой, формируемой из изображений в форматах SVG и Lottie. Стабилизированы модуль Qt Quick VectorImage и инструмент lottietoqml.
Добавлена поддержка морфинг-анимации, масок SVG, символов SVG и слоёв-масок (matte layer, для управления видимостью другого слоя).
В Qt Quick Controls добавлен компонент DoubleSpinBox. В DialogButtonBox реализована возможность управления обработкой кнопок по умолчанию. В эффекте RectangularShadow появилось независимое управление радиусами углов.
В Qt Widgets в QWizard добавлена опция StretchBanner; в QAbstractItemView реализован параметр keyboardSearchFlags для настройки поведения поиска по мере нажатия клавиш; в QColumnView добавлено свойство для управления видимостью предпросмотра.
Добавлен модуль Qt OpenAPI, позволяющий сгенерировать код HTTP-клиента, использующего Qt Networks RESTful API, на основе спецификации OpenAPI в формате YAML.
В модуль Qt GRPC добавлен механизм для управления потоком и содержимым запросов и ответов.
В модуле Qt HTTP Server расширены средства управления лимитами и улучшена обработка ответов в рабочем потоке. В QNetworkRequest появилась возможность настройки параметров TCP Keep Alive (по умолчанию неактивные соединения автоматически завершаются через 2 минуты).
В QML Language Server, применяемый для интеграции с IDE, добавлена информация о месте определения типа QML в коде C++ для упрощения навигации между QML и C++ из IDE - при работе с C++ кодом можно находить QML объекты по идентификаторам и легко обходить иерархию QML-контекстов.
В дополнение к QRangeModel реализован класс QRangeModelAdapter, предоставляющий C++ API для изменения данных модели, взаимодействуя через протокол QAbstractItemModel, что упрощает передачу данных из кода бэкенда на C++ в Qt Quick или Qt Widget.
Добавлена поддержка платформы Android 16. Реализована функциональность Google Play Feature Delivery для разделения приложения на пакеты (основной пакет устанавливается из Google Play сразу, а дополнительные подгружаются по мере необходимости). Для Android Automotive реализована поддержка запуска Qt без Android-зависимостей для быстрого старта отрисовки.
Дополнительно можно отметить опубликованный на днях релиз интегрированной среды разработки Qt Creator 19, предназначенной для создания кроссплатформенных приложений с использованием библиотеки Qt. Поддерживается как разработка классических программ на языке C++, так и использование языка QML, в котором для определения сценариев используется JavaScript, а структура и параметры элементов интерфейса задаются CSS-подобными блоками. Готовые сборки сформированы для Linux, Windows и maсOS.
Из новшеств выделяется режим minimap (Preferences > Text Editor > Display > Enable minimap), выводящий рядом с полосой прокрутки мини-эскиз всего содержимого, позволяющий разом охватить взглядом весь код.
В состав встроен простой MCP-сервер для интеграции с AI-ассистентами, позволяющий открывать файлы и проекты, запускать сборку, производить отладку. Упрощена настройка сборки на внешних устройствах - добавлена кнопка Run Auto-Detection для автоматического определения версии Qt, компилятора, отладчика и CMake после регистрации устройства. Реализована поддержка прямого доступа к файловым системам подключённых устройств, Android-устройств и эмуляторов.
Компания Canonical опубликовала инструментарий управления облачной инфраструктурой MicroCloud 3.1 (первый выпуск ветки 3.x), позволяющий быстро развёртывать на своём оборудовании облачные системы и вычислительные кластеры с общим распределённым хранилищем данных и защищённой виртуальной сетью. MicroCloud оформлен в виде snap-пакета, включающего компоненты, необходимые для управление работой узлов кластера. Инструментарий написан на языке Go и распространяется под лицензией AGPL 3.0.
MicroClouds позволяет создавать кластеры, насчитывающие от 3 до 50 узлов при включении обеспечения отказоустойчивости. Программный стек для управления кластером основан на инструментарии LXD, платформе для построения виртуальных сетей OVN (Open Virtual Network) и распределённом отказоустойчивом хранилище Ceph. Настройка LXD, Ceph и OVN на всех узлах кластера осуществляется автоматически. В качестве основной платформы рассматривается дистрибутив Ubuntu Server, но инструментарий не привязан к Ubuntu и может быть использован в любых дистрибутивах, для которых доступна возможность установки инструментария snap (Arch Linux, CentOS, Fedora, Debian, openSUSE, RHEL и т.п.).
Для определения новых серверов в сети, которые могут быть подключены к кластеру, используется mDNS, что позволяет настроить весь кластер запустив всего одну команду "microcloud init" на одном из узлов и команду "sudo microcloud join" на остальных узлах, предварительно установив snap-пакеты lxd, microceph, microcloud и microovn. После запуска команды "microcloud init" инструментарий определит наличие других серверов в локальной сети, выдаст запрос на добавление дисков в общее хранилище Ceph и предложит настроить параметры виртуальной сети. Для добавления дополнительных узлов после завершения инициализации можно использовать команду "microcloud add". Конфигурация кластера может быть сохранена в формате YAML для последующего развёртывания аналогичных систем.
Общее файловое хранилище создаётся с включением репликации и отказоустойчивости, позволяющих в случае выхода из строя отдельных узлов не потерять данные, благодаря хранению нескольких экземпляров данных на разных узлах. Для развёртывания хранилища на базе Ceph в кластере, помимо локальных дисков, на трёх разных компьютерах должны присутствовать как минимум три отдельных диска, отведённых для распределённого хранения данных.
После готовности кластера пользователям предоставляется возможность запуска своих приложений, используя контейнеры или виртуальные машины, а также возможность доступа к общему хранилищу Ceph и инструментарию централизованного управления на базе LXD. Возможно гибкое управление предоставляемыми ресурсами CPU, памяти и ввода/вывода, проброс в окружения USB-устройств, GPU и накопителей. Изолированные и виртуальные окружения могут переноситься между узлами в режиме live-миграции и сохраняться с использованием снапшотов. Метрики о работе кластера и лог событий могут экспортироваться для мониторинга при помощи Prometheus и Grafana.
Добавлена поддержка использования Cluster Manager для централизованного мониторинга и управления несколькими кластерами MicroCloud в одном приложении.
После завершения интерактивной установки кластера командой "microcloud init" обеспечен вывод запроса, позволяющего формировать ссылку для временного доступа в управляющий web-интерфейс, что позволяет сразу перейти в web-интерфейс LXD, через который можно создавать и настраивать узлы, сети, пулы хранения, образы, группы полномочий и т.п. Временный вход действует 24 часа (предполагается, что этого времени хватит для настройки постоянного доступа).
Добавлена экспериментальная поддержка MicroOVN 26.03 (Micro Open Virtual Network), набора фоновых процессов для Open vSwitch, транслирующих конфигурацию виртуальной сети в OpenFlow. В отличие от Open vSwitch в MicroOVN предоставляется более высокий уровень абстракций, работающий не с потоками, а с логическими маршрутизаторами и коммутаторами.
Организация CZ.NIC, являющаяся регистратором чешского домена первого уровня CZ и разработчиком свободного DNS-сервера Knot, представила маршрутизатор Turris Omnia NG Wired, построенный на одной платформе с выпущенным в прошлом году беспроводным маршрутизатором Turris Omnia NG и являющийся его удешевлённым вариантом. Новое устройство рассчитано на использование в серверных помещениях, имеет форм-фактор для установки в стойку (Rack-Mount) и оснащено 2 Ethernet портами 10G SFP+ и 4 портами 2.5G RJ45. Устройство поступило в продажу по цене 420 евро.
Как в прошлой модели в новом маршрутизаторе используется бесшумное пассивное охлаждение и доступно три слота M.2, через которые можно подключить модуль Wi-Fi, NVMe-накопитель и 4G/5G модем. Также имеется цветной экран с разрешением 240 × 240, который может использоваться для вывода статистики, уведомлений и мониторинга. Аппаратная начинка (схемы) включает
4-ядерный CPU Qualcomm IPQ 9574 (ARMv8 Cortex A-73, 2.2 GHz), 2 ГБ ОЗУ, 8 ГБ eMMC, 2 порта 10 Gbps (SFP+), 4 × 2.5 Gbps (RJ45). 3 слота M.2 (PCI Express 3.0 2x) и 2 порта USB 3.0. Опционально возможно подключение модулей Wi-Fi 6 и Wi-Fi 7 для превращения устройства в беспроводную точку доступа.
В прошивке задействовано собственное ответвление от открытой платформы OpenWRT, поставляемое под именем Turris OS. Помимо использования для создания маршрутизатора и точки беспроводного доступа, устройство может применяться в качестве цифрового центра для дома и малых/средних предприятий, пригодного для развёртывания сетевых хранилищ (NAS, Network-Attached Storage), VPN, резервного копирования, создания сервера печати, запуска различных сетевых сервисов.
Имеется встроенная возможность запуска Linux-контейнеров при помощи инструментария LXC, в которых можно устанавливать произвольные дистрибутивы Linux и создавать виртуальные серверы, для пользователей выглядящие как отдельный компьютер, подключённый к локальной сети. На базе платформы Sentinel в прошивке реализован динамический межсетевой экран c элементами для обнаружения вторжений и отслеживания потоков трафика. Прошивка обновляется автоматически без необходимости выполнения каких-либо действий пользователем. Управление осуществляется через web-интерфейс или командную строку.
После полутора лет разработки опубликован выпуск проекта ELKS 0.9 (Embeddable Linux Kernel Subset), развивающего Linux-подобную операционную систему для 16-разрядных процессоров Intel 8086, 8088, 80188, 80186, 80286 и NEC V20/V30. ОС может использоваться на старых компьютерах класса IBM-PC XT / AT, советском компьютере MK-88, винтажной плате Monotech NuXT 2.0 и на SBC / SoC / FPGA, воссоздающих архитектуру IA16. Проект развивается с 1995 года и начинался как ответвление ядра Linux для устройств без блока управления памятью (MMU). Исходные тексты распространяются под лицензией GPLv2. Система поставляется в форме образов для записи на floppy-диски или запуска в эмуляторе QEMU.
Помимо ядра Linux, адаптированного для 16-разрядных систем, проектом развивается набор стандартных утилит (ps, bc, tar, du, diff, netstat, mount, sed, xargs, grep, find, telnet, meminfo и т.п.), включая совместимый с bash командный интерпретатор, консольный оконный менеджер screen, текстовые редакторы Kilo и vi, графическое окружение на базе X-сервера Nano-X.
Предлагается два варианта сетевого стека - штатный TCP/IP стек ядра Linux и стек ktcp, работающий в пространстве пользователя. Из сетевых карт поддерживаются Ethernet-адаптеры, совместимые с NE2K и SMC. Также возможно создание каналов связи через последовательный порт при помощи SLIP и CSLIP. Из файловых систем поддерживаются Minix v1, FAT12, FAT16 и FAT32. Настройка процесса загрузки осуществляется через сценарий /etc/rc.d/rc.sys. Формат исполняемых файлов заимствован из ОС Minix.
В новом выпуске:
Обеспечена интеграция с проектом, развивающим графическую оконную систему Microwindows (Nano-X), имеющую архитектуру клиент-сервер и пригодную для создания сред рабочего стола, а также для запуска эмулятора терминала, игр и графических приложений.
На базе оконной системы Nano-X реализована новая среда рабочего стола NXDSKTOP, способная работать на старейших x86-системах, таких как IBM 5150/5160 (8 MHz) и Amstrad 1640, а также на более мощных ПК на базе CPU 286, 386 и 486 с VGA-виреокартами. Предоставляются типичные для пользовательских окружений графические компоненты, такие как интерфейс запуска приложений nxselect, диалоговые окна, меню приложений, просмотрщик изображений nxjpeg и текстовый редактор.
Предоставлен инструментарий ELKS 8086 Toolchain, работающий поверх ELKS и включающий компилятор для языка Си C86, ассемблер, утилиту make и компоновщик для систем с процессорами 8086.
Добавлена поддержка компилятора DeSmet C (DCC), основанного на инструментарии 1989 DeSmet.
Добавлена поддержка работы в эмуляторах Bochs, PCem, copy.sh/v86, MartyPC, EMU86 и Swan, в дополнение к ранее поддерживаемым DOSBox-X и QEMU.
Реализована поддержка игр Doom, Paint, Elksmoria, ttypong, tetris, invaders, advent, nxtetris, nxmine, nxworld, matrix и sl.
Реализован драйвер Direct ATA и добавлена поддержка оборудования с XT-IDE. Для эмулятора v86 обеспечена поддержка мыши PS/2.
Выполнено портирование на компьютеры NEC V25, Solo/86 и WonderSwan.
Представлен релиз проекта Cambalache 1.0, развивающего инструмент быстрой разработки интерфейсов для GTK 3 и GTK 4, использующий визуальное проектирование (WYSIWYG), парадигму MVC и философию первостепенного значения модели данных. Присвоение номера версии 1.0 преподносится как достижение готовности проекта к широкому использованию. Код написан на Python и поставляется под лицензией LGPLv2.1. Для установки доступен пакет в формате flatpak.
В отличие от Glade в Cambalache предоставляется поддержка ведения нескольких интерфейсов пользователя в одном проекте. Cambalache не зависит от GtkBuilder и GObject, но предоставляет модель данных, соответствующую системе типов GObject. Поддерживается редактирование, визуализация и создание GTK-стилей в формате CSS,
редактирование XML-файлов с ресурсами GResources, создание шаблонов и виджетов, использование XML-файлов GtkBuilder и разметки Blueprint.
Модель данных может импортировать и экспортировать разом несколько интерфейсов, поддерживает объекты, свойства и сигналы GtkBuilder, предоставляет стек отката операций (Undo / Redo) и возможность сжатия истории команд. Для генерации модели данных из gir-файлов предоставляется утилита cambalache-db, а для генерации классов GObject из таблиц модели данных - утилита db-codegen.
Интерфейс может генерироваться на базе GTK 3 и GTK 4, в зависимости от определённой в проекте версии. Для обеспечения поддержки разных веток GTK формирование рабочей области осуществляется в отдельном процессе с привлечением виджета Casilda, позволяющего встраивать в GTK4-приложения окна других процессов и реализованного в форме специализированного композитного сервера, использующего протокол Wayland и библиотеку wlroots. Casilda создаёт виртуальные устройства ввода, события в которые транслируются из GtkEventController, а также виртуальное устройство вывода, имеющее размер как у встроенного в приложение виджета. При помощи wlroots содержимое для предпросмотра отрисовывается в пиксельный буфер и загружается как поверхность Cairo (cairo.Surface) для отрисовки в GTK.