Système d'exploitation Linux

TBD strace et ltrace pour voir les appels système et bibliothèques lors du démarrage d'un exécutable : strace et ltrace

Distribution Linux

Noyau commun, reste pas commun et en user space.

Linux s'inscrit dans la logue histoire des systèmes Unix.

uname -a

Noyau

C'est stricto-sensu Linux. Linus Torvalds a créé le noyau Linux (pour voir comment il fonctionne et utiliser x86. remplace Minics ce qui fait suer Tanenbaum)

Linux protection rings

messages du noyau : sudo dmesg

Systemd

TBD à étoffer

Voir l'arbre des process en route : pstree, pour voir que systemd est de pid 1.

Applications

Systèmes de fichier

ext4, mais parfois btrfs ou zfs. Transparent pour l'utilisateur ils utilisent tous des inodes.

plus le swap (de moins en moins utile, mais ça coûte pas grand chose d'en avoir)

/ec/fstab

Matériel

Applications moniteur système sur Linux/Ubuntu. Mais aussi en ligne de commande :

Utilisateurs et droits

Une propriétés des fichiers et des process.

cat /etc/passwd

L'administrateur est root.

et des groups (groups) (ex groupe des gens qui peuvent utiliser sudo)

https://doc.ubuntu-fr.org/permissions

Droits lire/écrire/exécuter

Hiérarchie des dossiers dans Linux

TBD

utilisateur

Configuration

/etc

devices

dev monte et démonte de façon dynamique les devices (démon udev de systemd le montrer)

https://linuxjourney.com/lesson/dev-directory

Met à disposition :

autre

Boot

https://wiki.archlinux.org/title/Arch_boot_process

Ubntu boot

$efibootmgr -v
BootCurrent: 0006
Timeout: 0 seconds
BootOrder: 0006,0002,0001,0004,0005,0000,0003
Boot0000* UiApp FvVol(45801e53-5502-4463-929a-9bafaf424a72)/FvFile(462caa21-7614-4503-836e-8ab6f4662331)
Boot0001* UEFI Virtual DVD-ROM  VenHw(0d51905b-b77e-452a-a2c0-eca0cc8d514a,000014020000000000)/Sata(1,65535,0)N.....YM....R,Y.
Boot0002* UEFI Ubuntu Linux-0 SSD NXHA6X9YF73M107S1H1G  VenHw(0d51905b-b77e-452a-a2c0-eca0cc8d514a,000014020000000000)/Sata(0,65535,0)N.....YM....R,Y.
Boot0003* UEFI PXEv4 (MAC:001C42D9009F) PciRoot(0x0)/Pci(0x5,0x0)/MAC(001c42d9009f,1)N.....YM....R,Y.
Boot0004* No OS found FvVol(45801e53-5502-4463-929a-9bafaf424a72)/FvFile(343e8cc7-cbc7-4d2f-af94-e783b827053b)
Boot0005* UEFI Shell  FvVol(45801e53-5502-4463-929a-9bafaf424a72)/FvFile(7c04a583-9e3e-4f1c-ad65-e05268d0b4d1)
Boot0006* ubuntu  HD(1,GPT,bd044e84-32c0-428f-8e3a-f5f464891a18,0x800,0x100000)/File(\EFI\ubuntu\grubaa64.efi)
  1. EFI
  2. grub2
  3. noyau (kernel space) /boot/vmlinuz
    1. cpu inspection
    2. mémoire inspection
    3. devices discovrey
    4. sous-systèmes : réseau, ...
  4. root filesystem mount
  5. systemd (user space) systemctl list-units, journaltcl
  6. login

process

https://linux.goffinet.org/administration/processus-et-demarrage/processus-linux/

utilisation, qui, permission

sudo apt install htop

htop et tree pour voir les process https://unix.stackexchange.com/questions/6301/how-do-i-read-from-proc-pid-mem-under-linux

process layout

kernel layout

appels systèmes

process info

https://linux-kernel-labs.github.io/refs/heads/master/so2/lec3-processes.html

ps -ef pour voir les thread du kernel (entre crochet)

signaux

Signaux et trap Linux

fichiers exécutables

  1. objdump -s /bin/ls | less chercher .text
  2. objdump -D /bin/ls | less chercher .text
  3. ldd /usr/bin/ls pour voir les bibliothèques partagées

ext4

https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout et https://blogs.oracle.com/linux/post/understanding-ext4-disk-layout-part-1 :

  1. sudo tune2fs -l /dev/sda2 (retrouve le blocsize)
  2. sudo dd if=/dev/sda2 bs=4096 count=1 | hexdump -C
  3. retrouve-t-on le bon nombre d'inodes ?