home tags events about login

opennet honked 20 Nov 2024 22:00 +0100

Выпуск свободной САПР FreeCAD 1.0

После более года разработки опубликован релиз открытой системы параметрического 3D-моделирования FreeCAD 1.0, которая отличается гибкими возможностями кастомизации и наращивания функциональности через подключение дополнений. Интерфейс построен с использованием библиотеки Qt. Дополнения могут создаваться на языке Python. Поддерживается сохранение и загрузка моделей в различных форматах, в том числе в STEP, IGES и STL. Код FreeCAD распространяется под лицензией LGPLv2, в качестве моделирующего ядра используется Open CASCADE. Готовые сборки подготовлены для Linux (AppImage), macOS и Windows.

FreeCAD позволяет, меняя параметры модели, обыгрывать различные варианты проектирования и оценивать работу в различные моменты разработки модели. Проект может выступать свободной заменой коммерческим САПР, таким как CATIA, Solid Edge и SolidWorks. Несмотря на то, что основным назначением FreeCAD является машиностроение и разработка дизайна новых продуктов, система может использоваться и в других областях, таких как архитектурное проектирование.

Значительное изменение номера версии объясняется достижением определённого рубежа в развитии. Проект существует уже более 20 лет и много лет назад сообщество разработчиков сформировало критерии, которые определяли функциональность, соответствующую выпуску 1.0. В представленной версии реализованы две последние задачи из этого списка - решение проблемы топологического именования и реализация встроенного модуля для проектирования работы сборных конструкций (Assembly).

Суть проблемы топологического именования в том, что при выполнении операций с моделью, таких как выдавливание (pad), вырезание (cut), объединение (union), фаска (chamfer) или скругление (fillet), могла измениться структура модели и соответственно поменяться внутренние имена объектов (форм), используемые для отслеживания зависимостей и связей. В новой версии реализован алгоритм Realthun­der-а, обеспечивающий сохранение неизменности связей объектов в модели после изменения топологии в параметрической цепочке.

Вторым важным изменением стал новый встроенный верстак для проектирования работы сборных многокомпонентных конструкций, собранных из отдельных деталей (Assembly Workbench), построенное с использованием наработок проекта Ondsel Solver.

Другие заметные изменения в новой версии:

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

    Панель задач преобразована в отдельный виджет, который может быть закреплён поверх Комбо-панели для воссоздания старого поведения. В инструменте "Преобразование" (Transform) модернизирован внешний вид интерфейса для изменения ориентации объекта по трём плоскостям.

    Добавлена возможность наложения виджетов. В настройках (Preferences → Display) появилась поддержка выставления позиции источника света.

    Изменено оформление окна с настройками, в котором вместо вкладок предложено древовидное представление.

    Реализована новая панель с вкладками для переключения между доступными верстаками (workbench).

    Добавлен универсальный инструмент для измерения, а также инструмент для выравнивания по выбранным граням или направлениям рёбер.

  • Верстак Start (Start Workbench) заменён на стартовую страницу, реализованную в форме приложения на Qt, и простой виджет первого запуска.
  • Осуществлено слияние верстаков для архитектурного проектирования (Arch) и информационного моделирования строительных объектов (BIM, Building Information Modelling).
  • Полностью переработан интерфейс для работы с материалами (Material Workbench) и редактор материалов.
  • Верстак для генерации инструкций G-Code для станков ЧПУ и 3D-принтеров значительно улучшен и переименован из Path в CAM.
  • Расширены возможности верстаков для двумерного рисования (Draft), анализа воздействий (FEM, Finite Element Module), создания заготовок (PartDesign), ведения электронных таблиц с параметрами моделей (Spreadsheet), эскизов 2D-фигур (Sketcher), 2D-моделирования и создания 2D-проекций 3D-моделей (TechDraw).


Источник: https://www.opennet.ru/opennews/art.shtml?num=62268

opennet honked 20 Nov 2024 22:00 +0100

Выпуск генератора лексических анализаторов re2c 4.0

Опубликован релиз re2c 4.0 - генератора лексических анализаторов (он же компилятор регулярных выражений в код на целевом языке программирования). Re2c специализируется на генерации быстрых и легко встраиваемых лексеров и отличается от более известного аналога Flex гибким интерфейсом, генерацией оптимизированных нетабличных лексеров и поддержкой захватов (submatch extraction) на основе детерминированных конечных автоматов с тэгами (TDFA). re2c используется в проектах, где важна скорость работы лексера, например в Ninja и в PHP.

В релизе 4.0 коренным образом переработана подсистема генерации кода, что позволило добавить поддержку восьми новых языков (D, Haskell, Java, JavaScript, OCaml, Python, V, Zig) в дополнение к уже поддерживаемым (C/C++, Go, Rust), а также реализовать общий механизм добавления новых языков через конфигурационные файлы.

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

Теперь вся эта логика перенесена в синтаксические файлы - текстовые конфигурационные файлы, которые могут быть предоставлены пользователем (по умолчанию re2c использует стандартные). Исходный код re2c полностью свободен от деталей конкретного языка и полагается только на синтаксический файл. Пользователь может частично переопределить существующий синтаксический файл или написать новый с нуля. Для всех официально поддерживаемых языков есть полная документация с примерами.

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

Источник: https://www.opennet.ru/opennews/art.shtml?num=62267

opennet honked 20 Nov 2024 14:00 +0100

Компания Canonical представила первый LTS-выпуск инструментария MicroCloud

Компания Canonical опубликовала инструментарий управления облачной инфраструктурой MicroCloud 2.1, позволяющий быстро развёртывать на своём оборудовании облачные системы и вычислительные кластеры с общим распределённым хранилищем данных и защищённой виртуальной сетью. MicroCloud 2.1 заявлен как первый LTS-выпуск для которого будет обеспечен длительный цикл поддержки. MicroCloud оформлен в виде snap-пакета, включающего компоненты, необходимые для управление работой узлов кластера. Инструментарий написан на языке Go и распространяется под лицензией AGPL 3.0.

MicroClouds позволяет создавать кластеры, насчитывающие от 3 до 50 хостов при включении обеспечения отказоустойчивости и от 1 хоста, если отказоустойчивость не требуется. Программный стек для управления кластером основан на инструментарии LXD, платформе для построения виртуальных сетей OVN (Open Virtual Network) и распределённом отказоустойчивом хранилище Ceph. Настройка LXD, Ceph и OVN на всех узлах кластера осуществляется автоматически. В качестве основной платформы рассматривается дистрибутив Ubuntu Server, но инструментарий не привязан к Ubuntu и может быть использован в любых дистрибутивах, для которых доступна возможность установки инструментария snap (Arch Linux, CentOS, Fedora, Debian, openSUSE, RHEL и т.п.).

Для определения новых серверов в сети, которые могут быть подключены к кластеру, используется mDNS, что позволяет настроить весь кластер запустив всего одну команду "microcloud init" на одном из узлов и команду "sudo microcloud join" на остальных узлах, предварительно установив snap-пакеты lxd, microceph, microcloud и microovn. После запуска команды "microcloud init" инструментарий определит наличие других серверов в локальной сети, выдаст запрос на добавление дисков в общее хранилище Ceph и предложит настроить параметры виртуальной сети. Для добавления дополнительных узлов после завершения инициализации можно использовать команду "microcloud add". Конфигурация кластера может быть сохранена в формате YAML для последующего развёртывания аналогичных систем.

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

После готовности кластера пользователям предоставляется возможность запуска своих приложений, используя контейнеры или виртуальные машины, а также возможность доступа к общему хранилищу Ceph и инструментарию централизованного управления на базе LXD. Возможно гибкое управление предоставляемыми ресурсами CPU, памяти и ввода/вывода, проброс в окружения USB-устройств, GPU и накопителей. Изолированные и виртуальные окружения могут переноситься между узлами в режиме live-миграции и сохраняться с использованием снапшотов. Метрики о работе кластера и лог событий могут экспортироваться для мониторинга при помощи Prometheus и Grafana.

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

  • Предоставлена возможность развёртывания MicroCloud на одном узле без поддержания отказоустойчивости, что может быть полезным для экспериментов и тестирования на локальной системе перед развёртыванием в рабочем окружении.
  • Добавлены новые возможности инициализации кластера, позволяющие узлам заранее инициировать процесс установки доверия, не дожидаясь начала процедуры присоединения к кластеру.
  • Предоставлена возможность указания дополнительных настроек на этапе инициализации, например, теперь можно выбрать отдельные сетевые интерфейсы для трафика Ceph (для направления через разные интерфейсы данных, требующих низких задержек и высокой пропускной способности), включить шифрование дисков и определить параметры распределённой ФС Ceph.
  • Обновлены версии используемых компонентов: LXD 5.21, MicroCeph Squid (Ceph 19.2.0) и MicroOVN 24.04 (Open vSwitch 3.3). Включён по умолчанию пользовательский интерфейс к LXD.



<iframe src="https://www.youtube.com/embed/M0y0hQ16YuE?si=iZ4ufkWt8BvKgWnh">

Источник: https://www.opennet.ru/opennews/art.shtml?num=62265

opennet honked 20 Nov 2024 12:00 +0100

Microsoft представил обновление WSL, прослойки для запуска Linux в Windows

Компания Microsoft объявила о расширении возможностей прослойки WSL (Windows Subsystem for Linux) и реализации официальной поддержки запуска в WSL окружений с дистрибутивом Red Hat Enterprise Linux. Заявлено, что в скором времени компания Red Hat начнёт формировать специальные сборки RHEL для WSL, которые можно будет найти и установить при помощи команд "wsl --list --online" и "wsl --install".

WSL предоставляет виртуальную машину с полноценным ядром Linux (на базе веток 6.6 или 5.15), в которой могут запускаться специально адаптированные для WSL дистрибутивы Linux. Ядро включает специфичные для WSL изменения, такие как оптимизации для сокращения времени запуска и уменьшения потребления памяти, возможность возвращения Windows освобождённой Linux-процессами памяти и настройки для исключения лишних драйверов и подсистем. Система устанавливается в отдельный дисковый образ (VHD) c файловой системой ext4 и виртуальным сетевым адаптером. Помимо RHEL для установки в WSL доступны сборки Ubuntu, Debian GNU/Linux, Kali Linux, Fedora, Alpine, Arch Linux, Almalinux и SUSE и openSUSE.

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

  • Добавлен новый способ упаковки дистрибутивов Linux для установки в WSL. Кроме поставки дистрибутива через каталог Microsoft Store в формате appx и ручного импорта компонентов из tar-архива командой "wsl --import", в новой версии предоставлена возможность установки Linux-дистрибутива из файла или сетевого хранилища, без необходимости написания кода, специфичного для Windows. Новый метод сводится к добавлению в tar-архив с системным окружением дистрибутива файла /etc/wsl-distribution.conffile с метаданными, такими как название, пиктограмма, идентификатор пользователя по умолчанию и скрипты для настройки окружения, выполняемые при первом запуске. Подобный tar-архив можно просто переименовать в файл с расширением ".wsl" и установить командой "wsl --install".
  • Добавлен новый интерфейс первого запуска, предлагающий настройки и информацию с обзором возможностей WSL и инструкцией для пользователей, первый раз использующих Linux. Интерфейс показывается при первом запуске виртуальной машины с Linux, а также может быть вызван через кнопку Welcome to WSL в конфигураторе.
  • Реализована интеграция с платформой Intune для определения политик поддержки дистрибутивов и отслеживания используемых в WSL версий.
  • Интегрирована поддержка инструментария Microsoft Entra ID для управления идентификацией и организации доступа к защищённым корпоративным ресурсам из WSL-окружений.


Источник: https://www.opennet.ru/opennews/art.shtml?num=62259

opennet honked 20 Nov 2024 10:00 +0100

Предварительный выпуск Android 16

Компания Google представила первую тестовую версию открытой мобильной платформы Android 16. Для оценки новых возможностей платформы предложена программа предварительного тестирования. Сборки прошивки подготовлены для устройств Pixel 6/6a/6 Pro, Pixel 7/7a/7 Pro, Pixel 8/8a/8 Pro, Pixel 9/9 Pro/9 Pro XL/9 Pro Fold, Pixel Fold и Pixel Tablet.

Предварительный выпуск сформирован на три месяца раньше, чем при подготовке прошлых версий в связи с переходом на новый график разработки, в соответствии с которым каждый год будет формироваться не один значительный релиз Android, а два выпуска - первый во втором квартале (а не в третьем как раньше), а второй - в четвёртом квартале. Летний релиз будет включать значительные новшества, изменения поведения в SDK и новые API. Зимний релиз будет содержать улучшения, новые API и изменения, не влияющие на работу приложений.

Среди изменений в Android 16 Developer Preview 1:

  • Предложен встраиваемый интерфейс для предоставления приложениям доступа к выбранным пользователем фотографиям и видео, хранящимся как на текущем устройстве, так и в облачном хранилище. Ключевое отличие нового интерфейса в том, что приложение получает доступ не ко всей мультимедийной библиотеке, а только к отдельным файлам, которые выбрал пользователь.
  • В Health Connect, отдельное хранилище для данных с фитнес-браслетов и прочих устройств, имеющих отношение к здоровью пользователя, добавлен API, позволяющий приложениям читать и сохранять медицинские записи в формате FHIR с подтверждением согласия выполнения действия у пользователя.
  • Добавлена поддержка технологий, развиваемых в рамках инициативы Privacy Sandbox, для организации показа рекламы в мобильных приложениях, защищая при этом конфиденциальность пользователей.


Источник: https://www.opennet.ru/opennews/art.shtml?num=62263

opennet honked 20 Nov 2024 08:00 +0100

Разработчики Ubuntu проанализировали эффективность включения PGO-оптимизации

Компания Canonical опубликовала результат оценки изменения производительности при пересборке пакетов с включением оптимизации на основе результатов профилирования кода (PGO - Profile-guided optimization), позволяющей генерировать более оптимальный код на основе анализа особенностей выполнения программы. В ходе проделанной работы был сделан вывод, что включение PGO-оптимизации позволило на 5-7% снизить нагрузку на CPU и ускорить время сборки.

В ходе проведённого эксперимента была измерена производительность сборки пакетов OpenSSL, GDB, Emacs и Python3.12 в виртуальном окружении QEMU, эмулирующем систему RISC-V на компьютере с архитектурой x86_64. Разница производительности оценивалась для QEMU, собранного с опциями по умолчанию и с включением PGO-оптимизации. Тестируемые пакеты для сборки были выбраны с расчётом, что в них используются разные языки программирования, а объём кода соответствует 1-6 часам сборки в эмуляторе.

С практической стороны, эксперимент позволил добиться повышения производительности сборочных окружений для платформы RISC-V, запускаемых при помощи эмулятора. Сборочные работы, ранее выполняемые за сутки, при задействовании PGO-оптимизации стали выполняться на два часа быстрее, что дало возможность ежедневно производить на том же сервере две дополнительные полные сборки.









Источник: https://www.opennet.ru/opennews/art.shtml?num=62262

opennet honked 19 Nov 2024 23:00 +0100

Уязвимости в утилите needrestart, позволяющие получить root-доступ в Ubuntu Server

Компания Qualys выявила три уязвимости в утилите needrestart, предназначенной для перезапуска фоновых процессов после обновления используемых данными процессами библиотек. Начиная с Ubuntu 21.04 утилита needrestart включена в состав базового окружения Ubuntu Server, в котором запускается с правами root в конце каждой транзакции пакетного менеджера APT, сканирует запущенные процессы и перезапускает те их них, что связанны с файлами, изменившимися после обновления пакетов. Выявленные уязвимости позволяют локальному непривилегированному пользователю получить права root в Ubuntu Server в конфигурации по умолчанию.

Уязвимости присутствуют в needrestart начиная с версии 0.8 (2014 год) и устранены в выпуске needrestart 3.8. Проблемы также уже исправлены в дистрибутивах Debian и Ubuntu. В качестве обходного пути блокирования эксплуатации уязвимости можно отключить сканирование интерпретаторов, указав в файле конфигурации /etc/needrestart/needrestart.conf параметр "$nrconf{interpscan} = 0".

Уязвимости присутствуют в коде с реализацией режима определения обновления скриптов, запущенных с использованием интерпретаторов. Выявленные проблемы:

  • CVE-2024-48990 - локальный пользователь может добиться выполнения кода с правами root через создание условий для запуска Python-интерпретатора с выставленной атакующим переменной окружения PYTHONPATH. Кроме использования Python атака также может быть проведена (CVE-2024-48992) через запуск интерпретатора Ruby с переменной окружения RUBYLIB.

    Уязвимости вызваны тем, что в процессе перезапуска изменившегося скрипта утилита needrestart выставляет переменную окружения PYTHONPATH на основе содержимого файла /proc/pid/environ, которую затем использует и для запуска собственного Python-кода. Соответственно, атакующий может дождаться активности, связанной с работой пакетного менеджера APT, симулировать изменение своего скрипта и установить для него переменную окружения PYTHONPATH, которая также будет применена при запуске встроенного в needrestart Python-кода ("import sys\n print(sys.path)"), выполняемого с правами root.

    Например, для эксплуатации уязвимости можно запустить постоянно висящий в памяти Python-процесс, выставив для него переменную окружения "PYTHONPATH=/home/test", и разместить разделяемую библиотеку "/home/test/importlib/__init__.so", которая будет выполнена при выполнении привилегированного Python-кода в needrestart.

  • CVE-2024-48991 - локальный пользователь может добиться выполнения кода с правами root через инициирование состояния гонки (race condition), в результате которого needrestart запустит фиктивный интерпретатор Python, подставленный атакующим, вместо системного интерпретатора Python. Суть уязвимость похожа на вышеотмеченную проблему, разница только в том, что needrestart определяет имя процесса Python (например, /usr/bin/python3) через чтение "/proc/pid/exe".

    Для эксплуатации уязвимости можно создать процесс /home/test/race, который при помощи механизма inotify дождётся момента, когда needrestart начнёт читать содержимое /proc/pid/exe, и сразу запустит через функцию execve системный интерпретатор Python. Так как needrestart не выполняет проверку настоящий ли это Python, то он посчитает, что /home/test/race и есть интерпретатор Python и запустит его для своего кода.

  • CVE-2024-11003 - локальный пользователь может добиться выполнения произвольных shell-команд с правами root через создание условий для обработки в needrestart имён файлов в формате "команда|", передача которых в Perl-функцию open() приведёт к запуску команды. Фактически уязвимость проявляется в Perl-модуле ScanDeps (CVE-2024-10224), но вызвана передачей в этот модуль внешних параметров без должной проверки.

    Атака может быть осуществлена через запуск Perl-скрипта с символом "|" в имени, например, "/home/test/perl|". В процессе выполнения функции scan_deps() в needrestart данный файл будет открыт через функцию open(), которая обработает символ "|" как флаг для запуска программы "/home/test/perl" и использования полученного от данной программы выходного потока.



Источник: https://www.opennet.ru/opennews/art.shtml?num=62261

opennet honked 19 Nov 2024 21:00 +0100

Arch Linux переводит сценарии сборки пакетов на лицензию 0BSD

Разработчики дистрибутива Arch Linux объявили о решении перевести весь исходный код компонентов, используемых для формирования пакетов, таких как файлы PKGBUILD, ".install" и ".desktop", на лицензию 0BSD, которую можно рассматривать как аналог перевода в общественное достояние. Ранее исходный код сценариев сборки пакетов в Arch Linux распространялся без указания лицензии, что приводило к неопределённости, позволяло по разному трактовать возможность их использования и создавало проблемы при желании задействовать их в других проектах, имеющих строгую лицензионную политику.

Начиная с сегодняшнего дня участникам разработки Arch Linux на email начнут отправляться уведомления с перечислением их вклада. Если разработчик согласен с распространением его работы под лицензией 0BSD, то можно просто проигнорировать пришедшее письмо, а если имеются возражения - следует указать их в ответном письме и обсудить возможные варианты.

Источник: https://www.opennet.ru/opennews/art.shtml?num=62255

opennet honked 19 Nov 2024 20:00 +0100

Опубликованы дистрибутивы Rocky Linux 9.5 и Oracle Linux 9.5

Представлен релиз дистрибутива Rocky Linux 9.5, нацеленного на создание свободной сборки RHEL, способной занять место классического CentOS. Дистрибутив бинарно совместим с Red Hat Enterprise Linux и может использоваться в качестве замены RHEL 9.5 и CentOS 9 Stream. Поддержка ветки Rocky Linux 9 будет осуществляться до 31 мая 2032 года. Установочные iso-образы Rocky Linux подготовлены для архитектур x86_64, aarch64, ppc64le и s390x (IBM Z). Дополнительно предложены live-сборки с рабочими столами GNOME, KDE, Cinnamon и Xfce, опубликованные для архитектуры x86_64.

Как и в классическом CentOS внесённые в пакеты Rocky Linux изменения сводятся к избавлению от привязки к бренду Red Hat и удалению специфичных для RHEL пакетов, таких как redhat-*, insights-client и subscription-manager-migration*. С обзором списка изменений в Rocky Linux 9.5 можно познакомиться в анонсе RHEL 9.5. Среди специфичных для Rocky Linux изменений можно отметить поставку в отдельном репозитории plus пакетов openldap-servers-2.6.6, а в репозитории NFV пакетов для виртуализации компонентов сетей, развиваемый SIG-группой NFV (Network Functions Virtualization). В Rocky Linux также поддерживаются репозитрии CRB (Code Ready Builder с дополнительными пакетами для разработчиков, пришёл на смену PowerTools), RT (пакеты для работы в режиме реального времени), HighAvailability, ResilientStorage, SAP и SAPHANA (пакеты для SAP HANA). Добавлен экспериментальный пакет с ядром Linux - kernel-uki, предоставляющий унифицированный образ UKI (Unified Kernel Image), заверенный отдельным ключом для SecureBoot.

В качестве источника исходных пакетов при формировании Rocky Linux 9.5 задействован репозиторий OpenELA, поддерживаемый совместно с Oracle и SUSE. Изменение процессов разработки обусловлено прекращением размещения компанией Red Hat исходных текстов rpm-пакетов RHEL в публичном репозитории git.centos.org. Исходные пакеты предоставляются клиентам компании только через закрытый раздел сайта, на котором действует пользовательское соглашение (EULA), запрещающее редистрибуцию данных, что не позволяет использовать эти пакеты для создания производных дистрибутивов. Исходные тексты остаются доступны в репозитории CentOS Stream, но он полностью не синхронизирован с RHEL и в нём не всегда самые свежие версии пакетов совпадают с пакетами из RHEL.

Дистрибутив Rocky Linux развивается под покровительством организации Rocky Enterprise Software Foundation (RESF), которая зарегистрирована как общественно-полезная корпорация (Public Benefits Corporation), не нацеленная на получение прибыли. Владельцем организации является Грегори Курцер (Gregory Kurtzer), основатель CentOS, но функции управления в соответствии с принятым уставом делегированы совету директоров, в который сообществом избираются участники, вовлечённые в работу над проектом. Параллельно для развития расширенных продуктов на базе Rocky Linux и поддержки сообщества разработчиков данного дистрибутива создана коммерческая компания Ctrl IQ, которая получила 26 млн долларов инвестиций. К разработке и финансированию проекта присоединились такие компании, как Google, Amazon Web Services, GitLab, MontaVista, 45Drives, OpenDrives и NAVER Cloud.


Дополнительно можно отметить формирование компанией Oracle дистрибутива Oracle Linux 9.5, созданного на основе пакетной базы Red Hat Enterprise Linux 9.5 и полностью бинарно совместимого с ней. Для загрузки без ограничений предложены установочные iso-образы, размером 12 ГБ и 1.1 ГБ, подготовленные для архитектур x86_64 и ARM64 (aarch64). Для Oracle Linux 9 открыт неограниченный и бесплатный доступ к yum-репозиторию с бинарными обновлениями пакетов с устранением ошибок (errata) и проблем безопасности. Для загрузки также подготовлены отдельно поддерживаемые репозитории с наборами пакетов Application Stream и CodeReady Builder.

Помимо пакета с ядром из состава RHEL (на базе ядра 5.14) в Oracle Linux предложено собственное ядро Unbreakable Enterprise Kernel 7 Update 3, основанное на ядре Linux 5.15 и оптимизированное для работы с промышленным программным обеспечением и оборудованием Oracle. Исходные тексты ядра, включая разбивку на отдельные патчи, доступны в публичном Git-репозитории Oracle. Ядро Unbreakable Enterprise Kernel устанавливается по умолчанию, позиционируется в качестве альтернативы штатному пакету с ядром RHEL и предоставляет ряд расширенных возможностей, таких как интеграция DTrace и улучшенная поддержка Btrfs. Кроме дополнительного ядра по функциональности выпуски Oracle Linux 9.5 и RHEL 9.5 полностью идентичны (список изменений можно посмотреть в анонсе RHEL 9.5).

Источник: https://www.opennet.ru/opennews/art.shtml?num=62258

opennet honked 19 Nov 2024 17:00 +0100

Опубликована 64 редакция рейтинга самых высокопроизводительных суперкомпьютеров

Опубликован 64-й выпуск рейтинга 500 самых высокопроизводительных компьютеров мира. Первое место в 64 редакции рейтинга занял новый кластер El Capitan, запущенный в Ливерморской национальной лаборатории Министерства энергетики США. Кластер насчитывает 11 миллионов процессорных ядер (CPU AMD EPYC 24C 1.8GH с ускорителем AMD Instinct MI300X) и обеспечивает производительность 1.742 экзафлопса. В качестве операционной системы применяется HPE Cray OS (редакция SUSE Linux Enterprise Server 15).

Смещённый на второе место прошлый лидер рейтинга, кластер Frontier, размещённый в Ок-Риджской национальной лаборатории Министерства энергетики США, модернизирован - число процессорный ядер (CPU AMD EPYC 64C 2GHz, ускоритель AMD Instinct MI250X) увеличено с 8.7 до 9 млн, что позволило повысить производительность с 1.206 до 1.353 экзафлопсов.

Со второго на третье место переместился кластер Aurora, развёрнутый в Аргоннской национальной лаборатории Министерства энергетики США. Кластер содержит 9.2 млн процессорных ядер (CPU Xeon CPU Max 9470 52C 2.4GHz, ускоритель Intel Data Center GPU Max) и обеспечивает производительность 1.012 экзафлопса. В качестве операционной системы в Aurora используется SUSE Linux Enterprise Server 15 SP4.

С третьего на четвёртное место сместился кластер Eagle запущенный в начале года компанией Microsoft для облака Azure. Кластер содержит 2 млн процессорных ядер (CPU Xeon Platinum 8480C 48C 2GHz) и демонстрирует пиковую производительность в 561 петафлопс. Программное обеспечение кластера базируется на Ubuntu 22.04.

Пятое место занял новый кластер HPC6, развёрнутый в итальянской нефтегазовой компании "Эни". Кластер содержит 3 млн процессорных ядер (AMD EPYC 64C 2GHz) и демонстрирует пиковую производительность в 477 петафлопс. Программное обеспечение кластера базируется на RHEL 8.9.

Что касается отечественных суперкомпьютеров, то созданные компанией Яндекс кластеры Червоненкис, Галушкин и Ляпунов опустились с 42, 69 и 79 мест на 60, 86 и 99 места. Данные кластеры созданы для решения задач машинного обучения и обеспечивают производительность 21.5, 16 и 12.8 петафлопса соответственно. Кластеры работают под управлением Ubuntu 16.04 и оснащены процессорами AMD EPYC 7xxx и GPU NVIDIA A100: кластер Chervonenkis насчитывает 199 узлов (193 тысячи ядер AMD EPYC 7702 64C 2GH и 1592 GPU NVIDIA A100 80G), Galushkin - 136 узлов (134 тысячи ядер AMD EPYC 7702 64C 2GH и 1088 GPU NVIDIA A100 80G), Lyapunov - 137 узлов (130 тысяч ядер AMD EPYC 7662 64C 2GHz и 1096 GPU NVIDIA A100 40G).

Развёрнутый Сбербанком кластер Christofari Neo опустился с 83 на 104 место. Christofari Neo работает под управлением NVIDIA DGX OS 5 (редакция Ubuntu) и демонстрирует производительность 11.95 петафлопса. Кластер насчитывает более 98 тысяч вычислительных ядер на базе CPU AMD EPYC 7742 64C 2.25GHz и поставляется с GPU NVIDIA A100 80GB. Второй кластер Сбербанка (Christofari) за полгода сместился с 142 на 172 место в рейтинге.

В рейтинге также остаётся ещё один отечественный кластер: Lomonosov 2, который сместился с 406 на 453 место (в 2015 году кластер Lomonosov 2 занимал 31 место, а его предшественник Lomonosov в 2011 году - 13 место). Кластер MTS GROM, который в прошлом рейтинге занимал 472 место, выбыл из списка 500 самых производительных систем. Таким образом, число отечественных кластеров в рейтинге уменьшилось с 7 до 6 систем (для сравнения в 2020 году в рейтинге было 2 отечественные системы, в 2017 году - 5, а в 2012 году - 12).

Наиболее интересные тенденции:

  • Распределение по количеству суперкомпьютеров в разных странах:
    1. США: 172 (171 - полгода назад). Суммарная производительность оценивается в 55.2% всей производительности рейтинга (полгода назад - 34.2%);
    2. Китай: 63 (80). В сумме китайские кластеры генерируют 2.7% от всей производительности (полгода назад - 16%);
    3. Германия: 41 (40). Суммарная производительность - 3.5% (8%);
    4. Япония: 34 (29). Суммарная производительность - 8% (5.8%);
    5. Франция: 24 (24). Суммарная производительность - 2.5% (4.8%);
    6. Великобритания: 14 (16);
    7. Южная Корея 13 (13);
    8. Италия: 13 (11). Суммарная производительность - 7.1% (4%);
    9. Нидерланды: 10 (9);
    10. Канада 10 (10);
    11. Бразилия 9 (8);
    12. Польша: 8 (8);
    13. Швеция 8 (7);
    14. Саудовская Аравия 7 (8);
    15. Тайвань: 7 (6);
    16. Индия: 7 (4);
    17. Норвегия: 6 (5);
    18. Россия 6 (7);
    19. Швейцария 5 (5);
    20. Австралия 4 (5);
    21. Ирландия 4 (4);
    22. Сингапур: 4 (3);
    23. Чехия: 3 (3);
    24. Испания: 3 (3).
    25. Финляндия: 3 (3);
    26. Австрия: 3;
    27. Объединённые Арабские Эмираты: 3.
  • В рейтинге операционных систем, используемых в суперкомпьютерах, c ноября 2017 года остаётся только Linux;
  • Распределение по дистрибутивам Linux (в скобках - 6 месяцев назад):
    • 38.2% (42.4%) используют системы на базе Linux, но не детализируют дистрибутив;
    • 17.4% (16.8%) - RHEL;
    • 10.2% (8.4%) - Ubuntu;
    • 8.4% (9.4%) CentOS;
    • 8.4% (9.2%) - Cray Linux;
    • 4.2% (4.4%) - SUSE;
    • 4% (3%) - Rocky Linux;
    • 1% (1.2%) - Alma Linux;
    • 0.2% (0.2%) - Amazon Linux
  • Минимальный порог производительности для вхождения в Top500 за 6 месяцев составил 2.31 петафлопса (полгода назад - 2.13 петафлопса). Десять лет назад лишь 51 кластер показывал производительность более петафлопса. Для Top100 порог вхождения вырос с 9.46 до 12.8 петафлопсов, а для Top10 - со 121.4 до 208 петафлопсов.
  • Суммарная производительность всех систем в рейтинге за 6 месяцев возросла с 8.2 до 11.7 экзафлопсов (пять лет назад было 1.65 экзафлопса, десять лет назад - 0.31 экзафлопса). Система, замыкающая нынешний рейтинг, в прошлом выпуске находилась на 454 месте.
  • Общее распределение по количеству суперкомпьютеров в разных частях света выглядит следующим образом: 181 суперкомпьютер находится в Северной Америке 181 (181 - полгода назад), 161 в Европе (157), 143 в Азии (147), 10 в Южной Америке (9), 4 в Океании (5) и 1 в Африке (1).
  • В качестве процессорной основы лидируют CPU Intel - 61.8% (полгода назад было 62.8%), на втором месте AMD 32.4% (31.4%), на третьем Fujitsu A64FX - 1.8% и NVIDIA Grace - 1.8%, на четвёртом IBM Power - 0.8% (было 1.2%).
  • 21.4% (полгода назад 20%) всех используемых процессоров имеют 64 ядра, 17.2% (17.8%) - 24 ядра, 10.2% (9.4%) - 32 ядра, 8.4% (5.8%) - 48 ядер, 7.6% (9%) - 20 ядер, 7.4% (4.4%) - 56 ядер, 4.6% (5.4%) - 16 ядер, 4.6% (5.6%) - 18 ядер, 4.4% (5.2%) - 28 ядер, 2% - 96 ядер. Суммарное число процессорных ядер во всех кластерах рейтинга за полгода увеличилось с 114.6 млн до 128.7 млн.
  • 209 из 500 систем (полгода назад - 196) дополнительно используют ускорители или сопроцессоры, при этом в 183 (142) системах задействованы чипы NVIDIA, в 19 (14) - AMD, в 1 (1) - Intel Xeon Phi, в 4 (4) - Intel DataCenter GPU, в 1 (1) - Matrix-2000.
  • Среди производителей кластеров на первом месте закрепилась компания Lenovo - 32.4% (полгода назад 32.6%), на втором месте компания Hewlett-Packard Enterprise - 23% (22.4%), на третьем месте компания EVIDEN - 10.4% (9.8%), далее следуют Dell EMC 7.4% (6.8%), NVIDIA 5.2% (4.4%), Fujitsu 3% (2.8%), NEC 2.8% (2.8%), Inspur - 2.2% (4.4%), Microsoft Azure - 1.6% (1.4%), Penguin Computing - 1.4% (1.4%), MEGWARE 1.4% (1.4%), IBM 0.6% (1%), Sugon 0.6% (1%), Supermicro 0.6%.
  • InfiniBand применяется для связи узлов в 50.6% (полгода назад 47.8%) кластеров, Ethernet используется в 37.4% (39%) кластеров, Omnipath - 6.2% (6.4%). Если рассматривать суммарную производительность, то системы на базе InfiniBand охватывают 33.6% (39.2%) всей производительности Top500, а Ethernet - 58.1% (48.5%).

Одновременно опубликован новый выпуск альтернативного рейтинга кластерных систем Graph 500, ориентированного на оценку производительности суперкомпьютерных платформ, связанных с симулированием физических процессов и задач по обработке больших массивов данных, свойственных для таких систем. Рейтинги Green500, HPCG (High-Performance Conjugate Gradient) и HPL-AI объединены с Top500 и отражаются в основном рейтинге Top500.

Дополнительно можно отметить релиз кластерной файловой системы Lustre 2.16, используемой в большей части крупнейших Linux-кластеров, содержащих десятки тысяч узлов. Ключевыми компонентами Lustre являются серверы обработки и хранения метаданных (MDS), управляющие серверы (MGS), серверы хранения объектов (OSS), хранилище объектов (OST, поддерживается работа поверх ext4 и ZFS) и клиенты. Код проекта распространяется под лицензией GPLv2. В новой версии реализована полноценная поддержка работы Lustre в сетях IPv6, используя компоненты LNet (Lustre Network) и LND (Lustre Network Daemon). Также проведена оптимизация обработки содержимого больших каталогов и добавлена поддержка RHEL 9.4 и Rocky Linux 9.4.

Источник: https://www.opennet.ru/opennews/art.shtml?num=62256

opennet honked 19 Nov 2024 13:00 +0100

Google намерен перевести Chrome OS на платформу Android

Издание Android Authority получило сведения о намерении компании Google заменить платформу Chrome OS на новую реализацию, построенную на базе платформы Android. О планах задействования отдельных компонентов Android в Chrome OS, таких как ядро и системные библиотеки, сообщалось в июне, но судя по новым сведениям планы более глобальные, чем просто задействование частей Androd в Chrome OS, и сводятся к полной унификации и оставлению только Android с воссозданием интерфейса в стиле Chrome OS поверх данной платформы.

В качестве причин упоминается желание усилить конкуренцию с iPad и более эффективно использовать инженерные ресурсы чтобы не распылять усилия на две операционные системы. Подробности о планах по интеграции проектов не сообщается, но предполагается, что Google постепенно начнёт вытеснение классического Chrome OS путём поставки на новых моделях Chromebook похожего по функциональности интерфейса, работающего на базе Android. По неофициальной информации первым подобным устройством станет ноутбук Pixel Laptop c прошивкой на базе платформы Android, в которой по умолчанию включён появившийся в Android 15 режим рабочего стола.

Напомним, что операционная система ChromeOS напоминает по своей архитектуре атомарно обновляемые дистрибутивы Linux, использует ядро Linux со специфичными патчами, системный менеджер upstart и сборочный инструментарий ebuild/portage из Gentoo Linux. Несмотря на то, что пользовательское окружение ChromeOS сосредоточено на использовании web-браузера, а вместо стандартных программ задействованы web-приложения, платформа включает в себя полноценный многооконный интерфейс, рабочий стол и панель задач. Для запуска приложений, созданных для Linux и Android, используются виртуальные машины, запускаемые при помощи гипервизора CrosVM, основанного на KVM.

По умолчанию в Chrome OS применяется шифрование дисковых разделов c пользовательскими данными (при помощи fscrypt), а системные разделы монтируются в режиме только для чтения, верифицируются по цифровой подписи и обновляются атомарно (два корневых раздела, рабочий и для установки обновления, которые меняются местами). Вывод на экран осуществляется при помощи графического стека Freon (ведётся работа по переходу на использование Wayland) и оконного менеджера Aura. Исходный код распространяются под свободной лицензией Apache 2.0.

Дополнительно можно отметить публикацию изданием Bloomberg неподтверждённой информации о том, что в рамках антимонопольного разбирательства, в котором Google был признан монополистом на рынке поисковых систем, Министерство юстиции США намерено рекомендовать суду вынести предписание, обязывающее Google продать часть бизнеса, связанную с разработкой браузера Chrome. Судебное слушание по вопросу изменений, которые компания Google должна будет реализовать для устранения нарушения антимонопольного законодательства, намечено на апрель 2025 года, а окончательное решение суд намерен вынести в августе 2025 года. Изначально предполагалось, что требованием к Google станет продажа бизнеса, связанного с мобильной платформой Android.

Источник: https://www.opennet.ru/opennews/art.shtml?num=62254

opennet honked 19 Nov 2024 11:00 +0100

Доступно ядро Linux-libre 6.12. Решение лицензионных проблем с драйверами Tuxedo

Латиноамериканский Фонд свободного ПО опубликовал полностью свободный вариант ядра Linux 6.12 - Linux-libre 6.12-gnu, очищенный от элементов прошивок и драйверов, содержащих несвободные компоненты или участки кода, область применения которых ограничена производителем. Кроме того, Linux-libre отключает функции ядра по загрузке внешних несвободных компонентов, не входящих в поставку ядра, и удаляет упоминание об использовании несвободных компонентов из документации.

Для очистки ядра от несвободных частей проектом Linux-libre создан универсальный shell-скрипт, который содержит тысячи шаблонов для определения наличия бинарных вставок и исключения ложных срабатываний. Также доступны для загрузки готовые патчи, созданные на основе использования вышеупомянутого скрипта. Ядро Linux-libre рекомендовано для использования в дистрибутивах, соответствующих критериям Фонда СПО по построению полностью свободных дистрибутивов GNU/Linux. Например, Linux-libre используется в таких дистрибутивах, как Dragora Linux, Trisquel, Dyne:Bolic, gNewSense, Parabola, Musix и Kongoni.

В выпуске Linux-libre 6.12-gnu добавлен код для чистки блобов в драйверах для SoC CPM/QE QMC, беспроводных чипов Realtek 8852BE-VT, bluetooth-адаптеров Amlogic, сетевых адаптеров amcc qt2025, датчиков aw96103/aw96105 и кодеков TI TLV320AIC31XX. Проведена дополнительная чистка блобов в драйверах для xHCI-контроллеров Renesas и Intel ISH (Integrated Sensor Hub) HID. Обновлён код удаления блобов в драйверах и подсистемах MHI PCI host, Adreno 620/621, r8169, Qualcomm q6v5 remoteproc, rtw8852c, rtw8922a, а также в dts-файлах для ARM54-чипов TI PRU и Qualcomm. Прекращена чистка драйверов для беспроводных карт ks7010 и звуковой подсистемы Intel SkyLake, так как данные драйверы были удалены из состава ядра.

Отдельно отмечается выявление в исходных текстах одного из драйверов исполняемого объектного кода, сгенерированного из неопубликованных исходных текстов и встроенного в форме последовательности шестнадцатеричных чисел. Проблемный драйвер явно не называется, но, судя по изменениям, речь про наличие микрокода шейдера в файле gfx_v9_4_3_cleaner_shader.h, входящего в состав драйвера AMDGPU. Первая подобная вставка была выявлена в ядре 6.11 и затем предложена одним из разработчиков к удалению, так как исходные тексты не были предоставлены (возникла ситуация поставки под лицензией GPL программы, доступной только в бинарном виде). Тем не менее, в ядре 6.12 указанный бинарный код был сохранён, а в тот же драйвер была добавлена ещё одна подобная вставка.

Кроме того, в анонсе Linux-libre 6.12 упомянуты ещё два события:

  • Для включения в состав ядра предложено исправление, блокирующее драйверам для ноутбков Tuxedo доступ к подсистемам ядра, доступным только для кода под лицензией GPLv2 (EXPORT_SYMBOL_GPL). Возможность блокировки изначально была введена для ограничения связывания проприетарных драйверов с компонентами ядра Linux, экспортируемыми только для модулей под лицензией GPLv2, но успешно обходится через создание модулей-прослоек, транслирующих доступ проприетарного драйвера к необходимым API ядра. В случае с драйверами Tuxedo, ситуация обратная - несмотря не то, что драйверы Tuxedo развиваются отдельной от ядра, они поставляются под лицензией GPLv3, которая с одной стороны не совместима с GPLv2, но с другой стороны отстаивает больше свобод, например, защищает от тивоизации.

    Отмечается, что компании Tuxedo давно предлагали сменить лицензию на свои драйверы, но она продолжала поставлять код под лицензией GPLv3 и при этом указывала в коде драйвера макрос 'MODULE_LICENSE("GPL")' вместо 'MODULE_LICENSE("GPL v3")' для получения доступа ко всем подсистемам ядра. Компания Tuxedo согласилась с критикой и изменила лицензию на GPLv2+ для части своих драйверов. Изменение применено к драйверам gxtp7380, ite_8291, ite_8291_lb, ite_8297, ite_8297, stk8321, tuxedo_compatibility_check, tuxedo_nb02_nvidia_power_ctrl и tuxedo_tuxi. Более десятка драйверов пока не перелицензированы, так как для смены лицензии на них требуется получение согласия от сторонних разработчиков.

    Использование в коде 'MODULE_LICENSE("GPL")' вместо 'MODULE_LICENSE("GPL v3")' представитель Tuxedo объяснил отсутствием внятного пояснения в документации на ядро, что маркер "GPL" нельзя использовать для лицензии GPLv3. Также он рассказал, что компания намерена передать свои драйверы в основной состав ядра Linux и для этого ведёт работу по их полному переписыванию под лицензией GPLv2 c учётом требований к компонентам ядра.

  • Разработчики ядра обсуждают инициативу по добавлению флага X86_BUG_OLD_MICROCODE, сигнализирующего о том, что в системе используется не самая свежая версия микрокода CPU. При выставлении данного флага систему предлагается рассматривать как имеющую потенциальные неисправленные уязвимости. Попытки уравнять состояние системы с необновлённым микрокодом с ситуацией наличия реальных неисправленных уязвимостей в коде привело к критике со стороны одного из сопровождающих проект Linux-libre.

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



Источник: https://www.opennet.ru/opennews/art.shtml?num=62251

opennet honked 18 Nov 2024 20:00 +0100

Опубликован дистрибутив AlmaLinux 9.5

Доступен выпуск дистрибутива AlmaLinux 9.5, синхронизированный c новым выпуском Red Hat Enterprise Linux 9.5 и содержащий все предложенные в данном выпуске изменения. Установочные образы подготовлены для архитектур x86_64, ARM64, ppc64le и s390x в форме загрузочного (1 ГБ), минимального (2 ГБ) и полного образа (10 ГБ). Позднее будут сформированы Live-сборки с GNOME, KDE, MATE и Xfce, а также образы для плат Raspberry Pi, контейнеров, WSL (Windows Subsystem for Linux) и облачных платформ.

Дистрибутив по возможности бинарно совместим с Red Hat Enterprise Linux и может использоваться в качестве замены RHEL 9.5 и CentOS 9 Stream. Изменения сводятся к ребрендингу, удалению специфичных для RHEL пакетов, таких как redhat-*, insights-client, subscription-manager-migration*, kpatch*, kmod-redhat-*, rhc, spice* и virtio-win. Дополнительно для использования доступен репозиторий Synergy, в котором размещены пакеты, отличающиеся от Red Hat Enterprise Linux. В настоящее время в репозитории Synergy уже опубликованы пакеты c пользовательским окружением Pantheon, развиваемым проектом Elementary OS, и утилитой Warpinator, предназначенной для шифрованного обмена файлами между двумя компьютерами.

Дистрибутив AlmaLinux основан компанией CloudLinux в ответ на преждевременное сворачивание поддержки CentOS 8 компанией Red Hat (выпуск обновлений для CentOS 8 прекращён в конце 2021 года, а не в 2029 году, как предполагали пользователи). Проект курирует отдельная некоммерческая организация AlmaLinux OS Foundation, которая была создана для разработки на нейтральной площадке с участием сообщества и c использованием модели управления, похожей на организацию работы проекта Fedora. Дистрибутив бесплатен для всех категорий пользователей. Все наработки AlmaLinux публикуются под свободными лицензиями.

Кроме AlmaLinux, в качестве альтернатив классическому CentOS также позиционируются Rocky Linux (развивается сообществом под руководством основателя CentOS), Oracle Linux, SUSE Liberty Linux и EuroLinux. Кроме того, компания Red Hat предоставила возможность бесплатного использования RHEL в организациях, развивающих открытое ПО, и в окружениях индивидуальных разработчиков, насчитывающих до 16 виртуальных или физических систем.

Источник: https://www.opennet.ru/opennews/art.shtml?num=62247

opennet honked 18 Nov 2024 16:00 +0100

Выпуск графического тулкита FLTK 1.4.0 с поддержкой Wayland

Спустя 13 лет с момента публикации ветки 1.3 увидел свет релиз легковесного кроссплатформенного графического тулкита FLTK 1.4.0 (Fast Light Toolkit). FLTK написан на языке C++ и распространяется под лицензией лицензии LGPLv2. Ветка FLTK 1.4 отмечена как обратно совместимая с выпусками 1.3.x, т.е. при переходе на FLTK 1.4 не требуется внесение изменений в код, но необходима пересборка из-за изменения ABI. Для визуального построения GUI-интерфейса в рамках проекта развивается оболочка FLUID. Поддерживается работа в Linux (X11 и Wayland), BSD-системах, Windows, macOS и различных UNIX-подобных ОС.

Среди основных нововведений:

  • Добавлена поддержка работы в окружениях на базе протокола Wayland в дистрибутивах Linux и во FreeBSD. По умолчанию библиотека собрана с поддержкой как X11, так и Wayland - вначале предпринимается попытка использования Wayland, а если данный протокол недоступен как запасной вариант используется X11.
  • Добавлены новые виджеты Fl_Flex и Fl_Grid для создания адаптивных графических интерфейсов, а также виджет Fl_Scheme_Choice c реализацией нового варианта окна выбора элементов. Улучшен интерфейс виджетов Fl_Tabs, Fl_Tile и Fl_Spinner.
  • Добавлена поддержка экранов с высокой плотностью пикселей (HighDPI) на платформах Linux, Unix и Windows. Улучшена поддержка HighDPI в macOS.
  • Добавлена поддержка новых версий платформы macOS, включая macOS 15.0 "Sequoia".
  • Расширены возможности сборки с использованием CMake. Поддержку autotools/configure/make планируют прекратить в ветке FLTK 1.5.0, оставив только возможность сборки в CMake.
  • Переписан платформозависимый код, улучшена переносимость на различные системы.


Источник: https://www.opennet.ru/opennews/art.shtml?num=62244

opennet honked 18 Nov 2024 16:00 +0100

Выпуск GhostBSD 24.10.1

Опубликован релиз десктоп-ориентированного дистрибутива GhostBSD 24.10.1, построенного на базе FreeBSD 14-STABLE и предлагающего пользовательское окружение MATE. Отдельно сообществом формируются неофициальные сборки с Xfce. По умолчанию в GhostBSD применяется файловая система ZFS. Поддерживается как работа в Live-режиме, так и установка на жесткий диск (используется собственный инсталлятор ginstall, написанный на языке Python). Загрузочные образы сформированы для архитектуры x86_64 (2.6 ГБ).

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

  • Осуществлена синхронизация с веткой FreeBSD 14-STABLE.
  • Браузер Сhromium собран с настройками, позволяющими просматривать защищённый контент через Netflix.
  • Файловая система UFS удалена из списка опций для установки (оставлена только ФС ZFS).
  • Добавлен пакет utouch-kmod с драйвером для мыши, эмулируемой в VirtualBox, BHyve и других системах виртуализации.
  • Для поддержки игровых контроллеров в список загружаемых модулей добавлен драйвер hgame.
  • Добавлена возможность пометки пакетов важными для функционирования дистрибутива. Подобная метка выставлена для системных пакетов, чтобы предотвратить их случайное удаление при попытке чистки пакетов, не связанных зависимостями с другими пакетами.
  • Добавлена поддержка GPU AMD FirePro, AMD Radeon R5 и R6.


Источник: https://www.opennet.ru/opennews/art.shtml?num=62245

opennet honked 18 Nov 2024 11:00 +0100

Релиз ядра Linux 6.12 с поддержкой Realtime-режима

После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 6.12. Среди наиболее заметных изменений: возможность включения Realtime-режима, sched_ext для создания планировщиков CPU через eBPF, вывод QR-кода при аварийных состояниях, механизм Device Memory TCP, механизм резервирования ресурсов SCHED_DEADLINE server, улучшение планировщика задач EEVDF, модуль IPE для задания политик обеспечения целостности.

В новую версию принято 14607 исправлений от 2167 разработчиков, размер патча - 37 МБ (изменения затронули 13087 файлов, добавлено 507913 строк кода, удалено 234083 строк). В прошлом выпуске было 15130 исправлений от 2078 разработчиков, размер патча - 85 МБ (в ядре 6.10 патч был размером 41 МБ). Около 45% всех представленных в 6.12 изменений связаны с драйверами устройств, примерно 12% изменений имеют отношение к обновлению кода, специфичного для аппаратных архитектур, 13% связано с сетевым стеком, 6% - с файловыми системами и 3% c внутренними подсистемами ядра.

Основные новшества в ядре 6.12:

  • Память и системные сервисы
    • Предоставлена возможность сборки ядра с опцией PREEMPT_RT без дополнительных патчей для работы в режиме реального времени. Последней отсутствующей в ядре возможностью, не позволявшей активировать режим PREEMPT_RT, была поддержка неблокирующего атомарного вывода через функцию printk, которая также принята в состав ядра. Поддержка PREEMPT_RT доступна для архитектур x86, x86_64, ARM64 и RISC-V. До сих пор реализация режима PREEMPT_RT поставлялась в форме внешних патчей, на основе которых некоторые дистрибутивы, такие как RHEL, SUSE и Ubuntu, создавали отдельные Realtime-редакции своих продуктов, востребованные в таких областях, как финансовые системы, устройства обработки звука и видео, авиация, медицина, робототехника, телекоммуникационные и промышленные системы, в которых необходимо обеспечить предсказуемое время обработки событий.
    • Добавлен механизм "sched_ext" (SCX), позволяющий использовать eBPF для создания планировщиков CPU, охватывающих практически все аспекты планирования выполнения задач и распределения ресурсов CPU. Подобные планировщики могут загружаться динамически и выполняться внутри ядра Linux в виртуальной машине eBPF. Механизм sched_ext упрощает создание специфичных для определённых задач планировщиков, даёт возможность экспериментировать с различными техниками и стратегиями планирования, а также позволяет быстро создавать рабочие прототипы и заменять планировщики на лету в рабочих инфраструктурах. Например, при помощи sched_ext можно создать планировщик, учитывающий специфику определённого приложения и динамически меняющий стратегию планирования его выполнения в зависимости от состояния системы и каких-то дополнительных факторов.
    • В состав включена оставшаяся часть патчей, необходимых для работы механизма SCHED_DEADLINE server, решающего проблему с недополучением ресурсов CPU обычными задачами в условиях монополизации CPU высокоприоритетными (realtime) задачами. Для предотвращения монополизации CPU в ядре ранее использовался механизм Realtime throttling, который пытался резервировать 5% для низкоприоритетных задач, оставляя 95% времени realtime-задачам. Данный механизм оставлял желать лучшего так как обычные задачи во многих ситуациях недополучали процессорное время. SCHED_DEADLINE server реализует более эффективный механизм резервирования ресурсов.
    • Завершена интеграция планировщика задач EEVDF (Earliest Eligible Virtual Deadline First), который пришёл на смену планировщику CFS (Completely Fair Scheduler), поставлявшемуся начиная с ядра 2.6.23. Новый планировщик при выборе следующего процесса для передачи выполнения учитывает процессы, которые недополучили процессорных ресурсов или получили незаслуженно много процессорного времени. В первом случае форсируется передача управления процессу, а во втором, наоборот, откладывается. Старый планировщик CFS использовал для определения процессов, требующих отдельного внимания, эвристику и тонкие настройки, в то время как новый планировщик отслеживает их более явно и не требует тонкой настройки. Предполагается, что EEVDF позволит снизить задержки при выполнении задач, с которыми у CFS возникали проблемы с планированием.
    • В обработчик аварийных ситуаций в ядре - DRM Panic, использующий подсистему DRM (Direct Rendering Manager) для отображения наглядного отчёта в стиле "синего экрана смерти", добавлена возможность показа на экране логотипа и QR-кода с отчётом kmsg при возникновении аварийного состояния. Так как в QR-код умещается только 2953 байт, предусмотрена опция DRM_PANIC_SCREEN_QR_CODE_URL, при которой отчёт kmsg сжимается при помощи zlib и прикрепляется в качестве параметра к URL, что позволяет передать через QR-код V40 около 7500 байтов. При сборке пакетов с ядром дистрибутивы могут задать базовую ссылку для URL, что позволит организовать переход на страницу для отправки сообщения о проблеме. Для выбора формата QR-кода предусмотрена настройка DRM_PANIC_SCREEN_QR_VERSION.
    • Добавлена поддержка расширения ARM POE (Permission Overlay Extension), позволяющего задавать права доступа к областям памяти. При помощи данного расширения на системах с процессорами ARM64 может быть реализован механизм Memory Protection Keys, применяемый для ограничения доступа к страницам памяти без изменения таблицы страниц памяти.
    • Для архитектур Loongarch, ARM64, PowerPC и s390 перенесена реализация системного вызова getrandom(), оптимизированная при помощи механизма vDSO (virtual dynamic shared object), дающего возможность перенести обработчик системного вызова из ядра в пространство пользователя и избежать переключений контекста. Оптимизация позволяет до 15 раз ускорить получение случайных чисел.
    • В подсистему асинхронного ввода/вывода io_uring добавлена возможность использования абсолютных таймаутов, срабатывающих при достижении определённого времени на системных часах (ранее могли выставляться только относительные таймауты, в которых указывалась продолжительность с начала операции).
    • Добавлены файлы для генерации биндингов для библиотеки libcpupower при помощи инструментария SWIG, позволяющего формировать биндинги из кода на C/C++ для различных языков программирования. Биндинги позволяют создавать скрипты на Python и других языках, и использовать их для расширения функциональности библиотеки libcpupower, предоставляющей API для управления cpufreq и драйверами из пространства пользователя.
    • В утилите cpuidle реализовано отображение значения состояния простоя "residency", применяемого для realtime-систем и учитывающего минимальное время, которое процессор должен находиться в состоянии простоя, чтобы оправдать затраты энергии на переход в это состояние и выход из него.
    • Добавлена возможность использования компилятора Clang для сборки стандартной Си-библиотеки nolibc, входящей в состав исходных текстов ядра Linux и предоставляющей обвязку над базовыми системными вызовами. При сборке nolibc в Clang допускается использование оптимизации на этапе связывания (LTO).
    • Объявлены устаревшими некоторые интерфейсы cgroup1, такие как аккаунтинг TCP, первая версия мягких ограничений (soft limit) и управление исчерпанием свободной памяти. Поддержка указанных функций пока сохраняется в полном объёме, а предупреждение сделано для изучения числа пользователей, которые продолжают использовать данные возможности.
    • Добавлена возможность настройки кольцевого буфера трассировки для сохранения накопленных данных после перезагрузки, что позволит не терять накопленную отладочную информацию в случае аварийного завершения работы ядра. Данные сохраняются в памяти. Включение осуществляется через параметр командной строки ядра trace_instance, например, выставление "trace_instance=boot_map@0x285400000:12M" зарезервирует 12 МБ памяти по адресу 0x285400000 для буфера "boot_map", который будет доступен через файл /sys/kernel/tracing/instances/boot_map.
    • Продолжен перенос изменений из ветки Rust-for-Linux, связанных с использованием языка Rust в качестве второго языка для разработки драйверов и модулей ядра (поддержка Rust не активна по умолчанию, и не приводит ко включению Rust в число обязательных сборочных зависимостей к ядру). Добавлены модули 'list' и 'rbtree' для работы с двунаправленными связными списками и красно-чёрными деревьями поиска (red-black tree). Расширены возможности модулей 'init', 'sync', 'types' и 'error'. Предоставлена возможность использования кода на Rust при сборке ядра с защитой от атак Spectre (опции MITIGATION_{RETHUNK,RETPOLINE,SLS}), использования отладочной системы KASAN, механизмов защиты kCFI (kernel Control Flow Integrity) и Shadow Call, а также при использовании дополнительных плагинов GCC. Добавлен драйвер для Ethernet-контроллера Applied Micro QT2025 PHY, написанный на Rust. Подготовлен отдельный сайт с документацией - rust.docs.kernel.org.
    • В состав исходных текстов ядра добавлена утилита xdrgen для преобразования XDR-спецификаций (eXternal Data Representation) в функции кодирования и декодирования XDR, написанные с использованием Си-стиля, принятого в ядре Linux.
    • В ядро принято изменение с реализацией механизма маскирования указателей для снижения числа медленных вызовов barrier_nospec() в 64-битной функции copy_from_user(), применяемой для копирования данных в ядро из пространства пользователя. Применение маскирования ускоряет на 2.6% прохождение теста "per_thread_ops", оценивающего число операций, которые могут быть выполнены в одном потоке.
  • Дисковая подсистема, ввод/вывод и файловые системы
    • В подсистему VFS добавлена возможность работы c устройствами хранения, размер блоков в которых больше, чем размер страницы памяти в системе. В файловых системах данная возможность пока поддерживается только в XFS.
    • В подсистему FUSE, позволяющую создавать реализации файловых систем, работающие в пространстве пользователя, добавлена поддержка маппинга идентификаторов пользователей примонтированных файловых систем, применяемого для сопоставления файлов определённого пользователя на примонтированном чужом разделе с другим пользователем в текущей системе.
    • Реализована новая fcntl-операция F_CREATED_QUERY, дающая приложению возможность определить был ли создан файл, открытый с использованием флага O_CREAT, или он уже существовал до этого.
    • В системный вызов name_to_handle_at() добавлена возможность использования уникальных 64-разрядных идентификаторов точек монтирования для исключения состояния гонки при разборе /proc/mountinfo.
    • Размер структуры "file" в ядре сокращён с 232 до 184 байт, что позволяет сократить потребление памяти на системах, активно работающих с файлами.
    • Запрещено монтирование файловых систем к точкам монтирования внутри иерархии /proc, например, в /proc/PID/fd, что создавало потенциальные проблемы с безопасностью.
    • В псевдо-ФС NSFS (NameSpace FS), используемой для работы с пространствами имён, реализовано предоставление дополнительной информации о пространствах имён точек монтирования.
    • В файловой системе EROFS (Extendable Read-Only File System), предназначенной для использования на разделах, доступных в режиме только для чтения, появилась поддержка монтирования файловых систем напрямую из дисковых образов, сохранённых в виде файлов.
    • В XFS добавлены новые ioctl-команды XFS_IOC_START_COMMIT и XFS_IOC_COMMIT_RANGE для обмена содержимым между двумя файлами.
    • В NFS добавлена поддержка протокола "LOCALIO", позволяющему определить находятся ли клиент и сервер NFS на одном и том же хосте, для задействования соответствующих оптимизаций.
    • В файловой системе Btrfs предложены оптимизации производительности, проведён рефакторинг кода, сокращена область блокировки экстентов при операциях чтения, продолжена работа по переводу на использование фолиантов страниц памяти (page folios), реализовано автоматическое освобождение памяти для структуры btrfs_path.
    • В файловой системе Ext4 устранены ошибки, связанные с выделением блоков, управлением экстентами, механизмом "fast commit" и журналированием.
  • Виртуализация и безопасность
    • Добавлен LSM-модуль IPE (Integrity Policy Enforcement), разработанный компанией Microsoft для расширения существующей системы мандатного управления доступом. Модуль позволяет определить общую политику обеспечения целостности для всей системы, указывающую какие операции допустимы и каким способом следует верифицировать подлинность компонентов. Например, при помощи IPE можно указать какие исполняемые файлы разрешено запускать с учётом проверки их соответствия эталонной версии при помощи криптографических хэшей, предоставляемых системой dm-verity.
    • На этапе компиляции ядра предоставлена возможность раздельного включения доступных методов защиты от разных уязвимостей класса Spectre в CPU. В Kconfig предложены новые параметры: MITIGATE_MDS (защита от уязвимости Microarchitectural Data Sampling), MITIGATE_TAA (защита от уязвимости TSX Asynchronous Abort), MITIGATE_MMIO_STALE_DATA (защита от уязвимости MMIO Stale Data), MITIGATE_L1TF (защита от уязвимости L1 Terminal Fault), MITIGATE_RETBLEED (защита от уязвимости Retbleed), MITIGATE_SPECTRE_V1, MITIGATE_SPECTRE_V2 (защита от уязвимостей Spectre), MITIGATE_SRBDS (защита от уязвимости Special Register Buffer Data Sampling), MITIGATE_SSB (защита от уязвимости Speculative Store Bypass).
    • Добавлен параметр командной строки proc_mem.force_override и набор сборочных настроек в Kconfig (PROC_MEM_FORCE_ALWAYS, PROC_MEM_FORCE_PTRACE и PROC_MEM_FORCE_NEVER), позволяющих запретить изменение памяти через /proc/pid/mem.
    • Подсистема LSM (Linux security module) переведена на использование статических вызовов, что позволило усилить безопасности и повысить производительность.
    • Обеспечена возможность использования штатных ядер для архитектуры ARM64 в гостевых окружениях, выполняемых на Android-системах с модифицированным гипервизором KVM (protected KVM).
    • В LSM-модуле Landlock, позволяющем ограничить взаимодействие группы процессов с внешним окружением, реализована концепция "IPC scoping" для выборочного ограничения взаимодействия с sandbox-окружениями, используя Unix-сокеты и сигналы. Например, можно запретить установку соединений с использованием Unix-сокетов из sandbox-окружения к процессам, в которых не применяется изоляция, но разрешить соединения с процессами в той же scope-области.
  • Сетевая подсистема
    • Добавлен механизм Device Memory TCP, позволяющий использовать сетевые сокеты для прямой отправки содержимого памяти периферийного устройств по сети (режим zero-copy) и прямого размещения содержимого сетевых пакетов в области памяти устройства на стороне получателя. Передаваемые в пакетах данные передаются от сетевой карты в память периферийного устройства или из памяти устройства в сетевую карту напрямую, минуя CPU, а заголовки пакетов попадают в обычные буферы ядра.
    • Расширены возможности многих Ethernet и беспроводных драйверов. Например, в драйвере Intel iwlwifi добавлена поддержка выноса операций RLC/SMPS на сторону прошивки, в драйвере RealTek rtw89 повышена производительность и добавлена поддержка чипов RTL8852BT/8852BE-VT (WiFi 6), в Ethernet-драйвере microchip добавлена поддержка спецификаций IEEE 802.3bw (100BASE-T1) и IEEE 802.3bp, улучшены реализации виртуальных Ethernet Microsoft vNIC и IBM veth. Добавлены новые драйверы для Ethernet-чипов Realtek RTL9054, RTL9068, RTL9072, RTL9075, RTL9068, RTL9071 и Microchip LAN8650/1 10BASE-T1S MAC-PHY.
    • В MPTCP (MultiPath TCP), расширении протокола TCP для организации доставки TCP-пакетов одновременно по нескольким маршрутам через разные сетевые интерфейсы, размер используемых при маршрутизации весовых коэффициентов увеличен с 8 до 16 бит. Реализовано определение теряющегося (blackhole) трафика и приостановки на некоторое время попыток установки соединений с системами, приводящими к потере трафика.
    • Для IPv6 реализована поддержка флага "p" в PIO (Prefix Information Option), применяемого в анонсах RA (IPv6 Router Advertisements) для выбора модели развёртывания клиентов через DHCPv6-PD (DHCPv6 Prefix Delegation, RFC9663) вместо присвоения отдельных адресов на базе префиксов, используя SLAAC (Stateless Address Autoconfiguration). В IPv6 IOAM6 добавлена поддержка нового режима инкапсуляции tunsrc, позволяющего добиться более высокой производительности.
    • Повышена производительность обработки управляющих пакетов IPsec.
    • Повышена производительность сброса (flush) больших наборов правил nftables. В nfnetlink_queue улучшена поддержка протокола SCTP.
    • В API ethtool добавлена поддержка привязки нескольких сетевых карт к одному сетевому интерфейсу.
  • Оборудование
    • В драйвере AMDGPU продолжена работа по реализации поддержки GPU AMD RDNA4 ("GFX12"). Добавлена возможность сброса отдельных очередей задач без сброса состояния всего GPU.
    • Продолжена работа над drm-драйвером (Direct Rendering Manager) Xe для GPU на базе архитектуры Intel Xe, которая используется в видеокартах Intel семейства Arc и интегрированной графике, начиная с процессоров Tiger Lake. В новой версии включена поддержка GPU на базе микроархитектур Battlemage и Lunar Lake. Представлена поддержка CCS-модификаторов (Color Control Surface) Xe2 для управления параметрами встроенных и дискретных GPU.
    • В драйвере i915 реализована возможность вывода через интерфейс HWMON или sysfs (атрибут "fan1_input") информации о скорости вращения кулера. Объявлен устаревшим параметр "i915.modeset", вместо "i915.modeset=0" следует использовать параметр "i915.nomodeset".
    • В DRM-драйвер msm (GPU Qualcomm Adreno) добавлена поддержка GPU A615, A306 и A621.
    • В драйвере Nouveau проведена переработка и чистка внутренних структур.
    • В драйвер intel_pstate, управляющий параметрами энергопотребления (P-state) на системах с процессорами Intel, добавлена поддержка гибридных систем с асимметричными (отличающимися по характеристикам) CPU, а также поддержка управления питанием процессоров на базе микроархитектур Granite Rapids и Sierra Forest. В драйвер intel_idle добавлена поддержка CPU Xeon Granite Rapids. В драйвере intel_rapl обеспечено распознание процессов AMD семейства 1Ah и процессоров Intel ArrowLake-U.
    • Продолжено включение изменений для поддержки ARM SoC Snapdragon X Elite, в котором используется собственный 12-ядерный CPU Qualcomm Oryon и GPU Qualcomm Adreno. Чип нацелен на использование в ноутбуках и ПК, и опережает во многих тестах производительности чипы Apple M3 и Intel Core Ultra 155H.
    • Добавлена поддержка ARM-плат, SoC и устройств: Broadcom bcm2712 (Raspberry Pi 5), Renesas R9A09G057 (RZ/V2H), Qualcomm Snapdragon 414 (MSM8929), Lenovo ThinkPad T14s Gen 6, Lenovo A6000/A6010, Surface Laptop 7, Anbernic RG35XXSP, Firefly Core-PX30-JD4, Lunzn Fastrhino R68S, Aspeed Riser, AGX Orin, Rockchip Qnap-TS433, Huashan Pi, Meta Catalina, BeagleY-AI, NanoPi R2S Plus, ExynosAuto v920, SOPHGO SG2002, Qualcomm IPQ5332, LG G4 (h815), Cool Pi CM5 GenBook, Anbernic RG35XXSP, GameForce Ace, IBM P11, Kontron i.MX93 OSM-S, NanoPC-T6
    • Добавлена поддержка экранных панелей Anbernic RG28XX, On Tat Industrial Company KD50G21-40NT-A1, Innolux G070ACE-LH3, Melfas lmfbx101117480, Densitron DMT028VGHMCMI-1D, Microchip AC40T08A, AOU B116XTN02.3, AUO B116XAN06.1, AOU B116XAT04.1, BOE TV101WUM-LL2, BOE NV140WUM-N41, BOE NV133WUM-N63, BOE NV116WHM-A4D, BOE NE140WUM-N6G, CMN N116BCA-EA2, CMN N116BCP-EA2, CSW MNB601LS1-4, Starry er88577.
    • В звуковой подсистеме добавлена поддержка чипов и кодеков RME Digiface USB, AMD ACP 7.1, Mediatek MT6367, MT8365, Realtek RTL1320, C-Media CM9825. Объявлены устаревшими старые звуковые драйверы для ASoC Intel, вместо которых рекомендовано использовать драйверы AVS. Внесено много улучшений в драйвер SoundWire.


Источник: https://www.opennet.ru/opennews/art.shtml?num=62243

opennet honked 17 Nov 2024 17:00 +0100

Выпуск инсталлятора Archinstall 3.0.0, применяемого в дистрибутиве Arch Linux

Опубликован выпуск инсталлятора Archinstall 3.0, который с апреля 2021 года в качестве опции входит в состав установочных iso-образов Arch Linux. Archinstall работает в консольном режиме и может использоваться вместо предлагаемого по умолчанию ручного режима установки дистрибутива. Код Archinstall написан на языке Python и распространяется под лицензией GPLv3.

Archinstall предоставляет диалоговый (guided) и автоматизированный режимы работы. В автоматизированном режиме имеется возможность использования скриптов для развёртывания типовых конфигураций. Инсталлятор также поддерживает профили установки, например, профиль "desktop" для выбора рабочего стола (KDE, GNOME, Awesome) и установки необходимых для его работы пакетов, или профили "webserver" и "database" для выбора и установки начинки web-серверов и СУБД. Четыре года назад была предпринята попытка создания варианта Archinstall с графическим интерфейсом установки, но она не получила развития.

В новой версии Archinstall полностью переделан консольный интерфейс пользователя, который переведён на использование библиотеки Curses. Использование Curses дало возможность улучшить внешний вид, повысить удобство работы и реализовать более сложную компоновку элементов интерфейса, в котором теперь имеется отдельная область экрана с постоянно видимым меню. Кроме того, проведена работа по повышению качества кода и расширению охвата при тестировании.



Источник: https://www.opennet.ru/opennews/art.shtml?num=62242

opennet honked 17 Nov 2024 12:00 +0100

Fil-C - компилятор для языков C и C++, гарантирующий безопасную работу с памятью

Филипп Пизло (Filip Pizlo) представил на конференции SPLASH'24 открытый C/C++ компилятор Fil-C, предоставляющий защиту от проблем, вызванных ошибками при работе с памятью. Проект нацелен на обеспечение полной совместимости с существующим кодом на языках C и C++ - для обеспечения безопасной работы с памятью достаточно просто пересобрать существующий код. Компилятор построен с использованием компонентов от проекта LLVM и распространяется под лицензией Apache 2.0. Runtime поставляется под лицензией BSD. В отличие от недавно анонсированного проекта TrapC, находящегося на стадии проектирования, компилятор Fil-C уже доведён до готовности сборки существующего кода.

Проектом также поставляются безопасно работающие с памятью варианты стандартных библиотек C (libc) и C++ (libc++), основанные на библиотеках Musl и LLVM libc++. Среди прочего, в собираемых программах могут использоваться такие возможности, как многопоточность, обработка сигналов, маппинг файлов в память (mmap), longjmp/setjmp и обработка исключений в C++. При помощи Fil-C без внесения изменений могут быть собраны проекты bzip2, zip, pcre и ncurses. С незначительными модификациями поддерживается сборка OpenSSH, OpenSSL, CPython, SQLite, Lua, Curl, Lynx, jpeg6b, zsh, xzutils и simdutf.

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

Заявлено, что комбинация из MonoCaps и FUGC позволяет отлавливать и блокировать все ошибки, связанные с выходом за границы буфера в стеке и куче, обращением к уже освобождённой памяти, состояниями гонки при работе с указателями, а также неправильной обработкой типов (Type Confusion) в контексте пересечения типов указателей и не указателей, проблем при динамической компоновке (linking) и некорректного использования va_lists. Кроме того, Fil-C отдельно проверяет границы и типы в буферах, передаваемых в системные вызовы.

Ценой возможности использования Fil-C для защиты существующих проектов, без необходимости переписывания их кода или задействования особых языковых конструкций, является снижение производительности. На текущем этапе развития, собираемые в Fil-C программы медленнее примерно в 1.5-5 раз, по сравнению со сборкой обычными компиляторами. В планах заявлена работа по проведению оптимизации. Предполагается, что после завершения этой работы в большинстве случаев код будет выполняться медленнее в 1.2 раза, а в наихудших сценариях замедление не превысит полтора раза. Компилятор пока поддерживает только платформу Linux на системах X86_64. Предыдущие версии поддерживали macOS и FreeBSD, но затем было решено не распылять усилия и вначале подготовить качественный порт libc для одной платформы.

Другим ограничением Fil-C является принципиальный отказ от сохранения совместимости на уровне ABI для кода на C/C++, что не позволяет связывать собираемый в Fil-C код с библиотеками и объектными файлами, собранными другими компиляторами. Методы вызова функций и способ динамического связывания в Fil-C отличается от существующих компиляторов и компоновщиков. Подобное решение объясняется тем, что при связывании с незащищённым кодом теряется суть предлагаемой в Fil-C защиты и возникает иллюзия защищённого приложения - при наличии совместимости ABI, у разработчиков возникал бы соблазн собрать в Fil-C лишь отдельные файлы, не утруждая себя портированием всего проекта.

Задействованный в Fil-C механизм MonoCap основывается на применении 16-байтовых указателей, в которых помимо адреса в памяти, указывается ссылка на объект, включающий сведения о возможностях (capability), таких как верхняя и нижняя границы буфера, ассоциированного с указателем, а также массив, определяющий типы данных, хранимые в каждом блоке памяти (1 байт с информацией о типе (unset, int, ptr, free) для каждого 16-байтового блока памяти). При каждом обращении к памяти по указателю осуществляется проверка границ и типа (например, в память с типом "ptr" не могут быть записаны данные с типом "int" и наоборот).

Все операции выделения и освобождения памяти обрабатываются сборщиком мусора FUGC (Fil's Unbelievable Garbage Collector), который при освобождении памяти переводит все связанные с освобождаемым буфером записи о типах в значение "free" и затем перенаправляет все указатели на освободившиеся объекты на отдельный объект, сигнализирующий о том, что память уже освобождена. Любое дальнейшее обращение к блоку данных с типом "free" или по указателю, связанному с освобождённым объектом, приводит к генерации исключения, что позволяет защититься от уязвимостей класса use-after-free. Сборщик мусора работает параллельно и не приостанавливает выполнение других потоков.

Использование комбинации из MonoCaps и FUGC позволяет сохранить возможность привычной работы с указателями и оставить неизменной семантику вызовов malloc и free, предоставив при этом гарантированную защиту. Код программы может содержать различные логические ошибки, такие как неправильное приведение типов, неверные арифметические операции с указателями, состояния гонки и несвоевременный вызов функции free(), но независимо от всего этого, Fil-C запомнит исходные границы и тип данных, и прервёт выполнение, если будет предпринята попытка доступа по указателю к области вне запомненных границ, обращения к освобождённому блоку памяти или чтения данных с типом "int" как указателя или наоборот.

Автор Fil-C, Филипп Пизло, занимает в компании Epic Games пост директора, отвечающего за проекты, связанные с языками программирования. Филипп имеет богатый опыт работы над виртуальными машинами, языками программирования, компиляторами и сборщиками мусора, например, в IBM он развивал язык программирования X10, в Microsoft работал над сборщиками мусора Stopless, Clover и Chicken, в Apple занимался JIT-компилятором и оптимизациями браузерного движка WebKit, в Epic Games возглавляет команду разработчиков, развивающую язык программирования Verse и связанную с ним виртуальную машину. Филипп также является одним из ключевых разработчиков виртуальных машин Jikes RVM, Ovm и Fiji VM.

<iframe src="https://www.youtube.com/embed/_VF3pISRYRc?si=NpJLo4SEPk4F4kNg">

Источник: https://www.opennet.ru/opennews/art.shtml?num=62241

opennet honked 16 Nov 2024 22:00 +0100

Дистрибутив OpenWrt переходит на пакетный менеджер APK

Разработчики дистрибутива OpenWrt, ориентированного на применение в различных сетевых устройствах, таких как маршрутизаторы, коммутаторы и точки доступа, объявили о переходе на пакетный менеджер APK, развиваемый проектом Alpine. В ноябрьских снапшотах, созданных на базе находящейся в разработке основной ветки OpenWrt, ранее использовавшийся пакетный менеджер opkg уже заменён на инструментарий apk.

Тестовая ветка OpenWrt 24.10 пока продолжает использовать opkg, но в ближайшее время будет переведена на APK (OpenWrt 24.10 станет первым релизом на базе APK). Стабильная ветка OpenWrt 23.05 до окончания своего сопровождения продолжит использование opkg. После завершения миграции на новый пакетный менеджер, opkg будет переведён в разряд устаревших и больше не будет развиваться как часть проекта OpenWrt. Переход на APK позволит расширить возможности управления пакетами, а также приведёт к изменению методов установки и работы с пакетами.

APK по умолчанию (если не указывать опцию "--allow-untrusted") требует наличия корректных цифровых подписей для всех пакетов, в то время как opkg не проводит проверку для локально устанавливаемых пакетов. Некоторые операции opkg, требовавшие запуска разных команд, в apk могут быть сведены к одной команде (например, отдельно не нужно обновлять кэш с информацией о репозитории, т.е. вместо "opkg update && opkg install dnsmasq-full" можно запустить "apk --update-cache add dnsmasq-full"). Из расширенных возможностей APK также отмечается команда "apk list --installed --orphaned", при помощи которой можно посмотреть все не используемые зависимости, которые без ущерба для системы могут быть удалены.

Сравнение некоторых команд apk и opkg для выполнения типовых действий:

apk update opkg update
apk add pkg opkg install pkg
apk del pkg opkg remove pkg
apk list opkg list
apk list P opkg list P
apk list --installed [P] opkg list-installed
apk list --upgradeable [P] opkg list-upgradable
apk list --providers [P] opkg -A whatprovides P
apk info P opkg info P
apk info --all P нет эквивалента
apk info --contents P opkg files P


Источник: https://www.opennet.ru/opennews/art.shtml?num=62240

opennet honked 16 Nov 2024 13:00 +0100

Выпуск web-браузера Chrome 131

Компания Google опубликовала релиз web-браузера Chrome 131. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается от Chromium использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого от копирования видеоконтента (DRM), системой автоматической установки обновлений, постоянным включением Sandbox-изоляции, поставкой ключей к Google API и передачей при поиске RLZ-параметров. Для тех, кому необходимо больше времени на обновление, отдельно поддерживается ветка Extended Stable, сопровождаемая 8 недель. Следующий выпуск Chrome 132 запланирован на 14 января.

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

  • Во встроенном PDF-просмотрщике расширена возможность распознавания текста в отсканированных PDF-документах, в которых текст размещён в виде изображения. Текст распознаётся на локальной системе при помощи встроенного движка оптического распознавания символов (OCR), построенного на базе машинного обучения. В отличие от прошлых версий отсканированные документы теперь автоматически преобразуются в текстовое представление, для которого доступны функции выделения, поиска и копирования в буфер обмена.
  • Представлена возможность включения расширенных проверок в системе распределения памяти PartitionAlloc, которые позволяют блокировать уязвимости, вызванные обращением к уже освобождённым областям памяти (use-after-free). По умолчанию данные проверки отключены из-за возможного негативного влияния на производительность. Тем не менее, для внедрений, в которых безопасность важнее производительности, теперь предоставляется отдельные enterprise-политики для активации дополнительной защиты.
  • Во встроенном хранилище корневых сертификатов (Chrome Root Store) прекращено доверие к удостоверяющему центру Entrust из-за множественных нарушений требований к удостоверяющим центрам, не соблюдение сроков реагирования на проблемные сертификаты, затягивание отзыва сертификатов, ненадлежащее оформление отчётов об инцидентах и не соблюдение правил при выдаче TLS-сертификатов уровня EV (Extended Validation), требующих проведения проверки документов о принадлежности домена и подтверждение владельца ресурса. В связи с отсутствием действий по устранению выявленных недостатков, TLS-сертификаты, выданные Entrust после 11 ноября 2024 года, воспринимаются в Chrome как не заслуживающие доверия. Сертификаты, выпущенные до 11 ноября, продолжают восприниматься как нормальные.
  • В версии для Android включена возможность подключения сторонних провайдеров автоматического заполнения форм и сохранения паролей, не завязанная на API Accessibility.
  • В версии для Android упрощено подключение к учётной записи в Google и управление синхронизацией данных между разными браузерами. Синхронизация больше не преподносится как отдельная функция в настройках, а объединена с функцией подключения к учётной записи Google, что позволяет использовать и сохранять в Google Account такую информацию, как пароли и закладки.
  • Началась постепенная активация среди пользователей нового режима экономии потребления энергии (Energy saver), при котором автоматически замораживаются вкладки, потребляющие много ресурсов CPU, но при этом не выводящие звук и скрытые в течение более 5 минут. Исключение делается только для вкладок, связанных с управлением внешними устройствами или проведением видео и аудио конференций (подобные вкладки определяются на основании доступа к API для работы с USB, Bluetooth, камерой, устройствами ввода и микрофоном, а также организации канала связи с использованием RTCDataChannel или MediaStreamTrack). Для управления включением автозаморозки можно использовать настройку "chrome://flags/#freezing-on-energy-saver".
  • Добавлены экспериментальные режимы экономии памяти (Memory saver) - Moderate, Balanced и Maximum, позволяющие выбрать метод высвобождения памяти от неактивных вкладок. В режиме Moderate память вкладки деактивируются только при нехватке памяти в системе, в режиме Maximum вкладки деактивируются через небольшое время после того как становятся неактивными, а в режиме Balanced неактивные вкладки деактивируются с учётом свободной памяти в системе.
  • Добавлены дополнительные настройки, связанные с производительностью, например, появилась возможность указания сайтов, постоянно остающихся в активном режиме (без замедления работы в фоне), выбора способа визуальной индикации деактивированных вкладок и показа потребления памяти во всплывающих эскизах вкладок.
  • Добавлен инструмент "Performance Detection", выявляющий потенциальные проблемы с производительностью просматриваемых страниц и выводящий уведомление с рекомендациями по решению проблемы в один клик. Например, чтобы ускорить текущую вкладку браузер может предложить деактивировать другие вкладки, потребляющие много ресурсов.
  • В TLS 1.3 и QUIC алгоритм инкапсуляции ключей (KEM, Key Encapsulation Mechanism) "X25519Kyber768", устойчивый к подбору на квантовых компьютерах, переведён на использование финальной спецификации ML-KEM (CRYSTALS-Kyber), стандартизированной Национальным институтом стандартов и технологий США (NIST). X25519Kyber768 представляет собой комбинацию из X25519 ECDH и алгоритма ML-KEM, использующего методы криптографии, основанные на решении задач теории решёток, время решения которых не отличается на обычных и квантовых компьютерах.
  • В функцию поиска по изображению при помощи сервиса Google Lens, доступную через контекстное меню, добавлена поддержка наложения перевода на другой язык (переведённый текст показывается поверх исходного текста на изображении).
  • Добавлен API Direct Sockets, позволяющий устанавливать прямые TCP- и UDP-соединения с внешними системами, а также создавать слушающие сокеты для приёма соединений. При первой первой попытке соединения с новым хостом пользователю выводится запрос для подтверждения операции. Необходимость добавления нового API объясняется предоставлением возможности взаимодействия с сетевыми устройствами, которые используют собственные протоколы, работающие поверх TCP и UDP, и не поддерживают взаимодействие через HTTPS или WebSockets.
  • В режиме "Origin trials" реализован API Summarizer для резюмирования текста (краткого изложения сути), используя большую языковую модель.
  • В режиме "Origin trials" добавлен API Playout Statistics, определяющий интерфейс AudioContext.playoutStats для получения статистики о качестве и задержках при воспроизведения звука через API WebAudio.
  • Для защиты от злоупотреблений добавлен вывод запроса подтверждения полномочий при использовании сайтом API Keyboard Lock и Pointer Lock, предоставляющих дополнительный контроль над клавиатурой и мышью (например, можно скрыть штатный указатель мыши и обеспечить собственную обработку перемещения мыши). Проверить статус предоставления полномочий можно через API Permissions.
  • Разрешено указание дополнительных тегов в HTML-элементе "‹select›", помимо штатных тегов "‹option›", "‹optgroup›" и "‹hr›". Изменение внесено в качестве подготовки к реализации в будущих выпусках настраиваемого варианта "‹select›", расширяющего возможности оформления меню.
  • В CSS-свойствах "clip-path", "fill", "stroke" и "marker-*" добавлена поддержка указания внешних SVG-ресурсов. Например, теперь можно указывать 'clip-path: url("resources.svg#myPath")'.
  • Изменена модель наследования свойств стилей выделения текста, определяемых через псевдоклассы "::selection" и "::target-text", которая приведена к модели наследования псевдоклассов "::highlight", "::spelling-error" и "::grammar-error", и теперь зависит не от структуры документа (цепочки HTML-элементов), а от того, как выделяется текст (цепочки выделения). В примере ниже цвет вложенных элементов с текстом в параграфе "‹p class="blue"›" теперь будет выбран в соответствии со стилем псевдокласса "::selection", а не стилем цвета, указанного для параграфа.
       p {
         color: deeppink;
       }
    
       .blue::selection {
         color: blue;
       }
    
       ‹p class="blue"›
        This is
        ‹em›emphasized‹/em›
        text.
       ‹/p›
    
    
  • Убраны ограничения, не позволявшие выставлять CSS-свойства "display" для HTML-элементов "‹details›" и "‹summary›". В CSS добавлен псевдоэлемент "::details-content" для настройки оформления сворачиваемого и раскрываемого блока.
  • Добавлено CSS-свойство "font-variant-emoji" для настройки стиля отображения Emoji. Например, можно выбрать текстовое или графическое представление.

  • В CSS-правиле @page, предназначенном для изменения оформления страницы перед выводом на печать или экспортом в формат PDF, появилась возможность определения областей для размещения контента в области полей страницы, например, для добавления своего заголовка, примечания сбоку или футера.

  • Объявлено устаревшим CSS-свойство "inset-area", применявшееся для управления показом элементов, привязанных к местоположению других элементов (CSS Anchor Positioning). В соответствии с рекомендацией рабочей группы, занимающейся стандартизацией СSS, на смену "inset-area" пришло полностью аналогичное свойство "position-area".
  • Расширены возможности инструментов для web-разработчиков. В панель Performance добавлены новые возможности для анализа производительности. Предложена экспериментальная панель с AI-ассистентом, в которой в форме чата можно получить ответы, возникающие при отладке CSS.

    <iframe src="https://www.youtube.com/embed/fSlNvBU-t38?si=Qz3ScTpMM9jxjw6m">

Кроме нововведений и исправления ошибок в новой версии устранены 12 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Одной проблеме присвоен высокий уровень опасности (проблема в коде для работы с расширениями в движке Blink). Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 8 премий на сумму 1 тысяча долларов США (одна премия $1000). Размер 7 вознаграждений пока не определён.

Источник: https://www.opennet.ru/opennews/art.shtml?num=62237

opennet honked 15 Nov 2024 23:00 +0100

Выпуск Phosh 0.43.0, GNOME-окружения для смартфонов

Опубликован релиз Phosh 0.43, экранной оболочки для мобильных устройств, основанной на технологиях GNOME и библиотеке GTK. Окружение изначально развивалось компанией Purism в качестве аналога GNOME Shell для смартфона Librem 5, но затем вошло в число неофициальных проектов GNOME и используется в postmarketOS, Mobian, Droidian, некоторых прошивках для устройств Pine64 и редакции Fedora для смартфонов. Phosh использует композитный сервер Phoc, работающий поверх Wayland, а также собственную экранную клавиатуру squeekboard. Наработки проекта распространяются под лицензией GPLv3+.

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

  • Улучшена панель быстрых настроек, в которой сокращены отступы между кнопками и реализована возможность отображения страниц статуса под настройками.
  • Добавлена новая быстрая настройка для управления временем методом помидора.
  • Добавлена поддержка акцентных цветов, применяемых для выделения активных элементов.
  • Улучшена система вывода уведомлений.
  • Включена анимация скрытия приложений в системном лотке.
  • Улучшена индикация о событиях, связанных с уведомлениями.
  • Добавлена настройка для отключения аутентификации для разблокировки экрана.
  • Обеспечено сохранение создаваемых скриншотов в отдельный каталог.
  • В композитный менеджер phoc добавлена поддержка тем оформления указателей курсора.
  • В экранной клавиатуре squeekboard добавлена настройка для заполнения всего свободного места в панели. Реализована возможность назначения кнопкам модификатора Shift. В раскладку для терминала добавлены кнопки Shift. Добавлены новые emoji, определённые в спецификации Unicode 16.0.
  • В конфигураторе phosh-mobile-settings предоставлена возможность указания горизонтального и вертикального размера во время использования виртуальной клавиатуры.
  • Обновлены версии зависимостей: wlroots 0.17.4, GNOME 47, Calls 47.0, feedbackd 0.5.0, feedbackd-device-themes 0.4.0, callaudiod 0.1.10, wys 0.1.12 и mmsd-tng 2.6.2.


Источник: https://www.opennet.ru/opennews/art.shtml?num=62239

opennet honked 15 Nov 2024 22:00 +0100

Уязвимость в PostgreSQL, позволяющая выполнить код с правами рабочего процесса

Сформированы корректирующие обновления для всех поддерживаемых веток PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17 и 12.21, в которых исправлены 35 ошибок и устранены 3 уязвимости - одна опасная и две неопасных. Также объявлено о прекращении поддержки ветки PostgreSQL 12, обновления для которой больше формироваться не будут.

Опасная уязвимость (CVE-2024-10979), который присвоен уровень опасности 8.8 из 10, позволяет локальному пользователю СУБД, обладающему правами на создание функций PL/Perl, добиться выполнения кода с правами пользователя, под которым работает СУБД. Уязвимость вызвана тем, что в функциях PL/Perl можно изменить переменные окружения рабочего процесса, включая переменную PATH, определяющую пути к исполняемым файлам, и специфичные для PostgreSQL переменные окружения. Отмечается, что для совершения атаки достаточно доступа к СУБД и не требуется наличие учётной записи в системе.

   CREATE OR REPLACE FUNCTION plperl_set_env_var()
   RETURNS void AS
   $$
    $ENV{'ENV_VAR'} = 'testval';
   $$ LANGUAGE plperl;

   SELECT plperl_set_env_var();


Источник: https://www.opennet.ru/opennews/art.shtml?num=62238

opennet honked 15 Nov 2024 10:00 +0100

Опубликован стандарт параллельного программирования OpenMP 6.0

После трёх лет разработки опубликован набор спецификаций OpenMP 6.0 (Open Multi-Processing), определяющих API и способы применения методов параллельного программирования для языков Си, Си++ и Фортран на многоядерных и гибридных (CPU+GPU/DSP) системах с общей памятью и блоками векторизации (SIMD). Предполагается, что начальная поддержка отдельных возможностей OpenMP 6.0 будет включена в состав выпусков LLVM/Clang 20 и GCC 15.

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

  • Упрощён процесс программирования задач (task), определяющих независимые части программы, которые могут выполняться параллельно с другими частями.
    • Добавлена возможность выполнения задач в потоках free-agent, не привязанных к группам потоков (teams), выполняющих параллельные регионы (parallel region, блок кода, выполняемый в нескольких потоках).
    • Обеспечена поддержка сохранения графа задач (taskgraph), определяющего зависимости между задачами и порядок выполнения задач, для повышения эффективности последующего повторного воспроизведения.
    • Реализован механизм прозрачных задач ("transparent tasks") для упрощения управления зависимостями и автоматического управления выполнением дочерних задач.
  • Расширена поддержка вычислительных устройств, которые могут использоваться для выполнения параллельных задач (CPU, GPU, DSP и т.п.).
    • Добавлен новый синтаксис массивов, позволяющий использовать директиву "workdistribute" для разделения обработки массивов между разными единицами работы.
    • Расширены возможности управления выделением памяти, упрощающие управление переменными, для которых память выделяется динамически.
    • Расширена поддержка атрибутов, определяющих распределение данных между устройствами по умолчанию.
    • Упрощено написание кода для асинхронной передачами данных дополнительным вычислительным устройствам (GPU).
    • Улучшено управление памятью и её привязкой к вычислительным устройствам.
    • Добавлена директива "groupprivate" для закрепления памяти за группой потоков, выполняемых на определённом вычислительном устройстве.
  • Упрощено программирование некоторых видов трансформации циклов, таких как объединение нескольких циклов, изменение порядка вложенных циклов и реверсия циклов.
  • Добавлена новая операция индукции (induction) для организации распараллеливания в циклах простых арифметических вычислений и пользовательских операций, зависящих от предыдущих значений.
  • Добавлена полная поддержка распараллеливания программ, написанных с использованием стандартов C23 (включая синтаксис атрибутов), Fortran 2023 и C++23. Добавлены новые атрибуты для C/C++.
  • Расширены возможности управления хранилищем и памятью. Добавлены новые атрибуты для контроля над тем, как должна выделяться и использоваться память. Добавлен API для определения и запроса пространств памяти (memory space).
  • Удалены возможности, объявленные устаревшими в спецификациях OpenMP 5.0, 5.1 и 5.2.


Источник: https://www.opennet.ru/opennews/art.shtml?num=62236

opennet honked 14 Nov 2024 20:00 +0100

Каталог PyPI внедрил новую систему проверки подлинности пакетов

Разработчики репозитория Python-пакетов PyPI (Python Package Index) объявили о внедрении поддержки механизма цифровой аттестации для проверки подлинности опубликованных пакетов, которая пришла на смену верификации с использованием PGP-подписей. Ключевым отличием аттестации является то, что публикация пакета заверяется не разработчиком, а третьим лицом (каталогом пакетов) после подтверждения достоверности публикации через внешнего провайдера OpenID Connect (например, после проверки, что публикуемый пакет соотносится со связанным с ним репозиторием на GitHub или GitLab).

Система аттестации устраняет недостатки, свойственные механизму верификации по PGP-подписям, который ранее был объявлен в PyPI устаревшим. Данное решение принято из-за проблем с проверкой принадлежности разработчикам открытых PGP-ключей, используемых для проверки цифровых подписей - из 1069 PGP-ключей, использованных с 2020 года для формирования подписей в PyPI, 29% открытых ключей отсутствовали на крупных публичных серверах ключей, а 35% ключей оказалось невозможно подтвердить в ходе аудита. При этом подтверждённые 36% PGP-ключей охватывали лишь 0.3% от всех подписанных файлов.

В новой системе используемые для заверения пакетов подписи создаются с использованием короткоживущих эфемерных ключей, генерируемых на основе полномочий, подтверждённых провайдерами OpenID Connect. В момент генерации ключей, необходимых для создания цифровой подписи, разработчик идентифицирует себя через провайдера OpenID, подтверждающего его связь с основным проектом. Инфраструктура для цифровой аттестации построена при помощи системы Sigstore и инструментария in-toto Attestation Framework.

Из достоинств аттестации называется отсутствие привязки к постоянным PGP-ключам - утеря или компрометация закрытого ключа разрушает доверие к созданным на его основе подписям, в то время как при аттестации подпись формируется в привязке к токену, подтверждающему полномочия в момент размещения пакета и связь пакета с основным репозиторием с кодом. Например, при публикации пакета, подготовленного через GitHub Action, аттестация определяет верифицируемую и подтверждённую связь между размещаемым в PyPI файлом, репозиторием, workflow-процессом и хэшем коммита на основе которого сформирован пакет.

Для отслеживания подлинности ключей и выявления возможных компрометаций формирующий пакеты проектов и самого PyPI применяется публичный централизованный лог, для обеспечения целостности и защиты от искажения данных задним числом в котором задействована структура "дерево Меркла" (Merkle Tree, каждая ветка верифицирует все нижележащие ветки и узлы благодаря древовидному хешированию).

Дополнительно можно отметить выявление в каталоге PyPI вредоносного пакета "fabrice", который при помощи тайпсквотинга (назначение похожих имён, отличающихся отдельными символами, например, exampl вместо example, djangoo вместо django, pyhton вместо python и т.п.) маскировался под популярную библиотеку "fabric", насчитывающую 201 миллионов загрузок (7 миллионов загрузок за прошлый месяц). Вредоносный пакет оставался незамеченным с 2021 года и с тех пор был загружен более 37 тысяч раз.

Пакет "fabrice" повторял базовую функциональность исходной библиотеки и дополнительно включал код для выявления и отправки на внешних хост ключей для доступа к AWS (Amazon Web Services), установки бэкдора и выполнения определённых скриптов. Активация вредоносных компонентов производилась в Linux и Windows. В Linux связанные с вредоносной активностью файлы загружались в каталог ~/.local/bin/vscode.

Источник: https://www.opennet.ru/opennews/art.shtml?num=62234

opennet honked 14 Nov 2024 11:00 +0100

Microsoft опубликовал открытую платформу .NET 9.0

Компания Microsoft представила выпуск открытой платформы .NET 9, созданной благодаря унификации продуктов .NET Framework, .NET Core и Mono. На основе .NET 9 можно создавать многоплатформенные приложения для браузера, облачных систем, рабочего стола, IoT-устройств и мобильных платформ, используя единые библиотеки и общий процесс сборки, не зависящий от типа приложения. Сборки .NET SDK 9, .NET Runtime 9 и ASP.NET Core Runtime 9 сформированы для Linux, macOS и Windows. .NET Desktop Runtime 9 поставляется только для Windows. Связанные с проектом наработки распространяются под лицензией MIT.

В состав .NET входит Runtime с JIT-компилятором RyuJIT, спецификации API, библиотеки WPF, Windows Forms, WinUI и Entity Framework, интерфейс командной строки dotnet, а также инструменты для разработки микросервисов, библиотек, серверных, графических и консольных приложений. Отдельно поставляются стек для разработки web-приложений ASP.NET Core 9.0, ORM-прослойка Entity Framework Core 9.0 (драйверы имеются, в том числе, для SQLite и PostgreSQL), библиотека WPF 9 (Windows Presentation Foundation), фреймворк Windows Forms 9 для разработки GUI, платформа Aspire 9 для создания приложений Cloud Native, фреймворк MAUI 9 для разработки многоплатформенных интерфейсов пользователя, а также выпуски языков C# 13 и F# 9. Поддержка .NET 9.0 и C# 13 включена в свободный редактор кода Visual Studio Code.

Особенности нового выпуска:

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

    В JIT-компилятор добавлены новые оптимизации на основе профилирования (PGO), улучшены обработка циклов, inline-развёртывание и проверка границ. В .NET runtime расширено использование векторных инструкций и добавлена поддержка расширений Arm64 SVE и Intel AVX10. На 50% ускорен код для обработки исключений. Для кода с операциями приведения типов, таких как "(IFoo)myFoo" и "myFoo is IFoo", зафиксировано увеличение производительности до 70%. Производительность некоторых методов в языке обработки запросов LINQ (Language-Integrated Query), таких как Take и DefaultIfEmpty, возросла до 10 раз при работе с пустыми массивами и коллекциями.

    Значительно повышена производительность и эффективность метода System.Text.Json. В методе JsonProperty.WriteTo реализована возможность прямой записи строк UTF8, исключающая лишнее выделение памяти. Оптимизированы операции изменения размера JsonObject. При проведении тестов TechEmpower, оценивающих эффективность кода для обработки JSON-запросов, по сравнению с .NET 8 наблюдается увеличение производительности на 15% и снижение потребления памяти на 93%.

  • В Runtime предложена новая модель атрибутов для активации и урезания функциональности в библиотеках.
  • В языке C# 13 расширены возможности использования модификатора "params", в котором помимо массивов разрешено указание коллекций. При инициализации массивов в значении индекса разрешено использование оператора "^" для отчёта индекса с конца массива (например, "buffer = { [^1] = 0, [^2] = 1,....}" запишет 0 в последний элемент, а 1 в предпоследний). В итераторах и async-методах разрешено использование выражений ref и unsafe. Добавлена новая escape-последовательность "\e". Разрешено определение интерфейсов для типов "ref struct" и использование типов "ref struct" в качестве аргументов в обобщённых функциях. Предложен новый тип Lock для установки блокировок в многопоточных приложениях.
       Lock myLock = new();
    
       void Concat‹T›(params List‹T› items)
       {
           lock (myLock)
               Console.WriteLine(string.Join("\e[1mItem: \e[0m", items));
       }
    
  • В языке F# 9 появилась поддержка типов, которые могут принимать значение null. В объединениях реализованы автоматически генерируемые свойства ".Is*" (например, person.contact.IsEmail), которые можно использовать для проверки принадлежности значения множеству. Добавлена поддержка пустых вычисляемых выражений ("let xs = seq { }"). В директивах, начинающихся с символа "#", разрешено указание нестроковых значений (например, можно писать #nowarn 0070 вместо #nowarn "0070"). В модули List, Array и Seq добавлены функции для случайного выбора или перемешивания элементов. К спискам (list и set) разрешено применение операций с коллекциями.
  • Расширены возможности стека .NET Aspire, предоставляющего набор компонентов для создания приложений, запускаемых в облачных окружениях. Добавлены новые возможности для управления ресурсами и жизненным циклом приложений. Расширены средства для сбора телеметрии.
  • Предложен новый набор абстракций C# для разработки AI-приложений, использования больших языковых моделей, обращения к векторным хранилищам и взаимодействия с AI-сервисами. Представлен новый тип "Tensor‹T›" и коллекция методов для вычислений и манипуляции с многомерными данными. Дополнения для AI распространяются в форме пакетов System.Numerics.Tensors, Microsoft.Extensions.AI и Microsoft.Extensions.VectorData. Обновлён фреймворк ML.NET, предназначенный для интеграции моделей машинного обучения в приложения. Добавлена библиотека Microsoft.ML.Tokenizers для кодирования и декодирования текста в токены.
  • В стеке для разработки web-приложений ASP.NET Core расширена поддержка упреждающей компиляции (ahead-of-time), расширены возможности мониторинга и трассировки, сокращено время запуска и снижено потребление памяти, оптимизирована работа со статическими файлами. Добавлен новый API для аутентификации и авторизации. В Blazor, платформе для создания web-приложений на языке C#, реализованы новые шаблоны для гибридных и web-приложений.
  • Расширены возможности фреймворка MAUI для разработки многоплатформенных интерфейсов пользователя. Проведена оптимизация производительности. Усилена интеграция с настольными и мобильными приложениями. Добавлены новые элементы интерфейса TitleBar и HybridWebView.
  • В WPF (Windows Presentation Foundation) расширена поддержка тем оформления и добавлена поддержка акцентных цветов.


Источник: https://www.opennet.ru/opennews/art.shtml?num=62233

opennet honked 14 Nov 2024 08:00 +0100

Проект Debian Junior начал формирование Live-сборок для детей

Разработчики проекта Debian Junior, занимающегося развитием возможностей для комфортной работы детей с дистрибутивом Debian GNU/Linux, объявили о формировании Live-сборок (3 ГБ), содержащих оптимизированное для детей пользовательское окружение и подборку программ, полезных и интересных для детей до 12 лет. Предложенную Live-сборку планируют обновлять еженедельно. Изначально Debian Junior был нацелен на доработку штатного Debian и поддержание набора пакетов для детей.

Пользовательское окружение сформировано на базе оконного менеджера IceWM, что позволяет использовать его даже на устаревших компьютерах с небольшим объёмом ОЗУ. В качестве файлового менеджера поставляется Thunar от проекта Xfce, для навигации в Web предложен Epiphany (GNOME Web), для обмена сообщениями - Dino-IM, для работы с электронной почтой - Evolution, для написания текстов - LibreOffice, для воспроизведения мультимедийного контента - VLC, для просмотра документов - Evince, для просмотра изображений - Eye of GNOME. В состав также включены обучающие приложения, такие как GCompris (уроки для детей дошкольного и младшего школьного возраста), Stellarium (планетарий), kturtle (обучение программированию), pySioGame (образовательные игры).



Источник: https://www.opennet.ru/opennews/art.shtml?num=62232