Release Notes 22.03 SP3

Ключевые особенности

Специализация на ИИ

В эпоху искусственного интеллекта операционные системы должны постоянно развиваться в этом направлении. OpenEuler уже поддерживает основные аппаратные архитектуры общего назначения (такие как ARM, x86, RISC-V и другие), а также развивает и совершенствует поддержку графических ускорителей (GPU) и вычислителей (NPU), таких как NVIDIA и Ascend, становясь предпочтительным выбором для решений связанных с обеспечением обучения и применения ИИ.


openEuler совместим с CANN, CUDA и другими программно-аппаратными архитектурами, а также с соответствующими программными фреймворками, такими как TensorFlow, PyTorch, что обеспечивает эффективное развитие и выполнение AI-приложений на openEuler.

Контейнизация и оптимизация: openEuler упрощает процесс развертывания программного окружения за счет применения технологий контейнерной виртуализации и предоставляет три типа образов контейнеров для различных сценариев применения:

  • Слой SDK: на базе образа openEuler устанавливается SDK соответствующей аппаратной платформы, такой как CANN для платформы Ascend или программное обеспечение CUDA от NVIDIA.
  • Слой ИИ-фреймворка: на базе слоя SDK устанавливаются программные фреймворки AI, такие как PyTorch или TensorFlow.
  • Слой исполнения модели: на основе образа фреймворка AI содержится полный набор инструментов требуемых для правильного исполнения ИИ модели.


ИИ для openEuler: в настоящее время Euler тесно интегрирован с ИИ. Идет процесс обучения программного решения EulerCopilot на базе больших языковых моделей и множестве реализаций системы Euler, что позволит реализовать функции интеллектуального анализа проблем и автоматизации системного обслуживания.

EulerCopilot – разработанный командой openEuler инструмент, который меняет способ взаимодействия с операционной системой. Он основан на большой модели ChatGLM и обучен на множестве кода и данных openEuler. Теперь задачи, которые раньше требовали участия экспертов из разных областей, могут быть переданы EulerCopilot. Он способен генерировать код, анализировать проблемы и помогать в управлении операционной системой и сервисами.
В настоящее время платформа EulerCopilot поддерживает два интерфейса: веб-интерфейс и текстовый интерфейс (CLI).


Встраиваемые (Embedded) решения

openEuler 22.03 LTS SP3 Embedded поддерживает гибкую встраиваемую виртуализацию и предоставляет виртуализационное решение Jailhouse, легковесное гибридное развертывание openAMP, пользователи могут выбирать оптимальное развертывание в соответствии с их собственными сценариями использования. Также поддерживает версию ROS humble, интегрирующую основные пакеты программного обеспечения, такие как ros-core, ros-base, SLAM, для удовлетворения требований выполнения ROS2.

Процессоры “с Юга”: openEuler Embedded Linux в настоящее время поддерживает преимущественно архитектуры ARM64 и x86-64, пришедшие с “запада”, но начиная с версии 22.03 LTS SP3 добавляется поддержка чипа RK3588, в будущем также будет добавлена поддержка чипов Loongson, Feiteng и других.

Гибкая виртуализация для встраиваемых систем: гибкая виртуализационная база openEuler Embedded представляет собой набор технологий для реализации одновременного выполнения нескольких операционных систем на многоядерных системах на кристалле (SoC, System On Chip), включая barremetall, встроенную виртуализацию, легковесные контейнеры, LibOS, доверенную исполнительную среду (TEE), гетерогенное развертывание и другие реализации.


Новые функциональные возможности ядра openEuler

openEuler 22.03 LTS SP3 построен на ядре Linux Kernel 5.10 и включает в себя полезные функции и перенесенные из более новых версий ядра (Backports).

  • Динамическая изоляция и освобождение памяти: предоставляет безопасную и стабильную функцию динамической изоляции и отмены изоляции страниц памяти, поддерживает безопасное перемещение оригинальной памяти при изоляции.
  • Поддержка онлайн-проверки ЦП: скрытые повреждения данных (SDC) могут привести к потере данных или их повреждению. Путем выполнения проверочной команды можно обнаружить ядра со скрытыми сбоями, заранее изолировать ядра с неисправностями для предотвращения более серьезных сбоев и повышения надежности системы.
  • Совместное управление вычислительной мощностью: при выполнении приложений, чувствительных к вычислительному шуму (например, облачные рабочие столы) на многоядерных серверах, технология совместного управления вычислительной мощностью может обеспечить своевременное и эффективное предоставление вычислительной мощности.
  • Улучшение функций изоляции ядра: система разделена на housekeeping и non-housekeeping части; non-housekeeping CPU используется преимущественно для выполнения бизнес-процессов, а housekeeping CPU используется для выполнения периодических фоновых процессов ОС и других шумов; фоновые процессы ОС и прерывания сосредоточены на housekeeping CPU, что предотвращает их влияние на выполнение бизнес-процессов, улучшая производительность бизнеса, что особенно полезно для HPC сценариев использования.
  • KVM TDP MMU: это перенесенная функция из новых версий ядер, направленная на улучшение функционала виртуализации памяти для повышения масштабируемости KVM. По сравнению с традиционной KVM MMU, TDP MMU обеспечивает более эффективный механизм обработки параллельных Page Fault, что делает KVM более подходящим для крупных виртуальных машин (множество vCPU, большая память). В то же время, используя новый интерфейс обхода EPT/NPT, KVM TDP MMU отказался от зависимости от структуры данных rmap в традиционной виртуализации памяти, что повышает эффективность использования памяти хоста.


NestOS – контейнерная операционная система

NestOS – это облачная операционная система, разработанная в сообществе openEuler, интегрирующая поддержку rpm-ostree, конфигурацию ignition и другие технологии. Она использует двойную файловую систему и атомарное обновление, использует инструмент nestos-assembler для быстрой интеграции и сборки. NestOS адаптирована для платформ K8S, OpenStack и других, оптимизирует работу контейнеров, обеспечивая удобные возможности кластеризации.

  • Готовая к использованию контейнерная платформа: NestOS интегрирует и адаптирует основные контейнерные движки iSulad, Docker, Podman, предоставляя пользователям легковесную и настраиваемую облачную операционную систему.
  • Простой и удобный процесс настройки: благодаря технологии ignition можно легко выполнить установку и настройку большого количества узлов кластера с одинаковой конфигурацией.
  • Безопасное и надежное управление пакетами: использование rpm-ostree для управления пакетами, совместно с источником пакетов openEuler, обеспечивает безопасное и стабильное атомарное обновление.
  • Дружественный и управляемый механизм обновлений: использование zincati для автоматического обновления узлов с возможностью автоматического перезапуска, обеспечивает поэтапное обновление узлов кластера без прерывания работы.
  • Двойная файловая система: использование дизайна двойной файловой системы для резервного копирования обеспечивает целостность и безопасность NestOS во время работы.

SysCare – возможность мгновенного применения исправлений CVE и патчей

SysCare – это программное обеспечение системного уровня, предоставляющее возможность мгновенного применения исправлений CVE и патчей без необходимости перезагрузки узла или сервиса.


GCC для openEuler

Компилятор GCC для openEuler – это высокопроизводительный компилятор, ориентированный на экосистему openEuler, разработанный на основе открытого GCC (GNU Compiler Collection) с полной оптимизацией для всех сценариев. GCC для openEuler сосредоточен на оптимизации языков C, C++, Fortran, улучшении оптимизации инструкций, памяти, автоматической векторизации и адаптации к китайским аппаратным платформам, таким как Kunpeng, Feiteng, Loongson и др., чтобы полностью раскрыть вычислительную мощность данных аппаратных архитектур.

Новые возможности GCC для openEuler включают:

  • Поддержку параллельной установки нескольких версий GCC
  • Оптимизацию распределения LLC
  • Добавление более 10 оптимизаций CPUBench
  • A-Ops – интеллектуальное обслуживание
  • Gazelle – добавление нового функционала в сетевой стек
  • Поддержку OCI runtime в iSulad

OCI (Open Container Initiative) – это легковесный открытый проект по стандартизации контейнеров под эгидой Linux Foundation. iSulad поддерживает стандартный интерфейс OCI и может гибко взаимодействовать с различными OCI средами исполнения, такими как runc, kata и другими. В результате унификации функциональности iSulad с OCI runtime добавлены интерфейсы isula top и isula attach. После усовершенствования функциональности для взаимодействия с OCI runtime iSulad переключился на использование runc как основного рантайма по умолчанию. Это позволяет избежать проблем с уже запущенными процессами при обновлении библиотек, а также обеспечивает более низкий уровень шума при работе контейнеров.

Переподписка памяти (Memory Overcommit)

Функция ориентирована в первую очередь на облачные сценарии применения контейнеров, обеспечивая эффективный механизм управления и распределения оперативной памяти.

Управление контроль распределения ресурсов с помощью cgroups

  • Функция активного освобождения памяти: поддержка прямого освобождения части памяти, поддержка отдельного указания страниц и анонимных страниц для вытеснения.
  • Функция контроля освобождения на основе конвейера: поддержка настройки минимальных, низких и высоких пороговых значений для “пассивного” освобождения, поддержка асинхронного фонового освобождения для предотвращения влияния на производительность бизнеса.
  • Функция дедупликации памяти: облегчает активацию полного объема памяти процессов в контейнере для дедупликации через KSM без необходимости вызова madvise для пометки областей памяти, участвующих в дедупликации.
  • Функция изоляции и управления swap-пространством: поддержка индивидуальной настройки swap-устройств (например, zram-устройства, устройства хранения) для контейнера, ограничение использования swap-пространства, активное перемещение данных в swap-пространство, переключатель использования swap.

Основные оптимизации

  • Сжатие памяти: поддержка вторичного сжатия zram, учитывая преимущества различных алгоритмов сжатия по степени сжатия и скорости сжатия/распаковки.
  • Оптимизация освобождения памяти: оптимизация скорости освобождения: снижение конфликтов блокировки процесса освобождения; оптимизация процессов unmap, migrate и других для повышения скорости освобождения; оптимизация обмена прозрачных больших страниц.
  • Оптимальное принятие решений на основе механизма PSI для бизнеса


Поддержка PSI в cgroup v1/v2.

Активное освобождение памяти на основе механизма PSI. Совместное принятие решений на основе анализа текущей нагрузки и состояния кластера для предотвращения негативного воздействия перераспределения памяти на производительность/надежность.

Динамическое измерение целостности

Функциональность динамического измерения целостности (Dynamic Integrity Measurement – DIM) позволяет измерять ключевые данные в памяти (например, сегменты кода) во время выполнения программы, сравнивать результаты
измерений с базовыми значениями и определять была ли информация в памяти изменена, что позволяет обнаруживать атаки и принимать меры по их предотвращению.

Функциональные возможности DIM динамического измерения целостности включают:

  • Поддержку измерения пользовательских процессов, модулей ядра и данных кодовых сегментов ядра.
  • Настройку стратегии измерений, проверку подписей стратегий измерений.
  • Генерацию и импорт базовых данных измерений инструментами, проверку подписей базовых данных.
  • Настройку алгоритма измерения SM3.

Функциональности DIM динамического измерения целостности включают два программных пакета: dim_tools и dim.

dim_tools: предоставляет командную строку dim_gen_baseline для генерации базовых данных кодовых сегментов из двоичных файлов ELF.

dim: предоставляет ядро dim_core и модуль ядра dim_monitor. dim_core является основным модулем динамического измерения целостности, который анализирует и импортирует конфигурацию пользовательских стратегий измерений и базовых данных измерений, получает целевые данные из памяти и выполняет функцию измерения; dim_monitor защищает кодовые сегменты и ключевые данные dim_core от изменений для предотвращения потери функциональности измерений из-за изменений в dim_core.

Безопасный запуск

Безопасный запуск (Secure Boot) – это процесс подписания и проверки компонентов загрузки с использованием открытого и закрытого ключей. Во время загрузки каждый компонент проверяет цифровую подпись следующего компонента. Если проверка пройдена успешно, то следующий компонент запускается; если проверка не пройдена, загрузка останавливается.

Описание функций

Платформа подписания openEuler генерирует открытый ключ, закрытый ключ и сертификат для подписания openEuler внутренних компонентов EBS. В процессе создания EBS пакетов выполняется подписывание компонентов EFI безопасного запуска (shim/grub/vmlinux) при помощи сервиса подписания openEuler.

В процессе загрузки системы выполняется проверка подписи для обеспечения целостности компонентов системы.

Ограничения

  • На текущий момент платформа подписания поддерживает только подписывание компонентов, созданных внутри сообщества openEuler, и временно не поддерживает подписывание файлов из внешних проектов или файлов клиентов.
  • Подписываемые алгоритмы ограничены только международным алгоритмом RSA.

Обнаружение вторжений в ОС

secDetector – это система встроенного обнаружения вторжений, специально разработанная для операционной системы (ОС), которая предназначена для обеспечения возможности обнаружения и реагирования на вторжения в критическую информационную инфраструктуру. secDetector состоит из набора функций обнаружения, зонда для обнаружения аномалий и модулей ответных мероприятий. Функциональность зонда для обнаружения аномалий заключается в сборе событий ОС, вызванных атаками, и представлении информации о 8 типах аномалий системы (операции с файлами, управление процессами, доступ к сети, поведение программы, изменение памяти, потребление ресурсов, управление учетными записями, операции с устройствами), что обеспечивает полную информацию для определения неавторизованного доступа.

secDetector разделен на четыре технических блока:

  • SDK,
  • сервис,
  • набор функций обнаружения cases
  • ядро блока обнаружения core.

SDK: представляет собой динамическую библиотеку пользовательского уровня, которая развертывается в безопасном бизнес-контексте для использования системы встроенного обнаружения secDetector. SDK используется для связи с сервисом системы встроенного обнаружения secDetector и выполнения необходимых задач .
Сервис: представляет собой приложение службы пользовательского уровня для управления информацией о подписке и отслеживания выполнения задач.
Набор функций обнаружения – это набор зондов для обнаружения аномалий. Каждый зонд будет представлен различными формами в зависимости от информации об аномалии; например, каждый зонд для обнаружения аномалий ядра будет представлен как модуль ядра.
Ядро блока обнаружения core: это базовый фреймворк каждого сценария. Он предоставляет управление сценарием и единицами базовых функций workflow. Фреймворк обнаружения аномалий ядра будет представлен как модуль ядра ko.

Поддержка sysMaster в сценариях виртуализации

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

Новые функции

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

Ограничения:

  • В настоящее время поддерживаются только 64-разрядные системы.
  • Поддерживается только формат конфигурации toml, используемый sysMaster.
  • Поддерживаются только два сценария использования: системные контейнеры и виртуальные машины.

Выпуск проекта migration-tools

migration-tools – это программное обеспечение по миграции операционной системы, разработанное Uniontech Software для пользователей, которые хотят быстро, плавно, стабильно и безопасно перейти на операционную систему openEuler из-за необходимости замены импортированных бизнес-приложений на других операционных системах. Архитектура программы миграции состоит из нескольких модулей.

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

Модуль Agent: устанавливается на операционной системе, которую необходимо перенести. Он отвечает за прием запросов задач от сервера, выполнение миграции и другие функции.

Модуль конфигурации: предоставляет функцию чтения конфигурационных файлов для модуля Server и модуля Agent.

Модуль журналирования: обеспечивает запись всех этапов миграции.

Модуль оценки миграции: предоставляет отчеты об оценке перед миграцией, такие как базовая проверка окружения до миграции, анализ сравнения пакетов программного обеспечения, проверка совместимости ABI и другие данные для обеспечения основы для перехода пользователя к работе по миграции.

Модуль функций миграции: предоставляет функции одношаговой миграции, отображение прогресса миграции, оценку результатов миграции и другие функции.


Релиз проекта utshell

utshell – это новая оболочка, сохраняющая привычную стилистику использования bash. Она позволяет взаимодействовать с пользователем через командную строку, отвечать на действия пользователя, выполнять команды и давать обратную связь. Также может выполнять автоматизированные скрипты для помощи в управлении системой.

Выполнение команд: может выполнять команды, размещенные на машине пользователя, и возвращать результат выполнения пользователю.

Пакетная обработка: выполнение автоматических задач через скрипты.

Управление заданиями: возможность запускать команды пользователя как фоновые задания для одновременного выполнения нескольких команд. Также обеспечивает управление и контроль параллельно выполняемых задач.

История команд: записывает введенные пользователем команды.

Функция псевдонимов: позволяет пользователю создавать собственные псевдонимы для команд, персонализируя свои операции.


Выпуск проекта utsudo

Sudo – один из распространенных инструментов в операционных системах Unix и Linux, который позволяет пользователям выполнять определенные команды с привилегиями суперпользователя. Однако традиционный Sudo имеет некоторые недостатки в области безопасности и надежности, поэтому появился проект utsudo. utsudo – это проект по переработке Sudo на Rust с целью предоставить более эффективный, безопасный и гибкий инструмент повышения привилегий, включающий общие инструменты, общую структуру и функциональные плагины.

Контроль доступа: можно ограничить команды, которые пользователь может выполнить, и определить методы аутентификации.

Журнал аудита: записывает и отслеживает команды и задачи, выполненные каждым пользователем с использованием utsudo.

Временное повышение привилегий: позволяет обычному пользователю временно получить права суперпользователя для выполнения определенных команд или задач.

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

Особенности TPCM

Модуль управления доверенной платформой (Trusted Platform Control Module, TPCM) – это ядро базового модуля, который можно интегрировать в доверенную вычислительную платформу для создания и обеспечения источника доверия. Он является одним из ключевых инновационных элементов Китайской доверенной вычислительной версии 3.0 и защищенным ядром, обеспечивая активное управление всей платформой. Общая система состоит из защитных компонентов, вычислительных компонентов и программного обеспечения центра управления доверия.

Состав системы

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

Защитные компоненты: обеспечивают функции защиты доверенных вычислительных платформ с активными метриками и контролем. Включают в себя основной фирмваре TPCM, базу доверия программного обеспечения и модуль доверия TCM.

Вычислительные компоненты: включают аппаратное обеспечение, операционную систему и прикладное программное обеспечение.

Ограничения:

  • Серверная поддержка: TaiShan 200 (модель 2280).
  • Совместимость с моделью вставной карты BMC: BC83SMMC.


Поддержка пакета safeguard

Safeguard – это система безопасности Linux на основе eBPF, предназначенная для перехвата и аудита безопасных операций. Проект использует библиотеку libbpfgo и реализован на языке Go для верхнеуровневого управления. Имеются следующие возможности отслеживания:

  • Файлы
    • Отслеживание активности файловой системы, включая открытие, закрытие, чтение, запись файлов и т. д.
    • Изменение поведения файловой системы, например перехват определенных операций с файлами или реализация пользовательских политик безопасности.
  • Политика безопасности
    • Перехват или перенаправление определенных операций с файлами, использование eBPF для перехвата операций чтения/записи к чувствительным файлам или перенаправление доступа к определенным файлам на другие местоположения.
    • Реализация настраиваемого контроля доступа, использование eBPF для проверки информации о пользователе, разрешений и окружении доступа к файлам, а затем разрешение или отказ доступа в соответствии с некоторыми правилами.
    • Реализация настраиваемого аудита и мониторинга, использование eBPF для записи подробной информации о действиях с файлами, такой как пользователь, время, содержимое и вывод этой информации в журнал.
  • Процессы
    • Отслеживание жизненного цикла процессов, таких как создание и завершение процессов.
    • Изменение поведения процессов, таких как внедрение или изменение некоторых системных вызовов или реализация настраиваемых стратегий планирования.
  • Сеть
    • Отслеживание активности сети, такую как отправка, прием, пересылка и отбрасывание сетевых пакетов.
    • Изменение поведения сети, такое как фильтрация или перезапись некоторых сетевых пакетов или реализация настраиваемых стратегий маршрутизации.

 

Подробнее в первоисточнике (на китайском языке)