Il est représenté par le fichier compressé /boot/vmlinuz-5.10.0-21-amd64 (5.10.0 est la version du noyau, 21 est l’extra version utilisée par les distributions, amd64 pour une machine 64 bits) qui est décompressé et chargé en mémoire au démarrage. Il utilise le fichier system.map qui contient les points d’entrées des modules mémoires (adresses des programmes).
Pour gérer un périphérique, il y a deux possibilités :
La commande uname -a permet d'avoir les informations sur le système d'exploitation (linux), la distribution linux (debian, ubuntu, ...) , la version du noyau, le type de machine (32 ou 64 bits), ... .
Les modules sont en général les pilotes de périphériques, mais peuvent être aussi des programmes de plus haut niveau comme la gestion des disques SCSI, ou la gestion de la mémoire.
Les fichiers modules sont enregistrés dans le répertoire /lib/modules/5.10.0-21-amd64/ qui est la racine de l'arborescente complète, le sous-répertoire kernel contient tous les modules et drivers du système d’exploitation. L’extension des modules est .ko.gz car les modules sont compressés.
Le fichier modules.dep contient la liste des modules disponibles dans l’arborescence, ce fichier est mis à jour avec la commande /sbin/depmod -a à chaque fois que de nouveau modules ou drivers sont installés dans cette arborescence.
Les informations relatives à un module se font avec la commande /sbin/modinfo, la liste des modules et drivers chargés en mémoire est obtenue avec la commande lsmod. L'installation (ou chargement) d’un module en mémoire se fait en mode root avec la commande insmod suivi du nom du module (insmod ne gère pas les dépendances). La désinstallation (suppression) d’un module en mémoire dans le noyau se fait avec la commande rmmod suivi du nom du module sans l’extension. Pour installer un module en mémoire avec ses dépendances, on préférera la commande modprobe, et avec ’option -r pour désinstaller le module.
En dehors de modfinfo et lsmod, les autres commandes ne peuvent exécutées qu'en mode root (super utilisateur).
Pour installer les modules au démarrage, il existe des fichiers de configuration :
Cette liste de fichiers dépend de la distribution.
L'accès utilisateur (non root) aux informations du noyau se fait en accédant à deux inodes situés dans le système de fichiers, créés à chaque démarrage et mis à jour à chaque changement matériel : /proc et /sys.
Exemples :
L'affichage du contenu de /proc/meminfo donne les détails de l'utilisation de la mémoire RAM.
L'affichage du contenu de /proc/modules donne les informations sur les modules chargés en mémoire.
L'affichage du contenu de /proc/cpiinfo donne les informations sur le processeur, en détaillant chaque coeur.
Ils peuvent être intégrés au noyau, mais cela nécessite de compiler le noyau, que ce module ne soit distribué sous licence propriétaire
Ils peuvent être des modules indépendants qui nécessite une compilation séparée, et qui permettent un chargement en fonction du matériel, ce qui est plus souple. Cela permet également un chargement dynamique lors de la détection du matériel.
La détection du matériel est réalisé par un processus de détection nommé udev. Le choix du driver adapté au matériel est configuré dans des fichiers de règles situés dans le répertoire : /etc/udev/rules.d. Les règles sont appliquées dans l’ordre lexicographique des noms des fichiers de règles.
La commande /sbin/hwinfo permet d'obtenir des informations sur les cartes périphériques ainsi que les drivers utilisés.
D’après le Standard d’organisation du système de fichiers (FHS Filesystem Hierarchy Standard), la racine du système de fichiers linux comprend les répertoires suivants :
Les autres répertoires comme /root qui correspond au répertoire de travail du super-utilisateur root, ou /home qui contient les répertoires de travail des utilisateurs ne sont pas obligatoire pais très souvent présents.
Le répertoire /usr/lib contient les librairies des commandes du répertoire /usr/bin et /usr/sbin.
Le fichier /etc/ld.so.conf contient la liste des répertoires qui contiennent des librairies partagées. Il est mis à jour par la commande ldconfig en mode root. La commande ldd permet de connaître les librairies partagées nécessaire au bon fonctionnement d'un programme ou d'une commande.
Le répertoire /var contient les sous-répertoires :
et le fichier messages qui contient toutes les informations d’exécution des processus qui utilisent ce fichier.
Le répertoire /dev contient les inodes qui sont associés aux pilotes des périphériques. Ils sont caractérisés par deux nombres :
Exemple avec les pilotes du disque dur :
Elle composée du MBR (Master Boot record) contient le MBC (Master Boot Code) qui exécute le programme d’amorçage d’une des partitions primaires et la table des partitions (4 partitions primaires max imposées par le BIOS pour Basic Input/Output System), puis des partitions :
Le clavier n'envoie pas le code du caractère mais un code qui correspond à la position de la touche sur le clavier, le code du caractère est obtenu par une table de correspondance. Ce qui permet d'utiliser des claviers différents comme les claviers : AZERTY, QWERTY.
La configuration du clavier peut être obtenue avec la commande localectl ou bien en affichant le contenu du fichier /etc/default/keyboard.
La liste de tous les utilisateurs, incluant les applications du système, est enregistrée dans le fichier /etc/passwd. Les mots de passe cryptés sont enregistrés dans le fichier /etc/shadow qui n'est accessible qu'en mode root.
L’interface graphique des systèmes linux est Xfree, Xorg, Wayland. Le client X est sur la machine distante et le serveur X est sur l’ordinateur local qui sert de terminal graphique.
La communication entre le client et le serveur utilise des sockets qui peuvent être unix ou TCP/IP. Pour des questions de sécurité, ce sont les sockets unix qui sont utilisés, car en mode TCP/IP, il est possible de se connecter à distance en mode graphique sur un ordinateur avec la commande :
X :display -query machinedistante
Si les sockets TCP/IP ne sont pas disponibles, ce qui est pratiquement toujours le cas, il est possible d'exécuter les applications graphiques sur un ordinateur distant en utilisant ssh avec l'option -X :
ssh -X login@machinedistante
Dans ce cas on travaille sur l'ordinateur distant et non sur l'ordinateur local.
Le driver de la carte réseau est dépendant de la carte. La plupart des cartes réseaux sont supportées par linux.
Les identifiant de la carte réseaux étaient eth0, eth1, ... pour les interfaces réseaux par câble (ethernet) et wlan0, ... pour les interfaces réseaux wifi. Aujourd'hui, on trouve plutôt enp0s3, enp44s3, ... pour les interfaces réseaux ethernet et wlp43s3, ... pour les interfaces wifi. Cette nouvelle notation respecte une syntaxe précise :
Les informations sur les différentes interfaces réseaux s'obtenaient avec /sbin/ifconfig, maintenant il faut installer le paquetage net-tools pour utiliser cette commande, sinon il faut utiliser ip address, pour obtenir le type d'information.
La configuration se fait en mode root, en mode utilisateur, ces commandes permettent uniquement d'obtenir les informations sur la configuration réseau.
Le bus PCI est un bus de communication qui relie le processeur avec les cartes périphériques comme la carte graphique, les cartes réseaux, la carte son, ...
Le débit disponible est de 133Mo/s, 266Mo/s ou encore de 533Mo/s.
La connexion des cartes sur le bus PCI est identifié par un numéro de bus, un numéro de slot et un numéro de fonction sous la forme :
bus:slot.fontion.
Extrait des informations obtenues sur le bus PCI avec la commande lspci -n
00:00.0 0600: 8086:1237 (rev 02) 00:01.1 0101: 8086:7111 (rev 01) 00:03.0 0200: 8086:100e (rev 02) 00:05.0 0401: 8086:2415 (rev 01) 00:07.0 0680: 8086:7113 (rev 08) 00:0d.0 0106: 8086:2829 (rev 02)
Toutes les cartes sont sur le bus 0, chaque carte occupe un slot différent. Les identifiants (exprimés en hexadécimal) qui suivent sont : l'identifiant du vendeur de la carte suivi de l'identifiant du produit de la carte, la valeur 8086 correspond à Intel. En plus de la description de la carte, ces identifiants sont très utiles pour trouver le driver de la carte périphérique.
Le branchement d’un périphérique USB est détecté automatiquement. La liste des périphériques reconnus par linux est sur www.linux-usb.org. Les interfaces connectées sur le bus USB sont identifiées avec un numéro de bus et un numéro de périphérique.
Extrait des informations obtenues avec la commande lsusb
Bus 002 Device 001: ID 1d6b:0003 Bus 001 Device 003: ID 0c45:671b Bus 001 Device 001: ID 1d6b:0002
Comme pour les périphériques PCI, les périphériques sont identifiés avec un identifiant de vendeur et un identifiant de produit. Cet identifiant peut aider à trouver le driver du périphérique.
Pour ceux qui veulent essayer ou utiliser linux sans changer le système d'exploitation déjà installé, il est possible d'utiliser une machine virtuelle avec des logiciels comme qemu ou VirtualBox en sachant que les deux émulateurs ne fonctionnent pas toujours correctement s'ils sont installés sur le même ordinateur, il est préférable de choisir un des deux.
Il faut également savoir que VirtualBox ne peut émuler que les processeurs utilisés sur les PC, alors que qemu peut émuler d'autres processeurs.
Notez que je décline toutes responsabilités quant aux conséquences que pourraient avoir l'application des méthodes et conseils suivants. Ceux-ci pourraient être erronés ou obsolètes.
Il faut, bien évidement, installer VirtualBox en téléchargeant l'installateur pour le système d'exploitation installé sur la machine.
Pour une utilisation complète de la machine virtuelle, il est conseillé de prévoir le pack d'extension (extension pack) ainsi que les Guest Additions.
Après avoir installé VirtualBox, on va maintenant installer linux comme VM dans VirtualBox. Avant de commencer, il faut savoir que l'ordinateur sur lequel fonctionne VirtualBox est l'ordinateur Hôte et la machine virtuelle qui est exécutée à partir de VirtualBox est l'ordinateur invité.
Pour installer linux, il faut prévoir 5Go pour le fichier image iso de linux et au moins 10Go pour le fichier qui contiendra linux sur le disque dur de l'ordinateur Hôte. Il est également souhaitable d'avoir un très bon débit pour l'accès à internet.
Ensuite, on peut commencer l'installation de linux dans VirtualBox :
Pour configurer la machine virtuelle, elle doit être arrêtée.
Pour faire un instantané, on choisit dans menu->Machine>outils>instantanés, des nouveaux boutons apparaissent, choisir prendre, puis renseigner la boîte de dialogue, puis cliquer sur OK.
Avant d'installer linux sur l'ordinateur seul ou en dual-boot avec le système existant, il faut savoir si tous les périphériques sont supportés par linux, c'est le point faible de linux.
On va donc commencer par utiliser une version live-USB, c'est à dire une version installée sur clé USB avec laquelle on va démarrer l'ordinateur.
Pour créer une clé USB live, il suffit de télécharger l'image ISO en version USB, puis de copier cette image sur la clé, mais ne pas copier le fichier ISO sur la clé. Les outils de copie dépendent du système d'exploitation de la machine sur laquelle on va effectuer la copie. On peut créer une clé live USB ubuntu en utilisant le logiciel Rufus pour windows
Pour démarrer l'ordinateur à partir de la clé USB, il faut accéder au setup du BIOS au démarrage, puis modifier l'ordre de démarrage de l'ordinateur en choisissant la clé USB. Cette configuration dépend de l'ordinateur, ce qui fait qu'il faut se référer à la documentation de l'ordinateur pour modifier l'ordre de démarrage de l'ordinateur.
Après démarrage, il faut vérifier quels sont les périphériques qui ne sont pas détectés.
Après avoir fait la liste des périphériques non détectés. Il faut effectuer une recherche sur internet afin d'essayer de trouver les drivers à utiliser. On peut affiner la recherche an ajoutant l'identifiant vendeur et produit. Lorsqu'on trouve le driver à installer, il est possible de vérifier si le driver gère ce périphérique avec la commande modinfo. Pour certains drivers, la commande modinfo donne la liste des identifiants supportés par le driver.
Extrait de la commande lspci -nv pour la carte réseau
00:03.0 Ethernet controller [0200]: Intel Corporation 82540EM Gigabit Ethernet Controller [8086:100e] (rev 02)
Extrait de la commande /sbin/modinfo e1000
alias: pci:v00008086d0000100Esv*sd*bc*sc*i*
On remarque que la carte ethernet a l'identifiant de vendeur 8086 et de produit 100e. Le driver e1000 fournit la ligne alias qui précise que le driver supporte la carte réseau de vendeur 8086 et produit 100E. La carte réseau fonctionne donc avec le driver e1000.
Après avoir trouvé tous les drivers des périphériques, on peut installer linux sur l'ordinateur soit seul, soit en dual-boot avec le système existant.
L'installation de linux sur un ordinateur déjà pourvu d'un système d'exploitation est réservé aux utilisateurs expérimentés.
De plus, avant de faire l'installation, il faut effectuer une sauvegarde complète de l'ordinateur, en incluant une sauvegarde du système, afin de pouvoir restaurer le système d'origine en cas de problème.
Après avoir tout sauvegardé, il faut utiliser la procédure proposée par la distribution choisie comme par exemple avec l'installation d'ubuntu ou bien avec cette documentation pour l'installation en dual-boot qu'il faut lire entièrement.
Que ce soit sur la VM, ou sur l'ordinateur, linux permet de personnaliser l'environnement et d'ajouter des fonctionnalités ainsi que de nombreux logiciels sous la forme de paquetage.
Linux offre deux modes d'accès à l'administrateur :
Attention, en mode root, tout manipulation est irréversible, il est très vivement conseillé de bien lire la documentation avant d'exécuter une commande en root.
Ce qui suit concerne les distributions qui utilisent le système apt que l'on trouve dans les distributions debian et dérivées comme ubuntu. Pour les autres distributions, il faut chercher la documentation sur internet.
Après installation, il faut déjà vérifier les sources des paquetages : dvd, internet. Du fait que la clé usb d'installation ou l'image iso ne sera plus présente, il est conseillé de supprimer la source dvd des sources de paquetages pour ne conserver que les sources internet si cela n'est pas déjà fait. Ceci pourrait se produire, s'il manque les drivers des cartes réseaux lors de l'installation.
Pour connaître la liste des sources nommés dépôts, il faut consulter le fichier /etc/apt/sources.list. Les lignes qui contiennent une référence à un cdrom doivent être commentées. Chaque ligne non commentée contient l'accès à un dépôt. La syntaxe de la ligne dépend de la distribution. Dans les deux cas les derniers termes permettent de préciser les catégories de paquetages auxquels on accède. Il faut se référer à la documentation de la distribution pour avoir plus d'informations et de détails.
L'installation des paquetages peut se faire avec une application graphique comme synaptic qui n'est pas toujours installée par défaut.
On peut également installer les paquetages en mode root en ligne de commande avec la commande apt, en utilisant apt update puis apt install nom_du_paquetage.
Exemple d'installation du logiciel synaptic :
apt update
apt install synaptic
Ensuite il est préférable d'utiliser le logiciel synaptic pour installer tout nouveau paquetage.
L'ensemble de la syntaxe est disponible sur le site computerhope.
Lors de l'installation, les principaux logiciels de navigation internet, mail, bureautique sont installés.