Les realms de Citadel

Citadel ne contient que le système d’exploitation de base et le bureau GNOME ; il n’inclut aucune application. Pour permettre l’installation et l’exécution d’applications, Citadel peut créer des espaces appelés Realms.

Un Realm est un conteneur semblable à un conteneur Docker ou LXC dans lequel n’importe quelle distribution Linux pourrait être installée. Nous utilisons une image basée sur Debian, mais il ne serait pas difficile de créer une image pour une autre distribution Linux.

Les conteneurs de realm sont lancés avec systemd-nspawn, mais il s’agit d’un détail d’implémentation qu’il n’est pas nécessaire de connaître pour pouvoir les utiliser.

Le realm current

Plusieurs realms peuvent être lancés simultanément, mais le bureau GNOME n’est associé qu’à un seul des realms en cours d’exécution. Ce realm est appelé le realm current.

Lors de l’affichage des applications disponibles depuis le bureau, GNOME ne connaît que les applications installées dans le realm défini comme current, et toute application lancée depuis le bureau s’exécutera à l’intérieur de ce realm current.

Définir un autre realm comme current n’affecte pas les applications déjà en cours d’exécution. Changer de realm current signifie simplement que les applications lancées par la suite s’exécuteront dans le nouveau realm choisi.

Organisation des répertoires des realms

Le répertoire de base des realms est stocké sur la partition de stockage dans /storage/realms et est monté par bind en /realms sur le système de fichiers racine pour plus de commodité.

/realms
    config
    /Shared
    /skel
    /default.realm -> realm-main
    /realm-main
    /realm-project
    /realm-testing

/realms/config

Il s’agit du fichier de configuration global des realms. Les options définies dans ce fichier s’appliquent à tous les realms, sauf si la même option a été surchargée avec une valeur différente dans le fichier de configuration d’un realm.

/realms/Shared

Ce répertoire est monté par bind en /home/user/Shared dans chaque realm en cours d’exécution dont l’option use-shared-dir est activée. C’est un moyen pratique de déplacer des fichiers entre différents realms, ainsi qu’entre citadel et les realms.