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
What is a computer?
Computer architecture
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
What is a computer?
The von Neumann architecture (1945)
What is a computer?
Running a program on the von Neumann architecture
Somme A + B
Récupérer l’instruction
Incrément du 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
What is a computer?
The Harvard architecture
What is a computer?
Running a program on the Harvard architecture
Somme A + B
Récupérer l’instruction
Incrément du 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
What is a computer?
Architectures comparison
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
What is a computer?
Can we get the best of both worlds?
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
What is a computer?
Hardware components in a “modern” computer
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)
What is a computer?
Hardware components in a “modern” computer
Carte mère
Socket CPU
Chipset
Emplacements RAM (emplacements DIMM)
Connecteurs de stockage
Emplacements d’extension
What is a computer?
Hardware components in a “modern” computer
Beaucoup plus de périphériques d’entrée/sortie
Operating systems
What is an 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
Operating systems
A bit of history
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
Operating systems
A bit of history
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
Operating systems
Components & features
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
Operating systems
How to interact with operating systems?
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
Graphical shells
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
Operating systems
Other OS components and features
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)
The terminal
Interacting with the OS using a 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
The terminal
A small example
$ – 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
Recap of the session
Main elements to remember
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
Recap of the session
What’s next?
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