The computer environment

Environment – Session 1

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

What is a computer?

Machines to help people do calculations

Abacus (2700 and 2300 BC)

Antikythera mechanism (2nd century BC)

Pascaline (1642)

Charles Babbage's analytical engine (1834)

Curta mechanical calculator (1948 - 1954)

What is a computer?

Modern definition

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

  1. Récupérer l’instruction
  2. Incrément du 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

What is a computer?

The Harvard architecture

What is a computer?

Running a program on the Harvard architecture

Somme A + B

  1. Récupérer l’instruction
  2. Incrément du 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

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.,

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

The terminal

Writing a command

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

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