Systèmes d’exploitation
#Systèmes d’exploitation
Rôles: gestion des ressources, isolation, API de haut niveau (fichiers, processus, réseau).
#Services offerts
- Fichiers (VFS), réseau (sockets), processus/threads, timers.
- Sécurité: permissions, utilisateurs/groupes, sandboxing (cgroups/namespaces).
Espace noyau vs espace utilisateur
Les appels système basculent en mode noyau pour accéder au matériel et aux ressources protégées. Les bibliothèques (libc) offrent souvent un wrapping plus convivial sur ces appels bruts.
#Boot & userland
- Bootloader → noyau → init → services → shell.
#Appels système (exemples)
open/read/write/close
,fork/exec/wait
,socket/connect/accept
.
Exemple minimaliste (C) lecture d’un fichier:
cc
1#include <fcntl.h>2#include <unistd.h>3#include <stdio.h>4 5int main() {6 int fd = open("/etc/hostname", O_RDONLY); // syscall via libc7 if (fd < 0) return 1;8 char buf[128];9 ssize_t n = read(fd, buf, sizeof(buf)-1);10 if (n > 0) { buf[n] = '\0'; printf("%s\n", buf); }11 close(fd);12}
#Quiz
Quelle séquence crée un nouveau processus et remplace son image par un programme ?