Préparé par Luc Baron
Le 25 septembre 2020
Ce document a pour objectif de présenter un aperçu des systèmes d'exploitation Windows et Unix. Il s'adresse aux futurs ingénieurs non spécialistes qui doivent utiliser ces systèmes d'exploitation afin de communiquer et mettre en oeuvre des fonctionnalités sur des postes de travail et des serveurs distants. Ce document est accompagné de démonstrations informatiques sous forme de capsules vidéo et d'une séance de travail pratique sur Windows et/ou MacOS X, et Linux sur le serveur cogito.meca.polymtl.ca.
Un système d’exploitation (simplement appelé OS pour en anglais Operating system) est une couche logicielle qui facilite aux applications l’utilisation des ressources matérielles d’un ordinateur. Ainsi, il permet aux applications, telles que Word, Chrome, Matlab, Zoom et autres, de réaliser des tâches telles que l’accès et la sauvegarde de données sur disque ou la communication de données, sons et vidéos avec une grande variété de matériels. Grâce aux systèmes d'exploitation, les applications ne communiquent plus directement avec les ressources matérielles, mais plutôt à travers Windows, MacOS X, Linux, ... C'est plutôt à eux de savoir comment communiquer avec les ressources matérielles. Si une application communique directement avec le matériel, alors cela est fait au prix d'une perte de généralité, c'est-à-dire d'avoir une application qui ne fonctionnerait qu'avec ce matériel spécifique. Par exemple, une marque spécifique de carte réseau plutôt que simplement d'avoir une carte réseau fonctionnelle. |
Nous présentons l'évolution des deux grandes familles d'OS, soit Windows et Unix. Depuis le début des ordinateurs, plusieurs OS ont été développés, mais plusieurs n'ont pas eu de succès commercial et ont disparu.
La famille Windows a débuté en 1981 chez Microsoft avec l'OS DOS (en anglais Disk Operating System) pour gérer les premiers ordinateurs personnels. Il s'agissait d'une console de commandes où l'utilisateur devrait taper des commandes au clavier sans aucune interface graphique, ni souris. L'utilisation de la souris est rendue possible en 1990 grâce à Windows 3.xx qui ajoute une couche graphique à DOS. Le premier OS entièrement graphique et indépendant de DOS est arrivé en 1991 avec Windows NT (en anglais New Technology). C'est la base de toutes les versions suivantes de Windows : 95, 98, XT, 7, 8 et 10.
La famille Unix a débuté en 1972 chez AT&T avec un OS multitâche et multi-utilisateur pour gérer de grands ordinateurs (voir fig. B.2). Il s'agissait là aussi d'une console de commandes où l'utilisateur devait taper des commandes au clavier sans aucune interface graphique, ni souris. Le développement d'Unix s'est poursuivi selon trois branches différentes. Premièrement, AT&T a poursuivi en interne le développement d'Unix jusqu'en 1990. AT&T a également développé et commercialisé une version avec interface graphique et souris, appelée System III et System V jusqu'en 1997. Finalement, l'Université de Californie à Berkeley a poursuivi le développement d'Unix et distribué la version BSD (en anglais Berkeley Software Distribution) jusqu'en 1994. Grandement inspiré d'Unix, Linux est développé depuis 1991 par une communauté de développeurs sous licence libre et gratuite. Il existe plusieurs distributions, telles que Debian, Ubuntu, Red Hat et Fedora. Encore basé sur Unix (plus spécifiquement FreeBSD et NeXTSTEP), Apple a introduit en 2001 MacOS X, aussi appelé la version 10.xx, pour ses ordinateurs. Finalement, Android et iOS sont arrivés en 2007 pour téléphone et tablette numérique encore une fois construits à partir d'Unix.
OS | Année | Développeur et version |
---|---|---|
Unix | 1972-... | Créé par AT&T pour gérer les premiers ordinateurs avec une console de commandes Unix. C'était déjà un système multitâche et multi-utilisateur. |
DOS | 1981-1990 | Créé par Microsoft pour gérer les premiers ordinateurs personnels IBM avec une console de commandes DOS (en anglais Disk Operating System). |
MacOS | 1984-2001 | Créé par Apple pour gérer les premiers ordinateurs Macintosch avec interface graphique et souris. |
NeXTSTEP | 1986-1996 | Créé par Steve Jobs, lorsqu'il n'était plus chez Apple, pour gérer les stations de travail avec souris et interface graphique sur une base Unix. |
OS/2 | 1987-2006 | Créé par Microsoft pour IBM pour gérer la 2e génération d'ordinateur personnel IBM avec interface graphique et souris sans la base DOS. Seul IBM l'a utilisé sur ses ordinateurs. |
Windows 3.x | 1990-1995 | Créé par Microsoft comme ajout à DOS pour gérer les ordinateurs personnels avec interface graphique et souris. |
Linux | 1991-... | Créé par une communauté de développeurs pour gérer des ordinateurs personnels avec interface graphique et souris. Grandement inspiré d'Unix, il est construit uniquement de logiciel libre. Il existe plusieurs distributions telles que Debian, Ubuntu, Red Hat ou Fedora. |
Windows NT | 1991-... | Créé par Microsoft pour gérer les ordinateurs personnels avec interface graphique et souris sans la base DOS. Windows NT (pour New Technology) est la base sur laquelle toutes les versions suivantes de Windows sont construites, telles que Windows XT en 2001, Windows 7 en 2009, Windows 8 en 2012 et Windows 10 en 2015. |
MacOS X | 2001-... | Créé par Apple pour gérer les ordinateurs d'Apple sur une base Unix (10.xx), telle que MacOS X High Sierra (10.13) en 2017, Mojave (10.14) en 2018 et Catalina (10.15) en 2019. |
Android | 2007-... | Créé par Google pour gérer les téléphones et tablettes numériques sur une base Unix. |
iOS | 2007-... | Créé par Apple pour gérer les téléphones et tablettes numériques sur une base Unix. |
En résumé, la grande majorité des pour ordinateur personnel ou appareil mobile (téléphone et tablette numérique) sont aujourd'hui construit autour d'Unix. Seule exception, Windows qui fonctionne sur un très grand nombre d'ordinateurs personnels.
Les systèmes d'exploitation possèdent une structure arborescente de répertoires dans laquelle on dépose les fichiers. Cette structure permet de séparer les fichiers des utilisateurs de ceux du système d'exploitation et des applications. Ainsi, chaque utilisateur possède un répertoire personnel afin d'y déposer ses fichiers, par exemple C:\Users\utilisateur1 sur Windows ou /home/utilisateur1 sur Unix. Noter l'usage de \ sous Windows et / sous Unix. La structure arborescente permet à chaque utilisateur de classer ses fichiers dans des répertoires additionnels qu'il peut créer dans son répertoire de base (aussi appelé son home directory).
Un fichier peut être exécutable ou non exécutable. Les fichiers exécutables sont le résultat de la compilation d'un programme en une série de codes binaires que le processeur peut exécuter. Les fichiers non exécutables sont simplement des fichiers de données enregistrées en format binaire ou en format texte. Les fichiers de données binaires peuvent être, par exemple, un fichier .zip où le texte initial est comprimé en codes binaires afin d'occuper moins d'espace. Un fichier de données texte contient habituellement que des codes de caractères ASCII que le matériel d'affichage et d'impression est capable de représenter avec une fonte de caractères. Il est possible d'utiliser la commande type sous Windows ou more sous Unix, afin d'afficher un fichier de données texte. Il est également possible d'utiliser un éditeur de texte, tel que Notepad++ sous Windows ou emacs sous Unix pour modifier un fichier texte. Attention, notepad (sans le ++) de Windows n'est pas un éditeur de texte pur, puisqu'il ajoute des codes binaires de contrôle des structures de texte, comme le fait encore plus intensément Word. Finalement, les fichiers sont reconnus exécutables par le système d'exploitation lorsqu'ils portent l'extension .exe sous Windows ou possèdent la permission exécutable sous Unix.
Cette section présente l'arborescence des dossiers et fichiers, ainsi que les principales commandes du système d'exploitation Windows. Les exemples sont obtenus avec d'un poste Windows 10. Les étudiants n'ayant pas cette version de Windows peuvent expérimenter sur les postes Windows 10 des salles informatiques de Polytechnique.
La figure B.3 montre l'interface graphique de gestion des fichiers et la console de commandes de Windows 10. Les deux fenêtres présentent le contenu du dossier de l'utilisateur baron, c'est-à-dire os (C:) << Utilisateurs > baron ou C:\Users\baron. Selon ces deux visions, il y a 12 répertoires en plus des 2 répertoires standards (. le répertoire actif et .. le répertoire parent). Ces deux répertoires standards sont affichés dans la fenêtre console et n'apparaissent pas dans la fenêtre graphique. La console est en réalité un fichier exécutable (extension .exe) situé dans le répertoire C:\Windows\System32\ comme beaucoup d'autres commandes Windows. Il est possible d'ouvrir plusieurs fenêtres consoles par le menu Démarrer, puis taper cmd dans la zone Taper ici pour rechercher. Il est possible de fermer chacune des fenêtres avec la commande exit.
La figure B.4 montre l'arborescence du dossier des utilisateurs située dans C:\Users. L'utilisateur baron est propriétaire du dossier C:\Users\baron sur lequel il possède toute autorité pour créer, modifier ou effacer des fichiers et dossiers. Le dossier de l'utilisateur baron contient par défaut plusieurs dossier standards, tels que Desktop, Documents, Downloads et autres. L'utilisateur baron a créé dans son dossier Documents les dossiers Dossier1 et Dossier2, et déposé le fichier Tampon.png. Il a également déposé le fichier Plan.pdf dans le Dossier1 et le fichier Zoom.pdf sur son bureau, c'est-à-dire le dossier Desktop.
Il existe deux types de parcours d'accès à un dossier ou un fichier, soient le parcourt absolu ou un parcourt relatif au dossier actif ou courant. Le tableau B.5 illustre des parcours relatifs et absolus équivalents dans l'arborescence de la figure B.4 lorsque le répertoire actif est C:\Users\baron\Documents.
Dossier actif: C:\Users\baron\Documents\ Parcours relatif : Parcours absolu : ..\..\..\ <=> C:\ ..\..\ <=> C:\Users\ ..\..\alibaba\ <=> C:\Users\alibaba\ ..\Desktop\ <=> C:\Users\baron\Desktop\ Dossier1\ <=> C:\Users\baron\Documents\Dossier1\ Dossier2\ <=> C:\Users\baron\Documents\Dossier2\ ..\Downloads\ <=> C:\Users\baron\Downloads\ ..\Desktop\Zoom.pdf <=> C:\Users\baron\Desktop\Zoom.pdf Tampon.png <=> C:\Users\baron\Documents\Tampon.png Dossier1\Plan.pdf <=> C:\Users\baron\Documents\Dossier1\Plan.pdf
Un parcours absolu doit débuter par la lettre du disque suivi de : (exemple: C:). Il doit obligatoirement être suivi de \ indiquant la racine des dossiers de ce disque, puis optionnellement des noms de dossiers séparés par un \. La colonne de droite du tableau B.5 illustre des parcourts absolus vers des dossiers et fichiers de la figure B.4.
Un parcours relatif ne débute jamais par la lettre d'un disque, ni par la racine \. Il indique le chemin à parcourir entre le dossier actif et le dossier ou fichier de destination. Tel que montré à la figure B.3, le dossier actif (aussi appelé dossier courant) est affiché dans l'invite de commande de la console, tout juste à gauche du symbole >. La colonne de gauche du tableau B.5 illustre des parcourts relatifs pour accéder à des dossiers et fichiers de la figure B.4 lorsque le dossier actif est C:\Users\baron\Documents.
Il est nécessaire de connaître les commandes de la console afin d'écrire des scriptes de commandes pour l'automatisation de fonctionnalités. Dans tous les exemples, les parcours absolus et relatifs peuvent être utilisés.
La commande de navigation cd (en anglais change directory) permet de déplacer le dossier actif vers un dossier spécifique. L'invite de commande permet d'afficher le dossier actif. La commande dir (en anglais directory) permet d'afficher la liste des dossiers et fichiers d'un dossier spécifique. Les commandes de la figure B.6 sont :
La commande de manipulation cp (en anglais copy) permettent de copier un fichier ou plusieurs fichiers vers un dossier spécifique. La commande rm (en anglais remove) permet d'effacer un ou plusieurs fichiers d'un dossier spécifique. Les commandes de la figure B.7 sont :
La commande mkdir (en anglais make directory) permet de créer un dossier dans un dossier spécifique. La commande rmdir (en anglais remove directory) permet d'effacer un dossier d'un dossier spécifique si ce dossier est déjà vide. Les commandes de la figure B.8 sont :
Cette section présente l'arborescence des dossiers et fichiers, ainsi que les principales commandes de la console d'un système de type Unix. Même si les exemples sont obtenus avec un poste MacOS X 10.15 Catalina, les étudiants auront tous accès à un poste Linux avec le serveur cogito.meca.polymtl.ca avec un compte utilisateur de format tixxx. Ainsi, il est nécessaire de comprendre le fonctionnement des commandes dans un environnement Unix.
La figure B.9 montre l'interface graphique de gestion des fichiers et dossiers et la console de commandes de MacOS X. Les deux fenêtres présentent le contenu du dossier de l'utilisateur baron, c'est-à-dire Utilisateurs > baron ou /Users/baron. Selon ces deux visions, il existe 3 dossiers utilisateurs, dont 2 utilisateurs standards (Invité et Partagés). De plus, on remarque dans la fenêtre graphique la traduction en français de quelques noms de dossiers qui pourtant apparaissent en anglais dans la console. On comprend donc que seul l'affichage a été traduit, mais que le fonctionnement interne de MacOS X utilise les noms de répertoires anglais. Par exemple, les dossiers /Guest, /Desktop et /Downloads de la console sont, respectivement, affichés Invité, Bureau et Téléchargements dans la fenêtre graphique.
Tel que montré de la figure B.9, les dossiers Desktop et Documents sont des liens vers iCloud. Ainsi, ils sont identifiés avec un @ dans la section permission de la console, et n'apparaissent pas dans la liste des dossiers de l'utilisateur baron, mais plutôt dans la section iCloud de l'interface graphique. En général, le symbole @ à la fin des permissions d'un dossier ou fichier signifie qu'il y a des attributs additionnels que l'on peut afficher avec la commande ls -@l.
La console est une application, appelée Terminal.app ayant les permissions d'exécution (c'est-à-dire rwxr-xr-x), situé dans le répertoire /System/Applications/Utilitaires/ comme plusieurs autres outils Unix. Il est possible d'ouvrir plusieurs consoles par le menu Terminal, puis choisir Coquille logiciel > Nouvelle fenêtre. Sur Linux/Unix, il est possible d'ouvrir plusieurs consoles avec la commande xterm & et fermer ces fenêtres avec la commande exit.
La figure B.10 montre l'arborescence du répertoire des utilisateurs située dans C:\Users. L'utilisateur baron est propriétaire du dossier C:\Users\baron sur lequel il possède toute autorité pour créer, modifier ou effacer des dossiers et fichiers. Le dossier de l'utilisateur baron contient par défaut plusieurs dossiers standards, tels que Desktop, Documents, Downloads et plusieurs autres. L'utilisateur baron a créé les dossiers Dossier1 et Dossier2, et déposé le fichier Tampon.png. Il a également déposé le fichier Plan.pdf dans le Dossier1.
Il existe deux types de parcours d'accès à un dossier ou un fichier, soient le parcourt absolu ou un parcourt relatif au dossier actif. Le tableau B.11 illustre des parcourts relatifs et absolus équivalents dans l'arboresence de la figure B.10 lorsque le dossier actif est /Users/baron.
Dossier actif: /Users/baron/Dossier2/ Parcours relatif : Parcours absolu : ../../../ <=> / ../../ <=> /Users/ ../../Guest/ <=> /Users/Guest/ ../Desktop/ <=> /Users/baron/Desktop/ ../Dossier1/ <=> /Users/baron/Dossier1/ ../Downloads/ <=> /Users/baron/Downloads/ ../Tampon.png <=> /Users/baron/Tampon.png ../Dossier1/Plan.pdf <=> /Users/baron/Dossier1/Plan.pdf
Un parcours absolu doit obligatoirement débuter par / indiquant la racine des dossiers, puis optionnellement des noms de sous-dossiers séparés par un /. La colonne de droite du tableau B.11 illustre des parcours absolus vers des dossiers et fichiers de la figure B.10.
Un parcours relatif ne débute jamais par la racine /. Il indique le chemin à parcourir entre le dossier actif et le dossier ou fichier de destination. Tel que montré à la figure B.9, le dossier actif (aussi appelé dossier courant) est affiché dans l'invite de commande de la console, tout juste à gauche du symbole $. La colonne de gauche du tableau B.11 illustre des parcours relatifs pour accéder à des dossiers et fichiers de la figure B.10 lorsque le dossier actif est /Users/baron.
Il est nécessaire de connaître les commandes de la console afin d'écrire des scriptes de commandes pour l'automatisation de fonctionnalités. Dans tous les exemples, les parcours absolus et relatifs peuvent être utilisés.
La commande de navigation cd (en anglais change directory) permet de déplacer le dossier actif vers un dossier spécifique. La commande pwd (en anglais print working directory) permet d'afficher le dossier actif. La commande ls (en anglais list) permet d'afficher la liste des dossiers et fichiers d'un dossier spécifique. Les commandes de la figure B.12 sont :
La commande de manipulation cp (en anglais copy) permettent de copier un fichier ou plusieurs fichiers vers un dossier spécifique. La commande rm (en anglais remove) permet d'effacer un ou plusieurs fichiers d'un dossier spécifique. Les commandes de la figure B.13 sont :
La commande mkdir (en anglais make directory) permet de créer un dossier dans un dossier spécifique. La commande rmdir (en anglais remove directory) permet d'effacer un dossier d'un dossier spécifique si ce dossier est déjà vide. Les commandes de la figure B.14 sont :
La figure B.16 présente les permissions associées au Dossier4 et au fichier Plan.pdf.
La colonne 1 contient d
s'il s'agit d'un dossier, sinon -
pour un fichier.
Les trois séquences, chacune de 3 colonnes, contiennent dans l'ordre les permissions accordées à l'utilisateur (désigné u),
à son groupe utilisateur (désigné g) et aux autres utilisateurs (désigné o, pour other).
Chaque séquence de 3 colonnes contient dans l'ordre les permissions de lecture r
pour read,
d'écriture w
pour write et d'exécution x
pour execute.
Si la permission n'est pas accordée, alors la lettre est remplacée par -
. Chaque séquence peut être représenté par un nombre octal (base 8) où une lettre est un 1 et le -
est 0. Sachant que 1002 = 48; 0102 = 28 et 0012 = 18, alors il suffit d'additionner les trois nombres octaux.
Par exemple, la permission du groupe du dossier Dossier4 est :
r-x
= 1012 = 1002 + 0012 = 48 + 18 = 58. Le Dossier4 appartient à l'utilisateur baron qui fait partie du groupe d'utilisateur staff. La permission d'exécution associée à un dossier correspond à permettre la navigation à l'intérieur du dossier, alors que pour un fichier c'est la façon de désigner les fichiers exécutables par le processeur et qui sont habituellement le résultat d'une compilation.
La commande chmod (en anglais change mode) permet de modifier les permissions d'un ou plusieurs fichiers ou dossiers. Les commandes de la figure B.15 sont :
Les étudiants du cours disposent d'un serveur Linux situé dans la salle des serveurs avec un compte individuel de format tixxx où xxx sont trois chiffres. Le serveur cogito.meca.polymtl.ca est disponible en tout temps durant la session. Cependant, il est situé derrière le pare-feu du réseau informatique. Cela signifie qu'il est accessible seulement avec un VPN (Virtual Private Network). Polytechnique propose d'utiliser le VPN Cisco AnyConnect qui doit être configuré selon les paramètres décrits à polymtl.ca/si ou sur le site Moodle du cours. Cogito n'accepte que des connexions sécurisées SSH et SFTP. Nous présentons ci-dessous des moyens d'établir une connexion SSH et SFTP à partir d'un poste Windows et d'un poste MacOS X. Les étudiants sont libres d'utiliser un autre moyen de connexion à distance vers cogito.
Pour un poste Windows (version 7 et +), nous proposons d'utiliser le client SSH et SFTP appelé SSHSecureShellClient-3.2.9. C'est un client plutôt ancien, mais qui a l'avantage d'être gratuit et facile à trouver sur le Web. Les figures B.17 et B.18 présentent respectivement la console SSH et la fenêtre SFTP. Il suffit d'établir une connexion à cogito avec une des deux fenêtres et l'utilisateur peut ouvrir l'autre fenêtre directement. Toutes les commandes Unix pour MacOS X peuvent être utilisées sur cogito dans la console SSH. Cependant, cogito utilise le dossier /home pour les utilisateurs plutôt que /Users. La fenêtre SFTP présente à sa gauche les dossiers locaux du poste Windows et à sa droite les dossiers distants de cogito. Pour le téléchargement, il suffit de faire un cliquer-glisser déposer entre le bureau et la fenêtre des dossiers de cogito. Le bouton contextuel de droite sur un fichier de la figure B.18 permet de modifier les permissions de ce fichier.
Pour un poste MacOS X (version 10.13 et +), nous proposons d'utiliser directement l'application Terminal disponible sur MacOS X sans avoir à acheter un client SSH/SFTP à la boutique Apple. Le Terminal exige l'entrée de commandes, mais a l'avantage d'être gratuit. Les figures B.19 et B.20 présentent respectivement la console SSH et la console SFTP. Les deux consoles peuvent fonctionner en parallèle dans des fenêtres séparées.
La connexion SSH est établie avec : ssh tixxx@cogito.meca.polymtl.ca, puis le mot de passe. Toutes les commandes Unix pour MacOS X peuvent être utilisées sur cogito dans la console SSH. Cependant, cogito utilise le dossier /home pour les utilisateurs plutôt que /Users. Finalement, on utilise exit pour fermer la connexion SSH.
La connexion SFTP est établie avec : sftp tixxx@cogito.meca.polymtl.ca, puis le mot de passe. Les commandes SFTP peuvent être alors utilisées, telles que: help pour aide, ls pour lister les fichiers distants sur cogito, lls pour lister les fichiers locaux du Mac, put pour envoyer un fichier à cogito (upload) et get pour recevoir un fichier de cogito (download). Finalement, on utilise quit pour fermer la connexion SFTP.
Ce lexique présente un résumé les principales commandes des systèmes d'exploitation Windows et Unix.
Commande | OS | Fonction |
---|---|---|
dir dossier | Windows | Affiche le contenu du dossier spécifié ou du dossier actif. |
cd dossier | Windows | Déplace le dossier actif vers le dossier spécifié. |
copy src dest | Windows | Copie la source (src) vers la destination (dest). |
del src | Windows | Enlève le ou les fichiers sources (src). |
mkdir dossier | Windows | Créer le nouveau dossier spécifié. |
rmdir dossier | Windows | Efface le dossier spécifié s'il est vide. |
type fichier | Windows | Affiche le contenu du fichier texte. |
pwd | Unix | Affiche le dossier actif. |
ls -parm dossier | Unix | Affiche le contenu du dossier spécifié ou du dossier actif. |
cd dossier | Unix | Déplace le dossier actif vers le dossier spécifié. |
cp src dest | Unix | Copie la source (src) vers la destination (dest). |
rm src | Unix | Enlève le ou les fichiers sources (src). |
mkdir dossier | Unix | Créer le nouveau dossier spécifié. |
rmdir dossier | Unix | Efface le dossier spécifié s'il est vide. |
chmod dossier | Unix | Modifie les propriétés du dossier spécifié. |
more fichier | Unix | Affiche le contenu du fichier texte. |
ssh usager@poste | Unix | Connexion SSH avec usager vers le poste spécifié. |
exit | Unix | Ferme la connexion SSH vers cogito. |
sftp usager@poste | Unix | Connexion SFTP avec usager vers le poste spécifié. |
quit | Unix | Ferme la connexion SFTP vers cogito. |