bannière
 site  news  contact

Comment Easy fonctionne

13 novembre 2022 — Barry Kauler

Page initialement écrite le 24 septembre 2017.
Mise à jour partielle : 20 décembre 2018
Mise à jour majeure : 12 novembre 2022

EasyOS est un "nouveau paradigme" pour une distribution Linux, un mélange des meilleures idées de Puppy et Quirky, et une refonte fondamentale de la sécurité, de la maintenance et de la facilité d'utilisation.

Le meilleur moyen d'expliquer Easy est de suivre l'expérience d'un utilisateur (c'est-à-dire vous), depuis le téléchargement du fichier déployé jusqu'à l'installation et la découverte de ses fonctionnalités. Pour commencer, vous devez vous rendre sur l'un des sites Ouèb hébergeant EasyOS et le télécharger ...

Télécharger

Contrairement à la plupart des autres distributions Linux, Easy n'est pas proposé en fichier image (ISO) pour CD/DVD. À la place, Easy est proposé sous la forme d'un fichier image pour support entier : clé USB, carte SD ou disque  dur HDD, SSD (Solid State Disk).

Vous pourriez immédiatement répliquer que les fichiers ISO peuvent également être écrits sur des médias Flash - oui, mais dans ce cas, il ne s'agit pas d'une installation - vous devez encore installer la distribution quelque part. Avec Easy, ce qui est écrit sur le support Flash est l'installation, vous n'avez plus rien à faire. Vous pouvez lancer Easy à partir de ce support externe indéfiniment. Mais vous avez aussi la possibilité de l'installer sur un disque interne.

Le fichier que vous allez télécharge est appelé :
easy-<version>-<architecture>.img,
à l'heure où nous écrivons ces lignes, la dernière version est :
easy-4.5-amd64.img.
Vous pouvez trouver la dernière version ici, grâce à ibiblio :

https://distro.ibiblio.org/easyos/amd64/releases/dunfell/

Ou ce site miroir, offert par le NLUUG :

https://ftp.nluug.nl/os/Linux/distr/easyos/amd64/releases/dunfell/

Si vous ne connaissez que les fichiers ISO, vous ne savez peut-être pas comment écrire un fichier image sur une clé USB. Si c'est le cas, lisez cette page :

https://easyos.org/install/how-to-install-easyos-on-a-new-ssd.html

C'est vraiment très simple. Vous écrivez le fichier image sur une clé USB, puis vous persuadez l'ordinateur de démarrer à partir de la clé USB, vous démarrez et vous avez un bureau :


img1

Le fichier easy-4.5-amd64.img (ou la version que vous avez téléchargée) est un fichier image, qui peut être écrit sur n'importe quel disque. Bien qu'il ne fasse que 825MB, au premier démarrage, il s'étendra pour utiliser la totalité du disque dur. Ainsi, n'importe quel disque, à partir de 4 Go, convient (bien qu'un minimum de 8 Go soit recommandé pour une utilisation continue).

Structure interne du fichier image

En interne, le fichier image ressemble à ceci :

Écart
1MiB
Partition de démarrage
7miB fat12
Partition de travail
816MiB ext4    
Écart
1MiB

Si vous utilisez EasyOS, vous pouvez simplement cliquer sur le fichier, et les deux partitions seront automatiquement montées et ouvertes dans le gestionnaire de fichiers. Voici la partition vfat de 7MiB :

img2

Et la partition ext4 de 816MiB :

img3

Si vous utilisez une autre distribution Linux, vous devrez calculer les décalages et monter les partitions manuellement, comme décrit dans cette page (vers le bas de cette page) :

https://easyos.org/user/how-to-update-easyos.html

Easy est extrêmement facile à installer sur un disque interne, car il se compose uniquement des trois fichiers easy.sfs, initrd et vmlinuz, et ne doit occuper qu'un seul dossier dans une partition ext4, laissant le reste de la partition libre pour tout ce qui s'y trouve déjà, comme une autre distribution Linux.

Tout ce que vous avez à faire est de créer un dossier dans la partition ext4 du disque interne, d'y copier ces trois fichiers, et voilà, c'est installé

Il reste bien sûr un détail important : comment le démarrer. Si vous avez déjà installé GRUB ou rEFInd ou un autre chargeur de démarrage, une autre entrée peut être ajoutée pour démarrer Easy.

Ou bien, vous pouvez également installer le chargeur de démarrage Limine, qui est très simple et gère à la fois l'UEFI et les anciens ordinateurs à système d'exploitation hérité. Easy possède un "installeur du chargeur d'amorçage Limine" ("Limine bootloader installer"), que vous trouverez dans le menu "Configuration" ou "Assistant de Configuration". Limine est présenté ici :

https://easyos.org/install/limine-bootloader.html

Regardons de plus près le processus de démarrage...

Le chargeur de démarrage de Limine

N'importe quel chargeur de démarrage peut être utilisé. Le fichier image EasyOS est livré prêt à l'emploi avec Limine dans la partition vfat de 7MiB. Le chargeur de démarrage est ce à quoi le BIOS ou l'UEFI transmet le contrôle au démarrage, et il contient généralement un menu permettant de démarrer plusieurs systèmes d'exploitation. Lorsque vous démarrez sur la clé USB, vous ne verrez qu'une seule entrée, pour démarrer EasyOS :

img4

Cependant, c'est un chargeur de démarrage, et il peut démarrer n'importe quoi. Voyez le fichier limine.cfg dans l'instantané ci-dessus de la partition vfat ; éditez-le pour ajouter des entrées pour plus de systèmes d'exploitation, Linux, BSD, Windows, peu importe.

Le même principe s'applique si vous installez Limine sur le disque interne. Il faudrait lire la documentation de Limine pour savoir comment éditer ce fichier, mais "l'installeur du chargeur d'amorçage Limine" dans EasyOS fait un assez bon travail pour trouver le(s) système(s) d'exploitation installé(s), et créer un fichier de configuration limine.cfg pour vous -- bien que ce soit encore un travail en cours.

Lorsque l'entrée "EasyOS dunfell" est choisie, le chargeur de démarrage charge alors le noyau linux vmlinuz et le fichier initrd.

Les fichiers initrd et easy.sfs 

Comme déjà dit, le chargeur de démarrage charge d'abord le noyau Linux, vmlinuz, puis le "initial-ramfs", le fichier initrd. Le fichier initrd est un minuscule système d'exploitation Linux complet, dont la tâche principale est de configurer le bureau EasyOS et d'y passer.

Au tout premier démarrage, il vous sera demandé un mot de passe. Cette demande est facultative. Vous pouvez simplement appuyer sur la touche ENTRÉE, sans mot de passe, mais ce n'est pas recommandé. Un mot de passe est recommandé, n'importe quel mot de passe facile à retenir, et il cryptera certains dossiers de la partition de travail. Extrêmement important en cas de vol de votre clé USB !

L'inconvénient est que vous devez entrer le mot de passe à chaque démarrage. L'initrd dispose également d'un menu optionnel :

img5

Normalement, il suffirait de taper le mot de passe, d'appuyer sur ENTRÉE, et l'initrd procéderait à la configuration de tout ce qui est nécessaire pour passer au bureau...

L'initrd utilise "aufs", qui est un système de fichiers en couches. Essentiellement, il s'agit d'empiler les dossiers les uns sur les autres. Ceci devrait vous aider à visualiser ce qui se passe :


/
c'est l'abstraction, vu au sommet
RW layer folder
C'est le dossier .session dans la partition de travail.
RO layer folder
easy.sfs est monté dans ce dossier

où "RW" signifie lecture-écriture et "RO" signifie lecture seule.

Le fichier easy.sfs est l'intégralité de EasyOS. Il est créé avec le système de fichiers "squashfs". Lorsqu'il est monté dans un dossier, vous voyez l'ensemble du système de fichiers.

Le fichier easy.sfs est assez gros, typiquement environ 800MB. Si, par exemple, il contient le fichier /usr/share/doc/help.htm, celui-ci apparaîtra en haut de "/" -- sauf s'il y a un autre /usr/share/doc/help.htm dans la couche RW, alors le fichier le plus élevé est celui que vous verrez dans "/".

Cette couche RW peut également "effacer" des fichiers et des dossiers dans une couche inférieure, ou les renommer, au moyen de ce que l'on appelle des "fichiers blancs". Ce n'est pas un détail qui doit vous concerner -- si par exemple, de votre point de vue au sommet "/", vous supprimez /usr/share/doc/help.htm, il disparaîtra. Vous n'avez pas besoin de connaître la magie sous-jacente.

Lorsque vous exécutez EasyOS, tous les changements que vous effectuez, comme l'installation de paquets ou la création et l'édition de fichiers, sont placés dans cette couche RW.

La visualisation ci-dessus n'est cependant pas correcte dans le mode par défaut d'Easy au démarrage. Ce dossier .session se trouve dans la partition de travail ; cependant, pour minimiser les écritures sur le support Flash, un détournement a été introduit avec Easy 4.4, visualisé comme suit :


c'est l'abstraction, vu au sommet
RW layer folder
un dossier créé dans la RAM
RO layer folder
easy.sfs est monté dans ce dossier

Au lieu d'écrire directement dans le dossier .session du support Flash, un système de fichiers ext2 est créé dans un périphérique "zram". La zram est une RAM compressée, c'est-à-dire que tout ce qu'elle contient est compressé, ce qui signifie que l'on peut y stocker beaucoup plus de fichiers que la taille réelle allouée à la zram dans la RAM.

Encore une fois, ne vous préoccupez pas de la magie sous-jacente, voyez simplement le résultat final : la couche RW est maintenant en RAM, donc toutes les écritures se font maintenant uniquement en RAM, et non sur le support Flash.

Cependant, nous ne pouvons pas éviter d'avoir à écrire ces fichiers dans le dossier .session, et cela peut être fait à tout moment, via l'icône "save" ou "enregistrer" sur le bureau, ou à l'arrêt.

Remontez jusqu'à l'instantané du bureau, vous verrez l'icône "save" ou "enregistrer".

Ce détournement présente un autre avantage : vous pouvez démarrer, surfer sur le Web, puis éteindre, sans sauvegarder et sans laisser de trace de ce que vous avez fait pendant cette session.

Le mode traditionnel, avant easy 4.4, consistait à monter le dossier .session directement sur la couche RW, et vous pouvez revenir à ce mode si vous le souhaitez - il est proposé comme choix via l'icône "save" ou "enregistrer".

L'écriture directe dans le dossier .session peut convenir à un disque dur ou à un disque dur SSD de haute qualité, si vous n'avez pas peur que le disque soit submergé par les écritures.

Bref, revenons à ce que fait l'initrd...

Le système de fichiers en couches est mis en place, avec ce "/" au sommet, et à l'étape finale, il y a ce qu'on appelle un "switch_root", qui transfère le petit système d'exploitation Linux dans l'initrd, sur le "/" au sommet de la couche.

Ce switch_root est magique. Après qu'il se soit produit, voici à quoi ressemble le système de fichiers :

img6

...Ce que vous voyez ici, c'est tout ce qui se trouve dans easy.sfs, plus tous les nouveaux fichiers créés dans la couche RW superposée.

Après ce switch_root, le script /sbin/init s'exécute, qui finit par lancer le serveur graphique Xorg et le bureau est lancé.

Regardons à l'intérieur de initrd et easy.sfs

Cette section est destinée aux personnes à l'esprit technique. Si vous voulez fouiller dans ces fichiers, c'est assez facile à faire.

Avec EasyOS, il suffit de cliquer sur ces fichiers pour qu'ils s'ouvrent. Le fichier initrd peut être ouvert, vous pouvez modifier tout ce qu'il contient, puis cliquer à nouveau sur le fichier initrd pour le mettre à jour et le "fermer". Le fichier easy.sfs peut aussi être ouvert, mais il est RO (en lecture seule).

Très bien, allez sur la partition de travail et cliquez sur initrd, il y a une fenêtre de dialogue demandant si vous voulez ouvrir le fichier, vous répondez par l'affirmative, et une fenêtre de gestionnaire de fichiers apparaît :

img7

img8

img9

... certains des scripts présentés ci-dessus étaient des expérimentations, non utilisées actuellement. Par exemple, startx et xinitrc ont démarré un petit serveur Xorg dans l'initrd, dans le but d'exécuter des applications graphiques avant le switch_root.

Et oui, vous pouvez aussi cliquer sur easy.sfs et voir son contenu, en lecture seule. Si vous faites défiler vers le haut, vous verrez où il se trouve, dans la partition de travail, ou plus précisément à /mnt/${WKG_DEV}/${WKG_DIR}easy.sfs, qui se résout en /mnt/sdb2/easyos/easy.sfs dans l'exemple.

Notez, ces variables WKG_DEV et WKG_DIR sont définies dans le fichier /etc/rc.d/PUPSTATE

Cependant, il y a un hic, car après le premier démarrage, easy.sfs ne sera plus là. Au premier démarrage, l'initrd crée des dossiers sur la partition de travail et easy.sfs est déplacé ailleurs :

img10

... le gestionnaire de fichiers a été configuré pour afficher les fichiers et dossiers cachés, et vous pouvez voir le dossier .session. Mais pas easy.sfs.

Le fichier easy.sfs a été déplacé et renommé en /mnt/sdb2/easyos/sfs/easyos/oe/dunfell/easy_4.5_amd64.sfs

... Quant à savoir pourquoi cela est fait, c'est une toute autre histoire, qui nécessitera sa propre page web. En résumé, c'est une question d'organisation que d'avoir tous les fichiers SFS dans le dossier sfs. -- il facilite grandement le retour en arrière, le retour en avant et l'utilisation des fichiers SFS dans les conteneurs.

Comment Easy fonctionne après le switch_root

Après que le switch_root ait eu lieu, Easy proprement dit est en cours d'exécution. "How Easy works part-2" se concentre sur le fonctionnement et l'utilisation d'Easy après le switch_root :

https://easyos.org/tech/how-easy-works-part-2.html



(c) Copyright Barry Kauler, December 2018,2022, tous droits de reproduction réservés.
Avertissement: Barry Kauler a fourni ces instructions de bonne foi, cependant il dégage sa responsabilité en cas de problème. Cela ne devrait pas arriver, mais si vous tapez quelque chose de manière incorrecte et videz votre disque C:, c'est entièrement de votre responsabilité. 

Tags: tech

Accès à la page d'accueil (désolé, partiellement encore en anglais...)