The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

·25.04.2024 Релиз дистрибутива Ubuntu 24.04 LTS (14)
  Состоялся релиз дистрибутива Ubuntu 24.04 "Noble Numbat", который отнесён к категории выпусков с длительным сроком поддержки (LTS), обновления для которых формируются в течение 12 лет (5 лет - общедоступные, плюс ещё 7 лет для пользователей сервиса Ubuntu Pro). Установочные образы созданы для Ubuntu Desktop, Ubuntu Server, Lubuntu, Kubuntu, Ubuntu Mate, Ubuntu Budgie, Ubuntu Studio, Xubuntu, UbuntuKylin (редакция для Китая), Ubuntu Unity, Edubuntu и Ubuntu Cinnamon.

Основные изменения:

  • Рабочий стол обновлён до выпуска GNOME 46, в котором появилась функция глобального поиска, повышена производительность файлового менеджера и эмуляторов терминала, добавлена экспериментальная поддержка механизма VRR (Variable Refresh Rate), улучшено качество вывода при дробном масштабировании, расширены возможности подключением к внешним сервисам, обновлён конфигуратор и улучшена система уведомлений. В GTK задействован новый движок отрисовки, который базируется на API Vulkan. Приложение для работы с камерой Cheese заменено на GNOME Snapshot.
  • Ядро Linux обновлено до версии 6.8.
  • По аналогии с изменениями в Arch Linux и Fedora Linux, параметр sysctl vm.max_map_count, определяющий максимально доступное процессу число областей маппинга памяти, по умолчанию увеличен с 65530 до 1048576. Изменение улучшило совместимость c Windows-играми, запускаемыми через Wine (например, при старом значении не запускались игры DayZ, Hogwarts Legacy, Counter Strike 2, Star Citizen и THE FINALS), и решило некоторые проблемы с производительностью приложений, интенсивно потребляющих память.
  • Обновлены версии GCC 14-pre, LLVM 18, Python 3.12, OpenJDK 21 (опционально доступны OpenJDK 8, 11 и 17), Rust 1.75, Go 1.22, .NET 8, PHP 8.3.3, Ruby 3.2.3, binutils 2.42, glibc 2.39.
  • Обновлены пользовательские приложения: Firefox 124 (собран с поддержкой Wayland), LibreOffice 24.2, Thunderbird 115, Ardour 8.4.0, OBS Studio 30.0.2, Audacity 3.4.2, Transmission 4.0, digiKam 8.2.0, Kdenlive 23.08.5, Krita 5.2.2.
  • Обновлены подсистемы: Mesa 24.0.3, systemd 255.4, BlueZ 5.72, Cairo 1.18, NetworkManager 1.46, Pipewire 1.0.4, Poppler 24.02, xdg-desktop-portal 1.18.
  • Обновлены серверные пакеты: Nginx 1.24, Apache httpd 2.4.58, Samba 4.19, Exim 4.97, Clamav 1.0.0, Chrony 4.5, containerd 1.7.12, Django 4.2.11, Docker 24.0.7, Dovecot 2.3.21, GlusterFS 11.1, HAProxy 2.8.5, Kea DHCP 2.4.1, libvirt 10.0.0, NetSNMP 5.9.4, OpenLDAP 2.6.7, open-vm-tools 12.3.5, PostgreSQL 16.2, Runc 1.1.12, QEMU 8.2.1, SpamAssassin 4.0.0, Squid 6.6, SSSD 2.9.4, Pacemaker 2.1.6, OpenStack 2024.1, Ceph 19.2.0, Openvswitch 3.3.0, Open Virtual Network 24.03.
  • Почтовый клиент Thunderbird теперь поставляется только в формате snap. DEB-пакет с Thunderbird содержит заглушку для установки snap-пакета.
  • Для приложений, использующих gnutls, принудительно отключена поддержка протоколов TLS 1.0, TLS 1.1 и DTLS 1.0, которые три года назад официально переведены комитетом IETF (Internet Engineering Task Force) в разряд устаревших технологий. Для openssl аналогичное изменение было реализовано в Ubuntu 20.04.
  • В Apparmor по умолчанию включено предоставление доступа любым приложениям к файлам конфигурации библиотек GnuTLS и OpenSSL. Ранее применявшееся выборочное предоставление доступа приводило к появлению проблем, трудно диагностируемых из-за отсутствия вывода ошибок при невозможности доступа к файлам конфигурации.
  • Удалены пакеты pptpd и bcrelay из-за потенциальных проблем с безопасностью и прекращения сопровождения основных кодовых баз. Также удалён PAM-модуль pam_lastlog.so, в котором не решена проблема 2038 года.
  • При сборке пакетов по умолчанию включены опции компилятора для усложнения эксплуатации уязвимостей. В gcc и dpkg по умолчанию включён режим "-D_FORTIFY_SOURCE=3", выявляющий возможные переполнения буфера при выполнении строковых функций, определённых в заголовочном файле string.h. Отличие от ранее применявшегося режима "_FORTIFY_SOURCE=2" сводится к дополнительным проверкам. Теоретически дополнительные проверки могут приводить к снижению производительности, но на практике тесты SPEC2000 и SPEC2017 не показали различий и в процессе тестирования от пользователей не поступало жалоб на снижение производительности.
  • В dpkg добавлен флаг "-mbranch-protection=standard" для включения на системах ARM64 защиты выполнения наборов инструкций, на которые не должны выполняться переходы при ветвлении (ARMv8.5-BTI - Branch Target Indicator). Блокирование переходов на произвольные участки кода реализовано для противодействия созданию гаджетов в эксплоитах, использующих приёмы возвратно-ориентированного программирования (ROP - Return-Oriented Programming).
  • В пакетном менеджере APT изменён приоритет для репозитория "proposed pocket", в котором осуществляется предварительное тестирование новых версий пакетов, перед их размещением в основных репозиториях для широкой публики. Изменение нацелено на снижение вероятности автоматизированной установки нестабильных обновлений, в случае включения репозитория "proposed pocket", которые могут привести к нарушению работоспособности системы. После включения "proposed pocket" из него теперь не будут переноситься все обновления, но пользователь сможет выборочно установить обновления необходимых пакетов, используя команду "apt install /-proposed".
  • Прекращена поставка по умолчанию сервиса irqbalance, распределяющего обработку аппаратных прерываний по разным ядрам CPU. В настоящее время в большинстве ситуаций достаточно штатных механизмов распределения обработчиков, предоставляемых ядром Linux. Использование irqbalance может быть оправдано в отдельных ситуациях, но при должной настройке администратором. Кроме того, в определённых конфигурациях irqbalance приводит к проблемам, например, при использовании в системах виртуализации, а также может мешать при ручной настройке параметров, влияющих на энергопотребление и задержки.
  • Для настройки сети задействован выпуск инструментария Netplan 1.0, который обеспечивает хранение настроек в формате YAML и предоставляет бэкенды, абстрагирующие доступ к конфигурации для NetworkManager и systemd-networkd. В новой версии появилась возможность одновременного использования WPA2 и WPA3, добавлена поддержка сетевых устройств Mellanox VF-LAG с SR-IOV (Single-Root I/O Virtualization) и реализована команда "netplan status --diff" для наглядной оценки различий между фактическим состоянием настроек и файлами конфигурации. В Ubuntu Desktop в качестве бэкенда настройки по умолчанию включён NetworkManager.
  • Модернизирован инсталлятор ubuntu-desktop-installer, который теперь развивается в составе более крупного проекта ubuntu-desktop-provision и переименован в ubuntu-desktop-bootstrap. Суть нового проекта в разделении инсталлятора на стадии, выполняемые перед установкой (разбивка диска и копирование пакетов) и во время первой загрузки системы (первичная настройка системы). Из изменений отмечается улучшенное оформление интерфейса инсталлятора, добавление страницы для указания URL для загрузки сценария автоматизированной установки autoinstall.yaml и возможность изменения поведения по умолчанию и стиля оформления через файл конфигурации. Добавлена поддержка обновления самого инсталлятора - при наличии новой версии на ранней стадии установки теперь выдаётся запрос на обновление инсталлятора.

    В инсталляторе также отмечены возможности, добавленные в прошлом выпуске Ubuntu 23.10, такие как поддержка файловой системы ZFS и возможность шифрования дисков, не требующая ввода пароля разблокировки диска при загрузке, благодаря хранению информации для расшифровки ключей в TPM (Trusted Platform Module).

  • Включён механизм Active Directory Certificate Auto Enrollment (ADSys), позволяющий автоматически получать сертификаты из сервисов Active Directory при включении групповых политик. Автоматическое получение сертификатов через Active Directory также применяется при подключении к корпоративным беспроводным сетям и VPN.
  • Улучшен новый менеджер приложений Ubuntu App Center, написанный на языке Dart с использованием фреймворка Flutter и адаптивных методов компоновки интерфейса для корректной работы на экранах любого размера. Ubuntu Store реализует комбинированный интерфейс для работы с пакетами в формате DEB и Snap (при наличии одной программы в пакетах deb и snap по умолчанию выбирается snap), позволяет выполнять поиск и навигацию по каталогу пакетов snapcraft.io и подключённым DEB-репозиториям, даёт возможность управлять установкой, удалением и обновлением приложений, устанавливать отдельные deb-пакеты из локальных файлов. В приложении задействована система рейтинга, в которой пятибалльная шкала оценки заменена на голосование в формате нравится/не нравится (+1/-1), на основе которого выводится виртуальный пятизвёздочный рейтинг.

    Ubuntu App Center заменил собой старый интерфейс Snap Store. По сравнению с Ubuntu 23.10 добавлена новая категория приложений - Игры (при этом из поставки удалены игры GNOME). Предложен отдельный интерфейс для обновления прошивок - Firmware Updater, доступный для систем на базе архитектур amd64 и arm64, и позволяющий обновлять прошивки без запуска в фоне полноценного менеджера приложений.

  • Пакеты для 32-разрядной архитектуры Armhf переведены на использование 64-разрядного типа time_t. Изменение затронуло более тысячи пакетов. Ранее использовавшийся 32-разрядный тип time_t не может применяться для обработки времени позднее 19 января 2038 года из-за переполнения счётчика секунд, прошедших после 1 января 1970 года.
  • В пакете Apport, применяемым в Ubuntu для автоматизации обработки крахов приложений, обеспечена интеграция с systemd-coredump для обработки аварийных завершений. Для анализа core-дампов теперь можно использовать утилиту coredumpctl.
  • Обновлены сборки для плат Raspberry Pi 5 (серверные и пользовательские) и StarFive VisionFive 2 (RISC-V).
  • В Ubuntu Cinnamon задействовано пользовательское окружение Cinnamon 6.0 с начальной поддержкой Wayland.
  • В Xubuntu продолжена поставка окружения на базе Xfce 4.18.
  • В Ubuntu Mate продолжает поставляться среда рабочего стола MATE 1.26.2 (в репозитории MATE уже доступна ветка 1.28, которая пока официально не объявлена).
  • В Ubuntu Budgie задействована среда рабочего стола Budgie 10.9.
  • В Kubuntu по умолчанию продолжена поставка KDE Plasma 5.27. KDE 6 будет предложен в осеннем выпуске Kubuntu 24.10. Обновлены логотип и цветовое оформление.
  • В Lubuntu доработан инсталлятор на базе фреймворка Calamares. Добавлена страница для настройки параметров установки, таких как установка доступных обновлений, установка кодеков и проприетарных драйверов, установка дополнительных программ. Добавлены режимы минимальной, полной и нормальной установки. Добавлен экран первой загрузки, позволяющий настроить язык и подключение к беспроводной сети, а также выбрать запуск инсталлятора или переход в Live-режим. Добавлен Bluetooth Manager и редактор настроек дисплейного менеджера SDDM. Среда рабочего стола обновлена до версии LXQt 1.4.
  • В Ubuntu Studio добавлена утилита Ubuntu Studio Audio Configuration для настройки параметров PipeWire.


  1. OpenNews: Доступна система конфигурации сети Netplan 1.0, используемая в Ubuntu
  2. OpenNews: Начиная с Ubuntu 14.04 время поддержки LTS-релизов будет увеличено до 12 лет
  3. OpenNews: Выпуск Ubuntu 22.04.4 LTS c обновлением графического стека и ядра Linux
  4. OpenNews: Выпуск дистрибутива Ubuntu 23.10
  5. OpenNews: Релиз дистрибутива Ubuntu 22.04 LTS
Обсуждение (14) | Тип: Программы |
·25.04.2024 Представлена платформа для организации совместной работы Nextcloud Hub 8 (19 +1)
  Представлен выпуск платформы Nextcloud Hub 8, предоставляющей самодостаточное решение для организации совместной работы сотрудников предприятий и команд, развивающих различные проекты. Одновременно опубликована лежащая в основе Nextcloud Hub облачная платформа Nextcloud 28, позволяющая развернуть облачное хранилище с поддержкой синхронизации и обмена данными, предоставляющее возможность просмотра и редактирования данных с любого устройства в любой точке сети (при помощи web-интерфейса или WebDAV). Сервер Nextcloud можно развернуть на любом хостинге, поддерживающем выполнение PHP-скриптов и предоставляющем доступ к SQLite, MariaDB/MySQL или PostgreSQL. Исходные тексты Nextcloud распространяются под лицензией AGPL.

По решаемым задачам Nextcloud Hub напоминает Google Docs и Microsoft 365, но позволяет развернуть полностью контролируемую инфраструктуру совместной работы, функционирующую на своих серверах и не привязанную к внешним облачным сервисам. Nextcloud Hub объединяет в единую среду несколько открытых приложений-надстроек над облачной платформой Nextcloud, позволяющих совместно работать с офисными документами, файлами и информацией для планирования задач и мероприятий. Платформа также включает надстройки для доступа к электронной почте, обмена сообщениями, организации видеоконференций и чатов.

Аутентификация пользователей может производиться как по локальной базе, так и через интеграцию с LDAP / Active Directory, Kerberos, IMAP и Shibboleth / SAML 2.0, в том числе с применением двухфакторной аутентификации, SSO (Single-sign-on) и привязки новых систем к учётной записи по QR-коду. Версионный контроль изменений позволяет отслеживать изменения в файлах, комментариях, правилах совместного доступа и тегах.

Основные компоненты платформы Nextcloud Hub:

  • Files - организация хранения, синхронизации, совместного доступа и обмена файлами. Доступ может быть осуществлён как через Web, так и при помощи клиентского ПО для настольных и мобильных систем. Предоставляются такие расширенные возможности, как полнотекстовый поиск, прикрепление файлов при отправке комментариев, выборочный контроль доступа, создание защищённых паролем ссылок для загрузки, интеграция с внешними хранилищами (FTP, CIFS/SMB, SharePoint, NFS, Amazon S3, Google Drive, Dropbox, и т.п.).
  • Flow - оптимизирует бизнес-процессы через автоматизацию выполнения типовых работ, таких как преобразование документов в PDF, отправка сообщений в чаты при загрузке новых файлов в определённые каталоги, автоматическое назначение тегов. Возможно создание собственных обработчиков, выполняющих действия в привязке к определённым событиям.
  • Nextcloud Office - встроенные средства совместного редактирования документов, электронных таблиц и презентаций, развиваемые совместно с компанией Collabora. Предоставляется поддержка интеграции с пакетами OnlyOffice, Collabora Online, MS Office Online Server и Hancom office.
  • Photos - галерея изображений, упрощающая поиск, обмен и навигацию по совместной коллекции фотографий и изображений. Поддерживается ранжирование фотографий по времени, месту, тегам и частоте просмотра.
  • Calendar - календарь-планировщик, позволяющий координировать проведение встреч, планировать чаты и видеоконференции. Предоставляется интеграция с инструментами групповой работы на базе iOS, Android, macOS, Windows, Linux, Outlook и Thunderbird. Поддерживается загрузка событий с внешних ресурсов, работающих с протоколом WebCal.
  • Mail - совместная адресная книга и web-интерфейс для работы с электронной почтой. Возможна привязка нескольких учётных записей к одному inbox. Поддерживается шифрование писем и прикрепление цифровых подписей на базе OpenPGP. Возможна синхронизация адресной книги при помощи CalDAV.
  • Talk - система обмена сообщениями и проведения web-конференций (чат, аудио и видео). Имеется поддержка групп, возможность предоставления доступа к содержимому экрана и поддержка SIP-шлюзов для интеграции с обычной телефонией.
  • Nextcloud Backup - решение для децентрализованного хранения резервных копий.
  • Nextcloud AI Assistant - интеллектуальный помощник в стиле ChatGPT, устанавливаемый на своём сервере и не требующий обращения к внешним сервисам. AI Assistant может использоваться для генерации текста по запросу на естественном языке, выделения основных идей из больших описаний, придумывания заголовков, переписывания текста другими словами или перевода на другой язык.



Ключевые новшества Nextcloud Hub 8:

  • Предложен интеллектуальный помощник Nextcloud Assistant 2.0, позволяющий генерировать текст по запросу на естественном языке, отвечать на вопросы, выделять основные идеи из больших описаний, переписывать текст другими словами, выполнять транскрипцию голосовых вызовов и выполнять перевод с одного языка на другой. Вторая версия примечательна возможностью учитывать контекст и информацию об уже проделанной работе при формировании ответов и при генерации контента. Например, ассистент теперь может предлагать варианты типовых ответов на электронные письма, подводить итоги переписки в чате, генерировать текст, используя другой текст в качестве шаблона стиля или структуры, отвечать на вопросы, связанные с размещёнными в Nextcloud документами, адресной книгой, отчётами и другим содержимым. Используемая в Nextcloud Assistant большая языковая модель (LLM) обрабатывается на локальном сервере без обращения к внешним сервисам. Также возможен вынос обработчика LLM на отдельный сервер и использование в нём разных дополнительных моделей, таких как NeuralBeagle14 7B и Smaug-72b.
  • Добавлена поддержка интерактивных виджетов, позволяющих обращаться к другому содержимому, не покидая текущего приложения, и встраивать функциональность одного приложения в другое. Например, можно отредактировать план встречи в чате, продолжая участие в видеоконференции, или вставить виджет с календарём в текстовый документ или в чат.
  • Подготовлен компонент Nextcloud Teams, предназначенный для координации командной работы и организации доступа к ресурсам, файлам и приложениям, используемым в группе.
  • Проведена оптимизация встроенного почтового клиента. Выполнение операций фоновой синхронизации с IMAP-сервером ускорено в два раза. В интерфейс добавлены изменения, нацеленные на то, чтобы тратить меньше времени при написании ответов. При написании ответа предоставлена возможность использования предлагаемых AI-помощником готовых рекомендаций.
  • В Nextcloud Talk упрощено построение федеративной сети с использованием стандарта Open Cloud Mesh (OCM) и создание чатов, охватывающих пользователей с других серверов Nextcloud. Добавлена возможность редактирования уже отправленных сообщений. Расширены возможности для проведения конференций и осуществления групповых вызовов.
  • Проведена оптимизация производительности интерфейса для работы с файлами (Nextcloud Files). Добавлена возможность предоставления совместного доступа к загрузкам при помощи одноразовых ссылок и QR-кодов. Улучшена навигация по фотографиям, добавлен раздел, в котором отфильтрованы только фотографии пользователя. Реализованы интерактивные виджеты для редактирования и предпросмотра файлов. Добавлена новая секция с персональными файлами, в которой собраны все файлы и каталоги, принадлежащие пользователю. Добавлена возможность поиска только в выбранных каталогах.
  • Добавлена поддержка прикрепления форм ввода к электронным таблицам для автоматического включения данных в файлы в формате ODS, XLSX и CSV. Также добавлена возможность защиты от изменений отдельных ячеек электронной таблицы и назначения им индивидуальных прав доступа.
  • В интерфейсе обработки структурированных наборов данных (Nextcloud Tables) улучшена навигация и средства импорта данных. Предоставлены возможности для создания собственных вариантов приложения Nextcloud Tables для построения отдельных баз знаний.
  • Расширены возможности по управлению подписками других пользователей (follow/ unfollow) на свои документы, электронные таблицы и презентации. Подписанные на контент пользователи теперь сразу отображаются в интерфейсе владельца документа.

  1. OpenNews: Доступна платформа для организации совместной работы Nextcloud Hub 7
  2. OpenNews: Компания Nextcloud GmbH поглотила почтовый клиент Roundcube
  3. OpenNews: Представлена платформа Nextcloud Hub для организации совместной работы
  4. OpenNews: Госучреждения Франции, Германии, Швеции и Нидерландов переходят на платформу Nextcloud
  5. OpenNews: Доступна коммуникационная система Nextcloud Talk с поддержкой видеовызовов
Обсуждение (19 +1) | Тип: Программы |
·25.04.2024 Доступна JavaScript-платформа Node.js 22.0.0 (34 +5)
  Состоялся релиз Node.js 22.0, платформы для выполнения сетевых приложений на языке JavaScript. Node.js 22.0 отнесён к веткам с длительным сроком поддержки, но данный статус будет присвоен только в октябре, после проведения стабилизации. Поддержка Node.js 22.x будет осуществляться до 30 апреля 2027 года. Сопровождение прошлой LTS-ветки Node.js 20.x продлится до апреля 2026 года, а позапрошлой LTS-ветки 18.x до апреля 2025 года. Сопровождение промежуточной ветки Node.js 21.x будет прекращено 1 июня 2024 года.

Основные улучшения:

  • Движок V8 обновлён до версии 12.4, применяемой в Chromium 124. Из изменений по сравнению с веткой Node.js 21, в которой использовался движок V8 11.8), отмечается:
    • Поддержка расширения WasmGC, упрощающего портирование в WebAssembly программ, написанных на языках программирования, использующих сборщик мусора (Kotlin, PHP, Java и т.п.). WasmGC добавляет новые типы структур и массивов, для которых может применяться нелинейное выделение памяти.
    • Поддержка метода Array.fromAsync(), в асинхронном режиме возвращающего новый экземпляр объекта Array, скопированный из объектов, напоминающих массив, перечисляемых (iterable) или асинхронно перечисляемых (async iterable).
    • Поддержка методов для работы с итераторами, таких как .map, .filter, .find, .take, .drop, .forEach и .reduce.
    • Поддержка объекта Set, определяющего коллекцию значений и предлагающего методы с реализацией типовых операций работы с множествами, таких как пересечения, объединения, разность и дополнение.
  • Включён по умолчанию оптимизирующий JIT-компилятор Maglev, нацеленный на быструю генерацию высокопроизводительного машинного кода для активно используемого кода на JavaScript. Включение Maglev позволяет заметно ускорить работу короткоживущий CLI-приложений, не выполняющих длительных операций, например, время прохождения теста Jetstrea сокращается на 7.5%, а теста Speedometer на 5%.
  • Ускорена работа с потоками за счёт увеличения значения опции highWaterMark с 16 KB до 65 KB (определяет лимит, до которого выполняется буферизация записи). Изменение приводит к увеличению потребления памяти, поэтому приложениям, рассчитанным на работу с ограниченным объёмом ОЗУ, возможно потребуется вернуть старое значение через вызов setDefaultHighWaterMark().
  • Повышена производительность API fetch() и test runner за счёт повышения эффективности создания экземпляров AbortSignal. Повышена производительность API, связанных с синхронной работой с файловыми системами.
  • Предоставлена экспериментальная возможность использования вызова "require()" для загрузки JavaScript-модулей ESM (ECMAScript Modules) в синхронном режиме. ESM-модули применяются в браузерах и идут на смену модулям CommonJS, специфичным для Node.js. Для загрузки через "require()" ESM-модуль должен выполняться в синхронном режиме (без await на верхнем уровне). Поддержка включается через флаг "--experimental-require-module".
  • Добавлена экспериментальная возможность запуска скриптов, определённых в файле package.json, используя команду "--run <script-in-package-json>".
  • В категорию стабильных переведена команда "node --watch" с реализацией режима наблюдения, обеспечивающего перезапуск процесса при изменении импортированного файла (например, в случае выполнения "node --watch index.js" процесс будет автоматически перезапущен при изменении index.js).
  • Стабилизирована встроенная реализация API WebSocket, позволяющего использовать WebSocket в режиме клиента без установки дополнительных зависимостей.
  • Добавлена частичная поддержка API Navigator.
  • В API Webstreams добавлена поддержка формата сжатия deflate-raw.
  • В модуль node:fsmodule добавлены функции glob и globSync для сопоставления файловых путей по образцу.
  • Улучшена обработка некорректно настроенных стеков IPv6. Реализован алгоритм Happy Eyeballs для быстрого отката в случае проблем с работой IPv6.
  • Объявлен устаревшим API util.
  • Обновлены версии зависимостей: npm 10.5.1, libuv 1.48.0, simdutf 5.2.3, c-ares 1.28.1, zlib 1.3.0.1-motley-24c07df, simdjson to 3.8.0, ada 2.7.7 и undici 6.6.0.

Платформа Node.js может быть использована как для серверного сопровождения работы Web-приложений, так и для создания обычных клиентских и серверных сетевых программ. Для расширения функциональности приложений для Node.js подготовлена большая коллекция модулей, в которой можно найти модули с реализацией серверов и клиентов HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, модули для интеграции с различными web-фреймворками, обработчики WebSocket и Ajax, коннекторы к СУБД (MySQL, PostgreSQL, SQLite, MongoDB), шаблонизаторы, CSS-движки, реализации криптоалгоритмов и систем авторизации (OAuth), XML-парсеры.

Для обеспечения обработки большого числа параллельных запросов Node.js задействует асинхронную модель запуска кода, основанную на обработке событий в неблокирующем режиме и определении callback-обработчиков. В качестве способов мультиплексирования соединений поддерживаются такие методы, как epoll, kqueue, /dev/poll и select. Для мультиплексирования соединений используется библиотека libuv, которая является надстройкой над libev в системах Unix и над IOCP в Windows. Для создания пула потоков (thread pool) задействована библиотека libeio, для выполнения DNS-запросов в неблокирующем режиме интегрирован c-ares. Все системные вызовы, вызывающие блокирование, выполняются внутри пула потоков и затем, как и обработчики сигналов, передают результат своей работы обратно через неименованный канал (pipe).

Выполнение JavaScript-кода обеспечивается через задействование разработанного компанией Google движка V8 (дополнительно Microsoft развивает вариант Node.js с движком Chakra-Core). По своей сути Node.js похож на фреймворки Perl AnyEvent, Ruby Event Machine, Python Twisted и реализацию событий в Tcl, но цикл обработки событий (event loop) в Node.js скрыт от разработчика и напоминает обработку событий в web-приложении, работающем в браузере.

  1. OpenNews: Уязвимости в Node.js и libuv
  2. OpenNews: Доступна JavaScript-платформа Node.js 21.0
  3. OpenNews: Доступна серверная JavaScript-платформа Bun 1.0, более быстрая, чем Deno и Node.js
  4. OpenNews: Атака на Node.js через манипуляции с прототипами объектов JavaScript
  5. OpenNews: Автор Node.js представил защищённую JavaScript-платформу Deno 1.0
Обсуждение (34 +5) | Тип: Программы |
·24.04.2024 Выпуск дистрибутива Proxmox VE 8.2 (76 +28)
  Опубликован релиз Proxmox Virtual Environment 8.2, специализированного Linux-дистрибутива на базе Debian GNU/Linux, нацеленного на развертывание и обслуживание виртуальных серверов с использованием LXC и KVM, и способного выступить в роли замены таких продуктов, как VMware vSphere, Microsoft Hyper-V и Citrix Hypervisor. Размер установочного iso-образа 1.3 ГБ.

Proxmox VE предоставляет средства для развёртывания полностью готовой системы виртуальных серверов промышленного уровня с управлением через web-интерфейс, рассчитанный на управление сотнями или даже тысячами виртуальных машин. Дистрибутив имеет встроенные инструменты для организации резервного копирования виртуальных окружений и доступную из коробки поддержку кластеризации, включая возможность миграции виртуальных окружений с одного узла на другой без остановки работы. Среди особенностей web-интерфейса: поддержка безопасной VNC-консоли; управление доступом ко всем доступным объектам (VM, хранилище, узлы и т.п.) на основе ролей; поддержка различных механизмов аутентификации (MS ADS, LDAP, Linux PAM, Proxmox VE authentication).

В новом выпуске:

  • Осуществлена синхронизация с пакетной базой Debian 12.5. Ядро Linux обновлено до выпуска 6.8. Задействованы новые выпуски QEMU 8.1.5, LXC 6.0.0 и OpenZFS 2.2.3. Доступна поддержка создания хранилищ на базе выпусков Ceph 18.2.2 "Reef" и Ceph 17.2.7 "Quincy"
  • Предложен новый мастер импорта, позволяющий переносить гостевые системы напрямую из других гипервизоров, обращаясь к ним через их API. Переносимые гостевые системы могут запускаться в Proxmox VE, не дожидаясь завершения переноса данных, который осуществляется в фоновом режиме. Первой обеспечена поддержка миграции из гипервизора VMware ESXi.
  • Добавлена поддержка автоматизированной установки Proxmox VE без участия администратора. Формирование ISO-образа для автоматического развёртывания осуществляется при помощи новой утилиты proxmox-auto-install-assistant. Параметры установки могут задаваться через специальный файл конфигурации, который может быть как встроен в ISO-образ, так и размещён на отдельном USB-носителей или загружен по сети.
  • Добавлен режим буферизации резервного копирования на локальном диске (Backup fleecing), позволяющий минимизировать снижение производительности гостевой системы при её резервном копировании во внешнее хранилище. Перед передачей во внешнее хранилище блоки теперь могут быть сохранены на отдельном локальном разделе, что позволяет заметно снизить проседание производительности ввода/вывода в гостевой системе при копировании резервной копии через медленное сетевое соединение или при высокой активности ввода/вывода в гостевой системе.
  • Добавлена новая экспериментальная реализация межсетевого экрана, переведённого с iptables на пакетный фильтр nftables, что позволило избавиться от многих проблем старой реализации и повысить надёжность работы. Новая реализация написана на языке Rust и почти эквивалентна по функциональности со старым межсетевым экраном.
  • В web-интерфейс добавлен инструмент для проброса устройств в контейнеры, используя графический конфигуратор. Отключён переход в режим редактирования полей при двойном щелчке мышью, что исключило случайный запуск редактора при выполнении операций выделения и копирования текста. На экране редактирования кнопка сброса перемещена в новое место для снижения риска случайного нажатия.
  • Добавлены расширенные настройки резервного копирования, такие как параметры производительности и ограничение пропускной способности.
  • Добавлена поддержка собственных удостоверяющих центров, использующих протокол ACME.

  1. OpenNews: Выпуск дистрибутива Proxmox VE 8.1
  2. OpenNews: Доступен дистрибутив Proxmox Backup Server 3.1
  3. OpenNews: Выпуск дистрибутива Proxmox Mail Gateway 8.1
  4. OpenNews: Релиз Proxmox VE 8.0, дистрибутива для организации работы виртуальных серверов
  5. OpenNews: XCP-ng, свободный вариант Citrix XenServer, вошёл в состав проекта Xen
Обсуждение (76 +28) | Тип: Программы |
·24.04.2024 Опубликована операционная система реального времени RT-Thread 5.1 (60 +24)
  После года разработки доступен выпуск RT-Thread 5.1, операционной системы реального времени (RTOS) для устройств интернета-вещей. Система развивается с 2006 года сообществом китайских разработчиков и в настоящее время портирована для 154 плат, чипов и микроконтроллеров на базе архитектур x86, ARM, MIPS, С-SKY, Xtensa, ARC и RISC-V. Минималистичная сборка RT-Thread (Nano) требует для работы всего 3 КБ Flash и 1.2 КБ ОЗУ. Для IoT-устройств, сильно не ограниченных в ресурсах, предлагается полнофункциональная версия, поддерживающая управление пакетами, конфигураторы, сетевой стек, пакеты с реализацией графического интерфейса, системы голосового управления, СУБД, сетевых сервисов и движков для выполнения скриптов. Код написан на языке Си и распространяется под лицензией Apache 2.0.

Операционную систему образуют три базовых слоя:

  • Ядро, обеспечивающее выполнение задач в режиме реального времени. Ядро предоставляет универсальные базовые примитивы, охватывающие такие области, как управление блокировками и синхронизацией данных, планирование задач, управление потоками, обработка сигналов, очереди сообщений, управление таймером, управление памятью. Специфичные для аппаратного обеспечения особенности реализованы на уровне libcpu и BSP, которые включают необходимые драйверы и код для поддержки CPU.
  • Компоненты и сервисы, работающие поверх ядра и предлагающие такие абстракции как виртуальная файловая система, система обработки исключений, хранилище в формате ключ/значение, интерфейс командной строки FinSH, сетевой стек (LwIP) и сетевые фреймворки, библиотеки для поддержки устройств, звуковая подсистема, беспроводной стек, компоненты для поддержки Wi-Fi, LoRa, Bluetooth, 2G/4G. Модульная архитектура позволяет подключать компоненты и сервисы в зависимости от своих задач и имеющихся аппаратных ресурсов.
  • Пакеты программ. Программные компоненты общего назначения и библиотеки функций распространяются и устанавливаются в форме пакетов. В настоящее время репозиторий включает более 450 пакетов, предлагающих от графических интерфейсов, мультимедийных приложений и сетевых приложений до систем управления роботами и обработчиков на базе машинного обучения. В пакетах также поставляются движки для организации выполнения программ на языках Lua, JerryScript, MicroPython, PikaScript и Rust (rtt_rust).

Особенности платформы:

  • Поддержка архитектур:
    • ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (поддерживаются микроконтроллеры таких производителей, как ST, Winner Micro, MindMotion, Realtek, Infineon, GigaDevic, Nordic, Nuvoton, NXP).
    • ARM Cortex-R4.
    • ARM Cortex-A8/A9 (NXP).
    • ARM7 (Samsung).
    • ARM9 (Allwinner, Xilinx, GOKE).
    • ARM11 (Fullhan).
    • MIPS32 (Loongson, Ingenic).
    • RISC-V RV32E/RV32I[F]/RV64[D] (sifive, Canaan Kendryt, bouffalo_lab, Nuclei, T-Head, HPMicro).
    • ARC (SYNOPSYS)
    • DSP (TI).
    • C-Sky.
    • x86.
  • Расширяемая модульная архитектура, позволяющая сформировать окружение, подходящее для систем с ограниченными ресурсами (минимальные требования - 3 КБ Flash и 1.2 КБ ОЗУ).
  • Поддержка различных стандартных интерфейсов для разработки программ, таких как POSIX, CMSIS, C++ API. Отдельно развивается прослойка RTduino для совместимости с API и библиотеками проекта Arduino.
  • Возможность расширения через систему пакетов и подключаемых компонентов.
  • Поддержка разработки приложения для высокопроизводительной обработки информации.
  • Гибкая система управления питанием, позволяющая автоматически переводить устройство в режим сна и динамически управлять напряжением и частотой в зависимости от нагрузки.
  • Поддержка аппаратных средств для шифрования и расшифровки, предоставление библиотек с различными криптографическими алгоритмами.
  • Унифицированный интерфейс для доступа к периферийным устройствам и дополнительному оборудованию.
  • Виртуальная ФС и наличие драйверов для таких ФС, как FAT, UFFS, NFSv3, ROMFS и RAMFS.
  • Стек протоколов для TCP/IP, Ethernet, Wi-Fi, Bluetooth, NB-IoT, 2G/3G/4G, HTTP, MQTT, LwM2M и т.п.
  • Система удалённой доставки и установки обновлений, поддерживающая шифрование и верификацию по цифровой подписи, возобновление прерванной установки, восстановление после сбоя, откат изменений и т.п.
  • Система динамически загружаемых модулей ядра, позволяющая отдельно собирать и разрабатывать компоненты ядра, и динамически загружать их при появлении необходимости.
  • Поддержка различных сторонних пакетов, например, Yaffs2, SQLite, FreeModbus, Canopen и т.п.
  • Возможность прямой компиляции BSP-пакета (Board Support Package) с компонентами для поддержки определённой аппаратной платформы, и его загрузки на плату.
  • Наличие эмулятора (BSP qemu-vexpress-a9), позволяющего разрабатывать приложения без использования реальных плат.
  • Поддержка типовых компиляторов и инструментов для разработки, таких как GCC, MDK Keil и IAR.
  • Развитие собственной интегрированной среды разработки RT-Thread Studio IDE, позволяющей создавать и отлаживать приложения, загружать их на платы, управлять настройками. Плагины для разработки программ для RT-Thread также доступны для Eclipse и VS Code.
  • Наличие консольного интерфейса Env, упрощающего создание проектов и настройку окружения.



Среди изменений в новом выпуске:

  • В RT-Smart, гибридной операционной системе на базе RT-Thread, отделяющей приложения от ядра, включена по умолчанию поддержка механизмов epoll, eventfd, signalfd, timerfd и select. Реализована подсистема эмулятора терминала. Добавлена поддержка устройств DFZU2EG MPSoC и cv181x-riscv.
  • В RTduino, слой для обеспечения совместимости с экосистемой Arduino, добавлена поддержка плат raspberry-pico, stm32h503-st-nucleo, stm32h563-st-nucleo, stm32f412-nucleo, stm32f407-rt-spark.
  • Обновлены сторонние компоненты, такие как ssh, sftp, weston и vim.
  • Добавлена поддержка новых плат и чипов, таких как HPMicro RISC-V, STM32 Nucleo, Adafruit Metro M4, Seeed Wio-Terminal, ST (stm32L431_tencentos, stm32h7s7-disco, stm32f407-lckfb-skystar, stm32h503-st-nucleo), Renesas (ek-ra8m1, ek-ra8d1, ra8d1-vision-board), AT32 (at32f402-start, at32f405-start), HT32 (ht32f52352, ht32f12366, AVR32 at32uc3a0256, at32uc3b0256), CVITEK (c906_little, cv18xx_risc-v), WCH (yd-ch32v307vct6), HC32 (ev_hc32f4a0_lqfp176, ev_hc32f460_lqfp100_v2), (ev_hc32f448_lqfp80, GD32 gd32407v-lckfb), NXP (frdm-mcxn947, frdm-mcxa153).
  • Оптимизирована работа планировщиков задач и CPU. Добавлена прослойка для абстрагирования планировщика rt_sched.
  • Проведена оптимизация работы на многоядерных системах.
  • Предоставлена возможность подключения обработчиков к операциям выделения памяти malloc.
  • Для архитектур ARM64 и RV64 реализована поддержка обратной трассировки (backtrace) ядра.
  • Продолжен переход на новую модель драйверов устройств.
  • В virtio-драйверах qemu-virt64-aarch64 и qemu-virt64-riscv добавлена поддержка SDL2.
  • Добавлен фреймворк для разработки драйверов clk.
  • В DFS добавлена конфигурация exfat. Ядро по умолчанию переведено на использование ФС dfsv2.
  • Улучшена поддержка TTY-терминалов.
  • В системе ввода/вывода добавлена поддержка флагов O_DIRECT и O_SYNC.
  • В реализации легковесных процессов lwP (Lightweight Process) функция wp_new заменена на lwp_create. Добавлена функция sys_setitimer.
  • В менеджер памяти MM добавлена поддержка резервирования памяти и реализована функция rt_aspace_mremap_range.
  • В Libcpu добавлена поддержка процессоров ARM Cortex-M85 и Cortex-R52

  1. OpenNews: Microsoft анонсировал открытие кода Azure RTOS и передачу проекта сообществу Eclipse
  2. OpenNews: Проект Tilck развивает упрощённое Linux-совместимое ядро
  3. OpenNews: Проект ZSWatch развивает открытые умные часы на базе ОС Zephyr
  4. OpenNews: Выпуск свободной операционной системы реального времени Zephyr 1.8
  5. OpenNews: Открыт код MuditaOS, мобильной платформы с поддержкой экранов на базе электронной бумаги
Обсуждение (60 +24) | Тип: Программы |
·24.04.2024 Выпуск эмулятора QEMU 9.0.0 (42 +29)
  Представлен релиз проекта QEMU 9.0. В качестве эмулятора QEMU позволяет запустить программу, собранную для одной аппаратной платформы на системе с совершенно иной архитектурой, например, выполнить приложение для ARM на x86-совместимом ПК. В режиме виртуализации в QEMU производительность выполнения кода в изолированном окружении близка к аппаратной системе за счёт прямого выполнения инструкций на CPU и задействования гипервизора Xen или модуля KVM в Linux, или модуля NVMM в NetBSD.

Изначально проект был создан Фабрисом Белларом (Fabrice Bellard) с целью обеспечения возможности запуска собранных для платформы x86 исполняемых файлов Linux на архитектурах, отличных от x86. За годы разработки была добавлена поддержка полной эмуляции для 14 аппаратных архитектур, число эмулируемых аппаратных устройств превысило 400. При подготовке версии 9.0 внесено более 2700 изменений от 220 разработчиков.

Ключевые улучшения, добавленные в QEMU 9.0:

  • В драйвер virtio-blk, предоставляющий виртуальное блочное устройство для виртуальных машин, добавлена поддержка многоуровневой системы очередей (multiqueue), позволяющей разделить очереди для разных блочных устройств для обеспечения многопоточного доступа на многоядерных системах (разные очереди одного диска могут обрабатываться разными потоками ввода/вывода).
  • В блочном устройстве usb-storage добавлена поддержка свойств 'backend_defaults', 'logical_block_size', 'physical_block_size', 'min_io_size', 'opt_io_size' и 'discard_granularity'.
  • В библиотеку gdbstub, предназначенную для удалённой отладки в GDB с использованием протокола RSP (Remote Serial Protocol), добавлена поддержка режима fork-follow, операции siginfo:read и перехвата системных вызовов в пространстве пользователя.
  • Бэкенды предварительного распределения памяти (preallocation) адаптированы для работы в многопоточном режиме и теперь могут одновременно обрабатывать запросы из нескольких потоков. .
  • В инструменты для миграции виртуальных машин добавлен режим "mapped-ram", повышающий эффективность создания снапшотов виртуальных машин. Улучшено определение нулевой страницы памяти, что позволило значительно ускорить миграцию неактивных виртуальных машин при наличии в системе поддержки multifd. При миграции на базе VFIO (Virtual Function I/O) реализована поддержка перезапуска с сохранённого состояния (checkpoint-restart).
  • Переписана реализация устройства ESP SCSI (am53c974/dc390).
  • Добавлена поддержка алгоритма шифрования SM4 и обеспечена возможность его использования в драйвере блочного устройства 'luks'.
  • В драйвер 'luks' добавлена поддержка создания и использования файлов с сохранёнными заголовками LUKS.
  • В эмуляторе архитектуры ARM реализована поддержка плат L475E-IOT01A IoT, mp3-an536 (MPS3 с прошивкой AN536) и raspi4b (Raspberry Pi 4 Model B). Добавлена поддержка эмуляции процессорных расширений ECV (Enhanced Counter Virtualization), NV (Nested Virtualization) и NV2 (Enhanced Nested Virtualization). Расширены возможности эмуляторов плат Freescale i.MX6, Allwinner R40, Bananapi, Raspberry Pi, npcm7xx и virt.
  • В эмулятор архитектуры RISC-V добавлена поддержка расширений архитектуры набора команд Zacas, amocas, RVA22, Zaamo, Zalrsc и Ztso. В виртуальных машинах RISC-V обеспечена поддержка SMBIOS. Для SRAT, SLIT, AIA и PLIC реализована поддержка ACPI. Обновлена поддержка таблиц RHCT.
  • В эмуляторе архитектуры HPPA до версии 16 обновлена прошивка SeaBIOS-hppa. Максимальный размер памяти увеличен с 3 ГБ до 3840 МБ. Добавлена поддержка опции "--nodefaults".
  • В эмуляторе архитектуры LoongArch появилась поддержка ускорения KVM и реализована поддержка векторных расширений набора команд LSX/LASX.
  • В эмуляторе архитектуры s390x добавлена поддержка инструкций CVDG, CVB, CVBY и CVBG. Улучшена эмуляция LAE (Load Address Extended).
  • В эмулятор архитектуры 68k добавлено устройство nubus-virtio-mmio, позволяющее получить доступ к устройствам virtio из машин q800.
  • Обеспечена сборка с флагом '-fzero-call-used-regs', позволяющим защититься от утечки информации из функций и сократить число блоков, пригодных для построения ROP-гаджетов (Return-Oriented Programming) в эксплоитах. Также добавлена сборка с флагом '-ftrivial-auto-var-init=zero' для автоматической инициализации нулевым значением всех переменных, хранимых в стеке.
  • Для выполнения QEMU с KVM теперь требуется наличие как минимум ядра Linux 4.4. Для ARM-хостов в будущем эту планку планируют поднять до версии 4.19. Прекращена поддержка использования 32-разрядных Windows в качестве хостовых ОС.
  • Добавлена поддержка OpenBSD 7.4.

  1. OpenNews: Выпуск эмулятора QEMU 8.2
  2. OpenNews: Представлен Blink, эмулятор x86-64, опережающий QEMU по производительности
  3. OpenNews: Venus - виртуальный GPU для QEMU и KVM, реализованный на базе API Vulkan
  4. OpenNews: Уязвимость в vhost-net, позволяющая обойти изоляцию в системах на базе QEMU-KVM
  5. OpenNews: Уязвимость, позволяющая выйти из изолированного окружения QEMU
Обсуждение (42 +29) | Тип: Программы |
·24.04.2024 Выпуск дистрибутива для создания сетевых хранилищ TrueNAS SCALE 24.04 (25 +14)
  Компания iXsystems опубликовала дистрибутив TrueNAS SCALE 24.04, в котором используется ядро Linux и пакетная база Debian (ранее выпускаемые продукты данной компании, в том числе TrueOS, PC-BSD, TrueNAS и FreeNAS, основывались на FreeBSD). Как и TrueNAS CORE (FreeNAS), TrueNAS SCALE может быть загружен и использован бесплатно. Размер iso-образа 1.5 ГБ. Исходные тексты специфичных для TrueNAS SCALE сборочных сценариев, web-интерфейса и прослоек опубликованы на GitHub.

Редакция TrueNAS SCALE на базе Linux теперь является основной, а ветка TrueNAS CORE на базе FreeBSD переведена в режим сопровождения, в котором планируют ещё много лет устранять ошибки и проблемы с безопасностью. Новые возможности и новые версии компонентов будут развиваться только в ветке TrueNAS SCALE. TrueNAS SCALE является не единственным вариантом FreeNAS на базе Linux - в 2009 году от FreeNAS отделился дистрибутив OpenMediaVault, который был переведён на ядро Linux и пакетную базу Debian.

Из особенностей TrueNAS SCALE отмечается возможность создавать хранилища, размещаемые на нескольких узлах, в то время как TrueNAS CORE (FreeNAS) позиционировался как решение на базе одного сервера. Кроме увеличения масшатабируемости, TrueNAS SCALE также отличается использованием изолированных контейнеров, упрощением управления инфраструктурой и пригодностью для создания программно-определяемых инфраструктур. В качестве файловой системы в TrueNAS SCALE применяется ZFS (OpenZFS). В TrueNAS SCALE предоставляется поддержка контейнеров Docker, виртуализации на базе KVM и масштабирования ZFS на несколько узлов при помощи распределённой файловой системы Gluster.

Для организации доступа к хранилищу поддерживается SMB, NFS, iSCSI Block Storage, S3 Object API и Cloud Sync. Для обеспечения защищённого доступа подключение может осуществляться через VPN (OpenVPN). Хранилище может быть развёрнуто на одном узле и в дальнейшем при увеличении потребностей постепенно горизонтально расширяться через добавление дополнительных узлов. Кроме выполнения задач, связанных с организацией работы хранилища, узлы также могут использоваться для предоставления сервисов и запуска приложений в контейнерах, оркестируемых при помощи платформы Kubernetes, или в виртуальных машинах на базе KVM.

В новой версии:

  • Обновлены версии ядра Linux 6.6.20, OpenZFS 2.2.3 и драйвера NVIDIA 545.23.08. Пакетная база синхронизирована с Debian 12.
  • Предложены новые страницы для отслеживания состояния сеансов SMB и NFS, и управления ими.
  • Добавлен интерфейс для просмотра логов аудита, связанных с работой SMB-клиентов, действиями с учётными записями и авторизацией.
  • В обрабатываемые через LDAP поля с учётными записями добавлена поддержка конфигураций на базе централизованной системы для идентификации пользователей FreeIPA.
  • Добавлена поддержка изолированных окружений SCALE Sandboxes, напоминающих LXC-контейнеры в Linux и jail-окружения во FreeBSD.
  • Предложен режим разработчика (Developer mode) для тонкой настройки TrueNAS.
  • Добавлен новый сводный виджет (Dashboard) для мониторинга и быстрого выполнения действий, связанных с резервным копированием.
  • Добавлен интерфейс Netdata (Reporting > Netdata) для анализа производительности системы.
  • Переработаны формы для создания разделов совместного доступа.
  • Переработана форма для создания резервных копий в облачных хранилищах.
  • В ZFS обновлена реализация адаптивного кэша ARC (Adaptive Replacement Cache), повышающего производительность операций чтения.
  • Добавлены новые уровни привилегий для делегирования пользователям отдельных полномочий администратора.
  • Повышена производительность работы с разделами SMB, содержащими большое число файлов.
  • Добавлена поддержка импорта данных в SMB-раздел из внешних систем, используя систему синхронизации файлов Syncthing.
  • Повышен контроль за качеством. Выпуск TrueNAS SCALE 24.04 отмечен как наиболее стабильный релиз в истории проекта.

  1. OpenNews: После TrueNAS CORE 13.3 ветка на основе FreeBSD будет переведена в режим сопровождения
  2. OpenNews: Выпуск дистрибутива для создания сетевых хранилищ TrueNAS SCALE 23.10
  3. OpenNews: Выпуск дистрибутива для создания сетевых хранилищ TrueNAS CORE 13.0-U5
  4. OpenNews: Доступен дистрибутив для создания сетевых хранилищ OpenMediaVault 7.0
  5. OpenNews: Объявлено об объединении проектов FreeNAS и TrueNAS
Обсуждение (25 +14) | Тип: Программы |
·23.04.2024 Выпуск nginx 1.26.0 с поддержкой HTTP/3 (58 +4)
  После года разработки опубликована новая стабильная ветка высокопроизводительного HTTP-сервера и многопротокольного прокси-сервера nginx 1.26.0, которая вобрала в себя изменения, накопленные в основной ветке 1.25.x. В дальнейшем все изменения в стабильной ветке 1.26 будут связаны с устранением серьёзных ошибок и уязвимостей. В скором времени будет сформирована основная ветка nginx 1.27, в которой будет продолжено развитие новых возможностей. Для обычных пользователей, у которых нет задачи обеспечить совместимость со сторонними модулями, рекомендуется использовать основную ветку, на базе которой раз в три месяца формируются выпуски коммерческого продукта Nginx Plus.

В соответствии с мартовским отчётом компании Netcraft под управлением nginx работает около 243 млн сайтов (год назад 289 млн). Nginx используется на 18.15% всех активных сайтов (год назад 18.94%, два года назад 20.08%), что соответствует второму месту по популярности в данной категории (доля Apache соответствует 20.09% (год назад 20.52, два года назад 22.58%), Cloudflare - 14.12% (11.32%, 10.42%), Google - 10.41% (9.89%, 8.89%). При этом при рассмотрении всех сайтов nginx сохраняет лидерство и занимает 22.31% рынка (год назад 25.94%, два года назад - 31.13%), в то время как доля Apache соответствует 20.17% (20.58, 23.08%), Cloudflare - 11.24% (10.17, 5.49%), OpenResty (платформа на базе nginx и LuaJIT) - 7.93% (7.94%, 8.01%).

Среди миллиона самых посещаемых сайтов в мире доля nginx составляет 20.63% (год назад 21.37%, два года назад 21.79%), Cloudflare - 22.59% (год назад 21.62%), Apache httpd - 20.09% (21.18%). По данным W3Techs nginx используется на 34.3% сайтов из миллиона самых посещаемых, в апреля прошлого года этот показатель составлял 34.5%, позапрошлого - 33.1%. Доля Apache за год снизилась с 32.2% до %30.1, а доля Microsoft IIS снизилась с 5.6% до 4.8%. Доля Node.js увеличилась с 2.4% до 3.2%, а доля LiteSpeed с 11.8% до 12.9%.

Наиболее заметные улучшения, добавленные в процессе формирования основной ветки 1.25.x:

  • Добавлен модуль ngx_http_v3 с экспериментальной поддержкой протокола HTTP/3. Для сборки модуля предусмотрена опция "--with-http_v3_module". HTTP/3 определяет использование протокола QUIC (Quick UDP Internet Connections) в качестве транспорта для HTTP/2. QUIC представляет собой надстройку над протоколом UDP, поддерживающую мультиплексирование нескольких соединений и обеспечивающую методы шифрования, эквивалентные TLS/SSL. Протокол был создан в 2013 году компанией Google в качестве альтернативы связке TCP+TLS для Web, решающей проблемы с большим временем установки и согласования соединений в TCP и устраняющей задержки при потере пакетов в процессе передачи данных.
  • Добавлена отдельная директива "http2" для выборочного включения протокола HTTP/2 в привязке к серверам (может использоваться в отдельных блоках "server"). Параметр "http2" в директиве "listen" объявлен устаревшим.
  • Усилена защита от аномальной активности клиентов HTTP/2, и, в частности, от DoS-атак класса "Rapid Reset", в которых создаётся большое число сразу сбрасываемых потоков в рамках одного соединения HTTP/2. В конфигурации по умолчанию подобные атаки упираются в лимит на число запросов на соединение "keepalive_requests" (после каждых 1000 запросов соединение будет сбрасываться) и в ограничения "limit_req". Для более раннего реагирования на флуд запросами через большое число потоков добавлено дополнительное ограничение, не позволяющие создавать по умолчанию более 256 (2 * max_concurrent_streams) новых потоков на каждый цикл обработки событий. Новое ограничение даёт возможность начать блокировать запросы до достижения общего лимита на число одновременных потоков, например, когда потоки обрабатываются асинхронно или сбрасываются.
  • В модуль stream добавлена поддержка виртуальных серверов, конфигурация которых определяется в блоке "server { ... }" при помощи директивы server_name.
    
       server {
           server_name ~^(www\.)?(.+)$;
           proxy_pass www.$2:12345;
       }
    
  • Добавлен новый модуль ngx_stream_pass_module, предназначенный для проброса принятых соединений напрямую в любой слушающий сокет, связанный с такими модулями, как http, stream и mail.
    
       stream {
           server {
               listen 12345 ssl;
    
               ssl_certificate     domain.crt;
               ssl_certificate_key domain.key;
    
               pass 127.0.0.1:8000;
           }
       }
    
  • В директиве listen модуля stream реализована поддержка параметров "deferred" (включает отложенный accept), "accept_filter" (фильтр входящих соединений, применяемый перед вызовом функции accept) и "setfib" (задание таблицы маршрутизации).
  • Для некоторых архитектур реализована поддержка определения размера блока (cache line), используемого для передачи данных между кэшем CPU и памятью.
  • Улучшено управление буферами, используемыми при автоматическом определении соединений HTTP/2.
  • Повышена производительность запуска конфигураций с большим числом директив "location".
  • Удалена поддержка технологии Server push в HTTP/2.
  • Прекращена поддержка директивы "ssl", ранее объявленной устаревшей.

Стабильный выпуск проекта FreeNginx 1.26.0, развивающего форк Nginx, был опубликован две недели назад. Разработку форка ведёт Максим Дунин, один из ключевых разработчиков Nginx. FreeNginx позиционируется как некоммерческий проект, обеспечивающий разработку кодовой базы Nginx без корпоративного вмешательства.

  1. OpenNews: Новые версии nginx 1.25.5 и форка FreeNginx 1.26.0
  2. OpenNews: Выпуск Angie 1.5.0, российского форка Nginx
  3. OpenNews: Представлен FreeNginx, форк Nginx, созданный из-за несогласия с политикой компании F5
  4. OpenNews: Выпуск nginx 1.24.0
Обсуждение (58 +4) | Тип: Программы |
·23.04.2024 Релиз дистрибутива Fedora Linux 40 (117 +24)
  Представлен релиз дистрибутива Fedora Linux 40. Для загрузки подготовлены продукты Fedora Workstation, Fedora Server, Fedora CoreOS, Fedora Cloud Base, Fedora IoT Edition и Live-сборки, поставляемые в форме спинов c десктоп-окружениями KDE Plasma, Xfce, MATE, Cinnamon, LXDE, Phosh, LXQt, Budgie и Sway. Сборки сформированы для архитектур x86_64, Power64 и ARM64 (AArch64). Публикация сборок Fedora Silverblue задерживается.

Наиболее значимые изменения в Fedora Linux 40:

  • Рабочий стол GNOME в Fedora Workstation обновлён до версии 46, в которой появилась функция глобального поиска, повышена производительность файлового менеджера и эмуляторов терминала, добавлена экспериментальная поддержка механизма VRR (Variable Refresh Rate), улучшено качество вывода при дробном масштабировании, расширены возможности подключением к внешним сервисам, обновлён конфигуратор и улучшена система уведомлений. В GTK задействован новый движок отрисовки, который базируется на API Vulkan.
  • Редакция с рабочим столом KDE обновлена до выпуска KDE 6, использующего протокол Wayland. Поддержка сеанса на основе протокола X11 в базовой поставке прекращена (можно вернуть, установив из репозитория пакет plasma-workspace-x11). Для запуска X11-приложений в сеансе на основе Wayland задействован DDX-сервер XWayland. В качестве причины прекращения поддержки сеанса с X11 упоминается перевод X.Org-сервера в RHEL 9 в категорию устаревших и решение полностью удалить его в будущем значительном выпуске RHEL 10. Среди факторов, способствовавших оставлению только поддержки Wayland, называется выполненная в Fedora 36 замена драйверов fbdev на драйвер simpledrm, корректно работающий с Wayland, а также появление поддержки Wayland в проприетарных драйверах NVIDIA.
  • Атомарно обновляемые пользовательские дистрибутивы, развиваемые проектом Fedora, объединены в единое семейство под брендом Atomic Desktops, но давно существующие атомарные сборки сохранили старое название. В итоге, Fedora Silverblue на базе GNOME и Fedora Kinoite на базе KDE, а также Fedora CoreOS и Fedora IoT, сохранили прежние имена, но новые сборки Fedora Sericea и Fedora Onyx теперь распространяются под именами Fedora Sway Atomic и Fedora Budgie Atomic.
  • Обновлены версии пакетов, среди которых LLVM 18, GCC 14, binutils 2.41, glibc 2.39, gdb 14.1, PHP 8.3, Ruby 3.3, Go 1.22, Java 21, AMD ROCm 6, Boost 1.83, 389 Directory Server 3.0.0, Podman 5, PostgreSQL 16, TBB (Thread Building Blocks) 2021.8, SQLAlchemy 2, Kubernetes 1.29.
  • В конфигураторе NetworkManager по умолчанию включён механизм определения конфликта IPv4-адресов в локальной сети (RFC 5227), суть которого в отправке проверочного ARP-пакета перед прикреплением адреса к сетевому интерфейсу (если получен ответ, значит адрес занят и не будет назначен). Для беспроводных соединений обеспечено назначение отдельного постоянного MAC-адреса (режим stable-ssid в NetworkManager).
  • Сборочные инструментарии Mock (mock-core-configs), Koji и Copr переведены на использование пакетного менеджера DNF 5 для установки сборочных зависимостей в chroot-окружение, используемое при сборке пакетов. Перевод самого дистрибутива на DNF 5 ожидается в следующем выпуске.
  • В пакетном менеджере DNF по умолчанию отключена загрузка метаданных со списками файлов, входящих в пакеты. Подобные данные редко используются, но имеют большой размер и замедляют работу.
  • Удалён пакет с библиотекой OpenSSL 1.1, в связи с прекращением поддержки данной ветки. Привязанные к OpenSSL 1.1 зависимости переключены на OpenSSL 3.0. Удалён пакет python3.7.
  • Библиотека Zlib заменена на форк Zlib-ng, совместимый с zlib на уровне API, но предоставляющий дополнительные оптимизации для повышения производительности.
  • Прекращено формирование delta-обновлений RPM-пакетов, позволяющих загружать при обновлении только изменившиеся данные относительно уже установленной версии пакета. Отключена поддержка deltarpm в DNF и DNF5.
  • Добавлен Passim, кэширующий сервер для распространения часто запрашиваемых файлов в локальной сети без прямого обращения к основным серверам и без привлечения глобальных CDN.
  • Модуль pam_userdb переведён с использования BerkeleyDB на GDBM из-за прекращения сопровождения ветки BerkeleyDB 5.x и перевода ветки BerkeleyDB 6.x на неприемлемую лицензию. Bogofilter переведён на использование SQLite вместо BerkeleyDB (libdb).
  • Для сборки Live-образов Fedora Workstation задействован инструментарий Image Builder, поддерживающий повторяемые сборки и предлагающий пользователям более простой процесс кастомизации образов.
  • Для сборки минимальных образов для архитектуры ARM задействован инструментарий osbuild.
  • Для формирования образов Fedora Cloud Edition вместо ImageFactory задействован инструментарий Kiwi.
  • Проведена реструктуризация пакетов для Kubernetes.
  • Fedora IoT, редакция для устройств интернета вещей, переведена на использование загрузочных контейнеров, сформированных при помощи инструментария OSTree и технологии bootc.
  • Утилита wget заменена на wget2, а утилита iotop на iotop-c.
  • В редакциях Fedora Silverblue и Kinoite включена программа bootupd, выполняющая обновление загрузчика.
  • Объявлена устаревшей библиотека libuser, которая осталась без сопровождения и уже не используется в других пакетах Fedora (для поддержки LDAP в дистрибутиве давно применяется SSSD). Удалён пакет passwd с реализацией утилиты passwd на базе libuser, вместо которой задействована аналогичная утилита из пакета shadow-utils.
  • Проведена работа по подготовке к включению в GCC по умолчанию более новой версии стандарта языка Си, что ознаменует прекращение по умолчанию поддержки некоторых устаревших возможностей языка, таких как неявное определение функций и неявное присвоение типа int.
  • Реализована вторая стадия перехода на модернизированный процесс загрузки, предложенный Леннартом Поттерингом. Отличия от классической загрузки сводятся к использованию вместо образа initrd, формируемого на локальной системе при установке пакета с ядром, унифицированного образа ядра UKI (Unified Kernel Image), генерируемого в инфраструктуре дистрибутива и заверенного цифровой подписью дистрибутива. Образ UKI объединяет в одном файле обработчик для загрузки ядра из UEFI (UEFI boot stub), образ ядра Linux и загружаемое в память системное окружение initrd. При вызове образа UKI из UEFI предоставляется возможность проверки целостности и достоверности по цифровой подписи не только ядра, но и содержимого initrd, проверка достоверности которого важна, так как в данном окружении осуществляется извлечение ключей для расшифровки корневой ФС.

    На второй стадии добавлена возможность прямой загрузки UKI из UEFI-модуля shim.efi без привлечения отдельного загрузчика (grub, sd-boot), реализована поддержка использования UKI на системах с архитектурой Aarch64 и подготовлен вариант UKI-образа для облачных окружений и защищённых виртуальных машин. До этого на первой стадии в Fedora 38 была добавлена поддержка UKI в загрузчик, реализован инструментарий для установки и обновления UKI, а также сформирован экспериментальный образ UKI для загрузки виртуальных машин с ограниченным набором компонентов и драйверов.

  • В репозиторий добавлен готовый пакет с фреймворком машинного обучения PyTorch, доступный для установки командой "dnf install pytorch". В настоящее время в пакете включены только компоненты для вычислений при помощи CPU, но в будущих выпусках планируют добавить поддержку привлечения GPU и специализированных NPU-ускорителей.

Дополнительно можно отметить введение в строй для Fedora 40 "free" и "nonfree" репозиториев проекта RPM Fusion, в которых доступны пакеты с дополнительными мультимедиа приложениями (MPlayer, VLC, Xine), видео/аудио кодеками, поддержкой DVD, проприетарными драйверами AMD и NVIDIA, игровыми программами и эмуляторами.

  1. OpenNews: В Fedora 41 утверждён переход на пакетный менеджер DNF5
  2. OpenNews: В Fedora 41 намечено удаление из базовой поставки сеанса X11 для GNOME
  3. OpenNews: Представлено семейство атомарно обновляемых дистрибутивов Fedora Atomic Desktops
  4. OpenNews: Опубликован Fedora Asahi Remix 39, дистрибутив для ARM-чипов Apple
  5. OpenNews: Релиз дистрибутива Fedora Linux 39
Обсуждение (117 +24) | Тип: Программы |
·22.04.2024 Проект Raspberry Pi Media Center развивает серию открытых Hi-Fi устройств (110 +21)
  В рамках проекта Raspberry Pi Home Media Center развивается несколько компактных открытых аппаратных устройств для организации работы домашнего медиацентра. В качестве основы в устройствах задействована плата Raspberry Pi Zero, сопряжённая с цифро-аналоговым преобразователем, позволяющим добиться высококачественного вывода звука. Устройства поддерживают подключение к сети через Wi-Fi или Ethernet, и могут управляться через пульт дистанционного управления. Схемы и распайки печатных плат, а также модели для корпусов опубликованы под лицензией GPLv3. Код для использования цифро-аналогового преобразователя вместе с платой Raspberry Pi открыт под лицензией GPLv3.

Устройство Louder Raspberry Pi примечательно использованием микросхемы TI TAS5805M с цифро-аналоговым преобразователем и усилителем D-класса, способным обеспечить вывод стереозвука на колонки с мощностью 22 Вт на канал. Устройство поставляется с IR-приёмником для пульта ДУ, USB-C, Wi-Fi и Ethernet (Wiznet W5500 SPI). Размер 88 x 38 x 100 мм. Стоимость $35.

Устройство Raspberry Pi HiFi оснащено более простым цифро-аналоговым преобразователем TI PCM5100 и рассчитано на использование с внешним усилителем. Устройство оснащено IR-приёмником для пульта ДУ, USB-C, Wi-Fi, Ethernet (Wiznet W5500 SPI) и линейным аудиовыходом для подключения усилителя. Размер 88 x 38 x 100 мм. Стоимость $25.

В разработке находится устройство Loud Raspberry Pi, примечательное использованием двух микросхем Analog Devices MAX98357 с цифро-аналоговыми преобразователями и усилителями D-класса. Устройство рассчитано на подключение колонок, мощностью 3 Вт.

  1. OpenNews: Представлена новая плата Raspberry Pi Zero 2 W
  2. OpenNews: Проект Raspberry Pi анонсировал плату Zero W с Bluetooth и Wi-Fi
  3. OpenNews: Атака на системы голосового управления через передачу команд в ультразвуковом диапазоне
  4. OpenNews: Атака на микрофоны систем голосового управления при помощи лазера
  5. OpenNews: Разработано устройство для определения скрытого включения микрофона
Обсуждение (110 +21) | Тип: К сведению |
·22.04.2024 Использование BPF-программ для решения проблем в устройствах ввода (56 +17)
  Питер Хаттерер (Peter Hutterer), мэйнтейнер подсистемы ввода X.Org, работающий в Red Hat, представил новую утилиту udev-hid-bpf, предназначенную для автоматической загрузки BPF-программ, исправляющих проблемы в устройствах ввода с интерфейсом HID (Human Interface Device) или меняющих их поведение в зависимости от предпочтений пользователя. Для создания обработчиков к HID-устройствами, таким как клавиатуры и мыши, применяется подсистема HID-BPF, появившаяся в ядре Linux 6.3 и позволяющая создавать драйверы устройств ввода в форме BPF-программ или обрабатывать различные события в подсистеме HID.

Утилита udev-hid-bpf может использоваться вместе с механизмом udev для автоматической активации BPF-программ при подключении новых устройств ввода или для загрузки BPF-программ в ручном режиме. Выделяются две основные категории BPF-программ для использование вместе с udev-hid-bpf: программы для устранения проблем в аппаратном обеспечении или прошивках, и программы для изменения поведения устройств по желанию пользователя.

В первом случае решаются задачи устранения недоработок и ошибок в устройствах, таких как инвертированные оси координат, некорректные диапазоны значений (например, заявление о наличии 8 кнопок вместо 5) и нелогичные последовательности событий. Во втором случае речь об изменении настроек устройств, например, при помощи BPF-программ можно поменять местами кнопки. Предполагается, что BPF-программы с исправлениями со временем будут включены в основной состав ядра и позволят обойтись без добавления в ядро патчей или отдельных драйверов.

  1. OpenNews: Релиз ядра Linux 6.3
  2. OpenNews: Релиз Libinput 1.0, унифицированного стека для работы с устройствами ввода
  3. OpenNews: Разработчики Gentoo официально анонсировали проект eudev, не зависящий от systemd
  4. OpenNews: В рамках проекта vdev развивается новая альтернатива devfs и udev
  5. OpenNews: Исправление в ядре Linux привело к проблемам с некоторыми графическими планшетами
Обсуждение (56 +17) | Тип: К сведению |
·22.04.2024 Выпуск реляционно-графовой СУБД EdgeDB 5.0 (20 +4)
  Доступен релиз СУБД EdgeDB 5.0, реализующей реляционно-графовую модель данных и язык запросов EdgeQL, оптимизированные для работы со сложными иерархическими данными. Проект развивается в форме надстройки над PostgreSQL, код которой написан на языках Python и Rust (парсер и критичные к производительности части), и распространяется под лицензией Apache 2.0. Клиентские библиотеки подготовлены для языков Python, Go, Rust. .NET, Elixir и TypeScript/Javascript. Предоставляется инструментарий командной строки для управления СУБД и интерактивного выполнения запросов (REPL).

Вместо модели данных на основе таблиц в EdgeDB применяется декларативная система на основе объектных типов. Вместо внешних ключей (foreign key) для определения связи между типами применяется связывание ссылками (один объект может использоваться как свойство другого объекта).


   type Person {
     required name: str;
   }
   type Movie {
     required title: str;
     multi actors: Person;
   }

Поддерживаются такие возможности как строгая типизация свойств, ограничения значений свойств, вычисляемые свойства и хранимые процедуры. Из особенностей объектной схемы хранения EdgeDB, которая чем-то напоминает ORM, отмечается возможность смешивания схем, связывания свойств из разных объектов и интегрированная поддержка JSON. Для ускорения обработки запросов могут применяться индексы.

Предоставляются встроенные инструменты для миграции схемы хранения - после изменения схемы, задаваемой в отдельном esdl-файле, достаточно выполнить команду "edgedb migration create" и СУБД проанализирует различия в схеме и в интерактивном режиме сгенерирует скрипт для перехода на новую схему. Автоматически отслеживается история изменения схемы.

Для формирования запросов поддерживается язык запросов GraphQL и собственный язык EdgeDB, представляющий собой адаптацию SQL для иерархических данных. Вместо списков результаты запроса оформляются в структурированном виде, а вместо подзапросов и операций JOIN предоставляется возможность указания одного запроса EdgeQL в качестве выражения внутри другого запроса. Поддерживаются транзакции и циклы.


   select Movie {
     title,
     actors: {
       name
     }
   }
   filter .title = "The Matrix"

   insert Movie {
     title := "The Matrix Resurrections",
     actors := (
       select Person
       filter .name in {
         'Keanu Reeves',
         'Carrie-Anne Moss',
         'Laurence Fishburne'
       }
     )
   }

В новой версии:

  • Добавлена поддержка ветвления ("branching"), позволяющая использовать при работе с данными и схемами концепцию веток, применяемую в системах управления версиями. Вместо термина "база данных" в новом выпуске предложено понятие "ветка" (branch), а команды "create database" и "drop database" объявлены устаревшими и вместо них рекомендовано использовать новые команды "create empty branch" и "drop branch". Помимо пустых веток при помощи команд "create schema branch" и "create data branch" можно создавать ответвления от существующих веток и БД, копируя из них схему хранения и данные.

    С практической стороны поддержка веток позволяет синхронизировать данные с кодом, используемым для их обработки, сохранив при этом совместимость со старым кодом. Например, после обновления кода можно привязать к нему новую ветку данных, учитывающую внесённые в коде изменение схемы хранения. Рассмотренную функциональность удобно использовать для упрощения разработки и тестирования новых версий ПО, после готовности которых достаточно переключиться на уже протестированную ветку.

  • В расширение pgvector, применяемое для эффективного хранения и запроса векторов, добавлен новый тип индексов HNSW (Hierarchical Navigable Small Worlds), который, по аналогии с индексом IVFFlat, доступен в трёх вариантах: ext::pgvector::hnsw_euclidean, ext::pgvector::hnsw_ip и ext::pgvector::hnsw_cosine. Кроме того, в pgvector расширены возможности по тонкой настройке индексов через объект ext::pgvector::Config.
  • Добавлены дополнительные возможности аутентификации. В расширении auth реализована поддержка беспарольных схем аутентификации WebAuthn (Passkeys) и "magic links" (на базе email). Добавлена поддержка использования платформ Slack и Discord в качестве OAuth-провайдеров.
  • Внесены оптимизации производительности. В реализации кэша с результатами компиляции запросов обеспечено сохранение состояния между перезапусками и добавлена автоматическая перекомпиляция после миграции. Повышена скорость работы с большими схемами хранения.
  • В языке запросов EdgeQL​ в выражении "for" разрешено не указывать ключевое слово "union" в базовых запросах, в которых используются выражения insert, update или delete.
  • Добавлена команда vacuum() для чистки, оптимизации и упаковки содержимого БД.
  • Разрешено преобразование данных между типом bytes и типами int16, int32, int64 и uuid, используя функции to_bytes(), to_uuid() и to_int*().
  • Добавлена возможность закрытия всех соединений к БД после выполнения операции "drop database".

  1. OpenNews: Релиз СУБД Neo4j 1.3, ориентированной на хранение графов
  2. OpenNews: Выпуск СУБД OrientDB 2.2
  3. OpenNews: На конференции Google I/O представлена открытая графо-ориентированная СУБД Cayley
  4. OpenNews: Выпуск графо-ориентированной СУБД Nebula Graph 3.2
  5. OpenNews: Для PostgreSQL подготовлено дополнение AGE для хранения данных в форме графа
Обсуждение (20 +4) | Тип: Программы |
·22.04.2024 Lunatik - инструментарий для создания в ядре Linux обработчиков на языке Lua (159 +17)
  Проект Lunatik развивает инструментарий, позволяющий использовать язык Lua для расширения функциональности ядра Linux и быстрого написания скриптов-обработчиков, работающих на уровне ядра. Для выполнения кода задействован интерпретатор Lua, модифицированный для работы на уровне ядра. Код проекта написан на языке Си и распространяется под лицензией MIT.

Для загрузки и выполнения Lua-скриптов на уровне ядра используется специальный драйвер, а для управления Lua-окружением в ядре из пространства пользователя предлагаются утилита командной строки. Проект также предоставляет C API для управления загрузкой и выполнением Lua-скриптов из ядра Linux, который может применяться, например, для выполнения отдельных обработчиков на языке Lua из традиционных модулей ядра, написанных на языке Си. Для обращения к функциям ядра из кода на языке Lua предлагается Lua API и набор привязок.

В Lua-скриптах можно использовать подмножество библиотечных функций и возможностей, ограниченное в силу специфики работы внутри ядра. Например, в коде не поддерживается выполнение операций с плавающей запятой, нельзя использовать библиотеки io и os, а также недоступны многие функции библиотеки math. В C API не поддерживаются функции luaL_Stream, luaL_execresult, luaL_fileresult, luaopen_io и luaopen_os.

Среди возможностей утилиты командной строки можно отметить команды для загрузки, выгрузки и перезагрузки модулей Lunatik в ядре, вывод состояния загруженных модулей, просмотр списка выполняемых в ядре скриптов, запуск скриптов, создания и остановка runtime-окружений Lua в ядре, использование интерактивной оболочки REPL (Read–Eval–Print Loop).

Проектом также предоставляется набор примеров, позволяющих оценить возможности Lunatik. Например, доступны скрипты с реализацией драйвера символьного устройства, сетевого сниффера с возможностью ведения журнала с MAC-адресами, БД для хранения данных в виде ключ/значение, сервера для протокола ECHO, кейлоггера для ведения лога нажатых клавиш, блокировщика клавиатуры (после нажатия "↑ ↑ ↓ ↓ ← → ← → LCTRL LALT" ядро перестаёт обрабатывать нажатия клавиш вплоть до повторного ввода данной последовательности), драйвера для мониторинга за системными вызовами, сервиса маршрутизации, различных надстроек над подсистемами Netfilter и XDP.

  1. OpenNews: Открыт код Luau, варианта языка Lua с проверкой типов
  2. OpenNews: Релиз языка программирования Lua 5.4
  3. OpenNews: Компания Microsoft опубликовала реализацию Lua VM, написанную на языке Go
  4. OpenNews: Представлена распределённая ОС Node9, сочетающая технологии Inferno и язык Lua
  5. OpenNews: В ядро NetBSD добавлена поддержка расширений на языке Lua
Обсуждение (159 +17) | Тип: Программы |
·21.04.2024 Выпуск Kata Containers 3.4 с изоляцией на основе виртуализации (44 +15)
  Опубликован выпуск проекта Kata Containers 3.4, развивающего стек для организации выполнения контейнеров с использованием изоляции на базе полноценных механизмов виртуализации. Проект создан компаниями Intel и Hyper путём объединения технологий Clear Containers и runV. Код проекта написан на языках Go и Rust, и распространяется под лицензией Apache 2.0. Развитие проекта курирует рабочая группа, созданная под эгидой независимой организации OpenInfra Foundation, в которой участвуют такие компании, как Canonical, China Mobile, Dell/EMC, EasyStack, Google, Huawei, NetApp, Red Hat, SUSE и ZTE.

Основу Kata составляет runtime, позволяющий создавать компактные виртуальные машины, выполняемые с использованием полноценного гипервизора, вместо применения традиционных контейнеров, использующих общее ядро Linux и изолированных при помощи пространств имён и cgroups. Применение виртуальных машин позволяет добиться более высокого уровня безопасности, защищающего от совершения атак, вызванных эксплуатацией уязвимостей в ядре Linux.

Kata Containers ориентирован на интеграцию в существующие инфраструктуры контейнерной изоляции c возможностью применения подобных виртуальных машин для усиления защиты традиционных контейнеров. Проектом предоставляются механизмы для обеспечения совместимости легковесных виртуальных машины с различными инфраструктурами контейнерной изоляции, платформами оркестровки контейнеров и спецификациями, такими как OCI (Open Container Initiative), CRI (Container Runtime Interface) и CNI (Container Networking Interface). Доступны средства для интеграции с Docker, Kubernetes, QEMU и OpenStack.

Интеграция с системами управления контейнерами достигается при помощи прослойки, симулирующей управление контейнером, которая через gRPC-интерфейс и специальный прокси обращается к управляющему агенту в виртуальной машине. Внутри виртуального окружения, которое запускается гипервизором, используется специально оптимизированное ядро Linux, содержащее только минимальный набор необходимых возможностей.

В качестве гипервизора поддерживается использование Dragonball Sandbox (редакция KVM, оптимизированная для контейнеров) с инструментарием QEMU, а также Firecracker и Cloud Hypervisor. Системное окружение включает в себя демон инициализации и агент (Аgent). Агент обеспечивает выполнение определённых пользователем образов контейнера в формате OCI для Docker и CRI для Kubernetes. При использовании совместно с Docker для каждого контейнера создаётся отдельная виртуальная машина, т.е. запускаемое поверх гипервизора окружение применяется для вложенного запуска контейнеров.

Для уменьшения потребления памяти применяется механизм DAX (прямой доступ к ФС в обход страничного кэша без применения уровня блочных устройств), а для дедупликации одинаковых областей памяти применяется технология KSM (Kernel Samepage Merging), что позволяет организовать совместное использование ресурсов хост-системы и подключить к разным гостевым системам общий шаблон системного окружения.

Для организации доступа к образам контейнеров задействована файловая система Nydus, в которой используется адресация по содержимому для эффективной совместной работы с типовыми образами. Nydus поддерживает загрузку образов на лету (загружает только при возникновении необходимости), обеспечивает дедупликацию повторяющихся данных и может использовать разные бэкенды для фактического хранения. Предоставляется совместимость с POSIX (по аналогии с Composefs, реализация Nydus совмещает возможности OverlayFS c EROFS или FUSE-модулем).

В новой версии:

  • В менеджер виртуальных машин Dragonball добавлена поддержка горячего подключения GPU и возможность использования регистров MTRR (Memory-Type Range Registers) для организации доступа к областям физической памяти.
  • В runtime-rs, реализации runtime на языке Rust, обеспечена полная обработка потоков, pid и tid, а также переработан драйвер qemu, который задействован на системах с архитектурой s390 (IBM Z).
  • Обновлён сервис для создания снапшотов с использованием ФС Nydus.
  • В сервисе управления образами контейнеров повышена эффективность работы с памятью.
  • Включено по умолчанию монтирование иерархии cgroups-v2 во время загрузки при помощи systemd.
  • Добавлена возможность определения таймаута для ограничения времени получения очень больших образов в гостевых системах.
  • Добавлена поддержка сборки OPA-агента (Open Policy Agent) для архитектур ppc64le и s390x.

  1. OpenNews: Google открыл код защищённой операционной системы KataOS
  2. OpenNews: Выпуск Kata Containers 3.0 с изоляцией на основе виртуализации
  3. OpenNews: Компании Intel и Hyper представили проект Kata Containers
  4. OpenNews: Amazon открыл код легковесной платформы виртуализации Firecracker
Обсуждение (44 +15) | Тип: Программы |
·20.04.2024 Уязвимость в Glibc, эксплуатируемая через скрипты на PHP (91 +33 )
  В стандартной Си-библиотеке Glibc выявлена уязвимость (CVE-2024-2961), приводящая к переполнению буфера при преобразовании специально оформленных строк в кодировке ISO-2022-CN-EXT функцией iconv(). Выявивший проблему исследователь планирует 10 мая выступить на конференции OffensiveCon с докладом, в анонсе которого упоминается возможность эксплуатации уязвимости через приложения на языке PHP. Заявлено, что проблема затрагивает всю экосистему PHP и некоторые приложения.

При преобразовании строк в кодировке UCS4, в соответствии с требованиями RFC 1922, библиотека добавляет некоторые escape-символы, выделяющие части строки, в которых кодировка была изменена. Уязвимость вызвана некорректной проверкой границ внутренних буферов функцией iconv(), что может привести к переполнению буфера максимум на 4 байта. При переполнении за границу буфера могут быть записаны определённые фиксированные значения, такие как '$+I', '$+J', '$+K', '$+L', '$+M' и '$*H'. Несмотря на то, что эксплуатация подобной уязвимости для выполнения кода кажется маловероятной, по заявлению выявившего проблему исследователя этого оказалось достаточно для подготовки нескольких прототипов эксплоитов для удалённой атаки на PHP-приложения, приводящей к выполнению кода.

Уязвимость проявляется с 2000 года и устранена в находящейся в разработке ветке Glibc 2.40. Исправление также доступно в виде патчей для выпусков Glibc с 2.32 по 2.39. В дистрибутивах проследить за исправлением уязвимости можно на страницах: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

Дополнение: Эксплуатация PHP-приложений возможна только на системах с установленными локалями *CN-EXT и *CNEXT, проверить наличие которых можно командой "iconv -l | grep -E 'CN-?EXT'". Если локали присутствуют их следует отключить, закомментировав в файле /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.d/gconv-modules-extra.conf (или /usr/lib64/gconv/gconv-modules.d/gconv-modules-extra.conf) строки с упоминанием ISO-2022-CN-EXT и ISO2022CNEXT, и после этого обновив кэш командной "sudo iconvconfig".

  1. OpenNews: Уязвимость в glibc, позволяющая получить root-доступ в системе
  2. OpenNews: Уязвимость в Glibc ld.so, позволяющая получить права root в большинстве дистрибутивов Linux
  3. OpenNews: Уязвимость в Glibc, позволяющая вызвать крах чужого процесса
  4. OpenNews: Уязвимость в Glibc, позволяющая поднять привилегии в системе
  5. OpenNews: Уязвимость в Glibc ld.so, позволяющая поднять свои привилегии в системе
Обсуждение (91 +33 ) | Тип: Проблемы безопасности |
Следующая страница (раньше) >>



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру