L’environnement informatique

Environnement – Session 1

  • Qu’est-ce qu’un ordinateur ?
  • Le système d’exploitation
  • Le terminal
  • Récapitulatif de la session

Qu’est-ce qu’un ordinateur ?

Machines à calculer

Abaque (2700 et 2300 av. J.C.)

Machine d'Anticythère (IIème siècle av. J.C.)

Pascaline (1642)

Machine analytique de Charles Babbage (1834)

Calculatrice mécanique 'Curta' (1948 - 1954)

Qu’est-ce qu’un ordinateur ?

Définition moderne

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

  1. Récupérer l’instruction
  2. Incrémenter le Program Counter (PC)
  3. Décoder l’instruction
  4. Récupérer les opérandes (A & B)
  5. Phase d’exécution
  6. Phase de stockage
  7. 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

  1. Récupérer l’instruction
  2. Incrémenter le Program Counter (PC)
  3. Décoder l’instruction
  4. Récupérer les opérandes (A & B)
  5. Phase d’exécution
  6. Phase de stockage
  7. 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.,

  • Windowscmd.exe (Batch), PowerShell
  • Linux – Gnome Terminal (Bash),
  • MacOS – Terminal.app (Zsh)

Le terminal

Écrire une commande

Le format standard d’une commande

<prompt> <command> <param_1> <param_2> <param_3> ... <param_N>
  • <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