Cours:InstallationLinux : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
(Créer un service)
(QT Cross compilation)
 
(16 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 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

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

ArchiKernelUserSpace.png


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

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é

ComparatisonVirtualisationContainer.jpg

  • 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

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

QT Cross compilation