Ins System Portale Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ API Spawn Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠ° (PID) Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Flatpak Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π½Π΅ Π²Ρ ΠΎΠ΄ΡΡΠΈΡ Π² ΡΡΠ°ΡΠ½ΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠ² Π·Π° ΡΡΠ΅Ρ ausbildung ein universeller Container, ohne fΓΌr jede Verteilung separate Assemblys zu erstellen. FΓΌr sicherheitsbewusste Benutzer ermΓΆglicht Flatpak die AusfΓΌhrung einer fragwΓΌrdigen Anwendung in einem Container und bietet nur Zugriff auf die Netzwerkfunktionen und Benutzerdateien, die mit der Anwendung verknΓΌpft sind. FΓΌr Benutzer, die an neuen Produkten interessiert sind, ermΓΆglicht Flatpak die Installation der neuesten Test- und stabilen Versionen von Anwendungen, ohne dass Γnderungen am System vorgenommen werden mΓΌssen. Derzeit gibt es beispielsweise bereits Flatpak-Pakete gehen zu Π΄Π»Ρ LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio ΠΈ Ρ.Π΄.
ZusΓ€tzlich zur Standard-Systemumgebung (Laufzeit), installiert ΓΌber eine spezielle Repositorywerden zusΓ€tzliche AbhΓ€ngigkeiten (Bundle) bereitgestellt, die fΓΌr die FunktionsfΓ€higkeit der Anwendung erforderlich sind. Insgesamt bilden Runtime und Bundle die FΓΌllung des Containers, obwohl Runtime separat installiert und an mehrere Container gleichzeitig gebunden wird, wodurch Sie die Duplizierung von Systemdateien vermeiden kΓΆnnen, die fΓΌr Container ΓΌblich sind. Auf einem System kΓΆnnen mehrere unterschiedliche Laufzeiten (GNOME, KDE) oder mehrere Versionen derselben Laufzeit (GNOME 3.26, GNOME 3.28) installiert sein. Ein Container mit einer Anwendung als AbhΓ€ngigkeit verwendet eine Bindung nur an eine bestimmte Laufzeit, ohne die einzelnen Pakete zu berΓΌcksichtigen, aus denen die Laufzeit besteht. Alle fehlenden Elemente werden direkt mit der Anwendung gepackt. Wenn ein Container erstellt wird, werden die Laufzeitinhalte als /usr-Partition bereitgestellt und das Bundle wird im Verzeichnis /app bereitgestellt.
Die BefΓΌllung von Laufzeit- und Anwendungscontainern erfolgt technologisch OSTree, bei dem das Image atomar aus einem Git-Γ€hnlichen Repository aktualisiert wird, wodurch Versionskontrollmethoden auf die Komponenten der Distribution angewendet werden kΓΆnnen (Sie kΓΆnnen beispielsweise das System schnell auf einen frΓΌheren Zustand zurΓΌcksetzen). RPM-Pakete werden mithilfe einer speziellen Ebene in das OSTree-Repository ΓΌbersetzt rpm-otree. Die separate Installation und Aktualisierung von Paketen innerhalb der Arbeitsumgebung wird nicht unterstΓΌtzt; das System wird nicht auf der Ebene einzelner Komponenten, sondern als Ganzes aktualisiert und Γ€ndert seinen Zustand atomar. Bietet Tools zum schrittweisen Anwenden von Updates, sodass das Image nicht bei jedem Update vollstΓ€ndig ersetzt werden muss.
Π€ΠΎΡΠΌΠΈΡΡΠ΅ΠΌΠΎΠ΅ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° ΠΈ ΠΏΡΠΈ Π½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΠΏΠ°ΠΊΠ΅ΡΠ° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ»ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΏΡΡΠΌΡΡ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅ΡΠ΅Π· DRI, ΠΈ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΡΠ²ΠΎΠ΄ Π³ΡΠ°ΡΠΈΠΊΠΈ ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π²Π²ΠΎΠ΄Π° umgesetzt ΓΌber das Wayland-Protokoll oder ΓΌber die X11-Socket-Weiterleitung. Die Interaktion mit der externen Umgebung basiert auf dem DBus-Nachrichtensystem und einer speziellen Portals-API. Zur Isolierung benutzt Zwischenschicht bubblewrap und traditionelle Linux-Containervirtualisierungstechnologien basierend auf der Verwendung von Cgroups, Namespaces, Seccomp und SELinux. PulseAudio wird zur Tonausgabe verwendet.