L'objectif de ce cours est l'initiation aux principes du logiciel libre et aux processus métiers qui en découlent. Au delà de la prise en main du système d'exploitation, on cherche a sensibiliser les étudiants aux méthodes qui permettent d'atteindre des objectifs de qualité dans le développement logiciel. Ce travail de sensibilisation est essentiel pour que les étudiants puissent conduire des démarches de choix de solutions adaptées aux contextes professionnels très variés qu'ils seront amenés à rencontrer durant leur future carrière.
Comme il s'agit d'un cours centré sur l'administration système, on se concentre sur l'utilisation d'un système unique connecté à l'Internet. La configuration de cet accès réseau est présentée de façon très succincte. Le système étudié obtient tous ces paramètres réseau automatiquement via le service DHCP.
Ressource en ligne : Exploration GNU/Linux - Séance 1.
Présentation de l'historique du développement des systèmes Unix et du logiciel libre.
Définitions de base sur l'architecture d'un système d'exploitation. Présentation du modèle en 3 couches : kernel, shell et application.
Présentation des 5 fonctions d'un système Unix et identification des fonctions de base du noyau Linux. Caractérisation des grandes évolutions des sous-systèmes du noyau Linux.
Identification de quelques projets phares du logiciel libre. Les services Internet majeurs allant du service de noms de domaines aux plateformes du Web 2.0.
Présentation des distinctions entre les grandes familles de licences libres.
Définition de la notion de distribution. Répartition des rôles entre publication de code source dans un projet amont, distribution de paquets de code binaire et processus d'assurance qualité. Modélisation des relations entre utilisateurs, mainteneurs de paquets et développeurs amont.
Présentation des outils et méthodes de développement usuels d'un projet de logiciel libre.
Ressource en ligne : Exploration GNU/Linux - Séance 2.
Identification des caractéristiques matérielles propres à une unité centrale de serveur.
Présentation des différentes étapes de l'installation d'un système d'exploitation.
Introduction aux stratégies de partitionnement en fonction de l'usage d'un système
Première présentation de l'arborescence d'un système GNU/Linux.
Première présentation de la gestion des paquets sur le système Debian GNU/Linux.
Ressource en ligne : Exploration GNU/Linux - Séance 3.
Présentation des caractéristiques des gestionnaires graphiques sur les systèmes GNU/Linux et autres.
Identification des bibliothèques et des chaînes de développement associées aux gestionnaires graphiques.
Introduction aux outils de gestion de paquets des systèmes issus des branches BSD et GNU/Linux. Caractérisation des différences et des fonction de qualité de service.
Identification des éléments constitutifs d'un paquet : codes binaires, scripts, configurations types, balises de description et indicateurs de qualité.
Ressource en ligne : Exploration GNU/Linux - Séance 4.
Présentation des caractéristiques du shell Bash. Introduction aux manipulations de base sur la ligne de commande.
Étude d'un premier script et exploration des variables d'environnement su shell.
Introduction à la gestion des processus. Présentation des commandes usuelles de manipulation des processus.
Initiation à la gestion des droits sur les objets du système de fichiers. Présentation du masque des permissions sur les répertoires et les fichiers.
Compilation d'une application à partir de ses sources. Présentation des outils GNU usuels de compilation d'un logiciel libre. Caractérisation des dépendances entre bibliothèques et code source. Associations entre bibliothèques fournies sous forme de paquet et code source compilé localement.
Ressource en ligne : Exploration GNU/Linux - Séance 5.
Gestion et personnalisation des comptes utilisateurs. Identification des paramètres utilisateurs d'applications.
Présentation du rôle des identifiants uid et gid. Caractérisation de l'appartenance à un groupe système.
Introduction à la journalisation système et à son importance dans l'administration système. Étude de la configuration du service syslog.
Présentation du service de planification des tâches cron.
Ressource en ligne : Exploration GNU/Linux - Séance 6.
Étude des étapes du processus d'initialisation du système d'exploitation : BIOS, noyau, processus init et runlevels.
Présentation du rôle du gestionnaire d'amorce bootloader.
Identification des différentes versions de noyau sur un même système.
Caractérisation des différences entre les espaces mémoire noyau kernelspace et utilisateur userspace.
Introduction aux niveaux de démarrage et au contrôle sur les conditions d'exécution d'un service (daemon) sur le système.
Présentation des fonctions de reconnaissance des composants matériels et du chargement automatisé des modules de pilotage des ces composants.
L'évaluation est individuelle. Chaque étudiant doit répondre à un questionnaire en ligne d'une quarantaine de questions pendant environ vingt minutes et réaliser une série de tâches d'administration systèmes pendant une durée maximum d'une heure et demie. Tous les résultats des manipulations pratiques doivent être consignés dans un fichier texte qui est relevé en fin de séance.
Pendant l'évaluation, l'accès à l'Internet est coupé et seuls les miroirs du gestionnaire de paquets sont accessibles.
Le seul document autorisé est une feuille A4 recto/verso manuscrite non photocopiée.
La note sur vingt est obtenue à partir des résultats du questionnaire qui comptent pour 40% et des résultats des manipulations pratiques qui comptent pour 60%.
Vous êtes ici :