Aller au contenu principal

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 ?