Cours:InstallationLinux : Différence entre versions
(→Créer un service) |
(→QT Cross compilation) |
||
(17 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 4 : | Ligne 4 : | ||
=Notions génériques= | =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 87 : | Ligne 99 : | ||
=réseau= | =réseau= | ||
*https://wiki.archlinux.org/title/systemd-networkd | *https://wiki.archlinux.org/title/systemd-networkd | ||
− | *https://wiki.archlinux.org/title/systemd-resolved | + | *au besoin : https://wiki.archlinux.org/title/systemd-resolved |
=mise à jour= | =mise à jour= | ||
Ligne 106 : | Ligne 118 : | ||
+ | |||
+ | =natif/container/virtualisé= | ||
+ | |||
+ | [[Image:ComparatisonVirtualisationContainer.jpg|500px]] | ||
+ | |||
+ | *architecture | ||
+ | *performance (matériel "passthrough") | ||
+ | *isolation | ||
=Gestion des services= | =Gestion des services= | ||
Ligne 129 : | Ligne 149 : | ||
On considère le script bash suivant : | On considère le script bash suivant : | ||
nano /usr/local/bin/monScript | nano /usr/local/bin/monScript | ||
+ | chmod +x /usr/local/bin/monScript | ||
<source lang=bash> | <source lang=bash> | ||
#!/bin/bash | #!/bin/bash | ||
Ligne 141 : | Ligne 162 : | ||
On créé le fichier pour gérer le service : | On créé le fichier pour gérer le service : | ||
nano /etc/systemd/system/exemple.service | nano /etc/systemd/system/exemple.service | ||
− | |||
<source lang=bash> | <source lang=bash> | ||
[Unit] | [Unit] | ||
Ligne 204 : | Ligne 224 : | ||
Continuer avec [[Cours:BashScript]] | Continuer avec [[Cours:BashScript]] | ||
+ | |||
+ | =QT Cross compilation= | ||
+ | *https://wiki.qt.io/Cross-Compile_Qt_6_for_Raspberry_Pi |
Version actuelle datée du 22 novembre 2024 à 11:16
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)
Installation de logiciels
- ntp
- dnsmasq : dhcp/dns
- unifi
- homeassistant
- mosquitto
- ssh server
- ftp server
- montage nfs
- zigbee2mqtt
natif/container/virtualisé
- architecture
- performance (matériel "passthrough")
- isolation
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