Exercices#
Architecture des ordinateurs et systèmes d'exploitation
Mode d’emploi
-
Niveau : ★ échauffement, ★★ classique (niveau bac), ★★★ défi ; les coups de pouce et les corrigés se déplient sous chaque exercice.
-
▶ À taper et tester sur un simulateur en ligne (
peterhigginson.co.uk/lmc/). -
Rappel du Little Man Computer : mémoire de cases
00–99, un accumulateur ACC, instructionsINP OUT LDA STA ADD SUB BRA BRZ BRP HLT DAT. -
Les commandes Linux sont à essayer dans un terminal Linux en ligne, comme JSLinux (
bellard.org/jslinux), utilisé dans l’activité de découverte. -
Usage de l’IA, indiqué sur chaque exercice : aucune ; en appui (déboguer, reformuler, vérifier ; la réponse finale est écrite et comprise par vous) ; l’exercice s’appuie sur une réponse d’IA. Voir la charte d’usage de l’IA.
Sauf mention contraire, les exercices de ligne de commande utilisent l’arborescence de référence suivante, et vous démarrez depuis /home/eleve.
/
|-- home/
| |-- eleve/ « ~ = repertoire de depart »
| |-- Documents/
| | |-- cours_nsi.txt
| | |-- tp_os.txt
| |-- Images/
| | |-- logo.png
| |-- Projets/ « vide au depart »
| |-- notes.txt
|-- etc/
|-- hosts
Architecture matérielle et modèle de von Neumann#
★ Exercice 1 — Chaque chose à sa place #
Associer chaque composant à son rôle.
| (1) unité de commande | (a) fait les calculs (additions, comparaisons…) |
| (2) UAL | (b) range programme et données dans des cases adressées |
| (3) mémoire | (c) lit, décode et ordonne l’exécution des instructions |
| (4) entrées-sorties | (d) font communiquer la machine avec le monde extérieur |
Coup de pouce
Revoir le schéma des quatre unités du modèle de von Neumann dans le cours : laquelle « commande », laquelle « calcule », laquelle « range », laquelle fait le lien avec l’extérieur ?
Corrigé
Remarque
On donne une version simple ; d’autres écritures sont possibles (surtout pour les programmes LMC).
L’unité de commande dirige, l’UAL calcule, la mémoire range, les entrées-sorties communiquent : (1)–(c), \; (2)–(a), \; (3)–(b), \; (4)–(d).
★ Exercice 2 — Vrai ou faux #
• essentiel
Pour chaque affirmation, répondre par vrai ou faux et justifier en une phrase.
-
Le processeur (CPU) contient l’unité de commande et l’UAL.
-
La mémoire vive (RAM) conserve les données même quand l’ordinateur est éteint.
-
Dans le modèle de von Neumann, le programme est rangé dans la mémoire, comme les données.
-
Un registre est plus grand mais plus lent que le disque dur.0
Coup de pouce
Pour b) : que devient la RAM quand on coupe le courant ? Pour d) : classer registre, RAM et disque de la mémoire la plus rapide (et la plus petite) à la plus lente.
Corrigé
a) Vrai : le processeur (CPU) réunit l’unité de commande, l’UAL et les registres. b) Faux : la RAM est volatile, elle s’efface à l’extinction ; c’est le disque qui conserve. c) Vrai : c’est l’idée centrale de von Neumann, programme et données dans la même mémoire. d) Faux : un registre est bien plus petit mais bien plus rapide que le disque.
▷ Erreur fréquente. croire que la RAM garde les données à l’extinction : elle est volatile. Seuls le disque (ou la clé USB, le SSD) conservent les fichiers sans courant.
★ Exercice 3 — Ordres de grandeur #
Recopier chaque grandeur en la reliant à l’ordre de grandeur qui convient : \; quelques nanomètres à quelques dizaines de nanomètres \;/\; des milliards à des dizaines de milliards \;/\; quelques gigahertz.
-
taille d’un transistor gravé aujourd’hui ;
-
nombre de transistors dans un processeur moderne ;
-
fréquence (nombre de cycles par seconde) d’un processeur.0
Coup de pouce
Une grandeur en mètres, une en nombre d’objets, une en cycles par seconde (hertz) : chaque ordre de grandeur proposé n’a qu’une unité possible.
Corrigé
On associe d’abord par l’unité (mètres, nombre d’objets, hertz) : a) quelques nanomètres à quelques dizaines de nanomètres ; \; b) des milliards à des dizaines de milliards ; \; c) quelques gigahertz.
★★ Exercice 4 — La loi de Moore #
L’Intel 4004 (1971) comptait environ 2 300 transistors. La loi de Moore affirme que ce nombre double tous les deux ans.
-
Combien de transistors, environ, la loi prévoit-elle après 10 ans (soit 5 doublements) ?
-
La loi de Moore est-elle une loi de la physique ? Pourquoi finit-elle par ralentir ?
Coup de pouce
a) Doubler 5 fois, c’est multiplier par \(2 \times 2 \times 2 \times 2 \times 2\). b) Comparer la taille d’un transistor actuel à celle d’un atome.
Corrigé
a) 5 doublements multiplient par \(2^5 = 32\) : environ \(2\,300 \times 32 \approx \textbf{73\,600}\) transistors. b) Ce n’est pas une loi de la physique, mais une observation (une tendance) qui a longtemps guidé l’industrie. Elle ralentit car on approche de la taille de l’atome : un transistor de quelques atomes ne peut plus vraiment être réduit (effets physiques parasites, chaleur).
★★ Exercice 5 — RAM ou disque ? #
• essentiel
On enregistre un document puis on éteint brutalement l’ordinateur (coupure de courant).
-
Le travail enregistré est-il perdu ? Où se trouve-t-il ?
-
Le travail non enregistré est-il perdu ? Dans quelle mémoire se trouvait-il ?
-
Expliquer, avec les mots « volatile » et « permanent », ce que fait le bouton « Enregistrer ».
Coup de pouce
Pour chaque mémoire (RAM, disque), se demander ce qu’elle devient quand le courant est coupé.
Corrigé
a) Le travail enregistré n’est pas perdu : il est sur le disque (mémoire permanente). b) Le travail non enregistré est perdu : il était en RAM (mémoire volatile). c) « Enregistrer », c’est recopier les données de la RAM (volatile) vers le disque (permanent).
★ Exercice 6 — Capteur ou actionneur ? #
• essentiel
Pour chaque élément, dire s’il s’agit d’un capteur (entrée : il mesure) ou d’un actionneur (sortie : il agit) : a) un thermomètre ; b) un moteur de volet roulant ; c) un micro ; d) une LED ; e) l’écran tactile (les deux ? préciser) ; f) un haut-parleur.
Puis décrire, pour un arrosage automatique de plante, la boucle capter \(\to\) décider \(\to\) agir en nommant le capteur et l’actionneur.0
Coup de pouce
Pour chaque élément, se demander s’il fait entrer une information dans la machine (il mesure) ou s’il produit un effet dans le monde (il agit). Pour la plante : que faut-il mesurer, et quel appareil faut-il commander ?
Corrigé
a) capteur (mesure la température) ; b) actionneur (agit : ouvre/ferme) ; c) capteur (mesure le son) ; d) actionneur (émet de la lumière) ; e) l’écran tactile est les deux : la dalle tactile est un capteur (mesure le doigt), l’affichage est un actionneur (sortie visuelle) ; f) actionneur (émet du son).
Arrosage automatique : un capteur d’humidité du sol mesure l’humidité (capter) ; le programme la compare à un seuil (décider) ; si le sol est trop sec, il commande la pompe ou l’électrovanne (actionneur) pour arroser (agir).
Le processeur au travail : langage machine (LMC)#
★★ Exercice 7 — Dérouler pas à pas #
• essentiel
On donne le programme LMC suivant.
00 INP
01 STA 08
02 ADD 08
03 ADD 08
04 OUT
05 HLT
08 DAT
-
Dérouler l’exécution pour l’entrée 4, en remplissant un tableau à colonnes
Adresse,Instruction,ACC,case 08. -
Quelle valeur est affichée par
OUT? -
En une phrase : que calcule ce programme à partir du nombre lu ?
Coup de pouce
Une ligne du tableau par instruction exécutée.
ADD 08ajoute à ACC le contenu de la case 08, sans modifier cette case.
Corrigé
a) Déroulé pour l’entrée 4 :
| Adr. | Instr. | ACC | case 08 |
|---|---|---|---|
| 00 | INP | 4 | – |
| 01 | STA 08 | 4 | 4 |
| 02 | ADD 08 | 8 | 4 |
| 03 | ADD 08 | 12 | 4 |
| 04 | OUT | 12 | 4 |
b) La sortie est 12. \; c) Le programme affiche le triple du nombre lu (\(3\times 4 = 12\)), obtenu par deux additions successives.
▷ Erreur fréquente. croire que ADD 08 modifie la case 08 : seul l’accumulateur change ; la case 08 garde la valeur 4 rangée par STA 08.
★★ Exercice 8 — Le plus grand des deux #
On donne ce programme (les cases 11 et 12 sont nommées a et b).
00 INP
01 STA a
02 INP
03 STA b
04 SUB a « ACC <- b - a »
05 BRP 08 « si ACC >= 0, aller en 08 »
06 LDA a
07 BRA 09
08 LDA b
09 OUT
10 HLT
11 a DAT
12 b DAT
-
Dérouler pour les entrées 7 puis 2. Quelle est la sortie ?
-
Dérouler pour les entrées 3 puis 8. Quelle est la sortie ?
-
Que calcule ce programme ? À quoi sert l’instruction
BRP?Coup de pouce
Calculer ACC juste après
SUB a: c’est son signe qui décide si l’on saute en 08 ou non.
Corrigé
a) Entrées 7 puis 2 : a\(=7\), b\(=2\) ; en 04 SUB a donne ACC \(=2-7=-5<0\), donc BRP ne saute pas ; on charge a et on affiche 7. b) Entrées 3 puis 8 : a\(=3\), b\(=8\) ; en 04 ACC \(=8-3=5\geq 0\), donc BRP saute en 08, on charge b et on affiche 8. c) Le programme affiche le plus grand des deux nombres. BRP réalise le test : selon le signe de \(b-a\), on choisit d’afficher \(a\) ou \(b\).
▷ Erreur fréquente. croire que BRP ne saute que si ACC est strictement positif : il saute aussi pour ACC \(= 0\) (« positif ou nul »). Avec deux entrées égales, on affiche donc b.
★★ Exercice 9 — ▶ À vous d’écrire #
Écrire un programme LMC qui lit trois nombres et affiche leur somme. Le tester sur le simulateur avec les entrées 10, 20, 30 (on doit lire 60).
Coup de pouce
Il n’y a qu’un accumulateur : chaque nombre lu doit être rangé dans une case (réservée par DAT) avant d’en lire un autre.
Corrigé
Une solution (les cases 10 et 11 stockent les deux premiers nombres) :
00 INP
01 STA 10
02 INP
03 STA 11
04 INP
05 ADD 10
06 ADD 11
07 OUT
08 HLT
10 DAT
11 DAT
Pour 10, 20, 30 : le troisième nombre (30) est dans ACC, on ajoute les cases 10 et 11 (\(+10\) puis \(+20\)) : sortie \(=60\).
★★★ Exercice 10 — ▶ Le plus petit #
≈ 15 min
En s’inspirant du programme « le plus grand des deux », écrire un programme LMC qui lit deux nombres et affiche le plus petit. Le tester (entrées 7 et 2 \(\to\) 2 ; entrées 3 et 8 \(\to\) 3).
Coup de pouce
Dans « le plus grand des deux », repérer quelle case est chargée quand ACC \(\geqslant 0\) et quelle case l’est sinon : que faut-il changer ?
Coup de pouce 2 (début de solution)
Le début ne change pas :
00 INP
01 STA a
02 INP
03 STA b
04 SUB a (ACC \(\geqslant 0\) signifie \(b \geqslant a\)).
Corrigé
On garde la même structure, mais on échange les deux chargements :
00 INP
01 STA a
02 INP
03 STA b
04 SUB a « ACC <- b - a »
05 BRP 08 « si b >= a, le plus petit est a »
06 LDA b « sinon b < a : le plus petit est b »
07 BRA 09
08 LDA a
09 OUT
10 HLT
11 a DAT
12 b DAT
Entrées 7 et 2 : \(b-a=-5<0 \to\) on affiche b\(=2\). Entrées 3 et 8 : \(b-a=5\geq0 \to\) on affiche a\(=3\).
★★★ Exercice 11 — ▶ Une boucle : la somme des entiers #
≈ 20 min
On donne ce programme utilisant des étiquettes (le simulateur les accepte).
INP
STA n
LDA zero
STA somme
LDA n
STA i
boucle LDA i
BRZ fin « si i = 0, on sort »
LDA somme
ADD i
STA somme « somme <- somme + i »
LDA i
SUB un
STA i « i <- i - 1 »
BRA boucle
fin LDA somme
OUT
HLT
zero DAT 0
un DAT 1
n DAT
i DAT
somme DAT
-
Dérouler pour l’entrée 3 en suivant
ietsommeà chaque passage deboucle. Quelle est la sortie ? -
Que calcule ce programme en fonction de l’entrée \(n\) ?
-
Quel rôle jouent
BRZetBRApour réaliser la boucle ?Coup de pouce
Faire un tableau à deux colonnes
ietsomme, avec une ligne à chaque passage par l’étiquetteboucle.Coup de pouce 2 (début de solution)
Au premier passage par
boucle:ivaut 3 etsommevaut 0. Après le corps de la boucle,sommevaut 3 etivaut 2, puisBRArenvoie àboucle.
Corrigé
a) Déroulé pour \(n=3\), à chaque passage sur boucle :
| passage | i (avant) |
somme (après) |
|---|---|---|
| 1 | 3 | 0+3 = 3 |
| 2 | 2 | 3+2 = 5 |
| 3 | 1 | 5+1 = 6 |
| 4 | 0 | (BRZ \(\to\) sortie) |
La sortie est 6. b) Le programme calcule \(1+2+\dots+n\) (la somme des entiers de 1 à \(n\)). c) BRZ teste la condition d’arrêt (sortir quand i\(=0\)) ; BRA retourne sans condition au début de la boucle. Ensemble, ils réalisent la répétition.
Le système d’exploitation#
★ Exercice 12 — À quoi sert l’OS ? #
• essentiel
Pour chacune des situations, indiquer quelle grande fonction du système d’exploitation est en jeu (gérer le processeur / la mémoire / les fichiers / les périphériques / les utilisateurs).
-
deux applications semblent s’exécuter « en même temps » ;
-
on branche une imprimante et elle fonctionne sans rien réinstaller ;
-
un fichier de Léa n’est pas accessible au compte de Tom ;
-
chaque programme dispose de sa part de RAM sans écraser les autres ;
-
on retrouve ses documents rangés en dossiers.0
Coup de pouce
Pour chaque situation, se demander quelle ressource est partagée ou organisée : le temps de calcul, la mémoire vive, le disque, un appareil branché, ou les comptes ?
Corrigé
Pour chaque situation, on repère la ressource partagée ou organisée : a) gérer le processeur ; b) gérer les périphériques ; c) gérer les utilisateurs (droits) ; d) gérer la mémoire ; e) gérer les fichiers.
★ Exercice 13 — Familles de systèmes #
Répondre brièvement.
-
Citer trois grandes familles de systèmes d’exploitation.
-
Sur quel noyau le système Android des smartphones est-il bâti ?
-
« Un logiciel libre est forcément gratuit. » Vrai ou faux ? Expliquer.0
Coup de pouce
Relire la partie du cours sur le système d’exploitation et sur le logiciel libre : le mot « libre » parle-t-il du prix ou de ce qu’on a le droit de faire avec le code ?
Corrigé
a) Windows, macOS, Linux (UNIX). \; b) Android est bâti sur un noyau Linux. \; c) Faux : « libre » désigne la liberté d’étudier, modifier et partager le code ; ce n’est pas synonyme de gratuit (confusion avec l’anglais free).
★★ Exercice 14 — L’abstraction #
Quand une application veut « ouvrir un fichier », elle ne s’adresse pas directement au disque dur : elle passe par le système d’exploitation. En reliant cela au mille-feuille de couches du cours, expliquer en quelques lignes l’intérêt de cette abstraction (penser à ce qui se passerait si chaque application devait connaître le modèle exact du disque).
Coup de pouce
Imaginer qu’on remplace le disque dur par un modèle d’une autre marque : qui faut-il modifier, chaque application ou seulement l’OS ?
Corrigé
Le système d’exploitation offre des actions simples et universelles (« ouvrir un fichier ») et cache le fonctionnement réel du disque. Si chaque application devait connaître le modèle exact du matériel, il faudrait la réécrire pour chaque disque, chaque imprimante… : ingérable. Grâce à cette couche d’abstraction, les applications restent simples et portables : c’est tout l’intérêt du mille-feuille, où chaque couche ne parle qu’à celle juste en dessous.
Ligne de commande Linux#
★ Exercice 15 — Se repérer #
• essentiel
En utilisant l’arborescence de référence :
-
Quelle commande affiche le répertoire courant ?
-
Donner le chemin absolu du fichier
logo.png. -
Vous êtes dans
/home/eleve/Documents. Donner le chemin relatif pour atteindrelogo.png.0Coup de pouce
Un chemin absolu part de la racine
/; un chemin relatif part du répertoire courant, et..fait remonter d’un cran dans l’arbre.
Corrigé
a) pwd. \; b) De la racine jusqu’au fichier : /home/eleve/Images/logo.png. \; c) Depuis Documents, on remonte d’un cran (.., soit /home/eleve) puis on redescend : ../Images/logo.png.
▷ Erreur fréquente. commencer un chemin relatif par / : /Images/logo.png désigne un dossier Images placé à la racine, qui n’existe pas.
★★ Exercice 16 — Naviguer #
Vous démarrez dans /home/eleve. Écrire la commande demandée (chemin relatif sauf mention contraire).
-
se déplacer dans
Documents; -
depuis
Documents, revenir dans/home/elevesans taper le chemin complet ; -
aller directement dans
/etcen chemin absolu ; -
lister le contenu de
Imagessans s’y déplacer.Coup de pouce
Revoir les raccourcis
.et.., et la différence entre un chemin qui commence par/et un chemin qui n’en commence pas.
Corrigé
.. remonte d’un cran ; un chemin qui commence par / part de la racine ; ls accepte le répertoire à lister en argument. a) cd Documents \; b) cd .. \; c) cd /etc \; d) ls Images
★★ Exercice 17 — Créer, copier, déplacer #
Depuis /home/eleve, écrire les commandes pour :
-
créer un répertoire
RendusdansProjets; -
créer un fichier vide
brouillon.txtdansProjets/Rendus; -
afficher le contenu de
Documents/cours_nsi.txt; -
copier
tp_os.txtdeDocumentsversProjets/Rendus, puis renommer la copie entp_final.txt; -
déplacer
notes.txtde/home/eleveversDocuments.Coup de pouce
On reste dans
/home/eleve: chaque commande peut viser un fichier plus bas dans l’arbre avec un chemin relatif commeProjets/Rendus. Revoir le tableau des commandes du cours.
Corrigé
Depuis /home/eleve, chaque commande vise sa cible par un chemin relatif ; renommer, c’est déplacer (mv) vers un nouveau nom.
|mkdir| Projets/Rendus
|touch| Projets/Rendus/brouillon.txt
|cat| Documents/cours_nsi.txt
|cp| Documents/tp_os.txt Projets/Rendus/
|mv| Projets/Rendus/tp_os.txt Projets/Rendus/tp_final.txt
|mv| notes.txt Documents/
★★ Exercice 18 — Corriger les erreurs #
Chaque commande contient une erreur. L’identifier et proposer la correction.
-
cd /home/eleve/Documents/cours_nsi.txt(on veut aller dansDocuments) ; -
rm Images(on veut supprimer le répertoireImageset son contenu) ; -
vous êtes dans
/home/eleve/Imageset tapezcat cours_nsi.txt(le fichier est dansDocuments).Coup de pouce
Pour chaque commande, se demander : le dernier mot désigne-t-il un fichier ou un répertoire ? Et depuis quel répertoire la commande est-elle lancée ?
Corrigé
a) cd attend un répertoire, pas un fichier : cd /home/eleve/Documents. b) Images est un répertoire : rm seul ne supprime que des fichiers et refuse. Il faut l’option -r : rm -r Images. c) Le fichier est dans Documents, pas dans le répertoire courant : cat ../Documents/cours_nsi.txt.
★ Exercice 19 — Reconstituer une séquence #
Remettre ces commandes dans le bon ordre pour : créer un dossier TP, y créer un fichier index.txt, puis afficher son contenu.
A. cat TP/index.txt B. mkdir TP C. touch TP/index.txt
Coup de pouce
Peut-on créer un fichier dans un dossier qui n’existe pas encore ? Peut-on afficher un fichier qui n’existe pas encore ?
Corrigé
Ordre : B \(\to\) C \(\to\) A (créer le dossier, y créer le fichier, puis l’afficher).
Droits et permissions#
★★ Exercice 20 — Lire les droits #
• essentiel
La commande ls -l affiche :
-rwxr-xr-- 1 eleve nsi 240 8 sep 10:02 script.sh
drwxr-x--- 2 eleve nsi 4096 8 sep 10:05 secret
-
Pour
script.sh: s’agit-il d’un fichier ou d’un répertoire ? Quels droits a le propriétaire ? le groupe ? les autres ? -
Un membre du groupe
nsipeut-il exécuterscript.sh? Le modifier ? -
Que signifie le
dau début de la ligne desecret? Les « autres » peuvent-ils entrer dans ce répertoire ?Coup de pouce
Découper la chaîne : un caractère pour le type, puis trois blocs de trois caractères, dans l’ordre propriétaire, groupe, autres.
Corrigé
a) script.sh est un fichier (premier caractère -). Propriétaire : rwx (lecture, écriture, exécution) ; groupe : r-x (lecture, exécution, pas d’écriture) ; autres : r-- (lecture seule). b) Un membre du groupe nsi peut l’exécuter (x présent) mais ne peut pas le modifier (pas de w). c) Le d indique un répertoire. Les « autres » ont --- : ils ne peuvent pas y entrer (pas de droit x).
▷ Erreur fréquente. découper les droits sans mettre de côté le premier caractère : -rwxr-xr-- se lit - (le type), puis rwx, r-x, r--.
★★ Exercice 21 — Modifier les droits #
Écrire la commande chmod correspondante.
-
retirer aux « autres » le droit de lecture sur
cours_nsi.txt; -
ajouter au « groupe » le droit d’écriture sur
cours_nsi.txt; -
rendre
script.shexécutable par son propriétaire ; -
donner à tout le monde le droit de lecture sur
logo.png.Coup de pouce
Une commande
chmodse lit : pour qui (u,g,ooua), ajouter ou retirer (+ou-), quel droit (r,w,x), puis le fichier.
Corrigé
On suit la grammaire chmod [ugoa][+-][rwx] fichier : pour qui, ajouter ou retirer, quel droit. a) chmod o-r cours_nsi.txt \; b) chmod g+w cours_nsi.txt \; c) chmod u+x script.sh \; d) chmod a+r logo.png
★★ Exercice 22 — Les droits en chiffres #
-
Écrire en trois chiffres les droits
rwxr-xr-x,rw-r--r--,rwx------etr--r-----. -
Quels droits (en lettres) donnent
chmod 640,chmod 751etchmod 600? -
Écrire la commande
chmoden chiffres qui donne surscript.shtous les droits au propriétaire, la lecture et l’exécution au groupe, et aucun droit aux autres. -
Pourquoi chaque chiffre est-il compris entre \(0\) et \(7\) ? Combien de réglages différents des droits d’un fichier existe-t-il en tout ?
Coup de pouce
Lire chaque catégorie comme un nombre binaire de 3 bits :
r,w,xsont les bits de poids \(4\), \(2\) et \(1\) (-vaut \(0\)).
Corrigé
a) rwxr-xr-x \(\to\) 755 (\(4+2+1\), \(4+1\), \(4+1\)) ; rw-r--r-- \(\to\) 644 ; rwx------ \(\to\) 700 ; r--r----- \(\to\) 440. b) 640 \(\to\) rw-r----- (\(6 = 4+2\) : lecture et écriture ; \(4\) : lecture ; \(0\) : rien) ; 751 \(\to\) rwxr-x--x ; 600 \(\to\) rw-------. c) Propriétaire \(4+2+1 = 7\), groupe \(4+1 = 5\), autres \(0\) : chmod 750 script.sh.
▷ Erreur fréquente. donner au r la valeur \(1\) et au x la valeur \(4\) : les poids sont \(4\), \(2\), \(1\) dans l’ordre r, w, x. Ainsi r-x vaut \(5\) et rw- vaut \(6\).
d) Une catégorie compte \(3\) droits, chacun présent ou absent : c’est un nombre binaire de \(3\) bits, donc au plus \(\texttt{111}_2 = 4+2+1 = 7\) (et au moins \(0\)). Les \(9\) droits étant chacun présent ou absent, il y a \(2^9 = 512\) réglages (\(8\) chiffres possibles pour chacune des \(3\) catégories : \(8 \times 8 \times 8 = 512\)).
★★ Exercice 23 — Le compte root #
-
Qui est l’utilisateur
rootet que peut-il faire de plus que les autres ? -
Pourquoi est-il déconseillé de travailler en permanence en tant que
root? -
En quoi les droits d’accès participent-ils à la sécurité d’une machine partagée ?
Coup de pouce
Imaginer la même faute de frappe dans une commande
rm -r, tapée par un utilisateur ordinaire puis parroot: quels fichiers peuvent être effacés dans chaque cas ?
Corrigé
a) root est l’administrateur (super-utilisateur) : il a tous les droits sur tous les fichiers et peut modifier les droits et les comptes. b) Une fausse manipulation ou un logiciel malveillant lancé en root peut tout détruire, sans garde-fou ; en compte normal, les droits limitent les dégâts. c) Les droits empêchent un utilisateur de lire ou modifier les fichiers des autres, et restreignent ce qu’un programme peut faire : ils assurent confidentialité et protection sur une machine partagée.
Mini-problème de synthèse#
★★★ Exercice 24 — Du transistor au fichier #
≈ 20 min
Léo, sur son environnement Linux, écrit un petit programme, l’enregistre, puis le rend exécutable.
-
Léo tape le code dans un éditeur : dans quelle mémoire se trouve son texte tant qu’il n’a pas enregistré ? Que risque une coupure de courant ?
-
Il enregistre dans
/home/leo/Projets/jeu.py. Donner la commande qui, depuis/home/leo, affiche le contenu de ce fichier avec un chemin relatif. -
Il rend le fichier exécutable par lui seul. Écrire la commande
chmod. -
Quand il lance son programme Python, celui-ci n’est pas exécuté tel quel par le processeur. Expliquer, avec les mots traduction, langage machine et cycle chercher-décoder-exécuter, ce qui se passe « en dessous ».
Coup de pouce
Chaque question reprend une partie du cours : a) les mémoires, b) les chemins relatifs, c) chmod, d) le cycle du processeur.
Coup de pouce 2 (début de solution)
a) Avant l’enregistrement, le texte n’existe qu’en mémoire vive. b) Le chemin relatif part de /home/leo : il ne commence donc pas par /. d) Python est d’abord traduit ; le processeur répète ensuite son cycle sur des instructions…
Corrigé
a) Tant qu’il n’a pas enregistré, le texte est en RAM (mémoire volatile) : une coupure de courant le perd. b) cat Projets/jeu.py (chemin relatif depuis /home/leo). c) chmod u+x Projets/jeu.py (pour n’autoriser que lui, on peut aussi fixer tous les droits d’un coup en chiffres : chmod 700 Projets/jeu.py, soit rwx------). d) Le processeur ne comprend que le langage machine. Le code Python est donc d’abord traduit par l’interpréteur Python (en simplifiant : il le traduit en un code intermédiaire, qu’il exécute ensuite instruction par instruction) ; tout en bas, ce sont des instructions en langage machine que le processeur exécute une à une, en répétant le cycle chercher-décoder-exécuter. Le programme « lisible » du haut du mille-feuille finit toujours en instructions élémentaires tout en bas.
★★ Exercice 25 — Le modèle de von Neumann selon un assistant d’IA #
Un élève demande à un assistant d’IA : « Explique-moi le modèle de von Neumann. » Voici la réponse obtenue.
« Le modèle de von Neumann, proposé en 1945, décrit l’organisation de presque tous les ordinateurs actuels. Il comporte quatre unités : l’unité de commande, qui lit et décode les instructions ; l’unité arithmétique et logique (UAL), qui effectue les calculs ; la mémoire, faite de cases numérotées par une adresse ; et les dispositifs d’entrée-sortie, qui font le lien avec l’extérieur (clavier, écran, disque). L’unité de commande et l’UAL, avec quelques registres très rapides, forment le processeur, relié aux autres organes par des bus. Le processeur répète sans cesse le cycle chercher-décoder-exécuter. Le point essentiel du modèle est que les instructions du programme sont rangées dans une mémoire séparée de celle des données, ce qui évite que le processeur confonde une instruction et une donnée. »
-
La réponse est-elle correcte ? Confronter chaque phrase au cours.
-
Localiser et corriger l’erreur.
-
Quelle vérification simple, faite avant de faire confiance à la réponse, aurait suffi à détecter l’erreur ?
Coup de pouce
Relire l’idée clé du modèle dans le cours : où sont rangés les instructions du programme et les données ?
Corrigé
a) Non. Les quatre unités, le processeur, les registres, les bus et le cycle chercher-décoder-exécuter sont conformes au cours ; la dernière phrase le contredit frontalement. Le cours dit : « dans le modèle de von Neumann, le programme est rangé dans la même mémoire que les données, sous forme de nombres ». b) L’erreur est « une mémoire séparée de celle des données ». Correction : instructions et données partagent la même mémoire, dans des cases adressées de la même façon ; c’est même l’idée centrale du modèle (« le programme est une donnée »), celle qui rend la machine universelle : changer de programme, c’est changer des nombres en mémoire. On le voit dans le LMC, où une instruction et une donnée occupent le même genre de case. c) Relire la définition du cours (ou le schéma des quatre unités, où une seule boîte « MÉMOIRE » contient « programme + données »). Quand une réponse présente un « point essentiel », c’est celui-là qu’il faut vérifier en premier.
Entraînement#
Exercices courts pour s’entraîner aux gestes de base, chacun avec plusieurs données. Ils font tous partie du parcours essentiel.
★ Exercice 26 — Lire et fixer des droits #
• essentiel
-
Pour chacun des droits suivants d’un fichier
f, dire ce que peuvent faire le propriétaire, le groupe et les autres, puis donner la commandechmoden chiffres qui les fixe : a)rwxr-x---; b)rw-rw-r--; c)r--------; d)rwxr-xr-x. -
Le fichier
notes.txta les droitsrw-r--r--. Donner la commandechmod(avec des lettres) qui : a) retire aux autres le droit de lecture ; b) donne au groupe le droit d’écriture ; c) donne à tout le monde le droit d’exécution.
Coup de pouce
Trois blocs de trois caractères, dans l’ordre propriétaire, groupe, autres. En chiffres : r vaut 4, w vaut 2, x vaut 1, et l’on additionne dans chaque bloc. En lettres : pour qui (u, g, o, a), + ou -, quel droit.
Corrigé
1. a) rwxr-x--- : le propriétaire lit, écrit et exécute ; le groupe lit et exécute ; les autres n’ont aucun droit. \(7 = 4+2+1\), \(5 = 4+1\), \(0\) : chmod 750 f. b) rw-rw-r-- : propriétaire et groupe lisent et écrivent, les autres lisent seulement : chmod 664 f. c) r-------- : seul le propriétaire peut lire : chmod 400 f. d) rwxr-xr-x : tous lisent et exécutent, seul le propriétaire écrit : chmod 755 f.
2. a) chmod o-r notes.txt ; b) chmod g+w notes.txt ; c) chmod a+x notes.txt.
★ Exercice 27 — Chemins absolus et relatifs #
• essentiel
Avec l’arborescence de référence, donner le chemin absolu de chaque élément, puis son chemin relatif depuis le répertoire courant indiqué : a) notes.txt, depuis /home/eleve/Documents ; b) hosts, depuis /home/eleve ; c) cours_nsi.txt, depuis /home/eleve/Images ; d) logo.png, depuis la racine /.
Coup de pouce
Le chemin absolu se lit de la racine jusqu’à l’élément. Pour le chemin relatif, remonter avec .. jusqu’au premier répertoire commun, puis redescendre.
Corrigé
Chemin absolu, puis chemin relatif :
-
/home/eleve/notes.txt;../notes.txt; -
/etc/hosts;../../etc/hosts(on remonte à/home, puis à la racine) ; -
/home/eleve/Documents/cours_nsi.txt;../Documents/cours_nsi.txt; -
/home/eleve/Images/logo.png;home/eleve/Images/logo.png(même chemin, sans le/initial).
▷ Erreur fréquente. oublier qu’un chemin relatif dépend du répertoire courant : ../notes.txt désigne notes.txt depuis Documents, mais un tout autre fichier (qui n’existe pas) depuis /home/eleve.