ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ SUSE ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° Π²ΡΠΎΡΠΎΠΉ ΠΏΡΠΎΡΠΎΡΠΈΠΏ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ALP Β«Punta BarettiΒ» (Adaptable Linux Platform), ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° SUSE Linux Enterprise. ΠΠ»ΡΡΠ΅Π²ΡΠΌ ΠΎΡΠ»ΠΈΡΠΈΠ΅ΠΌ ALP ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΎΡΠ½ΠΎΠ²Ρ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° Π½Π° Π΄Π²Π΅ ΡΠ°ΡΡΠΈ: ΡΡΠ΅Π·Π°Π½Π½ΡΡ Β«host OSΒ» Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ²Π΅ΡΡ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ»ΠΎΠΉ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° Π·Π°ΠΏΡΡΠΊ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Π°Ρ . Π‘Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Ρ Π΄Π»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ x86_64. ALP ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π²ΡΠ΅ΠΌ ΠΆΠ΅Π»Π°ΡΡΠΈΠΌ.
L'architettura ALP si basa sullo sviluppo di un ambiente 'host OS', minimo necessario per supportare e gestire l'hardware. Tutte le applicazioni e i componenti dello spazio utente sono progettati per essere eseguiti non in un ambiente misto, ma in contenitori separati o in macchine virtuali, eseguiti sopra l' 'host OS' e isolati l'uno dall'altro. Tale organizzazione consentirΓ agli utenti di concentrarsi sulle applicazioni e di astraere i flussi di lavoro, separandoli dall'ambiente di sistema di basso livello e dall'hardware.
La base per il "host OS" Γ¨ fornita dal prodotto SLE Micro, sviluppato sulle esperienze del progetto MicroOS. Per la gestione centralizzata, sono disponibili sistemi di gestione della configurazione Salt (preinstallato) e Ansible (opzionale). Per l'esecuzione di container isolati, sono disponibili strumenti come Podman e K3s (Kubernetes). Tra i componenti di sistema incorporati nei container ci sono yast2, podman, k3s, cockpit, GDM (GNOME Display Manager) e KVM.
Tra le caratteristiche dell'ambiente di sistema si menziona l'uso predefinito della crittografia del disco (FDE, Full Disk Encryption) con la possibilitΓ di memorizzare le chiavi nel TPM. La partizione principale viene montata in modalitΓ di sola lettura e non viene modificata durante il funzionamento. Nell'ambiente viene utilizzato un meccanismo di installazione atomica degli aggiornamenti. A differenza degli aggiornamenti atomici basati su ostree e snap, utilizzati in Fedora e Ubuntu, in ALP, invece di costruire singole immagini atomiche e distribuire un'infrastruttura di consegna aggiuntiva, vengono utilizzati il gestore di pacchetti di sistema e meccanismi di snapshot nel filesystem Btrfs.
Γ previsto un modo configurabile per l'installazione automatica degli aggiornamenti (ad esempio, Γ¨ possibile abilitare l'installazione automatica solo per le patch di vulnerabilitΓ critiche o tornare alla conferma manuale dell'installazione degli aggiornamenti). Per aggiornare il kernel Linux senza riavvio e interruzione del servizio, sono supportati i live patch. Per garantire la resilienza del sistema (self-healing), viene effettuata la registrazione dello stato stabile piΓΉ recente tramite snapshot Btrfs (in caso di anomalie dopo l'applicazione di aggiornamenti o modifiche delle impostazioni, il sistema viene automaticamente riportato allo stato precedente).
La piattaforma utilizza uno stack software multi-versione: grazie all'uso dei contenitori, Γ¨ possibile utilizzare diverse versioni di strumenti e applicazioni contemporaneamente. Ad esempio, Γ¨ possibile eseguire applicazioni che utilizzano versioni diverse di Python, Java e Node.js come dipendenze, separando le dipendenze incompatibili. Le dipendenze di base sono fornite sotto forma di set di BCI (Base Container Images). L'utente puΓ² creare, aggiornare e eliminare stack software senza influire su altri ambienti.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ΅ ALP:
- ΠΠ°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΎΡ D-Installer, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ ΠΎΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² YaST ΠΈ ΠΈΠΌΠ΅Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠΎΠ½ΡΡΠ½Π΄ΠΎΠ², Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΡΠΎΠ½ΡΡΠ½Π΄Π° Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ ΡΠ΅ΡΠ΅Π· web-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ ΠΏΠΎΡΡΡΠΎΠ΅Π½ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ web-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ Π²ΡΠ·ΠΎΠ²Π°ΠΌ D-Bus ΡΠ΅ΡΠ΅Π· HTTP, ΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ web-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. Web-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° JavaScript Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° React ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² PatternFly. ΠΠ»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ D-Installer ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ Π½Π° ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ TPM (Trusted Platform Module) Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠΈ Π·Π°Π³ΡΡΠ·ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ ΠΊΠ»ΡΡΠΈ, Ρ ΡΠ°Π½ΠΈΠΌΡΠ΅ Π² TPM-ΡΠΈΠΏΠ΅.
- ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² YaST (bootloader, iSCSIClient, Kdump, firewall ΠΈ Ρ.ΠΏ.) Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ . Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π΄Π²Π° ΡΠΈΠΏΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² β ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ YaST Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, Π² GUI ΠΈ ΡΠ΅ΡΠ΅Π· Web-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΈ ΡΠ΅ΡΡΠΎΠ²ΡΠ΅ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π ΡΠ΄ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΠ°ΠΊΠΆΠ΅ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π½Ρ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡΠΌΠΈ. ΠΠ»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ openQA ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° libyui-rest-api Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ REST API.
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Cockpit, Π½Π° Π±Π°Π·Π΅ ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ web-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΎΡΠ° ΠΈ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΎΡΠ°.
- ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠ΄ΠΈΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ (FDE, Full Disk Encryption) Π² ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ°Ρ ΠΏΠΎΠ²Π΅ΡΡ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ, Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ .
- Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ GRUB2.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠΊΡΠ°Π½Π° (firewalld-container) ΠΈ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°ΠΌΠΈ (warewulf-container).
Fonte: opennet.ru
