Objectifs du stage UNIX de rentrée découverte
L'objectif du stage UNIX est de vous faire comprendre les concepts des systèmes d'exploitation en les manipulant (processus, fichiers, mémoire, parallélisme, droits, interface de manipulation de texte, etc.). Ils sont aux fondements de l'Informatique, et au cœur des mathématiques appliquées, qui doivent faire tourner efficacement de grands modèles sur de grosses machines.
À court terme, notre but est vous rendre autonomes et efficaces sur votre poste de travail GNU/Linux. Avec juste un peu pratique, vous constaterez que vous deviendrez capables de faire mieux et plus vite.
À long terme, notre but est de vous permettre de vous forger votre propre opinion sur ce qui a du sens et ce qui n'en a pas, ce qui marche et ce qui ne marche pas, et surtout de rester libre de vos choix, en vous apprenant à regarder les détails avec rigueur pour éviter de vous mettre des barrières dénuées de sens.
Avec seulement 7h30 de TP, les bases ne seront pas acquises. Vous aurez à refaire tout ce que vous avez appris, régulièrement, dans les prochains mois.
- Programme et attendus
- Débutantes et débutants en UNIX: Poly et Jeu de Piste
- La Linux Install Party (LIP)
- Pour celles et ceux qui veulent creuser un peu plus loin
En pratique, pendant le stage de septembre...
Le parcours Découverte utilise des supports qui n'ont pas de pré-requis. Ils sont progressifs et très guidés.
Nous proposons de creuser en autonomie, plus tard, quelques ateliers/tutoriels, qui concernent aussi les processus, les fichiers, et la mémoire. Mais ils demandent de savoir déjà se servir d'un système GNU Linux (processus, fichiers, mémoire, terminal, commandes de base, etc.). Et, ils sont bien moins guidés.
Le programme du stage de rentrée 📅
Séances | Découverte | Indépendantes et Indépendants |
---|---|---|
1 (1h) | Login / Auto-positionnement | Login / Auto-positionnement |
2 (2h) | Guide <=> Jeu de Piste | Git |
3 (2h) | Éditeurs universels; | Éditeurs universels; Atelier HOME |
4 (2h) | Guide <=> Jeu de Piste | Scripts bash |
Découverte pour les débutants et débutantes
Les deux ressources pédagogiques des séances
- Le polycopié d'UNIX : à lire, linéairement pour les débutants. Il contient aussi quelques pépites pour épater les experts pendant leur speed-run : le guide « Initiation à Unix; L'environnement de travail à l'Ensimag » disponible en version HTML ou en PDF. Son contenu est progressif, avec 80 manipulations, et couvre toutes les notions importantes !
- Le jeu de piste (Sur les machines de l'Ensimag) : une promenade ludique dans l'univers d'UNIX. La page décrivant le jeu de piste est ici : jeu de piste ;
Autres activités
- La documentation pour l'installation de Linux de votre machine personnelle. Vous verrez, l'eau est bonne et pas aussi profonde que vous le croyez ! La page décrivant l'install party est ici : Linux Install Party.
Déroulé du stage et progression conseillée
Voici une proposition de progression, suivant votre niveau d'expertise de départ. L'important dans ce stage est de découvrir jusqu'où vous avez tout compris et de faire quelques pas de plus pendant les séances.
Minimum vital, niveau débutant
Numéro de séance (2h) | 1 | 2 | 4 | |
---|---|---|---|---|
Chapitre du poly à terminer | 1 | 5 | Éditeurs | 10 |
- En parallèle de cette lecture, suivez-le jeu de piste ;
Si vous terminez plus vite, nous vous conseillons de passer du temps à apprendre à vous servir de Linux, après l'avoir installé sur votre machine perso (installation de logiciels, configuration, notamment du VPN) ; Faire le mini-tutoriel Premiers pas avec Visual Studio Code ; Lire la page Trucs et astuces Unix (il y a quelques redites avec le guide, mais ça serait dommage de passer à côté !) ; Parcourir les pages des outils numériques à l'Ensimag.
Niveau Intermédiaire
- Faire les deux jeux de piste pour vérifier que vous avez atteint le niveau attendu
- Configurer votre Thunderbird (cf. chapitre 3 du guide pour les informations)
- Apprendre par cœur la commande qui compte le nombre de vos fichiers à partir du répertoire courant INDISPENSABLE SI VOUS UTILISEZ VSCODE
1
du -hs --inodes * .[^.]* ..?* | sort -h
- Parcourir le wiki des BuBus ;
- (Séance 3) S'initier à l'éditeur Vim en lançant
vimtutor
; - (Séance 3) S'initier à l'éditeur Emacs en lançant son tutoriel dans son menu Help ;
- S'inscrire dans TEIDE, le service de rendu de TP de l'Ensimag, et y rendre un fichier quelconque (cette fois-ci, c'est juste pour s'entraîner, les prochaines fois seront notées !).
Experte ou expert qui s'ignore et qui aurait dû faire les ateliers
Éditeurs universels (Séance 3, pour tout le monde)
Le but de cette séance est d'acquérir la compréhension commune de ce que regroupe l'activité d'édition de texte. Le vocabulaire, les codes culturels, sont centraux dans la plupart de vos activités.
Vous allez apprendre à utiliser les deux éditeurs universels ultra-connus, Vim et Emacs, très répandus et libres. Ils sont plus explicites sur ce qui est propre à l'éditeur et ce qui est à l'extérieur, chacun à sa façon. Pour garder la liberté de choisir le bon outil au bon moment, il faut connaitre le nom des outils.
Les racourcis d'Emacs et Vim/Néovim sont partout dans vos autres logiciels, en commençant par votre shell. Ils fonctionnent tous les deux dans un terminal texte, ce qui vous servira lors du travail à distance (avec Ssh). Ils ont une communauté forte qui les développe depuis plusieurs décennies. Ils sont utilisés, communautaires et libres.
VS Code sera-il toujours là pour vous ?
Si le futur ressemble au 40 dernières années de l'Informatique, non. Liste de ces précédécesseurs à la mode à l'Ensimag entre 2000 et 2025: nedit, netbeans, gedit, eclipse, sublimetex, atom. En gros, à la mode 4 à 5 ans. VS Code n'est pas entièrement libre et n'est pas développé par sa communauté. Il dépend de la volonté de Google (pour Electron, l'affichage) et de Microsoft (pour les 2 millions de lignes de Typescript de l'éditeur, hors affichage). L'arrêt peut être rapide (si Google est forcé de vendre Chrome par exemple). L'exemple le plus récent est Atom, l'éditeur de Github, qui était celui à la mode, avant le rachat de Github par Microsoft.
- 30 minutes: Faire le début du tutoriel de Vim (en anglais) en lançant la commande
vimtutor
(ou si vous avez lancénvim
, taper:Tutor
) - 30 minutes: Faire le début du tutoriel d'Emacs en lançant le tutoriel (en français, ou une autre langue) dans son menu Help.
Préparation de la Linux Install Party
- Sauvegardez vos données ! Indépendamment de la LIP, plusieurs disques et SSD de la promo vont physiquement tomber en panne dans l'année !
- Sauvegardez vos données ! Chaque fois que vous manipulez vos données, et ce sera le cas pendant la LIP, vous n'êtes pas à l'abri d'une fausse manœuvre, incompréhension, d'ignorer un avertissement, voir de cliquer un petit bouton dangereux de Windows, sans confirmation ni avertissement, ce qui lui donne l'air bien inoffensif (Bouton de conversion BIOS-GPT, je pense à toi), etc.
- Identifiez votre matériel et votre système
- Désactiver Bitlocker sous Windows. En 2022 et 2023, il est activé sur 15% des laptop de la promo. Le désactiver prend de 10 à 40 minutes. Le risque majeur est de rester coincé sans pouvoir lire votre disque même pour des actions bénignes. Vous pourrez le remettre après la LIP.
- Faire de la place pour Linux (au moins 50-70 Gio). Nous ferons la partition pendant la LIP, mais il faut de la place sur le disque.
- Apprendre à démarrer votre UEFI/BIOS
- Sauvegardez vos données !_
Pour creuser plus loin dans les prochains mois
Quand vous saurez utiliser GNU/Linux couramment (terminal, commandes de bases), n'hésitez pas à faire ces quelques tutoriaux, surtout le premier (HOME).
Certains sujets se recouvrent.
Atelier HOME
Le sujet concerne votre HOME, la compilation d'un exécutable et son installation dans votre HOME, et une configuration multi-logiciels complexe
Atelier Machine virtuelle et SSH
Le sujet traite de la mise en place d'une machine virtuelle pour y faire tourner un logiciel complexe (Jami)
Atelier Conteneurs
Le sujet vous fait faire une image de conteneur permettant d'exécuter trois logiciels rigolos d'un environnement GNU Linux/Unix
Les logiciels
Une des forces des distributions GNU/Linux est la grande facilité d'installation et de maintenance des logiciels. Contrairement aux ''stores'' (Android, IOS, MS Store, etc.) dans lequel chaque logiciel ''vit'' isolé dans son silo, les logiciels libres de votre distribution forment un tout et sont gérés globalement simultanément.
- Compiler et installer à la main chez vous sur votre compte Ensimag
Puis, dans une VM d'une Debian Live (il faut être administrateur) * les paquets logiciels, avec dpkg * les gestionnaires, avec apt * les gestionnaires de binaires multi/distributions avec snap * les entrepôts de logiciels avec guix
Programmation Bash
Le but est d'écrire un générateur de galeries d'image pour le web, en Bash. Vous lancez le script en lui donnant un répertoire de départ contenant les images et un répertorie d'arrivée où le script créera les pages web en HTML, les vignettes des images et les images elles-mêmes.
- Programme shell générant une page HTML « galerie d'images »: le sujet
- Squelette BONUS pour démarrer le TP : le code de départ
- Exemples de pages HTML et de galeries d'images : ./tpl/exemples-html/
- Quelques exemples de scripts shell qui peuvent vous aider : ./tpl/exemples-shell/
- La page Erreurs fréquentes en Bash (dans les scripts shell).
SSH & Co
Le but de ce TP est ici de manipuler GNU/Linux à distance. Il permet de travailler le terminal, la gestion des processus et des fichiers (distants).
Processus et fichiers dans un Linux moderne
Dans un Linux moderne, il existe de nombreuses façons de lancer des processus autrement qu'en utilisant les capacités classiques du système (shell, icônes, menus). Depuis 20 ans, Linux est très en pointe sur ce domaine, ce qui explique en partie sa dominance dans le ''Cloud''. Dans ce TP, on utilisera
- Les machines virtuelles (VM), avec qemu. Cela permettra d'avoir un système dans lequel vous serez administrateur, pour les points suivants.
- Les conteneurs, avec docker
- Les prisons, avec firejail
-
Les surcouches généralisées (''overlay'') avec guix