Aller au contenu

Ensimag 1A (niv L3.) - Systèmes Libres, pour les étudiants déjà indépendants - Bienvenue et Bienvenu ! ✨

Bienvenue sur la page du cours Systèmes libres, pour les étudiants déjà indépendants ! 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 partie traite des aspects plus avancés qui demandent d'avoir déjà un minimum d'expérience en GNU/Linux, en particulier une aisance suffisante avec un terminal UNIX (commandes, processus, hiérarchie de répertoire et de fichiers, etc.).

⛏ Les bases creusées dans l'ensemble des TP sont les mêmes que pour le cursus découverte. Les sujets sont très longs afin d'occuper les plus rapides pendant la totalité des TP. Les aspects les plus importants sont au début. Les sujets sont détaillés pour ceux qui souhaiteront les terminer en autonomie.

Les thèmes abordés:

  • 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. Pour les éditer efficacement en toute circonstance, il est important de bien comprendre les principales familles d'éditeurs de fichiers et ce qu'elles peuvent vous apporter.
  • Un fichier contenant du texte est l'un des piliers de la programmation informatique. Il peut servir plusieurs décénnies. Mais, même sur quelques jours, il est difficile de se rappeller les raisons de l'existence de chaque bout de code, et qui les a écrits. Gérer l'histoire de vos fichiers s'est automatisé dès les années 1970 (SCCS, 1972). Malgré la vingtaine de logiciels existant en 2005 (local, distant, centralisé, décentralisé, etc.), aucun ne pouvait gérer un flot de contributions se comptant en dizaine de milliers par mois. Cela a conduit Linus Torvalds (le créateur de Linux) à concevoir Git. Le point fondamental des systèmes distribués décentralisés que nous essayons de vous montrer ici est que les serveurs web centraux (gitlab, github) sont inutiles (mais pratique).
  • Une force de GNU/linux et autres 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 découverte et indépendant 🎓

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) ✨

Le programme du stage de rentrée 📅

Séances Indépendantes et Indépendants
1 (2h J1 matin) Login; Auto-positionnement; Thunderbird; Environnement; Guide & Jeu de piste; Pourquoi 'Systèmes Libres' ?
2 (2h J1 après-midi) Démo sur le terminal; terminal avancé en console: ssh, tmux; Vim & Emacs;
3 (2h J2 matin) HOME + varenv + regexp + ssh
4 (2h J2 après-midi) présentation de bash; bases de bash; bash avancés; galerie + mini server web
5 (2h J+7) Git

Séance 1

Voir la description de la séance sur la page du cours dans le circuit découverte.

Séance 2 : terminal avancé

Ce TP discute du terminal et de vos éditeurs de textes, vos deux principaux outils de travail sur un ordinateur.

Séance 3 : Les variables d'environnement « pas à pas », les expressions régulières

Environnement

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.

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.

Séance 4 : 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 5 : 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.).

Bonus/ARCHIVES

BONUS/ARCHIVES : Initiation à l'outil « make » et aux « Makefiles »

Si vous avez tout terminé, vous devriez faire cette introduction aux Makefiles:

BONUS/ARCHIVES : Installation d'une VM Linux « pas à pas » (avec qemu)