Cours:InstallationLinux : Différence entre versions
| (35 révisions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 3 : | Ligne 3 : | ||
https://fr.wikipedia.org/wiki/Noyau_de_syst%C3%A8me_d%27exploitation | https://fr.wikipedia.org/wiki/Noyau_de_syst%C3%A8me_d%27exploitation | ||
| − | == | + | =Notions génériques= |
| − | + | ==processeur== | |
| − | * | + | *cpu/apu/tpu/gpu |
| − | * | + | *critères de choix |
| − | + | *influence du processus de gravure ( noeud de gravure, machine de lithographie) | |
| − | * | + | *faille de sécurité et microcode (ex agesa ) |
| − | * | + | *ipc |
| − | * | + | *nombre de coeurs |
| − | * | + | *mémoire dans le processeur (lunar lake) |
| − | * | + | *chiplet design |
| − | * | + | *chipset |
| − | * | + | *jeu d'instructions |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
==choix d'une distribution== | ==choix d'une distribution== | ||
| Ligne 64 : | Ligne 58 : | ||
*uefi | *uefi | ||
*U-Boot | *U-Boot | ||
| − | *grub | + | *grub/systemd-boot |
| − | *systemd- | + | *systemd |
| + | |||
| + | ==Noyau (kernel)== | ||
| + | |||
| + | *gère les ressources de l'ordinateur | ||
| + | *gestion des processus | ||
| + | *communication entre les processus | ||
| + | *gestion de la mémoire | ||
| + | *diverses fonctionnalités | ||
| + | **système de fichiers | ||
| + | **ordonnanceur | ||
| + | **réseau | ||
| + | *abstraction matérielle/logicielle | ||
| + | *différents types de kernel | ||
| + | **Noyaux monolithiques non modulaires | ||
| + | **Noyaux monolithiques modulaires | ||
| + | **Systèmes à micro-noyaux | ||
| + | |||
| + | [[Image:ArchiKernelUserSpace.png|300px]] | ||
| + | |||
| + | |||
==permissions UNIX== | ==permissions UNIX== | ||
| Ligne 80 : | Ligne 94 : | ||
*montage des partitions | *montage des partitions | ||
*UUID | *UUID | ||
| + | |||
=Installation distribution= | =Installation distribution= | ||
==Partitionnement== | ==Partitionnement== | ||
| + | =réseau= | ||
| + | *https://wiki.archlinux.org/title/systemd-networkd | ||
| + | *au besoin : https://wiki.archlinux.org/title/systemd-resolved | ||
| + | |||
| + | =mise à jour= | ||
| + | *apt update | ||
| + | *apt dist-upgrade | ||
| + | *aptitude (apt install aptitude) | ||
| + | |||
| + | =natif/container/virtualisé= | ||
| + | |||
| + | [[Image:ComparatisonVirtualisationContainer.jpg|500px]] | ||
| + | |||
| + | *architecture | ||
| + | *performance (matériel "passthrough") | ||
| + | *isolation | ||
| + | |||
=Installation de logiciels= | =Installation de logiciels= | ||
| Ligne 96 : | Ligne 128 : | ||
| + | =Gestion des services= | ||
| + | |||
| + | *https://doc.ubuntu-fr.org/creer_un_service_avec_systemd | ||
| + | *https://wiki.archlinux.org/title/systemd | ||
| + | |||
| + | ==utilisation de systemd== | ||
| + | {| class="wikitable" | ||
| + | |- | ||
| + | ! !! commande !! rôle | ||
| + | |- | ||
| + | | analyse démarrage || || | ||
| + | |- | ||
| + | | || systemd-analyze blame || liste des services démarrés classés par temps de démarrage | ||
| + | |- | ||
| + | | || systemd-analyze critical-chain || "chaîne" des services limitant le temps de démarrage | ||
| + | |} | ||
| + | |||
| + | |||
| + | ==Créer un service== | ||
| + | |||
| + | On considère le script bash suivant : | ||
| + | nano /usr/local/bin/monScript | ||
| + | chmod +x /usr/local/bin/monScript | ||
| + | <source lang=bash> | ||
| + | #!/bin/bash | ||
| + | |||
| + | while true | ||
| + | do | ||
| + | echo "+" | ||
| + | sleep 1 | ||
| + | done | ||
| + | </source> | ||
| + | |||
| + | On créé le fichier pour gérer le service : | ||
| + | nano /etc/systemd/system/exemple.service | ||
| + | <source lang=bash> | ||
| + | [Unit] | ||
| + | Description=Exemple | ||
| + | After=network-online.target | ||
| + | |||
| + | [Service] | ||
| + | Type=simple | ||
| + | |||
| + | User=root | ||
| + | Group=root | ||
| + | |||
| + | ExecStart=/usr/local/bin/monScript | ||
| + | |||
| + | Restart=on-failure | ||
| + | |||
| + | # Configures the time to wait before service is stopped forcefully. | ||
| + | TimeoutStopSec=300 | ||
| + | |||
| + | [Install] | ||
| + | WantedBy=multi-user.target | ||
| + | </source> | ||
| + | |||
| + | Il faut recharger la liste des services : | ||
| + | systemctl daemon-reload | ||
| + | |||
| + | Puis on peut démarrer/arrêter le service | ||
| + | systemctl start/stop/restart/status exemple.service | ||
| + | |||
| + | Pour que le service soit lancé/désactivé automatiquement à chaque démarrage de la machine : | ||
| + | systemctl enable/disable exemple.service | ||
| + | |||
| + | ==tâche répétitive== | ||
| + | |||
| + | Il existe des timers systemd | ||
| + | *https://wiki.archlinux.org/title/systemd/Timers | ||
| + | *https://wiki.gentoo.org/wiki/Systemd#Timer_services | ||
| + | *https://documentation.suse.com/smart/systems-management/html/systemd-working-with-timers/index.html | ||
| − | = | + | ex : |
| + | /usr/local/bin/monScript | ||
| + | <source lang=bash> | ||
| + | #!/bin/bash | ||
| + | |||
| + | echo "+" | ||
| + | </source> | ||
| + | |||
| + | /etc/systemd/system/exemple.timer | ||
| + | <source lang=bash> | ||
| + | [Unit] | ||
| + | Description=Exemple | ||
| + | |||
| + | [Timer] | ||
| + | # Define a calendar event (see `man systemd.time`) | ||
| + | OnCalendar=*-*-* *:*:0 | ||
| + | Persistent=false | ||
| + | |||
| + | [Install] | ||
| + | WantedBy=timers.target | ||
| + | </source> | ||
| + | |||
| + | |||
| + | Continuer avec [[Cours:BashScript]] | ||
| + | |||
| + | =QT Cross compilation= | ||
| + | *https://wiki.qt.io/Cross-Compile_Qt_6_for_Raspberry_Pi | ||
Version actuelle datée du 19 septembre 2025 à 09:27
Sommaire
organisation d'un système d'exploitation Linux
https://fr.wikipedia.org/wiki/Noyau_de_syst%C3%A8me_d%27exploitation
Notions génériques
processeur
- cpu/apu/tpu/gpu
- critères de choix
- influence du processus de gravure ( noeud de gravure, machine de lithographie)
- faille de sécurité et microcode (ex agesa )
- ipc
- nombre de coeurs
- mémoire dans le processeur (lunar lake)
- chiplet design
- chipset
- jeu d'instructions
choix d'une distribution
- rolling release
- lts
- architectures
- compilation à l'installation
- ancienneté des logiciels
- taille du catalogue d'applications
- distributions pour l'embarqué (Yocto Buildroot)
support de stockage
- disque dur
- ssd
- sd card
- eMMC
- sata (ahci)
- pcie (nvme)
- usb
système de fichiers
- journalisé ou non
- réseau
- Copy-On-Write
- tmpfs
lvm/raid
- lvm
- Volumes physiques
- Groupes de volumes
- Volumes logique
- raid
- logiciel/matériel
- type de raid
démarrage
- bios
- uefi
- U-Boot
- grub/systemd-boot
- systemd
Noyau (kernel)
- gère les ressources de l'ordinateur
- gestion des processus
- communication entre les processus
- gestion de la mémoire
- diverses fonctionnalités
- système de fichiers
- ordonnanceur
- réseau
- abstraction matérielle/logicielle
- différents types de kernel
- Noyaux monolithiques non modulaires
- Noyaux monolithiques modulaires
- Systèmes à micro-noyaux
permissions UNIX
- uid
- gid
- représentation des droits
- ACLs
- sudo / su
Partitionnement du/des disques
- principe
- intérêt/inconvénient
- mbr/gpt
- montage des partitions
- UUID
Installation distribution
Partitionnement
réseau
- https://wiki.archlinux.org/title/systemd-networkd
- au besoin : https://wiki.archlinux.org/title/systemd-resolved
mise à jour
- apt update
- apt dist-upgrade
- aptitude (apt install aptitude)
natif/container/virtualisé
- architecture
- performance (matériel "passthrough")
- isolation
Installation de logiciels
- ntp
- dnsmasq : dhcp/dns
- unifi
- homeassistant
- mosquitto
- ssh server
- ftp server
- montage nfs
- zigbee2mqtt
Gestion des services
utilisation de systemd
| commande | rôle | |
|---|---|---|
| analyse démarrage | ||
| systemd-analyze blame | liste des services démarrés classés par temps de démarrage | |
| systemd-analyze critical-chain | "chaîne" des services limitant le temps de démarrage |
Créer un service
On considère le script bash suivant :
nano /usr/local/bin/monScript chmod +x /usr/local/bin/monScript
#!/bin/bash
while true
do
echo "+"
sleep 1
done
On créé le fichier pour gérer le service :
nano /etc/systemd/system/exemple.service
[Unit]
Description=Exemple
After=network-online.target
[Service]
Type=simple
User=root
Group=root
ExecStart=/usr/local/bin/monScript
Restart=on-failure
# Configures the time to wait before service is stopped forcefully.
TimeoutStopSec=300
[Install]
WantedBy=multi-user.target
Il faut recharger la liste des services :
systemctl daemon-reload
Puis on peut démarrer/arrêter le service
systemctl start/stop/restart/status exemple.service
Pour que le service soit lancé/désactivé automatiquement à chaque démarrage de la machine :
systemctl enable/disable exemple.service
tâche répétitive
Il existe des timers systemd
- https://wiki.archlinux.org/title/systemd/Timers
- https://wiki.gentoo.org/wiki/Systemd#Timer_services
- https://documentation.suse.com/smart/systems-management/html/systemd-working-with-timers/index.html
ex :
/usr/local/bin/monScript
#!/bin/bash
echo "+"
/etc/systemd/system/exemple.timer
[Unit]
Description=Exemple
[Timer]
# Define a calendar event (see `man systemd.time`)
OnCalendar=*-*-* *:*:0
Persistent=false
[Install]
WantedBy=timers.target
Continuer avec Cours:BashScript