Opublikowano wydanie dystrybucji systemu Linux Photon OS 5.0, mającej na celu zapewnienie minimalistycznego środowiska hostingowego do uruchamiania aplikacji w izolowanych kontenerach. Projekt rozwijany jest przez firmę VMware i określany jako odpowiedni do wdrażania aplikacji przemysłowych, zawiera dodatkowe elementy zwiększające bezpieczeństwo i oferuje zaawansowane optymalizacje dla środowisk VMware vSphere, Microsoft Azure, Amazon Elastic Compute oraz Google Compute Engine. Źródła komponentów opracowanych dla Photon OS są udostępniane na licencji GPLv2 (z wyjątkiem biblioteki libtdnf, która jest otwarta na licencji LGPLv2.1). Gotowe obrazy ISO i OVA dostarczane są dla systemów x86_64, ARM64, Raspberry Pi oraz różnych platform chmurowych na podstawie odrębnej umowy licencyjnej (EULA).
System umożliwia uruchamianie większości formatów kontenerów, w tym formatów Docker, Rocket oraz Garden, i wspiera takie platformy orkiestracji kontenerów jak Mesos i Kubernetes. Do zarządzania oprogramowaniem i instalacji aktualizacji używany jest proces w tle pmd (Photon Management Daemon) oraz własne narzędzie tdnf, zgodne z menedżerem pakietów YUM, oferujące model zarządzania cyklem życia dystrybucji oparty na pakietach. System dostarcza również narzędzie do łatwego przenoszenia kontenerów aplikacji z środowisk deweloperskich (np. wykorzystujących VMware Fusion i VMware Workstation) do roboczych środowisk chmurowych.
Do zarządzania systemowymi usługami wykorzystywany jest systemd. Jądro jest zbudowane z optymalizacjami dla hipernadzorcy VMware i zawiera ustawienia zwiększające bezpieczeństwo, zalecane przez projekt KSPP (Kernel Self-Protection Project). Przy budowie pakietów używane są opcje kompilerów zwiększające bezpieczeństwo. Dystrybucja jest formułowana w trzech edycjach: minimalnej (538MB, zawiera tylko podstawowe pakiety systemowe i runtime do uruchamiania kontenerów), wersji dla programistów (4.3GB, zawiera dodatkowe pakiety do tworzenia i testowania programów dostarczanych w kontenerach) oraz wersji do zadań działających w czasie rzeczywistym (683MB, zawiera jądro z łatkami PREEMPT_RT do uruchamiania aplikacji czasu rzeczywistego).
Kluczowe ulepszenia w wydaniu Photon OS 5.0:
- Dodano wsparcie dla systemów plików XFS i BTRFS.
- W procesie Network Configuration Manager dodano wsparcie dla konfiguracji VPN WireGuard, kilka route'ów, SR-IOV (Single Root Input/Output Virtualization), tworzenie i konfigurowanie wirtualnych urządzeń, tworzenie interfejsów NetDev, VLAN, VXLAN, Bridge, Bond, VETH (Virtual Ethernet), MacVLAN/MacVTap, IPvlan/IPvtap oraz tuneli (IPIP, SIT, GRE, VTI). Rozszerzono zakres opcji urządzeń sieciowych dostępnych do konfiguracji i przeglądania.
- W procesie PMD-Nextgen (Photon Management Daemon) dodano obsługę konfigurowania nazwy hosta, TLS, SR-IOV, interfejsów Tap i Tun.
- W Network-event-broker dodano możliwość podstawiania danych sieciowych w formacie JSON.
- Do narzędzia cntrctl dodano możliwość budowania lekkich kontenerów.
- Dodano obsługę cgroups v2, którą można wykorzystać, na przykład, do ograniczania zużycia pamięci, zasobów CPU i wejścia/wyjścia. Główna różnica między cgroups v2 a v1 polega na zastosowaniu wspólnej hierarchii cgroups dla wszystkich rodzajów zasobów, zamiast oddzielnych hierarchii do przydziału zasobów CPU, regulacji zużycia pamięci i wejścia/wyjścia.
- Dodano możliwość zastosowania poprawek do jądra Linux bez zatrzymywania pracy i bez ponownego uruchamiania (Kernel Live Patching).
- Dodano obsługę zabezpieczeń kontenerów za pomocą polityk SELinux.
- Dodano możliwość tworzenia kontenerów bez użytkownika root.
- Dla jądra linux-esx dodano wsparcie dla architektury ARM64.
- Dodano wsparcie dla bazy danych PostgreSQL. Obsługiwane są gałęzie 13, 14 i 15.
- W menedżerze pakietów tdnf dodano obsługę poleceń do pracy z historią zmian (list, rollback, undo i redo), zrealizowano polecenie mark.
- W instalatorze dodano obsługę skryptów wywoływanych przed rozpoczęciem instalacji. Dodano narzędzie do generowania własnych obrazów initrd.
- Dodano obsługę trybu podziału partycji „A/B”, w którym na nośniku tworzy się dwie identyczne partycje główne — aktywną i pasywną. Nowa aktualizacja jest instalowana w partycji pasywnej, nie wpływając na działanie aktywnej. Następnie partycje zmieniają się miejscami — partycja z nową aktualizacją staje się aktywna, a poprzednia aktywna partycja przechodzi w tryb pasywny i czeka na instalację następnej aktualizacji. Jeśli po aktualizacji coś pójdzie nie tak, można przywrócić wcześniejszą wersję.
- Zaktualizowano wersje pakietów, na przykład zastosowano jądro 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.
Źródło: opennet.ru
