The OpenNET Project / Index page

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

/ Обзоры / Анонсы программ
·06.06 Первый выпуск программы для ведения заметок KleverNotes (106 +18)
  Разработчики из проекта KDE представили выпуск программы для ведения заметок KleverNotes 1.0, которая написана с использованием фреймворка Kirigami и может использоваться как на десктопах, так и на мобильных устройствах. При написании заметок предлагается использовать разметку Markdown, результат применения которой сразу отображается в области предпросмотра. Кроме этого поддерживается режим ведения списка задач (TODO) и вставка простейших рисунков линиями.

Заметки могут размещаться в иерархическом виде с разбивкой на категории и группы. Функциональность приложения расширяется через плагины, например, доступны плагины для связывания разных заметок, подсветки синтаксиса, быстрой вставки emoji и создания диаграмм с использованием разметки PlantUML. Стиль предпросмотра текста в формате Markdown может изменяться пользователем при помощи тем оформления, использующих CSS.

  1. Главная ссылка к новости
  2. OpenNews: Выпуск новой версии программы для ведения заметок OutWiker 3.2
  3. OpenNews: Открыт код платформы для ведения заметок Notesnook, конкурирующей с Evernote
  4. OpenNews: GNote - попытка переписать программу для ведения заметок TomBoy на C++
Обсуждение (106 +18) | Тип: Программы |


·05.06 Google опубликовал GWPSan, инструмент для выявления ошибок на стадии выполнения приложений (19 +13)
  Компания Google опубликовала исходные тексты инструментария GWPSan, предназначенного для выявления ошибок на этапе выполнения приложений, собранных для архитектур x86-64 и ARM64. GWPSan собирается в виде разделяемой библиотеки, которая связывается при запуске приложения при помощи LD_PRELOAD и использует для анализа работы программы доступные в ядре Linux механизмы остановки (PERF_TYPE_BREAKPOINT) и сэмплинга процессов. Код написан на языке С++ и распространяется под лицензией Apache 2.0.

GWPSan оформлен в виде модульного фреймворка, поддерживающего подключение модулей с реализацией детекторов различных классов ошибок. GWPSan выполняет динамический анализ, активируемый через обработчики сигналов, что позволяет обойтись без изменения исполняемого кода приложения. Для эффективной работы большинства детекторов требуется сборка приложения с определёнными флагами компилятора, добавляющими необходимые метаданные. Для работы требуется как минимум Clang 18 и ядро Linux 6.4.

В настоящее время доступно три детектора:

  • UAR (Use-after-return) - выявляет ошибки, вызванные использованием объекта в стеке после выхода из функции, в которой этот объект был определён. Защита организована через перехват точек входа и выхода для функции - при входе осуществляется подмена стека на копию для использования во время выполнения функции, а при выходе возвращается старое состояние стека.
  • TSan (Thread Sanitizer) - определяет состояния гонки между потоками (Data-race), возникающее когда разные одновременно выполняемые потоки могут читать или изменять общие области памяти, не используя при этом примитивы для синхронизации работы. Защита построена на использовании аппаратных точек останова, привязываемых к совместным областям памяти. Срабатывающий обработчик на небольшой промежуток времени приостанавливает выполнение потока при обращении к памяти и во время этой приостановки проверяет не было ли срабатывания точки останова для другого потока.
  • LMSan (Lightweight Memory Sanitizer) - определяет использование неинициализированных данных в памяти. Детектор отмечен как экспериментальный и не рекомендованный для использования.

GWPSan анализирует исполняемый код программы, используя фреймворк DynamoRIO для декодирования машинного кода в абстрактные инструкции ISA, которые затем выполняются с использованием эмуляции. Через периодические сигналы от таймера вызывается обработчик unified, который при каждом вызове выполняет определённую порцию инструкций для анализируемого потока. В случае обнаружения при выполнении определённых инструкций, запускается специфичный для данных инструкций детектор проблем, например, для инструкций, обращающихся к памяти, запускается детектор состояний гонки.

  1. Главная ссылка к новости
  2. OpenNews: Проект Openwall подготовил модуль для защиты от эксплуатации уязвимостей в ядре Linux
  3. OpenNews: Выпуск cppcheck 2.12, статического анализатора кода для языков C++ и С
  4. OpenNews: Открыт код статического анализатора Code Climate
  5. OpenNews: Facebook открыл RacerD, статический анализатор для многопоточного кода на Java
  6. OpenNews: Релиз свободного статического анализатора кода frama-clang 0.0.5
Обсуждение (19 +13) | Тип: Программы |


·26.05 Опубликован инструмент для отслеживания убывающих звёзд на GitHub (78 +9)
  Доступен скрипт shotstars, решающий проблему с отслеживанием исчезновения "звёзд" у проектов на GitHub. Штатные возможности GitHub не предоставляют пользователям информацию по убывающим "звёздам" в проекте и позволяют получить сведения только по их прибавлению. Проект написан на языке Python и распространяется под лицензией GPLv3+. Готовые сборки, не требующие наличия в системе Python, доступны для GNU/Linux, Windows и Android (Termux).

Идея скрипта "shotstars" состоит в следующем: В самом начале пользователь выбирает чей репозиторий он хочет отслеживать. Далее скрипт будет парсить звезды на предмет их убывания и прибавления за определённый пользователем промежуток времени, формируя список различий между предыдущим сканированием и текущем состоянием. Регистрация в GitHub, авторизация и токен для работы скрипта не требуются. Поддерживается парсинг звёзд с проверками на ошибки и ограничения, имитация результатов, отчёты в CLI и HTML в том числе с расчётами дат. Работа shotstars рассчитана на средние и небольшие проекты, имеющие до 6000 звёзд (лимит API GitHub в 6K звезд/час).

  1. Главная ссылка к новости
  2. OpenNews: Уязвимость в GitHub Enterprise Server, дающая права администратора без аутентификации
  3. OpenNews: GitHub намерен запретить размещение сомнительных проектов для создания дипфейков
  4. OpenNews: GitHub включил по умолчанию систему защиты от утечек токенов к API
  5. OpenNews: На GitHub выявлено более 100 тысяч репозиториев с вредоносным кодом
  6. OpenNews: В публичном коде найден GitHub-токен от внутренних репозиториев Мерседес
Обсуждение (78 +9) | Автор: snooppr | Тип: Программы |


·22.05 SmolBSD - инструментарий для создания микро-сборок NetBSD (57 +16)
  Проект SmolBSD развивает инструментарий для формирования микро-сборок NetBSD, которые включают только минимально необходимые для определённого приложения компоненты и могут загружаться менее чем за секунду. SmolBSD может применяться для создания урезанных виртуализированных окружений для изолированного запуска отдельных сервисов. Размер создаваемого базового окружения около 10 МБ. Код проекта распространяется под лицензией BSD.

Для создания окружений подготовлен инструментарий mksmolnb, который может запускаться в NetBSD и GNU/Linux. При сборке в NetBSD в формируемом системном образе применяется файловая система FFS, а при сборке в Linux - ext2. В инструментарии предоставляются примеры скриптов для запуска создаваемых окружений в QEMU и системе виртуализации Firecracker, реализующей концепцию microVM, нацеленную на достижение производительности на уровне обычных контейнеров при использовании аппаратной виртуализации на базе гипервизора KVM.

  1. Главная ссылка к новости
  2. OpenNews: Использование rump-ядер NetBSD для создания ОС уровня отдельных приложений
  3. OpenNews: Разработчики NetBSD представили технологию запуска отдельных приложений поверх Xen
  4. OpenNews: В рамках проекта HermiTux развивается unikernel, бинарно совместимый с Linux
  5. OpenNews: Проект Xen представил Unikraft для выполнения приложений поверх гипервизора
  6. OpenNews: Проект NetBSD развивает новый гипервизор NVMM
Обсуждение (57 +16) | Тип: Программы |


·21.05 Проект Cozystack выпустил Talm, менеджер конфигураций для Talos Linux (13 +26)
  Разработчики свободной PaaS-платформы Cozystack подготовили проект Talm, призванный упростить конфигурацию bare-metal серверов для Talos Linux, операционной системы для запуска Kubernetes, которая имеет Kubernetes-подобное API и настраивается одним Yaml-манифестом. Несмотря на то что Talm был создан для описания декларативной установки Cozystack, он не привязан конкретно к этой платформе и может использоваться для управления любыми конфигурациями Talos Linux. Проект развивается под лицензией MPL.

Необходимость разработки ещё одного менеджера конфигураций для Talos Linux обусловлена ориентацией на bare-metal серверы. Разработчики стремились создать наиболее простой интерфейс, похожий на Helm и kubectl, хорошо знакомые утилиты администраторам Kubernetes.

Ввиду того, что каждый физический сервер имеет различную конфигурацию (MAC-адреса, интерфейсы и диски), необходимо иметь отдельный конфигурационный файл под каждую ноду. Нужен простой менеджер, который позволял бы генерировать такие файлы конфигурации на основе собранной информации и декларативно обновлять их.

Для этого используется динамическая генерация файлов конфигурации по заданному шаблону. Есть готовые пресеты "generic" и "cozystack". Talm умеет на этапе генерации собирать информацию из Talos API и использовать её для результирующих конфигураций. Эти файлы конфигурации не содержат секретов, а только изменения, что позволяет удобно хранить их в Git и управлять ими декларативно.

В большинстве Talm повторяет структуру Helm, оперируя понятием чарт, в котором описываются шаблоны для генерации конфигурации. Поддерживаются Helm-подобные функции lookup для опроса Talos API напрямую и сбор дополнительных метаданных для генерации файлов конфигурации с использованием "go templates" и библиотеки sprig.

Команда:


    talm template -t templates/controlplane.yaml -e 1.2.3.4 -n 1.2.3.4 > nodes/srv1.yaml

Опрашивает ноду "1.2.3.4" по API, генерирует для неё новый файл конфигурации из шаблона, подставляя необходимые данные. Полученный файл конфигурации можно сразу же применить одной лишь командой:


    talm apply -f nodes/srv1.yaml

Также в каждом таком файле конфигурации Talm устанавливает свой modeline, в котором запоминает эндпоинты ноды и шаблоны, из которых он был получен, чтобы их было удобно применять и обновлять без указания дополнительных опций. Talm поддерживает все те же команды, что и upstream утилита talosctl, но позволяет передавать им конфигурационный файл ноды, например:


    talm dashboard -f nodes/srv1.yaml -f nodes/srv2.yaml -f nodes/srv3.yaml

выведет интерактивный дашборд для всех трёх нод. А команда:


    talm get routes -f nodes/srv1.yaml

выведет список роутов на ноде "srv1"

При необходимости файлы конфигурации можно выгрузить с опцией "--full" на отдельный PXE-сервер, что позволяет нодам скачивать их автоматически. Таким образом, Talm сохраняет вариативность bare-metal серверов, обеспечивая удобное управление ими в соответствии с лучшими практиками GitOps.

  1. OpenNews: Первый альфа-выпуск etcd-оператора для Kubernetes
  2. OpenNews: Первый выпуск свободной PaaS-платформы Cozystack на базе Kubernetes
Обсуждение (13 +26) | Автор: kvaps | Тип: Программы |


·21.05 Проект Bend развивает высокоуровневый язык для параллельных вычислений на GPU (131 +17)
  Опубликованы первые выпуски проекта Bend, развивающего высокоуровневый язык программирования для параллельных вычислений, который позиционируется как альтернатива низкоуровневыми языкам, таким как CUDA и Metal, обладающая выразительным синтаксисом и возможностями для повышения удобства разработки, свойственными таким языкам, как Python и Haskell. Код проекта написан на языке Rust и распространяется под лицензией Apache 2.0.

Из возможностей языка Bend отмечается быстрое распределение объектов, возможность использования функций высшего порядка, замыканий, продолжений, неограниченной рекурсии, сопоставления с образцом, рекурсивных сопоставлений (fold) и циклов (bend), целочисленных, строковых и списочных типов. Поддерживается два варианта синтаксиса - в стиле Python и в стиле Haskell. В программах не требуется указание управляющих распаралелливанием аннотаций, явного создания потоков и выставления блокировок. Распараллеливание производится автоматически, например, при вычислении выражения "((1 + 2) + (3 + 4))", операции "1 + 2" и "3 + 4" будут выполнены параллельно.

Программы на языке Bend могут выполняться на оборудовании, обеспечивающем массовый пареллелизм, например, на GPU, демонстрируя практически линейный рост производительности в зависимости от числа вычислительных ядер. Код на языке Bend компилируется в низкоуровневое промежуточное представление HVM2 (Higher-order Virtual Machine 2), которое затем компилируется в представление на C и CUDA. В настоящее время проектом поддерживается только выполнение на GPU NVIDIA.

Что касается производительности, то тестовое приложение с реализацией битонной сортировки, при выполнении в одном потоке CPU Apple M3 Max было выполнено за 12.15 сек., при задействовании 16 потоков - за 0.96 сек., а при привлечении GPU NVIDIA RTX 4090 с 16k потоками - за 0.21 сек.


   def sort(d, s, tree):
     switch d:
       case 0:
         return tree
       case _:
         (x,y) = tree
         lft   = sort(d-1, 0, x)
         rgt   = sort(d-1, 1, y)
         return rots(d, s, lft, rgt)

   def rots(d, s, tree):
     switch d:
       case 0:
         return tree
       case _:
         (x,y) = tree
         return down(d, s, warp(d-1, s, x, y))
   ...

  1. Главная ссылка к новости
  2. OpenNews: Представлен Rust GPU, инструментарий для разработки шейдеров на языке Rust
  3. OpenNews: Сотрудник Google развивает язык программирования Carbon, нацеленный на замену C++
  4. OpenNews: Apple опубликовал Pkl, язык программирования для определения конфигурации
  5. OpenNews: Первый тестовый выпуск языка программирования Hare
  6. OpenNews: Выпуск языка программирования Mojo 24.3
Обсуждение (131 +17) | Тип: К сведению |


·15.05 Проект ALDOS развивает вариант Fedora без systemd (106 +2)
  Представлен выпуск мексиканского дистрибутива ALDOS 1.4.18, предлагающего пользовательское окружение в классическом стиле, рассчитанное на минимальное потребление ресурсов и способное работать на маломощных системах. Дистрибутив основан на технологиях Fedora Linux, но поставляется без системного менеджера systemd, вместо которого для инициализации и запуска сервисов задействована система Upstart, для координации работы с устройствами - Eudev, а для управления сеансами elogind. Размер установочного образа 1.9 ГБ. Актуальная ветка дистрибутива ALDOS 1.4 будет сопровождаться до конца сентября 2029 года.

Из особенностей ALDOS также выделяется использование самой старой из поддерживаемых веток ядра Linux - 4.19, которая выбрана как наименее раздутая и нетребовательная к ресурсам. Для установки на более новом оборудовании доступно ядро Linux 5.4. SELinux по умолчанию отключён. Графическое окружение построено на основе Xfce 4.18, но при желании из репозиториев можно установить MATE, KDE Plasma, LXQt и Lumina Desktop. Из коробки доступен полноценный набор мультимедийных кодеков, а в репозитории насчитывается более 35 тысяч пакетов. По умолчанию предлагается локализации для испанского, каталанского и английского языков (поддержку других языков можно установить из репозитория).

Среди задействованных в выпуске ALDOS 1.4.18 версий программ: Glibc 2.27, LLVM 14.0.1, GCC 8.5, FFmpeg 6.0, Binutils 2.30, Python 3.9, Qt 5.15.13/6.2.7, GTK 3.24/4.10, Firefox 125, LibreOffice 7.3, Minder 1.16.4, Celluloid 0.26, MPV 0.38, Audacious 4.3.1, Remmina 1.4.35.

  1. Главная ссылка к новости
  2. OpenNews: Выпуск дистрибутива Devuan 5.0, форка Debian 12 без systemd
  3. OpenNews: Операционная система Chrome OS Flex готова для установки на любое оборудование
  4. OpenNews: Выпуск Linux-дистрибутива Hyperbola 0.4, начавшего миграцию на технологии OpenBSD
  5. OpenNews: Выпуск легковесного дистрибутива antiX 23.1
  6. OpenNews: Проект postmarketOS представил сборки на базе systemd
Обсуждение (106 +2) | Тип: Программы |


·10.05 Проект gittuf развивает систему криптографической защиты репозиториев Git (72 +11)
  Доступен выпуск проекта gittuf 0.4, развивающего иерархическую систему верификации содержимого репозиториев Git, позволяющую минимизировать риски в ситуации компрометации отдельных разработчиков, имеющих доступ к репозиторию. Gittuf предоставляет дополнительный слой безопасности к Git и набор утилит для управления ключами всех разработчиков, имеющих доступ к репозиторию, и расстановки правил доступа к веткам, тегам и отдельным файлам. Код проекта написан на языке Go и распространяется под лицензией Apache 2.0. Проект находится на стадии активного развития и имеет качество альфа-выпуска, подходящего для экспериментов, но пока не готового для рабочих внедрений.

Информация и артефакты, обеспечивающие дополнительную верификацию вносимых изменений, хранятся в хранилище объектов Git в отдельном специфичном для gittuf пространстве имён, что позволяет сохранить обратную совместимость с имеющимися инструментами и сервисами, включая GitHub и GitLab. При использовании инструментов без поддержки gittuf, репозиторий остаётся полностью доступен, но ограничена возможность расширенной верификации его целостности. Архитектура gittuf базируется на проверенных элементах фреймворка TUF (The Update Framework), применяемого для защиты процессов формирования обновлений в таких проектах, как Docker, Fuchsia, AGL (Automotive Grade Linux) и PyPI.

Модель верификации в gittuf основана на применении иерархической системы распространения доверия. Корень доверия (root of trust) принадлежит владельцу репозитория, который может генерировать ключи для участников разработки и определять правила, в соответствии с которыми созданные ключи могут применяться. Gittuf позволяет создавать гибкие гранулированные правила, определяющие полномочия каждого разработчика и область репозитория, в которой он имеет возможность вносить изменения. Например, разработчик может быть авторизован для создания тегов, внесения изменений в определённые ветки или изменения только отдельных файлов в репозитории.

Разработчики и вносимые ими изменения идентифицируются по ключам и цифровым подписям. Gittuf позволяет генерировать новые ключи, безопасно распространять ключи, осуществлять периодическую ротацию ключей, отзывать скомпрометированные ключи, управлять списками доступа (ACL) и пространствами имён в Git-репозиториях. Gittuf также выполняет ведение эталонного лога всех изменений (RSL - Reference State Log), целостность и защита от искажения задним числом в котором обеспечивается при помощи древовидной структуры "дерево Меркла" (Merkle Tree) - каждая ветка верифицирует все нижележащие ветки и узлы благодаря древовидному хешированию (имея конечный хеш, пользователь может удостовериться в корректности всей истории операций, а также в корректности прошлых состояний).

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

  1. Главная ссылка к новости
  2. OpenNews: Доступен TUF 1.0, фреймворк для организации безопасной доставки обновлений
  3. OpenNews: Анонсирован GitTorrent для доступа к Git-репозиториям при помощи BitTorrent
  4. OpenNews: Представлен Seafile, Dropbox-подобный сервер хранения на основе технологий Git
  5. OpenNews: Объявлено о готовности системы криптографической верификации кода Sigstore
  6. OpenNews: Представлен OpenPubKey, протокол криптографической верификации объектов
Обсуждение (72 +11) | Тип: Программы |


·08.05 Red Hat представил дистрибутив RHEL AI и режим сборки RHEL на базе OSTree и bootc (55 +7)
  Компания Red Hat представила дистрибутив Red Hat Enterprise Linux AI (RHEL AI), который специально адаптирован для выполнения задач машинного обучения и призван упростить создание серверных решений, использующих большие диалоговые модели. В состав входит подборка инструментов и фреймворков для машинного обучения, а также драйверы для использования различных аппаратных ускорителей AMD, Intel и NVIDIA, и компоненты для задействования возможностей серверов Dell, Cisco, HPE, Lenovo и SuperMicro, оптимизированных для AI-систем.

RHEL AI предназначен для разработки, тестирования и выполнения систем машинного обучения на базе большой языковой модели Granite, открытой компанией IBM под лицензией Apache 2.0, способной учитывать при генерации текста до 4 тысячи токенов и охватывающей 7 миллиардов параметров. Для взаимодействия с моделью Granite в дистрибутив интегрирован открытый инструментарий InstructLab, поддерживающий методологию LAB (Large-scale Alignment for chatBots) для подгонки под свои нужды и оптимизации моделей, а также для добавления дополнительных знаний и реализации новых навыков в предварительно натренированных моделях.

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

Кроме того, компания Red Hat представила новый режим для создания и управления системными образами на базе Red Hat Enterprise Linux - "image mode", который позволяет использовать для развёртывания операционной системы инструменты и технологии, применяемые для создания и запуска контейнеров приложений. Новый режим манипулирует монолитными системными образами, формируемыми при помощи инструментария rpm-ostree и обновляемыми атомарно без разбивки на отдельные пакеты.

Сборки могут формироваться в виде образов в форматах OCI (как в Docker), ISO, QCOW2, AMI, VMI и VMDK. Содержимое образа выбирается через редактирование файла Containerfile. Для создания и управления образами могут использоваться стандартные инструменты управления контейнерами, такие как Podman и OpenShift Container Platform. Для установки образов может применяться как штатный инсталлятор Anaconda, так и инструментарий bootc-image-builder, позволяющий сконвертировать образ контейнера в загрузочный дисковый образ. Для обновления загрузочных образов контейнеров, которые поставляются с ядром Linux и способны загружаться по аналогии с обычными сборками системы, применяется инструментарий bootc.

  1. Главная ссылка к новости
  2. OpenNews: Релиз дистрибутива Red Hat Enterprise Linux 9.4
  3. OpenNews: Первый стабильный релиз ФС Composefs
  4. OpenNews: Представлено семейство атомарно обновляемых дистрибутивов Fedora Atomic Desktops
  5. OpenNews: Проект Silverblue будет развивать атомарно обновляемый вариант Fedora Workstation
Обсуждение (55 +7) | Тип: К сведению |


·08.05 Выпуск пакетного менеджера pacstall 5.0, развивающего аналог AUR для Ubuntu (23 +9)
  Доступен выпуск пакетного менеджера pacstall 5.0, развивающего аналог концепции AUR для Ubuntu Linux и собственный репозиторий, в котором присутствует 518 пакетов, позволяющих установить в текущем окружении Ubuntu наиболее свежие версии интересующих программ, параллельно с имеющимися в системе программами. Пакеты оформляются в формате pacscript, похожем на PKGBUILD в AUR и также включающем сведения о загрузке, зависимостях, сборке и установке. Код утилиты написан на Shell и распространяется под лицензией GPLv3.

Среди особенностей инструментария:

  • Поддержка как сборки программ из исходных текстов архивов с релизами и срезов из git-репозиториев, так и установки готовых сборок и пакетов в форматах Appimage и deb.
  • Возможность ускорения загрузки пакетов при помощи утилиты axel, поддерживающей распараллеливание потоков и загрузку порций данных одновременно с нескольких серверов.
  • При обновлении возможна загрузка самых свежих коммитов из Git, без необходимости ожидания обновления пакета.
  • Возможность установки программ из нескольких репозиториев.
  • Возможность отслеживания обновлений Pacstall из любых веток и форков.
  • Поддержка автодополнения команд в оболочках bash, ZSH и fish.

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

  • В формат pacscript внесён ряд изменений, нарушающих совместимость, например, переименованы некоторые параметры (name -> pkgname, homepage -> url и т.п.).
  • Добавлена возможность ограничения версий в массивах с определением зависимостей.
  • Добавлена функция check() и связанные с ней флаги -Nc/--nocheck.
  • Добавлены функции {pre,post}_upgrade и pre_remove для запуска перед или после обновления и удаления пакета.
  • Предоставлена возможность определения конфликтующих пакетов.
  • Добавлен параметр со списком лицензий.
  • Добавлены флаги -Qa/--quality-assurance и Q/--quiet.

  1. Главная ссылка к новости
  2. OpenNews: Эксперимент по получению контроля над пакетами в репозитории AUR
  3. OpenNews: Представлен DUR, аналог пользовательского репозитория AUR для Debian
  4. OpenNews: В AUR-репозитории Arch Linux найдено вредоносное ПО
  5. OpenNews: Репозиторий AUR переходит на Git
  6. OpenNews: unsnap - инструментарий для миграции Ubuntu со Snap на Flatpak
Обсуждение (23 +9) | Тип: Программы |


·06.05 Выпуск Lacmus 1.0.0, инструмента для поиска пропавших людей (78 +44)
  Состоялся релиз программы Lacmus 1.0 "Furious Vaporization". Проект представляет собой кроссплатформенное решение для автоматизации поиска и спасения пропавших людей с помощью алгоритмов компьютерного зрения и AI. Проект написан на языке C# и распространяется под лицензией GPLv3, а его разработка велась более пяти лет в тесном контакте с сообществом поисково-спасательных отрядов.

Программный комплекс Lacmus позволяет осуществлять автоматизированный поиск по фотографиям, отснятым с БПЛА, помогает выявлять снимки, на которых присутствует потерявшийся человек, и предоставляет пользователю координаты искомого объекта. Работа программы основана на применении нейронных сетей и алгоритмов компьютерного зрения для распознавания людей на снимках с БПЛА, что позволяет увеличить эффективность поисковых операций, сократить время на их проведение и, в конечном итоге, повысить вероятность успешного спасения потерявшихся людей.

Программа поддерживает различные операционные системы, включая Linux, Windows и macOS, и обеспечивает возможность использования различных типов графических ускорителей, таких как GPU NVIDIA, Intel, AMD, NPU и TPU, для оптимизации работы нейронных сетей. Для пользовательского интерфейса используется кроссплатформенный фреймворк AvaloniaUI, а для запуска моделей машинного обучения применяется ONNX Runtime и легковесная версия TensorFlow.

Модели компьютерного зрения распространяются в виде подключаемых модулей, которые можно скачать в каталоге ML-моделей в окне настроек программы, притом каждый такой плагин содержит в себе необходимые зависимости, избавляя конечного пользователя от установки дополнительных зависимостей и библиотек. В качестве основных архитектур нейронных сетей используются YOLOv5 и RetinaNet.

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

  1. Главная ссылка к новости
  2. OpenNews: В рамках открытого проекта Lisa/S подготовлена миниатюрная реализация автопилота
  3. OpenNews: Выпуск библиотеки компьютерного зрения OpenCV 4.7
  4. OpenNews: Linux Foundation представил Dronecode, открытую платформу для дронов
  5. OpenNews: Представлена программа управления дронами Kirogi
  6. OpenNews: Доступен WFB-ng 23.01, стек для организации связи с дронами при помощи карт Wi-Fi
Обсуждение (78 +44) | Автор: Georgy Perevozchikov | Тип: Программы |


·04.05 Основатель QEMU и FFmpeg опубликовал звуковой кодек TSAC (128 +51)
  Французский математик Фабрис Беллар (Fabrice Bellard), основавший в своё время проекты QEMU, FFmpeg, BPG, QuickJS, TinyGL и TinyCC, опубликовал формат кодирования звука TSAC и связанный с ним инструментарий для сжатия и распаковки звуковых файлов. Формат ориентирован на передачу данных с очень низким битрейтом, например, 5.5 kb/s для моно и 7.5 kb/s для стерео, при сохранении приемлемого качества музыки и речи. Использование TSAC позволяет упаковать музыкальную композицию, длительностью 3.5 минут и с частотой дискретизации 44.1 kHz (стерео), в файл размером 192 КБ, который будет почти неотличим от оригинала на слух неискушённого обывателя. Заявлено, что наработки проекта распространяются под лицензией MIT, но исходный код на данный момент не предложен для загрузки.

В качестве основы при создании TSAC использован звуковой кодек Descript, который расширен для поддержки стереозвука и переведён на использование другой модели машинного обучения на базе нейронной сети с архитектурой "трансформер", позволившей увеличить степень сжатия за счёт реконструкции утерянных деталей с учётом модели человеческого слухового восприятия. Модель занимает около 200 МБ в сжатом виде и оформлена в детерминированном представлении, которое гарантирует получение одинакового результата независимо от используемых CPU/GPU и числа задействованных при вычислениях потоков.

Кодировщик может работать с использованием для вычислений только CPU (для ускорения поддерживаются инструкции AVX2), но для достижения высокой производительности рекомендуется задействовать GPU. В текущем виде может применяться API CUDA для ускорения с использованием GPU NVIDIA на базе микроархитектур Ampere, ADA и Hopper (RTX 3090, RTX 4090, RTX A6000, A100 и H100), имеющих как минимум 4 ГБ видеопамяти. Для преобразования звуковых файлов перед кодированием применяется FFmpeg.

original
stereo 6.21 kb/s
mono 4.71 kb/s
stereo 2.57 kb/s

Дополнительно можно отметить обновление развиваемой Белларом утилиты ts_zip, предназначенной для эффективного сжатия текстовых данных, используя механизм предсказания токенов на основе системы машинного обучения и большой языковой модели RWKV 169M v4. При сжатии архива Википедии утилита ts_zip позволила сжать данные в 7.3 раза, а при сжатии кода ядра Linux 1.2 - в 7.8 раз. Для сравнения уровни сжатия при использовании утилиты xz составили 4.7 и 5.5 раз, соответственно. Ценой высокой эффективности сжатия является низкая скорость сжатия и большие требования к ресурсам (минимум 4 ГБ ОЗУ). На системе с GPU RTX 4090 производительность сжатия составляет примерно 1 MB/s.

  1. Главная ссылка к новости
  2. OpenNews: Facebook опубликовал звуковой кодек EnCodec, использующий машинное обучение
  3. OpenNews: Создатель QEMU и FFmpeg предложил новый формат изображений BPG
  4. OpenNews: Google опубликовал аудиокодек Lyra для передачи речи при плохом качестве связи
  5. OpenNews: Звуковому кодеку FLAC присвоен статус предложенного стандарта
  6. OpenNews: Доступен аудиокодек Opus 1.5
Обсуждение (128 +51) | Тип: К сведению |


·22.04 Использование BPF-программ для решения проблем в устройствах ввода (60 +18)
  Питер Хаттерер (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. Главная ссылка к новости
  2. OpenNews: Релиз ядра Linux 6.3
  3. OpenNews: Релиз Libinput 1.0, унифицированного стека для работы с устройствами ввода
  4. OpenNews: Разработчики Gentoo официально анонсировали проект eudev, не зависящий от systemd
  5. OpenNews: В рамках проекта vdev развивается новая альтернатива devfs и udev
  6. OpenNews: Исправление в ядре Linux привело к проблемам с некоторыми графическими планшетами
Обсуждение (60 +18) | Тип: К сведению |


·22.04 Lunatik - инструментарий для создания в ядре Linux обработчиков на языке Lua (171 +19)
  Проект 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. Главная ссылка к новости
  2. OpenNews: Открыт код Luau, варианта языка Lua с проверкой типов
  3. OpenNews: Релиз языка программирования Lua 5.4
  4. OpenNews: Компания Microsoft опубликовала реализацию Lua VM, написанную на языке Go
  5. OpenNews: Представлена распределённая ОС Node9, сочетающая технологии Inferno и язык Lua
  6. OpenNews: В ядро NetBSD добавлена поддержка расширений на языке Lua
Обсуждение (171 +19) | Тип: Программы |


·18.04 Опубликован Autodafe, инструментарий для замены Autotools на обычный Makefile (100 +36)
  Эрик Рэймонд (Eric S. Raymond), один из основателей организации OSI (Open Source Initiative), стоявший у истоков движения открытого ПО, опубликовал инструментарий Autodafe, позволяющий преобразовать сборочные инструкции и сценарии, применяемые утилитами Autotools, в один обычный Makefile, который может легко читаться и меняться разработчиками. Код проекта написан на языке Python и распространяется под лицензией BSD.

В состав входит программа makemake, которая преобразует сгенерированный утилитой automake сборочный файл Makefile в эквивалентный читаемый Makefile, пригодный для редактирования людьми и избавленный от внутренних конструкций automake. Дополнительное задействование утилиты ifdex позволяет полностью избавить проект от Autotools, заменив его на работу с обычным Makefile.

Мотивом для создания проекта Autodafe послужило желание вернуться к использованию обычных Makefile вместо переусложнённых сценариев Autotools, возникшее после инцидента с внедрением бэкдора в пакет xz. Из плюсов предлагаемого подхода называется упрощение сборочных правил, которые станет проще проверять и сложнее внедрить скрытую функциональность. Из недостатков отмечается потеря поддержки старых Unix-систем, усиление зависимости от libtool и снижение гибкости в настройке.

  1. Главная ссылка к новости
  2. OpenNews: Удаление Эрика Рэймонда из списков рассылки OSI и этические вопросы в открытых лицензиях
  3. OpenNews: Оценка возможности отзыва разработчиками своего кода из ядра Linux
  4. OpenNews: Эрик Реймонд основал проект по созданию открытого источника бесперебойного питания
  5. OpenNews: Первый стабильный релиз NTPsec, защищённого форка NTPD
  6. OpenNews: Эрик Реймонд представил новую систему управления версиями SRC
Обсуждение (100 +36) | Тип: Программы |


·16.04 Открыты исходные тексты игры Descent 3 (95 +46)
  Кевин Бентли (Kevin Bentley), один из разработчиков игры Descent 3, добился у руководства компании Outrage Entertainment открытия исходных текстов проекта. Кевин, который взял в свои руки сопровождение нового проекта, набирает команду энтузиастов для возрождения и продолжения развития игры. Код написан на языке C++ и открыт под лицензией MIT.

Релиз игры Descent 3 был опубликован в 1999 году. Игра сочетает в себе шутер от первого лица и симулятор полётов в открытом и замкнутом пространстве. Поддерживается однопользовательский режим прохождения миссий и многопользовательские бои. Опубликована самая свежая кодовая база Descent 3 "1.5 Patch", включающая подготовленные несколько лет назад изменения для актуализации кода, написанного в 1990-х годах. Поддерживается сборка для Linux, macOS и Windows.

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



Код первой в второй частей Descent был опубликован 1997 и 1998 годах для стимулирования разработки модов, но распространялся под проприетарной лицензией, запрещающей использование в коммерческих целях.

  1. Главная ссылка к новости
  2. OpenNews: Ассоциация K-D Lab открыла код игрового движка qdEngine
  3. OpenNews: Выпуск открытого игрового движка Godot 4.2
  4. OpenNews: Открыт код игрового движка Dagor Engine, который будет использован VK в Nau Engine
  5. OpenNews: Выпуск игрового движка Open 3D Engine 23.10, открытого компанией Amazon
  6. OpenNews: Первый выпуск открытого многопользовательского игрового движка Ambient
Обсуждение (95 +46) | Тип: Программы |


·15.04 Проект Redka развивает реализацию протокола и API Redis поверх SQLite (26)
  Опубликованы первые выпуски проекта Redka, нацеленного на предоставление RESP-протокола и API, совместимых с СУБД Redis, но реализованных поверх библиотеки SQLite. Задействование SQLite дополнительно позволяет обращаться к данным при помощи языка SQL, например, для формирования отчётов или анализа данных. Поддерживается использование ACID-транзакций. Redka может запускаться в форме сервера, принимающего запросы по сети, или использоваться в виде модуля для языка Go. Код проекта написан на языке Go и распространяется под лицензией BSD.

В настоящее время в Redka добавлена поддержка типов для работы со строками и хэшами, а также команд для манипуляции строковыми данными, ключами, транзакциями и хэшами. Например, доступны команды для установки и получения одного или нескольких привязанных к ключу строковых значений, задания времени жизни ключей, инкремента/декремента значений, поиска ключей по шаблону, переименования ключей, выполнения серии команд в рамках транзакции, отмены транзакции, работы с полями в хэшах.

В ближайшее время планируется добавить поддержку списков, коллекций (sets) и отсортированных коллекций. В отдалённой перспективе ожидается реализация алгоритма HyperLogLog, возможности для манипуляции географическими координатами и команд для взаимодействия с использованием модели publish/subscribe. Пока не планируется добавлять поддержку скриптов на языке Lua, аутентификацию, ACL, watch/unwatch и возможность работы в одном сервере с несколькими БД. Точно не будет реализована поддержка кластеров (Redis Cluster) и мониторинга (Redis Sentinel).

Тестирование производительности с использованием инструментария от проекта Redis, показало, что Redka в 2-6 раз отстаёт от Redis из-за отсутствия специфичных оптимизаций для хранения данных в формате ключ/значение. В частности, в созданном тестовом окружении Redis продемонстрировал производительность в 133 тысяч операций SET в секунду и 139 тысяч операций GET в секунду, в то время как производительность Redka составила 30 тысяч SET в секунду и 63 тысячи GET в секунду в ситуации, когда БД размещалась в оперативной памяти. При хранении БД на диске производительность Redka составила 22 тысячи операций SET в секунду и 56 тысяч GET в секунду.

  1. Главная ссылка к новости
  2. OpenNews: Выпуск Redict 7.3.0, форка СУБД Redis
  3. OpenNews: Amazon, Google, Oracle, Ericsson и Snap основали Valkey, форк СУБД Redis
  4. OpenNews: СУБД Redis переходит на проприетарную лицензию. Обсуждение удаления Redis из Fedora
  5. OpenNews: Microsoft открыл код хранилища Garnet, совместимого с Redis
  6. OpenNews: Первый стабильный выпуск FerretDB, реализации MongoDB на базе СУБД PostgreSQL
Обсуждение (26) | Тип: Программы |


·14.04 Библиотека LibGodot для встраивания в приложения сцен, созданных для игрового движка Godot (45 +19)
  Мигель де Икаса (Miguel de Icaza), основатель таких проектов, как GNOME, Midnight Commander и Mono, представил инициативу по реализации возможности встраивания в приложения произвольных сцен, подготовленных для игрового движка Godot. Для включения в состав Godot предложена библиотека LibGodot, позволяющая отрисовывать контент, созданный для движка Godot, а также предоставляющая API для управления движком и взаимодействия с контентом. Библиотека поддерживает динамическое и статическое связывание и может использоваться с кодом на C++, Swift, Rust, Python и других языках, для которых созданы обвязки GDExtension. Код открыт под лицензией MIT.

Разработчики библиотеки намерены добиться включения экспериментальной поддержки LibGodot в состав выпуска Godot 4.3, а в версии Godot 4.4 обеспечить поддержку в LibGodot графического API OpenGL и платформ Android, Windows, Linux (X11 и Wayland), помимо изначально поддерживаемых macOS и iOS. Из областей применения LibGodot, кроме интеграции контента Godot в графический интерфейс приложения (показа окон Godot, как части интерфейса), отмечается возможность управления движком Godot из приложения и решение задач, связанных с автоматизацией разработки (например, для задействования при сборке ассетов).

  1. Главная ссылка к новости
  2. OpenNews: Выпуск открытого игрового движка Godot 4.2
  3. OpenNews: Проект GodotOS подготовил оболочку операционной системы на игровом движке Godot
  4. OpenNews: Выпуск игрового движка Open 3D Engine 23.10, открытого компанией Amazon
  5. OpenNews: Открыт код игрового движка Dagor Engine, который будет использован VK в Nau Engine
  6. OpenNews: Раскол в сообществе свободного игрового движка Urho3D привёл к созданию форка
Обсуждение (45 +19) | Тип: Программы |


·11.04 Доступен OpenZiti 1.0, инструментарий для встраивания оверлейных сетей в приложения (16 +19)
  Представлен выпуск инструментария OpenZiti 1.0, позволяющего интегрировать в приложения средства для распределённого сетевого взаимодействия и обращения к сервисам в изолированном сетевом окружении. OpenZiti даёт возможность развернуть специфичную для разрабатываемых приложений оверлейную сеть, работающую поверх обычного интернета и использующую mesh-маршрутизацию, при которой каждая точка сети связывается через соседние точки. Код проекта написан на языке Go и распространяется под лицензией Apache 2.0. Предоставляются обвязки для языков C, Go, Python, Swift, Java, Node.js и C# (.NET), а также инструментарий для интеграции с приложениями для платформы Android.

Система OpenZiti изначально рассчитана на построение сетей, гарантирующих защиту и изоляцию трафика в условиях работы в незащищённых окружениях, узлы в которых могут быть скомпрометированы (архитектура с нулевым доверием - Zero Trust). Технология может применяться для организации связи c приложениями вместо VPN. Работа сети обеспечивается через использование процесса-контроллера, управляющего конфигурацией сети, аутентификацией и настройкой сервисов, а также узлов, которым разрешено выступать в роли маршрутизаторов, образующих mesh-сеть и выполняющих передачу через себя транзитного трафика. Возможно добавление сервисов для балансировки нагрузки и обеспечения отказоустойчивости.

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

Обращение к сети и получение данных с серверов DNS возможно только после прохождения обязательной авторизации и аутентификации - без наличия полномочий клиент не сможет определить наличие сервиса и подключиться к нему. Весь трафик защищается при помощи mTLS (взаимная аутентификация, при которой клиент и сервер аутентифицируют друг друга) и сквозного шифрования (ChaCha20-Poly1305), т.е. компрометация узлов сети не позволит просматривать трафик приложений. Для шифрования задействованы функции библиотеки libsodium.

Из популярных приложений, использующих OpenZiti, можно отметить платформу совместного доступа к данным Zrok и экосистему browZer для развёртывания сайтов в оверлейной сети. Кроме создания распределённых сетевых приложений OpenZiti также подходит для построения частных сетей для организации доступа к закрытым API, сайтам или БД, скрытия в оверлейной сети инфраструктур на базе Kubernetes, а также удалённого управления внешними системами и устройствами без настройки межсетевых экранов и задействования VPN.

В выпуске OpenZiti 1.0 обеспечена стабильность API для маршрутизаторов и контроллеров (для клиентов стабильность API гарантировалась и раньше). Начиная с данного выпуска в API и интерфейсе командной строки будет поддерживаться обратная совместимость, а при необходимости удаления возможностей будет применяться процесс предварительного перевода их в разряд устаревших и фактического удаления только при значительном смене номера версии. В новой версии также проведено дополнительное тестирование с симуляцией различных сбоев компонентов сети (chaos testing), позволяющее убедиться в устойчивости сети в случае возникновения нештатных ситуаций и способности возвращения к нормальной работе после возобновления работы сбойных компонентов.

  1. Главная ссылка к новости
  2. OpenNews: Meshtastic - реализация самодостаточной mesh-сети на базе передатчиков LoRa
  3. OpenNews: Выпуск Commotion 1.0, свободной платформы для удобного развёртывания mesh-сетей
  4. OpenNews: Проект Darknet по созданию свободного интернета с помощью беспроводных mesh-сетей
  5. OpenNews: Первый выпуск проекта Weron, развивающего VPN на базе протокола WebRTC
  6. OpenNews: Выпуск Nebula 1.5, системы для создания оверлейных P2P-сетей
Обсуждение (16 +19) | Тип: Программы |


·11.04 Проект по реализации zlib на языке Rust (179)
  Организация ISRG (Internet Security Research Group), которая является учредителем проекта Let's Encrypt и способствует развитию технологий для повышения защищённости интернета, представила проект zlib-rs по созданию защищённого аналога библиотеки сжатия данных zlib. Код zlib-rs написан на языке Rust и распространяется под лицензией Zlib. Разработка ведётся с оглядкой на проект zlib-ng, развивающий высокопроизводительный вариант zlib. Проектом разработаны две библиотеки: zlib-rs с реализаций API zlib, не использующей unsafe-блоки; libz-rs-sys - надстройка с C API, содержащая код в режиме "unsafe". Проект находится в стадии разработки.

В качестве причины создания zlib-rs упоминается намерение предоставить вариант zlib, избавленный от потенциальных проблем, вызванных ошибками при работе с памятью. По данным компаний Microsoft и Google около 70% уязвимостей вызваны небезопасной работой с памятью. Предполагается, что использование языка Rust для разработки zlib-rs позволит снизить риск появления уязвимостей, вызванных небезопасной работой с памятью, и исключить появление таких ошибок, как обращение к области памяти после её освобождения и выход за границы буфера.

Библиотека Zlib широко распространена и используется в качестве зависимости во многих системах, при том, что в коде Zlib периодически всплывают опасные уязвимости. Например, в 2022 году в zlib было выявлено переполнение буфера при попытке сжатия специально подготовленной последовательности символов, которое позволяло эксплуатировать уязвимость через передачу специально оформленных входящих данных.

  1. Главная ссылка к новости
  2. OpenNews: Компания Cloudflare открыла код Pingora, инструментария для создания сетевых сервисов
  3. OpenNews: DNS-сервер Trust-DNS переименован в Hickory и будет задействован в инфраструктуре Let's Encrypt
  4. OpenNews: Первый стабильный выпуск sudo-rs, реализации утилит sudo и su на языке Rust
  5. OpenNews: Первый стабильный выпуск zlib-ng, высокопроизводительного форка zlib
  6. OpenNews: Уязвимость в zlib, проявляющаяся при сжатии специально оформленных данных
Обсуждение (179) | Тип: Программы |


Следующая страница (раньше) >>



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

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