Système de transport
Routes, véhicules, feux de circulation et conducteurs collaborent pour déplacer des personnes d’un point à un autre.
Chaque fois que vous visitez un site web, une chaîne invisible se met en marche : votre navigateur envoie une requête à un serveur, ce serveur exécute du code, interroge une base de données et renvoie une page. Au cœur de cette mécanique se trouve un système d’exploitation — le logiciel qui orchestre tout le matériel et permet aux applications de fonctionner.
Ce premier bloc pose les bases : qu’est-ce qu’un système d’exploitation, comment un ordinateur est organisé, et pourquoi Linux est l’environnement de référence pour le développement web.
Avant de parler de système d’exploitation, clarifions la notion de système. Un système est un ensemble de composants qui interagissent pour accomplir un objectif commun.
Système de transport
Routes, véhicules, feux de circulation et conducteurs collaborent pour déplacer des personnes d’un point à un autre.
Système informatique
Matériel, logiciels et utilisateurs collaborent pour traiter, stocker et communiquer de l’information.
Un système informatique peut être décomposé en trois couches qui communiquent les unes avec les autres :
| Couche | Rôle | Exemples |
|---|---|---|
| Matériel (hardware) | Exécuter physiquement les opérations | Processeur, mémoire, disque, carte réseau |
| Système d’exploitation | Gérer le matériel et offrir des services aux applications | Linux, Windows, macOS, Android |
| Applications | Répondre aux besoins de l’utilisateur | Navigateur, éditeur de code, serveur web |
Le système d’exploitation (SE) est le logiciel fondamental qui démarre avec l’ordinateur et reste actif en permanence. Il joue deux rôles principaux.
Le SE répartit les ressources matérielles entre les programmes qui en ont besoin :
| Ressource | Ce que le SE gère | Exemple concret |
|---|---|---|
| Processeur (CPU) | Quel programme s’exécute, et pendant combien de temps | Votre navigateur et votre éditeur de code partagent le même processeur |
| Mémoire vive (RAM) | Quel espace mémoire est attribué à chaque programme | Node.js reçoit 512 Mo, le navigateur reçoit 1 Go |
| Stockage (disque) | Comment les fichiers sont organisés et accessibles | Vos fichiers HTML sont rangés dans /home/etudiant/projet/ |
| Périphériques | Comment communiquer avec le clavier, l’écran, le réseau | Les données reçues par la carte réseau sont transmises au serveur web |
Sans système d’exploitation, il faudrait programmer directement le matériel pour chaque tâche. Le SE offre une couche d’abstraction : vous tapez une commande ou cliquez sur un bouton, et le SE traduit cette action en instructions que le matériel comprend.
Le processeur (CPU — Central Processing Unit) est le cerveau de l’ordinateur. Il exécute les instructions des programmes, une à une, à très grande vitesse.
Caractéristiques clés :
En développement web : Quand un serveur reçoit 100 requêtes simultanées, le processeur (avec l’aide du SE) alterne rapidement entre elles pour donner l’impression qu’elles sont traitées en même temps.
La mémoire vive (RAM — Random Access Memory) est l’espace de travail temporaire de l’ordinateur. Elle stocke les données des programmes en cours d’exécution.
Caractéristiques clés :
En développement web : Quand un serveur Express.js traite une requête, les variables, les objets et les données de la base de données en cours de traitement sont en mémoire vive.
Le stockage (disque dur ou SSD) conserve les données de façon permanente, même quand l’ordinateur est éteint.
Caractéristiques clés :
En développement web : Vos fichiers de code source, les fichiers de configuration du serveur et les bases de données sont stockés sur le disque.
Les périphériques sont les dispositifs qui permettent à l’ordinateur de communiquer avec l’extérieur.
Types principaux :
En développement web : La carte réseau est le périphérique le plus important — c’est par elle que transitent toutes les requêtes HTTP entre le client et le serveur.
Il existe plusieurs familles de systèmes d’exploitation, chacune avec ses usages principaux :
| Système | Famille | Usage principal |
|---|---|---|
| Windows 10/11 | NT | Postes de travail, bureautique, jeux |
| macOS | Unix (BSD) | Postes de travail créatifs et développement |
| Linux (Ubuntu, Debian, Fedora…) | Unix | Serveurs web, cloud, développement |
| Android | Linux | Téléphones et tablettes |
| iOS | Unix (BSD) | Téléphones et tablettes Apple |
Ce n’est pas un hasard si ce cours utilise Linux. Dans le monde professionnel du développement web, Linux est omniprésent.
Serveurs web
La très grande majorité des serveurs web dans le monde tournent sous Linux. Quand vous visitez un site, il y a de fortes chances qu’il soit hébergé sur un serveur Linux.
Outils de développement
Git, Node.js, npm, Docker, les bases de données — la plupart des outils du développeur web sont conçus d’abord pour Linux.
Cloud et déploiement
AWS, Google Cloud, Azure, Heroku — les plateformes d’hébergement utilisent massivement Linux. Déployer une application web, c’est souvent configurer un serveur Linux.
Gratuit et ouvert
Linux est un logiciel libre : gratuit, modifiable et transparent. On peut inspecter exactement comment il fonctionne — un avantage pédagogique majeur.
Pour comprendre où Linux se situe dans l’écosystème web, voici une pile (stack) serveur typique :
| Couche | Composant | Rôle |
|---|---|---|
| Système d’exploitation | Linux (ex: Ubuntu) | Gère le matériel et les processus |
| Serveur web | Nginx ou Apache | Reçoit les requêtes HTTP et les distribue |
| Environnement d’exécution | Node.js, Python, PHP | Exécute le code de l’application |
| Base de données | PostgreSQL, MongoDB | Stocke les données de l’application |
Pour les premières semaines du cours, vous travaillerez dans LabEx, un environnement Linux accessible directement depuis votre navigateur. Aucune installation n’est nécessaire.
Ouvrez le terminal LabEx et essayez ces commandes une par une :
# Afficher un messageecho "Bonjour, monde !"
# Qui suis-je ? (nom d'utilisateur)whoami
# Où suis-je ? (répertoire courant)pwd
# Quelle date sommes-nous ?date
# Quel système d'exploitation tourne ici ?uname -a
# Depuis combien de temps le système est-il allumé ?uptimeQuel est le rôle principal d'un système d'exploitation ?
Quelle est la différence fondamentale entre la mémoire vive (RAM) et le stockage (disque) ?
Pourquoi Linux est-il l'environnement de référence pour le développement web ?
Dans la pile serveur web typique, quelle couche se trouve à la base ?
Système d'exploitation
Logiciel fondamental qui gère les ressources matérielles (CPU, RAM, disque, périphériques) et offre une interface aux applications.
Trois couches
Un système informatique s’organise en matériel → système d’exploitation → applications. Chaque couche dépend de celle du dessous.
Linux et le web
Linux domine les serveurs web. L’apprendre, c’est maîtriser l’environnement où vos applications seront déployées.
LabEx
Environnement Linux en ligne pour pratiquer sans installation.