Опубликован релиз Linux-дистрибутива Photon OS 5.0, нацеленного на предоставление минималистичного хостового окружения для запуска приложений в изолированных контейнерах. Проект развивается компанией VMware и заявлен как пригодный для развёртывания промышленных приложений, включающий дополнительные элементы для усиления безопасности и предлагающий расширенные оптимизации для окружений VMware vSphere, Microsoft Azure, Amazon Elastic Compute и Google Compute Engine. Исходные тексты разработанных для Photon OS компонентов поставляются под лицензией GPLv2 (за исключением библиотеки libtdnf, которая открыта под лицензией LGPLv2.1). Готовые ISO- и OVA-образы поставляются для систем x86_64, ARM64, Raspberry Pi и различных облачных платформ под отдельным пользовательским соглашением (EULA).
Система поддерживает запуск большинства форматов контейнеров, включая форматы Docker, Rocket и Garden, и поддерживает такие платформы оркестровки контейнеров, как Mesos и Kubernetes. Для управления программным обеспечением и установки обновлений применяется фоновый процесс pmd (Photon Management Daemon) и собственный инструментарий tdnf, совместимый с пакетным менеджером YUM и предлагающий модель управления жизненным циклом дистрибутива на основе пакетов. Система также предоставляет инструментарий для простого переноса контейнеров приложений из окружений разработчиков (например, в которых используются VMware Fusion и VMware Workstation) в рабочие облачные окружения.
Для управления системными сервисами задействован systemd. Ядро собрано с оптимизациями для гапервизора VMware и включает настройки для усиления безопасности, рекомендуемые проектом KSPP (Kernel Self-Protection Project). При сборке пакетов задействованы повышающие безопасность опции компилятора. Дистрибутив формируется в трёх редакциях: минимальная (538МБ, включает только базовые системные пакеты и runtime для запуска контейнеров), сборка для разработчиков (4.3ГБ, включает дополнительные пакеты для разработки и тестирования программ, поставляемых в контейнерах) и для задач, работающих в режиме реального времени (683МБ, содержит ядро c патчами PREEMPT_RT для запуска realtime-приложений).
Ключевые улучшения в выпуске Photon OS 5.0:
- Добавлена поддержка файловых систем XFS и BTRFS.
- В процесс Network Configuration Manager добавлена поддержка настройки VPN WireGuard, нескольких маршрутов, SR-IOV (Single Root Input/Output Virtualization), создания и настройки виртуальных устройств, создания интерфейсов NetDev, VLAN, VXLAN, Bridge, Bond, VETH (Virtual Ethernet), MacVLAN/MacVTap, IPvlan/IPvtap и туннелей (IPIP, SIT, GRE, VTI). Расширен спектр параметров сетевых устройств, доступных для настройки и просмотра.
- В процесс PMD-Nextgen (Photon Management Daemon) добавлена поддержка настройки имени хоста, TLS, SR-IOV, интерфейсов Tap и Tun.
- В Network-event-broker добавлена возможность подстановки сетевых данных в формате JSON.
- В утилиту cntrctl добавлена возможность сборки легковесных контейнеров.
- Добавлена поддержка cgroups v2, которую можно использовать, например, для ограничения потребления памяти, ресурсов CPU и ввода/вывода. Ключевым отличием cgroups v2 от v1 является применение общей иерархии cgroups для всех видов ресурсов, вместо раздельных иерархий для распределения ресурсов CPU, для регулирования потребления памяти и для ввода/вывода.
- Добавлена возможность применения исправлений к ядру Linux без остановки работы и без перезагрузки (Kernel Live Patching).
- Добавлена поддержка обеспечения безопасности контейнеров при помощи политик SELinux.
- Добавлена возможность создания контейнеров без пользователя root.
- Для ядра linux-esx добавлена поддержка архитектуры ARM64.
- Добавлена поддержка СУБД PostgreSQL. Поддерживаются ветки 13, 14 и 15.
- В пакетном менеджере tdnf добавлена поддержка команд для работы с историей изменений (list, rollback, undo и redo), реализована команда mark.
- В инсталляторе добавлена поддержка скриптов, вызываемых на стадии до начала установки. Добавлена утилита для генерации собственных образов initrd.
- Добавлена поддержка режима разбивки разделов “A/B”, при котором на накопителе создаётся два идентичных корневых раздела – активный и пассивный. Новое обновление устанавливается в пассивный раздел, никак не влияя на работу активного. Затем разделы меняются местами – раздел с новым обновлением становится активным, а прошлый активный раздел переводится в пассивный режим и ожидает установки следующего обновления. Если после обновления что-то пошло не так, может быть совершён откат на прошлый вариант.
- Обновлены версии пакетов, например, задействованы ядро Linux 6.1.10, GCC 12.2, Glibc 2.36, Systemd 253, Python3 3.11, Openjdk 17, Openssl 3.0.8, Cloud-init 23.1.1, Ruby 3.1.2, Perl 5.36, Kubernetes 1.26.1, Go 1.20.2.