[inetdoc.LINUX]
http://www.linux-france.org/prj/inetdoc
Exploration GNU/Linux - Séance 1
Historique Unix, GNU et Linux
Définitions et Fonctions d'un noyau
Projets et Méthodes Open Source
Philippe Latu
philippe.latu(at)linux-france.org
IUT 'A' Paul Sabatier - STRI
$Id: explore.seance.1.mgp 1350 2008-11-24 22:43:21Z latu $
(page 1)
(2/40)
Présentation
- Fonctions et Responsabilités depuis 1992
- Enseignant et Chargé de mission à l'IUT 'A' Paul
Sabatier
- Responsable d'exploitation systèmes & réseaux
- Expérience GNU/Linux
- 1996 - premiers serveurs GNU/Linux IUT
- Services Internet : dns, smtp, http
- 1997 - documentation RNIS/ISDN Linux France
- 2000 - projet [inetdoc.LINUX]
- Expérience Cisco Networking Academy
- 2001 - instructeur CCNA
- 2005 - CCNA CCAI Certified 640-801
- 2008 - instructeur CCNP BSCI
(page 2)
(3/40)
Progression pédagogique STRI
- Initiation au système GNU/Linux
- L3 - semestre 1 - 19 heures
- Administration système en réseau
- L3 - semestre 2 - 24 heures
- Interconnexion réseau
- M1 - semestre 1 - 24 heures
- Sécurité des systèmes d'information
- M2 - semestre 1 - 24 heures
- Ressources en ligne
(page 3)
(4/40)
Objectifs
- Installer et utiliser un système GNU/Linux
- mode console et mode graphique
- Exploiter les ressources documentaires
- Rechercher et choisir des (services|applications)
- Maintenir une collection de paquets
- Consulter les messages systèmes
(page 4)
(5/40)
Planning
- Séance 1 - Initiation au système GNU/Linux
- Présentation progression
- Concepts Unix, GNU/Linux, projets Open-Source
- Paquets applicatifs & Distributions
- Méthode de travail
- Séance 2 - Installation du Système GNU/Linux
- Partitionnement disque dur
- Installation du système de base
- choix des paquets d'applications
(page 5)
(6/40)
Planning (suite)
- Séance 3 - Configuration du Système GNU/Linux
- Interface graphique KDE
- Gestion des paquets
- Droits sur les fichiers et répertoires
- Séance 4 - Administration premier niveau
- Ressources du shell BASH
- Compilation des sources d'une application
- Systèmes de fichiers et montages
(page 6)
(7/40)
Planning (suite)
- Séance 5 - Services du systèmes GNU/Linux
- Gestion et personnalisation des comptes utilisateurs
- Messages systèmes (syslog)
- Exécution périodique (cron)
- Séance 6 - Initialisation du système GNU/Linux
- Lancement du système
- Niveaux de démarrage
- Détection des périphériques
- Ajout/retrait de pilote de périphérique
- Évaluation
- Questionnaire à choix multiple + test d'aptitude pratique
(page 7)
(8/40)
Concepts Unix & GNU/Linux
- Pourquoi étudier le logiciel libre ?
- Histoire cohérente et continue
- incompatible avec le marketing propriétaire !
- Alternative et analyse comparative critique
- transparence de la démarche qualité
- Acquisition de méthodes et de compétences originales
- Autonomie et indépendance
- maîtrise des coûts
- conception d'architectures originales
(page 8)
(9/40)
Concepts Unix & GNU/Linux
- Objectifs.
- Identifier les fonctions de base des systèmes Unix
- Connaître les étapes majeures du développement
des
systèmes Unix
- Différencier les fonctions du système GNU/Linux
- Argumenter sur le choix des différentes licences
(page 9)
(10/40)
Concepts Unix & GNU/Linux
- 5 fonctions de base des systèmes Unix
- Fonctionnement multi-tâches
- exécution simultanée de plusieurs programmes
- Fonctionnement multi-utilisateurs
- système partagé entre plusieurs utilisateurs
- Portabilité
- utilisation des mêmes outils sur différentes machines
- Applications
- outils, services Internet, etc.
- Partage des bibliothèques de développement d'applications
- optimisation des développements en partageant le code
(page 10)
(11/40)
Concepts Unix & GNU/Linux
(page 11)
(12/40)
1969 - AT&T = Système V
- Unix est un système «accidentel»
- Laboratoires Bell d'AT&T
- Réglementation U.S. antitrust avant 1980
- Vente de logiciel interdite pour AT&T
- AT&T a fourni des licences pour le code source
- Utilisation du nom Unix autorisée
- Unix propriétaires
- Segmentation & parts de marché captives
- Versions Unix incompatibles
- Discontinuités nuisibles à la croissance d'Unix
(page 12)
(13/40)
1973 - Berkeley University = BSD
- Branche BSD lancée à partir d'une licence AT&T
- Accès libre au code source
- Nombreuses améliorations
- Dynamique de développement
- Services de communication réseau de l'ARPANET
- Branche système V d'AT&T dépassée par les
développements universitaires
- Université de Berkeley attaquée par AT&T
- Procès entre 1984 et 1994
- Éclatement de la branche BSD sous la pression judiciaire
- FreeBSD, NetBSD et OpenBSD
(page 13)
(14/40)
1984 - GNU = Not Unix
- Projet lancé par Richard Stallman (MIT/Emacs)
- 2 objectifs :
- Promouvoir le développement coopératif
- protéger les droits des développeurs
- licences GPL, LGPL et GFDL
- Fédérer les développements libres : applications
GNU
- Unix choisi comme modèle
- Fonctions de base déjà opérationnelles
- En 1990, pratiquement tous les éléments sont là
- chaîne de développement glibc, gcc, make
- Manque un noyau fiable
- Projet de noyau Unix libre sur machines Intel
- Linux de Linus Torvalds a comblé le vide
(page 14)
(15/40)
1991 - Débuts du noyau Linux (kernel)
- Développement initié par Linus Torvalds
- «divergences de vues» avec A.S. Tanenbaum
- Fonctions de base Unix plus quelques spécificités
- Fonctionnement multi-tâches
- Fonctionnement multi-utilisateurs
- Gestion de mémoire virtuelle
- utilisation RAM répétitive et étendue
- Système d'interconnexion réseau
- Mode protégé
- contrôle des accès mémoire
- Bibliothèques partagées
- code partagé par les applications
(page 15)
(16/40)
Noyau Linux : OS
(page 16)
(17/40)
Noyau Linux : architecture
(page 17)
(18/40)
Noyau Linux : Ordonnanceur/Scheduler
- 3 domaines ou types de tâches
- Domaine temps réel
- Contraintes de temps élevée
- Garantie sur la fréquence d'exécution
- Priorité la plus élevée
- Domaine Entrées/Sorties
- Temps consommé à attendre les
périphériques
- Domaine CPU
- Consommation en puissance de calcul
- Tranche temps (time slice)
- Durée d'exécution d'un processus / processeur
- Préemption
- Interruption d'un processus
par un autre de priorité plus élevée
(page 18)
(19/40)
Noyau Linux : débuts
- 1994 - 1996 = Série 1.0
- Extension du catalogue des processeurs
- Alpha, Sparc, Mips et PowerPC
- 1996 - 1999 = Série 2.0
- Reproduction des fonctions Unix de base
- Support de nouveaux processeurs
- Plus de pilotes de périphériques
- Interconnexion réseau 1ère génération
- 1999 - 2001 = Série 2.2
- Stabilisation des fonctions Unix de base
- Toujours plus de pilotes de périphériques
- Interconnexion réseau 2ème génération
(page 19)
(20/40)
Noyau Linux : 2001 - 2003 = Série 2.4
- Nouveautés orientées grands systèmes
- Support de la répartition de charge
- Architectures multiprocesseurs SMP et NUMA
- Stockage : LVM & RAID
- Nombre de processus simultanés / taille mémoire RAM
- Services Web & transactionnels
- Support mémoire plus important
- RAM jusqu'à 64 GB et fichiers de taille > 1 To
- Support des systèmes de fichiers journalisés
- évolution ext2 (ext3), IBM Journalling Filesystem (JFS), SGI (XFS),
etc.
- Système d'interconnexion réseau original
- Traitements des flux réseaux modulaires et
génériques
- QOS, filtrage de trames et de paquets
(page 20)
(21/40)
Noyau Linux : 2001 - 2003 = Série 2.4
- Nouveautés orientées petits systèmes
- Memory Technology Devices
- accès mémoires ROM ou FLASH sur systèmes
embarqués
- Stockage équivalent disque dur
- Systèmes de fichiers CRAMFS
- Optimisation systèmes embarqués limités en RAM
- Bus I2O, USB, FireWire, etc.
- Multimédia
- vidéo, audio et systèmes de codage originaux
- Pour en savoir plus
- «Wonderful World of Linux 2.4»
(page 21)
(22/40)
Noyau Linux : 2004 - 200x = Série 2.6
- Les nouveautés orientées grands systèmes
- Complete Fair Queuing I/O scheduler
- Contrôle de priorité sur les E/S des processus
- Native POSIX Thread Library (NTPL)
- Partage des ressources entre processus
- O(1) process scheduler
- Affectation temps processeur / processus
- Non-Uniform Memory Access (NUMA)
- Optimisation temps d'accès mémoire sur systèmes
multiprocesseurs
- Les nouveautés orientées petits systèmes
- Intégration des travaux du projet uClinux
- Introduction de nouveaux processeurs spécialisés
- http://kernelnewbies.org/LinuxChanges
(page 22)
(23/40)
Noyau Linux : 2004 - 200x = Série 2.6
(page 23)
(24/40)
Licences logiciels libres
- Licence BSD = restrictions possibles
- Création de versions propriétaires autorisée
- Restrictions possibles sur les droits de redistribution
- Restrictions rarement appliquées dans les faits
- Licence GNU = Copyleft
- Copyright != Copyleft
- Principe de protection du Logiciel libre et des concepteurs
- Restrictions interdites sur les conditions de redistribution
(page 24)
(25/40)
Logiciel Libre : libertés des utilisateurs
- Usage des logiciels
- Étude du fonctionnement et adaptation
- Redistribution
- Amélioration et distribution de ces améliorations
pour le bénéfice de toute la communauté
(page 25)
(26/40)
Logiciel Libre : application du Copyleft
- 1. Appliquer un copyright sur le logiciel
- 2. Fixer les conditions de distribution
- Donner à tout utilisateur le droit
d'utiliser, de modifier et de redistribuer
le programme sans changer les conditions
de distribution
- Le code source et les libertés associées
deviennent légalement inséparables
(page 26)
(27/40)
Concepts Unix & GNU/Linux
- Quizz
- Qui est à l'origine de la branche Système V d'Unix ?
- Qui est à l'origine de la branche BSD d'Unix ?
- Quels sont les objectifs du projet GNU ?
- Qu'est-ce que Linux ?
- Qu'est-ce qui différencie les systèmes GNU/Linux
des systèmes propriétaires ?
- Qu'est-ce qui différencie les licences GNU et BSD ?
- Quel est le principe du copyleft ?
(page 27)
(28/40)
Projets Open Source : Objectifs.
- Identification des caractéristiques
d'un projet de logiciel libre
- Argumentation sur le choix
d'une application de logiciel libre
(page 28)
(29/40)
Projets Open Source
- Applications et systèmes Unix
- Mêmes évolutions
- Mêmes processus
- Mêmes méthodes
- Services Internet
- Plus grosse base installée de logiciels libres
- http://survey.netcraft.com
- Noms de domaines : bind
- Courrier électronique : sendmail, postfix
- Web: Apache
(page 29)
(30/40)
Projets Open Source
- Terminologie «Open Source»
- Plus que la simple diffusion du code source
- Libre redistribution
- Licence toujours distribuée avec le code
- Pas d'interdiction de vente/don
- Pas de limite sur le nombre de copies
- Travaux dérivés
- Modifications distribuées dans les mêmes conditions que
l'original
- Intégrité du code source de l'auteur
- Restrictions possibles sur la redistribution des correctifs
- Pas de discrimination
- Sur l'utilisateur
- Sur le domaine d'application
- Pas de contamination d'autres logiciels
- Licence sans restrictions sur d'autres logiciels associés
(page 30)
(31/40)
Projets Open Source
- Modèle de développement
- Même mode depuis plus de 30 ans
- Masse critique de développeurs / vie d'un projet
- Systèmes GNU/Linux | Unix
- Plus grande population de développeurs
- Modèle économique
- Modèles d'affaires pour les grands acteurs
- Situation délicate pour les sociétés moyennes
- Beaucoup de succès côté fondations
- Références
(page 31)
(32/40)
Projets Open Source
- Outils communautaires de travail coopératif
- Modèle de développement
- Dépôts de code
- Suivis de versions
- Suivis de bugs
- Fermes de compilation
- Répertoires de projets Open Source
- Mesures de qualité du développement
- notation des utilisateurs
- vitalité du projet
- popularité
- http://freshmeat.net/
(page 32)
(33/40)
Distributions
- Distributions GNU/Linux et BSD
- Canaux de diffusion du logiciel libre
- Distribution GNU/Linux = association
- Un noyau
- Plusieurs shells
- Coktail d'applications
- Composants distribués sous forme de paquets
- Code binaire exécutable
- Configuration type
- Gestion des paquets
- Principal enjeu dans la vie d'une distribution
(page 33)
(34/40)
Distributions
- 2 logiques s'opposent
- Vente = Publier
- Maximum de nouveautés en un minimum de temps
- Qualité = Garantir
- Cohérence
- Continuité
- Évolutivité
- Importance équivalente entre
- Expertise de la mise en paquet
- Choix de l'application
- Rôle essentiel du responsable d'un paquet
- Capitalisation des compétences d'exploitation
- Qualités humaines dans la coordination
- Démarche qualité lors des évolutions
(page 34)
(35/40)
Distribution : choix
- Deux critères essentiels pour l'exploitation
- Facilité d'adaptation
- Un contexte = une configuration
- On ne maîtrise pas la totalité des éléments du
système
- On s'appuie sur l'expérience des développeurs de
paquets
- Continuité lors des mises à jour
- Mises à jours ou corrections sans réinstallation
- Adaptation + évolution continue = garantie
- Continuité de service
- Haute disponibilité
(page 35)
(36/40)
Distribution : Debian GNU/Linux
- Contrat social Debian
- Règles à suivre pour garantir le logiciel libre
- Principes du logiciel libre selon Debian
- Définition des caractéristiques des logiciels libres
- Charte Debian
- Procédures qualité du projet
- Gestionnaire de paquets APT
- Synthèse de toutes les caractéristiques
- Continuité indépendante des versions
- Adaptabilité en séparant la configuration de
l'application
- Automatisation de la publication des correctifs de
sécurité
(page 36)
(37/40)
Distribution : Debian GNU/Linux
- Choix pédagogique
- Mille et une distributions spécialisées
- Très peu de distributions généralistes
- Debian GNU/Linux = modèle
- Transparence des processus
- Processus métiers difficiles à illustrer
- Coût d'accès au support
- Information cloisonnée
- Communauté réduite
(page 37)
(38/40)
Synthèse projets Open Source
- Logiciel libre présent pour longtemps
- Pas de modèle de développement supérieur
- «la cathédrale» vs. «le bazar»
- Projets Open Source
- Ressources humaines
- Associations sans équivalent propriétaires
- Tentatives de discontinuités = échecs
- Baromètre fiable de l'industrie
- L'Internet s'est construit avec le logiciel libre
(page 38)
(39/40)
Méthode de travail
- Préparation des séances de travaux pratiques
- Lire la présentation de la séance à venir
- Consulter le manuel d'installation
- Réviser les commandes essentielles d'Unix
(page 39)
(40/40)
Synthèse
- Étapes du développement des systèmes Unix
- Histoire «continue» sur plus de 30 ans
- Mémoire des évolutions
- Histoire + Mémoire = culture
- Par opposition à l'obscurantisme
- Compétences != «recettes de cuisine»
- Noyau Linux
- Laboratoire libre d'accès
- Coût d'acquisition important
- Capitalisation des connaissances
(page 40)