C1 Systèmes d'exploitation
Activités
Activité 1 : Découverte des OS, logiciels libres
- Rendez-vous sur la page de téléchargement du logiciel vlc. :
- Pourquoi faut-il télécharger une version différente de VLC suivant qu'on utilise Windows, MacOS, Linux ou Android ?
- Pouvez-vous associer chaque icône au logiciel qu'il représente ?
- En faisant des recherches sur le Web, rédiger une réponse brève aux questions suivantes :
- Que sont Windows, MacOS, Linux et Android ?
- Quel est le rôle de ces logiciels sur un ordinateur ?
- Que signifient les mot libre et gratuit dans la phrase : "VLC est un lecteur multimédia gratuit et libre" ?
Activité 2 : Initiation à la ligne de commande
Cette initiation se fait à travers la réalisation de missions dans un mini jeu d'aventures appelé gameshell.
-
Installation de Gameshell :
- Télécharger le fichier gameshell.
- Ouvrir l'explorateur de fichier.
- Créer un répertoire
gameshell
dans votre dossier personnel - Dans ce répertoire, copier le fichier gameshell que vous avez téléchargé.
- Faire un clic droit sur le fichier et dans l'onglet permission cocher la case 'Autoriser l'exécution du fichier comme un programme', comme illustré ci-dessous :
- Faire un clic droit dans la fenêtre de l'explorateur de fichier et sélectionner "ouvrir dans un terminal" comme illustré ci-dessous :
- Dans le terminal taper :
./gameshell.sh
-
Parallèlement à l'exécution des missions :
- Noter les commandes que vous utilisez et leur signification
- Tenir à jour un plan du monde dans lequel se déroule le jeu
Aide
Pour la première mission, vous devez donc noter le sens des commandes
cd
,ls
etpwd
et commencer le schéma suivant qui sera à poursuivre tout au long des missions :graph TD A[Monde] --> B[Chateau] A --> C[Echoppe] A --> D[Forêt] A --> E[Jardin] A --> F[Montagne]
Poursuivre ce travail à la maison
Le but est d'atteindre la mission 15, vous pouvez poursuivre ce travail à la maison en installant Gameshell, suivre les instructions que vous trouverez sur cette page.
Activité 3 : Chemin absolu ou chemin relatif
On considère l'arborescence de dossiers suivante (depuis la racine /
)
flowchart TD
A["#47;"] --> B[bin]
A --> C[dev]
A --> D[home]
A --> E[etc]
D --> F[Ada]
D --> G[Alan]
D --> H[Grace]
F --> I[Program]
G --> J[Enigma]
G --> K[Halting problem]
H --> L[Compilateur]
- On se trouve dans le dossier "
Grace
", écrire :- la commande
cd
avec un chemin relatif pour se rendre dansEnigma
- la commande
cd
avec un chemin absolu pour se rendre dansEnigma
- la commande
- On se trouve dans le dossier "
dev
", écrire :- la commande
cd
avec un chemin relatif pour se rendre dansEnigma
- la commande
cd
avec un chemin absolu pour se rendre dansEnigma
- la commande
- On se trouve dans le dossier "
Program
", écrire :- la commande
cd
avec un chemin relatif pour se rendre dansEnigma
- la commande
cd
avec un chemin absolu pour se rendre dansEnigma
- la commande
- Expliquer brièvement la différence entre chemin absolu et chemin relatif
Activité 4 : Premiers pas avec Python
Warning
L'apprentissage de la programmation en langage Python est essentiel en NSI, chaque élève devrait donc avoir une installation fonctionnelle de Python sur son ordinateur de façon à pouvoir pratiquer régulièrement à la maison.
Le langage Python peut être invoqué à partir de la ligne de commande, taper simplement python
dans un terminal. L'invite de commande se transforme en >>>
, on dit que Python est en mode console. Vous pouvez quitter Python en tapant exit()
.
-
Utiliser Python comme calculatrice
En mode console, Python vous fournira directement les résultats de calculs, taper par exemple :15+5*5
, dans quel ordre les opérations sont-elles effectuées ?-
2**5
, de quelle opération s'agit-il ?Aide
Tester d'autres valeurs par exemple
7**2
ou2**3
pour vous aider -
20%3
et20//3
, de quelles opérations s'agit-il ? (tester d'autres valeurs si nécessaire)
-
Utilisation de variables
- Dans la console Python, écrire
cote = 12
, on vient de créer une variable nomméecote
valant 12 qu'on peut utiliser dans d'autres calculs. Tester par exemples :cote * 4
oucote**2
- Créer une variable
naissance
contenant votre année de naissance. - Que se passe-t-il si on écrit
age = 2022 - naissance
?
- Dans la console Python, écrire
Cours
Vous pouvez télécharger une copie au format pdf du diaporama de synthèse de cours présenté en classe :
Attention
Ce diaporama ne vous donne que quelques points de repères lors de vos révisions. Il devrait être complété par la relecture attentive de vos propres notes de cours et par une révision approfondie des exercices.
QCM
1. Une et une seule de ces affirmations est fausse. Laquelle ?
- a) Un système d'exploitation libre est la plupart du temps gratuit
- b) Je peux contribuer à un système d'exploitation libre
- c) Il est interdit d'étudier un système d'exploitation propriétaire
- d) Un système d'exploitation propriétaire est plus sécurisé
- a)
Un système d'exploitation libre est la plupart du temps gratuit - b)
Je peux contribuer à un système d'exploitation libre - c)
Il est interdit d'étudier un système d'exploitation propriétaire - d) Un système d'exploitation propriétaire est plus sécurisé
2. Quelle est l'effet de la commande cd ..
?
- a) Changer le répertoire courant vers le répertoire parent
- b) Ejecter le CD
- c) Copier le contenu du répertoire courant dans un répertoire caché
- d) Supprimer le répertoire courant
- a) Changer le répertoire courant vers le répertoire parent
- b)
Ejecter le CD - c)
Copier le contenu du répertoire courant dans un répertoire caché - d)
Supprimer le répertoire courant
3. Quel est le rôle de la commande ls
?
- a) Basculer en mode administrateur
- b) Lister le contenu du répertoire courant
- c) Effacer le contenu du répertoire courant
- d) Donner un accès complet à un fichier
- a)
Basculer en mode administrateur - b) Lister le contenu du répertoire courant
- c)
Effacer le contenu du répertoire courant - d)
Donner un accès complet à un fichier
4. Dans un terminal sous Linux, quelle commande faut-il écrire pour donner à tout le monde le droit d'écriture sur le fichier information.py
?
- a)
chmod o+w information.py
- b)
chmod a+w information.py
- c)
chmod o+x information.py
- d)
chmod a+x information.py
- a)
chmod o+w information.py
- b)
chmod a+w information.py
- c)
chmod o+x information.py
- d)
chmod a+x information.py
5. Quel est l'effet de la commande chmod u+w fichier.txt
?
- a) de permettre au propriétaire du fichier de modifier le contenu de ce fichier
- b) d'interdire au propriétaire de modifier le contenu de ce fichier
- c) d'interdire à tous les autres utilisateurs de lire le fichier
- d) d'effacer le fichier
- a) de permettre au propriétaire du fichier de modifier le contenu de ce fichier
- b)
d'interdire au propriétaire de modifier le contenu de ce fichier - c)
d'interdire à tous les autres utilisateurs de lire le fichier - d)
d'effacer le fichier
6. Dans la console Linux, quelle commande faut-il exécuter pour obtenir la documentation de la commande pwd
?
- a)
man pwd
- b)
cd pwd
- c)
mkdir pwd
- d)
ls pwd
- a)
man pwd
- b)
cd pwd
- c)
mkdir pwd
- d)
ls pwd
7. Lequel de ces systèmes d'exploitation est sous licence propriétaire ?
- a) Android
- b) Linux
- c) Windows
- d) Ubuntu
- a)
Android - b)
Linux - c) Windows
- d)
Ubuntu
8. Une application doit écrire sur le disque dur de l'ordinateur, laquelle des affirmations suivantes est vraie ?
- a) Elle peut le faire quand bon lui semble
- b) Elle doit en faire la demande au système d'exploitation
- c) Elle doit en faire la demande aux autres applications qui fonctionnent sur l'ordinateur
- d) Elle doit en faire la demande à l'utilisateur de l'ordinateur
- a)
Elle peut le faire quand bon lui semble - b) Elle doit en faire la demande au système d'exploitation
- c)
Elle doit en faire la demande aux autres applications qui fonctionnent sur l'ordinateur - d)
Elle doit en faire la demande à l'utilisateur de l'ordinateur
9. Dans une console Python, que va afficher l'interpréteur si on écrit :
>>> 25 % 2
- a) 12
- b) 1
- c) 0
- d) une erreur
- a)
12 - b) 1
- c)
0 - d)
une erreur
10. Quel faut-il écrire dans un terminal Python pour calculer \(2^{20}\) ?
- a)
2%20
- b)
2*20
- c)
2^20
- d)
2**20
- a)
2%20
- b)
2*20
- c)
2^20
- d)
2**20
11. Dans la console Python, que faut-il écrire pour obtenir le quotient dans la division euclidienne de 127 par 8 ?
- a)
127/8
- b)
127%8
- c)
127//8
- d)
127%%8
- a)
127/8
- b)
127%8
- c)
127//8
- d)
127%%8
12. Pour quitter la console Python, on doit taper :
- a)
leave()
- b)
exit()
- c)
quit()
- d)
bye()
- a)
leave()
- b)
exit()
- c)
quit()
- d)
bye()
Exercices
Exercice 1 : Les bases de la ligne de commande
- En utilisant uniquement la ligne de commande, créer l'arborescence suivante dans votre répertoire personnel :
graph TD A[Cours] --> B[C1-OS] A[Cours] --> G[C2-Binaire] B --> C[Exercices] B --> D[Activités] B --> E[Notes] B --> F[Python]
- Renommer le dossier
Cours
enNSI
- Aller dans le dossier
NSI
- Taper la commande
tree
, quel est l'effet de cette commande ?
Exercice 2 : Calendrier
- Ouvrir un terminal et y tester la commande
cal
- Lire la documentation de cette commande
- Quel était le jour de la semaine le 26 juin 1815 ?
- Quel commande faut-il écrire pour afficher le calendrier du mois de mai 1970 ?
Exercice 3 : Python en ligne de commande
- En utilisant Python, donner le résultat de \(9^{10} - 10^9\).
-
En utilisant Python, convertir 17899132 minutes en jours, heures et minutes.
-
Obtenir de l'aide en python
- Tester les expressions Python
chr(33)
,chr(72)
,chr(125)
- Pour connaître l'utilité de cette fonction taper
help(chr)
- Tester les expressions Python
Exercice 4 : Ecrire dans un fichier
Rappel
- La commande
touch
permet de créer un fichier vide, par exempletouch bidule.txt
crée un fichier vide nommébidule.txt
dans le répertoire courant. - La commande
cat
permet d'afficher le contenu d'un fichier dans le terminal
- Créer un fichier vide appelé
monfichier.txt
- La commande
echo
- Tester la commande
echo
, en tapant par exempleecho "Bonjour tout le monde"
- Pour écrire dans un fichier on peut rediriger la sortie de la commande
echo
à l'aide du caractère>
. Tester en tapant par exempleecho "NSI c'est génial !" > monfichier.txt
- Afficher la contenu du fichier pour vérifier qu'il a été modifié.
- Tester la commande
- Un éditeur de texte dans le terminal
- Taper la commande
nano monfichier.txt
-
Utiliser cet éditeur de texte minimal afin de modifier le fichier puis l'enregistrer.
Aide
Les commandes principales s'affichent en bas de page, le caractère
^
désigne la touche Ctrl
- Taper la commande
Exercice 5 : Ranger un dossier
- Télécharger et décompresser le dossier A_Ranger.
- Lister le contenu de ce dossier, quels types de fichier contient-t-il ?
- Dans le dossier
A_ranger
, créer les dossiersTexte
,HTML
etPython
. -
Déplacer les fichiers de chaque type dans le dossier correspondant
Aide
Déplacer les fichiers un à un serait long à fastidieux. Penser à utiliser le caractère
*
qui remplace n'importe quelle suite de caractères dans les noms de fichiers.
Exercice 6 : Gestion des droits sur un fichier
- Quelle commande permet d'afficher les droits sur les fichiers d'un répertoire ?
- Quels sont les trois droits définis par un système de type Linux et leurs signfications ?
-
Compléter le tableau suivant :
Commande Résultat chmod g+x monfichier
... Enlever le droit d'écriture pour le propriétaire du fichier chmod go-rwx monfichier
... chmod a+x monfichier
... ..... Attribuer les droits de lecture, d'écriture et d'exécution aux autres .... Enlever les droits d'écriture au groupe et aux autres
Exercice 7 : Chercher des fichiers
- Lire les premières lignes de la documentation de la commande
find
. A quoi sert cette commande ? -
Tester la commande
find ~ -name "gameshell"
. Expliquer le résultat obtenu et l'effet de la commande.Aide
- On rappelle que
~
désigne votre répertoire personnel. - A l'activité 2,
gameshell
avait été téléchargé puis copier dans un repertoire, deux exemplaires de ce fichiers devraient donc se trouver dans votre répertoire personnel
- On rappelle que
-
Sachant que les commandes du système se trouvent dans le repertoire
/usr/bin
, lister toutes les commandes dont le nom se terminent pardir
(rmdir
etmkdir
devraient donc apparaître). -
Lister tous les commandes dont le nom commence par
ls
.
Exercice 8 : Vous reprendrez bien un peu de python ?
-
Biblothèque
math
Rappel
Le périmètre d'un cercle de rayon \(r\) est \(p = 2\pi r\).
- En utilisant Python, calculer le périmètre d'un cercle de rayon 7m (on prendra la valeur \(3,14\) pour \(\pi\))
- Python est un langage extensible via l'ajout de bibliothèques, par exemple une valeur plus précise de \(\pi\) se trouve dans la bibliothèque
math
de Python. Pour utiliser cette valeur taper :from math import pi
- Vérifier que Python connaît maintenant une valeur précise de \(\pi\)
- Avec cette nouvelle valeur de \(\pi\), calculer le périmètre d'un cercle de diamètre 25 cm.
-
Des "easter eggs" dans Python
-
On peut importer la totalité d'une bibliothèque en tapant simple
import
suivi du nom de la bibliothèque. Testerimport this
Aide
Quelques explications sur cette page wikipedia
-
Une blague sur Python issue du site de cartoons xckd s'affichera en important la biblothèque
antigravity
-
Exercice 9 : Enigme
- Télécharger puis décompresser le fichier
Enigme
. -
En utilisant uniquement la ligne de commande, trouver six lettres avec les indices suivants :
- Lettre n° 1 : "cachée dans le dossier
Enigme
que vous avez téléchargé" - Lettre n° 2 : "son code ascii est 71"
- Lettre n° 3 : "deuxième lettre du jour de la semaine du 23 juin 1912"
- Lettre n° 4 : "La commande
wc
vous permettra de compter le nombre de caractères du fichier lettre 4 qui se trouve dansEnigme
. Diviser le résultat obtenu par 1956 pour avoir la position dans l'alphabet de la quatrième lettre" - Lettre n° 5 : "Lorsque cette lettre est donnée en option à la commande
cp
, elle permet de copier un dossier et tout ce qu'il contient" - Lettre n°6 : "La commande
eog
vous permettra de découvrir la lettre6".
- Lettre n° 1 : "cachée dans le dossier
-
Remettre dans l'ordre les six lettres obtenus pour trouver le nom d'un célèbre informaticien.
Exercice 10 : un TP pour tout réviser !
Note
Ce TP a été crée par R. Janvier et utilise un émulateur de terminal linux en ligne crée par F. Bellard
Ce tp s'effectue en ligne dans un navigateur et peut donc être travaillé à la maison même si on ne dispose pas d'un terminal sous linux. Voici comment procéder :
- Télécharger l'archive du tp
- Décompresser cette archive dans le dossier de votre choix
- Se rendre sur l'émulateur js linux
- Attendre le chargement de la page (cela peut prendre quelques minutes).
- Cliquer sur l'icone permettant d'uploader un fichier en bas et à gauche sous le terminale et charger le fichier
preparation.sh
qui se trouve dans le dossier décompressé à l'étape 2. - Dans le terminal, taper
sh preparation.sh
et patienter jusqu'à l'exécution complète du script (cela peut être long). Vous devriez obtenir l'écran ci-dessous :
Comme indiqué à l'écran, vous êtes connecté sous le nom d'utilisateur alice
et pour commencer taper cd exercice1
puis cat consignes.txt
pour avoir les instructions.
Humour d'informaticien
Connaissez-vous la commande sudo
? Si non, il faudra faire quelques recherches pour comprendre la blague suivante :