Un ordinateur est un dispositif électronique qui peut être programmé pour exécuter automatiquement des séquences d’opérations arithmétiques ou logiques (calcul)
Le principe de l’ordinateur moderne a été défini par Alan Turing en 1936
Machine de Turing universelle :
Lire et écrire des symboles sur une bande infinie selon un ensemble de règles définies par sa fonction de transition
Elle déplace sa tête de lecture/écriture à gauche ou à droite et change d’état en fonction du symbole et de l’état courant
Une machine de Turing physique
Une machine de Turing en LEGO (ENS Lyon)
Une machine de Turing dans Minecraft
Qu’est-ce qu’un ordinateur ?
Architecture matérielle
Les machines de Turing décrivent une machine abstraite
Comment passer de ce modèle idéalisé à un ordinateur réel ?
Description des systèmes ou architectures informatiques
L’architecture von Neumann (ou architecture Princeton)
L’architecture Harvard
L’architecture Harvard modifiée
Qu’est-ce qu’un ordinateur ?
Architecture von Neumann (1945)
Qu’est-ce qu’un ordinateur ?
Exécuter un programme sur l’architecture von Neumann
Somme A + B
Récupérer l’instruction
Incrémenter le Program Counter (PC)
Décoder l’instruction
Récupérer les opérandes (A & B)
Phase d’exécution
Phase de stockage
Mise à jour du PC
Qu’est-ce qu’un ordinateur ?
L’architecture Harvard
Qu’est-ce qu’un ordinateur ?
Exécuter un programme sur l’architecture Harvard
Somme A + B
Récupérer l’instruction
Incrémenter le Program Counter (PC)
Décoder l’instruction
Récupérer les opérandes (A & B)
Phase d’exécution
Phase de stockage
Mise à jour du PC
Qu’est-ce qu’un ordinateur ?
Comparaison
von Neumann
Un CPU avec à la fois une unité de contrôle (CU) et une unité arithmétique et logique (ALU)
La mémoire stocke à la fois les données et les instructions :
Un programme peut facilement modifier ses instructions (boucles)
Goulot d’étranglement
Problèmes de sécurité
Harvard
CU et ALU séparés
Voies mémoire et instructions séparées :
Traitement des données plus rapide et plus efficace
Coût plus élevé et moins de flexibilité en programmation
Qu’est-ce qu’un ordinateur ?
Le meilleur des deux mondes
Architecture Harvard modifiée
Utilisée dans les ordinateurs modernes et les microcontrôleurs
Caches séparés pour les données et les instructions
Adressage mémoire unifié (mais voies ou caches séparés)
Flexibilité
Optimisation des performances
Qu’est-ce qu’un ordinateur ?
Composants matériels d’un ordinateur “moderne”
Un CPU (généralement avec plusieurs cœurs)
Mémoire vive (RAM)
Périphériques de stockage :
Disques durs (HDD)
Disques à état solide (SSD)
Qu’est-ce qu’un ordinateur ?
Composants matériels d’un ordinateur “moderne”
Carte mère
Socket CPU
Chipset
Emplacements RAM (emplacements DIMM)
Connecteurs de stockage
Emplacements d’extension
Composants matériels d’un ordinateur “moderne”
Beaucoup plus de périphériques d’entrée/sortie
Systèmes d’exploitation
Qu’est ce qu’un Système d’Exploitation (Operating System - OS)
Envoyer des instructions binaires à un ordinateur est possible mais peu pratique
$\rightarrow$ Utiliser un logiciel principal appelé système d’exploitation (OS) pour agir comme intermédiaire entre les utilisateurs et le matériel informatique
Systèmes d’exploitation
Un peu d’histoire
Un autre voyage dans le temps
Premiers ordinateurs (années 1940 – 1950) :
Opérations manuelles, traitement par lots
Ère des mainframes (années 1960) :
Transition des systèmes mono-utilisateur, mono-tâche vers des environnements multi-utilisateurs, multitâches
Unix et premiers mini-ordinateurs (années 1970) :
Portabilité, système de fichiers hiérarchique, sécurité et permissions
Ordinateurs personnels (années 1980) :
Plus simples, plus intuitifs, capables de fonctionner sur du matériel moins puissant
Introduction de l’interface graphique (GUI) par Apple
Systèmes d’exploitation
Un peu d’histoire
L’essor des systèmes d’exploitation modernes
Microsoft Windows :
De 3.0 à 95, étape clé pour établir Microsoft comme système d’exploitation dominant sur bureau
Windows NT/2000/XP et suivants ont apporté stabilité et facilité d’utilisation
GNU/Linux – la révolution open-source :
1991 : première version du noyau Linux
Dans les années 2000, Linux domine le marché des serveurs et plus encore
MacOS :
Noyau basé sur Unix
Lien fort avec le matériel Apple
Systèmes d’exploitation
Composants et fonctionnalités
L’essor des systèmes d’exploitation modernes
La gestion des ressources matérielles est sous la responsabilité du noyau
Les fonctions clés du noyau sont :
Gestion des processus
Gestion de la mémoire
Gestion des périphériques
Gestion du système de fichiers
Communication inter-processus
Sécurité et contrôle d’accès
Systèmes d’exploitation
Comment intéragir avec le Systèmes d’exploitation?
Le shell en ligne de commande (Command-line shells)
Mode historique d’interaction avec le système d’exploitation
Les shells en ligne de commande demandent à l’utilisateur de saisir des commandes textuelles pour effectuer des tâches telles que la gestion des fichiers, le contrôle des processus, etc.
Exemples : sh, bash, zsh, cmd.exe, Powershell
Les shells graphiques
Permettent d’accéder aux fonctions d’un système d’exploitation sans avoir à taper des commandes
Souvent construits au-dessus de ce qu’on appelle un système de fenêtres
Exemples : Gnome Shell, Windows shell, Aqua
Systèmes d’exploitation
Autres composants et fonctionnalités
Le programme Init
Le premier programme à s’exécuter après le chargement du noyau
Daemons et services
Tâches en arrière-plan qui effectuent des fonctions spécifiques (attente de connexions, surveillance de l’ordinateur)
Utilisateurs
Utilisateurs humains – Réguliers ou administrateur/root
Comptes de service – utilisés par le système d’exploitation pour exécuter des tâches spécifiques (e.g., www-data)
Le terminal
Intéragir avec l’OS en utilisant un terminal
Historiquement, le seul moyen d’interagir avec votre système
De nos jours, le terminal est généralement une application pré-installée, e.g.,
<prompt> – Généré par le programme pour fournir un contexte à l’utilisateur (il se termine généralement par l’un des caractères $, %, #, :, > ou _)
<command> – Fournie par l’utilisateur.
Cela peut être :
Des commandes internes ou intégrées
Des commandes externes pour exécuter des exécutables
<param_1> ... <param_N> – Paramètres fournis par l’utilisateur, si nécessaire
Le terminal
Petit exemple
$ – L’invite de commande
ls – La commande interne pour lister les fichiers dans un répertoire
-l – Le paramètre pour présenter les résultats de ls en format liste longue
-a – Le paramètre pour afficher tous les fichiers, y compris ceux commençant par . qui sont cachés par défaut
Récapitulatif de la session
Éléments clés
Un ordinateur est un dispositif électronique qui peut être programmé pour exécuter automatiquement des séquences d’opérations arithmétiques ou logiques (calcul)
Un ordinateur est composé de plusieurs composants matériels tels que le CPU, les modules de RAM, les dispositifs de stockage connectés via une carte mère
Pour utiliser un ordinateur, l’utilisateur a besoin d’un système d’exploitation
Les terminaux sont toujours très présents sur les ordinateurs modernes et constituent un moyen rapide et simple d’interagir avec l’ordinateur
Récapitulatif de la session
À suivre
Activité pratique (~1h15)
Découvrez votre ordinateur
Que contient votre ordinateur ?
Familiarisez-vous avec le terminal
Après la session
Relisez les articles de la session
Vérifiez votre compréhension avec le quiz
Complétez l’activité pratique
Consultez la section “Avant le cours” de la prochaine session