# Windows et console --- ## Système d'exploitation *OS = Operating System* --- Dans ce cours, on va parler de la console `cmd.exe` qui permet, dans Windows, de manipuler les fichiers et les dossiers. Il nous faut donc dire ce qu'est un système d'exploitation comme Windows, ce qu'est une CLI comme ``cmd.exe`` et parler de l'organisation des fichiers. --- ![PC app](./medias/windows/echange_app_pc.jpg) * La machine a des ressources (mémoire, écran, ...) * On exécute des applications (Navigateur, jeu...) qui ont besoin de ces ressources --- ![PC app <](./medias/windows/Windows_XP_Logo.jpg) Le système d'exploitation dirige l'utilisation des ressources par les applications. Microsoft Windows est devenu le système d'exploitation dominant dès les années 80-90 et l'est encore aujourd'hui. --- ### Qu'apporte l'OS ? * Sécurité : il vérifie que telle application a le droit d'accéder à telle ressource, tel fichier. * Est une couche d'abstraction : les machines sont très différentes. Les applications ne veulent pas se soucier de ces différences. --- #### Un exemple concret Quand les cartes vidéos 3D sont apparues (années 90) certains jeux ne fonctionnaient qu'avec certaines cartes... Windows a imposé le standard **directX** de sorte que toutes les cartes se sont mises à parler un langage commun. --- ## GUI = Graphic User Interface --- ![gui app <](./medias/windows/gui.png) En tant qu'utilisateur, on préfère souvent une interface avec des boutons, des menus... --- ## CLI = Command Line Interface --- ![console <](./medias/windows/console.png) Il faut écrire du texte, l'aspect est rébarbatif, ça a l'air vieillot. Pourtant, c'est souvent plus puissant qu'une GUI. (*Par exemple dans les jeux vidéos, il arrive que les développeurs aient prévu une CLI pour entrer des commandes comme vies infinies.*) --- Le programmeur développe des outils qui font des choses. Les CLI et GUI permettent des les piloter. * Il est souvent plus long de faire une GUI, donc si ce n'est pas utile on ne le fait pas. * Une GUI peut être dangereuse : un utilisateur non averti risque plus de mal l'utiliser. On évite les commandes trop puissantes (effacer le disque dur...) avec une GUI. --- ## Le système de fichier En termes de CLI, on se limite à manipuler le système de fichier. Ici avec **Windows**, plus tard avec Linux. --- ![arbo <](./medias/windows/arbo_windows.svg) #### Racines Le système de fichier à des racines comme `C:\` Cela correspond à une partie du disque dur. Au lycée, on a aussi `U:\` qui correspond à un répertoire réseau. --- ![arbo <](./medias/windows/arbo_windows.svg) #### Dossiers, répertoires Les dossiers (ou répertoires) sont des contenants. Par exemple à gauche : `Gimp` --- ![arbo <](./medias/windows/arbo_windows.svg) #### Fichiers Certains fichiers continnt des données (son, image...) `roman.txt` ou `musique.mp3` Certains sont exécutables. `prog.exe` --- ![arbo <](./medias/windows/arbo_windows.svg) #### extension Les noms de fichiers terminent par `.txt`, `.exe`... Ce sont des **extensions**. Elles n'ont rien d'obligatoires. Elles donnent juste une indication à l'utilisateur et à l'OS. `roman.txt` devrait **normalement** contenir du texte. --- ![arbo <](./medias/windows/arbo_windows.svg) #### Chemin absolu Un chemin indique comment atteindre un fichier/dossier Si ce chemin commence par la racine, alors il est **absolu**. Exemple : `C:\Utilisateurs\Jean\roman.txt` --- ![arbo <](./medias/windows/arbo_windows_ici.svg) #### Chemin relatif Exemple : Vous êtes en train de parcourir le dossier `Martine`. On peut le chemin vers `roman.txt` à partir de là. C'est un **chemin relatif**. `..\Jean\roman.txt` --- * Si le chemin commence par une racine comme `C:\`, alors il est **absolu**. Peu importe où on est. * Sinon le chemin est relatif et dépend d'où on est. * `..` désigne le répertoire **parent** * `.` désigne le répertoire courant (utile quelquefois...) `..\Jean\roman.txt` signifie donc : remonter d'un dossier, aller dans le dossier `Jean`, trouver là `roman.txt`.