Ensimag 1A (niv L3.) - Unix Avancé - Bienvenue et Bienvenu ! ✨
Bienvenue sur la page du cours d'UNIX avancé ! Vous trouverez ici toutes les ressources nécessaires pour les séances de TP, ainsi que quelques documents annexes permettant d'approfondir certains concepts.
Buts pédagogiques 🞋
Cet enseignement est construit pour vous apprendre les fondamentaux des systèmes d'exploitations, en les pratiquant. Cette deuxième partie de janvier traite des aspects plus avancés qui demandent d'avoir déjà un minimum d'expérience.
⛏ Les bases creusées dans l'ensemble des TP sont les mêmes pour tout le monde. Les sujets sont longs afin d'occuper les plus rapides pendant la totalité des TP. Les aspects les plus importants sont au début. Ils devraient être suffisamment détaillés pour ceux qui souhaiteront les terminer en autonomie.
- automatiser votre travail avec
Bash
, le langage de votre shell dédié à la manipulation des processus et des fichiers, les deux concepts centraux des systèmes d'exploitations. Cette partie est celle qui reviendra constamment dans vos études et votre carrière. - Un fichier contenant du texte est l'un des piliers de la
programmation informatique. Ces fichiers évoluent depuis leur
création, puis pendant leur utilisation qui peut durer plusieurs
décennies. Gérer l'histoire de vos fichiers est
incontournable. Gérer des contributions se comptant en dizaine de
milliers pour chaque version, a conduit le créateur de Linux
(Linus Torvalds) à concevoir l'outil le plus utilisé pour cela
aujourd'hui et qui est
Git
. Le point fondamental des systèmes distribués que nous essayons de vous montrer ici est que les serveurs web centraux (gitlab, github) ne sont qu'accessoires. L'information est dupliquée partout. - Une force d'Unix est la capacité des outils classiques (le plus
connu est
sed
) à manipuler automatiquement des textes, à la fois dans les contenus, et dans les noms, des fichiers. Le concept central ici sont les expressions régulières (regexp) qui servent à reconnaitre des textes et à en extraire ou substituer des parties. - Vos processus ont un environnement. Il définit dans quelle langue ils devraient vous parler, ou l'heure locale, mais aussi des aspects informatiques primordiaux, comme la notion de répertoire courant, les bibliothèques dynamiques partagées qui seront chargées à la demande, quels logiciels seront lancés par votre shell, etc. Comprendre que chaque processus peut voir le monde différemment des autres est une première ébauche de la notion de contextes d'isolation [Alain Tchana et al, ACM APSys'23], qui reviendront notamment avec les images virtuelles de l'informatique dans les nuages (Cloud, ☁).
Enseignantes et enseignants de la partie avancée 🎓
- Olivier ALPHAND
- Danilo CARASTAN
- Grégory MOUNIÉ (responsable)
- Lucie MULLER
- Pierre NEYRON
- Frédéric PÉTROT
- Pierre RAVENEL
Stage Unix de rentrée (séances de septembre)
Si vous en avez besoin, les supports de cours du stage Unix de rentrée sont disponibles à cette adresse: Stage Unix de rentrée
Les 5 séances (5*1h30) ✨
Séance 1 et 2 : Les shell-scripts « pas à pas »
Le but de ce sujet est de vous permettre de maîtriser l'automatisation de la manipulation de vos fichiers et de vos processus.
Séance 3 : Git, Introduction, Branches, etc. « pas à pas »
Ce TP vise à vous faire maîtriser les bases de Git, l'outil de gestion de l'historique de vos fichers textes (programmes, scripts, rapport LaTeX, etc.).
Séance 4 : Les variables d'environnement « pas à pas »
Ce TP court discute de l'environnement que perçoivent les processus et de leurs façons d'y réagir. Il donne quelques clefs importantes sur la configuration des processus. Cette configuration est sporadique, mais avec de grands pouvoirs viennent de grandes responsabilités 🕸, et des bugs pénibles si vous ne comprenez pas ce qu'il se passe.
Séance 5 : Les expressions régulières « pas à pas »
Pour pouvoir manipuler du texte, il faut pouvoir le décrire. Pour que cette description soit exprimable par un humain et manipulable par un ordinateur, le plus simple est qu'elle soit exprimée sous forme de texte. Ce TP introduit le langage des expressions régulières.
BONUS/ARCHIVES : Initiation à l'outil « make » et aux « Makefiles »
Si vous avez tout terminé, vous devriez faire cette introduction aux Makefiles:
- Introduction aux Makefiles par l'exemple : ./archive_seance_makefile/make.pdf
- Les exemples utilisés dans le document : ./archive_seance_makefile/expl-make.tar.gz
BONUS/ARCHIVES : Installation d'une VM Linux « pas à pas » (avec qemu)
- Sujet : Installer Linux (dans une VM)
Evaluation de la partie avancée
Il n'y a pas d'évaluation à proprement parler. Néanmoins, les concepts sous-jacents sont présents dans la grosse moitié de vos cours où il y a un ordinateur. N'hésitez jamais à poser des questions aux enseignants si vous ne comprenez pas quelque chose. C'est le moment.