Linux est un système d'exploitation Qu'est ce qu'un système d'exploitation ? L'histoire de Unix La Philosophie d'Unix L'architecture de Linux Qu'est ce qu'un système d'exploitation ? C'est un programme qui sert d'intermédiaire entre le matériel et l'utilisateur : - Il masque la complexité (grandissante) de fonctionnement du matériel - Il permet le partage des ressources - Il protège l'accès aux ressources Exemples de systèmes d'exploitation : OpenBSD ● FreeBSD, NetBSD ● Mac OS 8, 9,..., X.3 ● BeOS ● Windows 2000, XP ● Solaris (Sun) ● AIX (IBM) ● HP-UX (HP) ● --> Sont des “OS” (Operating Systems ou Systèmes d'exploitation) Histoire de Unix ● ● ● Né en 1969 dans les laboratoires d’AT&T créé principalement par Ken Thompson et Dennis Ritchie. Les trois améliorations majeures qu'apportait Unix : l'interactivité, l'échange des données et le multiusagers. La philosophie d'Unix : ● ● ● Tout est fichier Chaque programme fait une seule chose, mais le fait bien Faire des programmes qui peuvent travailler ensemble Et Linux ? ● C'est un Logiciel Libre ● Apparu en 1991 Linus Torvalds (LInux is Not UniX ● ● ● Issu d'une communauté de développeurs (sous sa forme actuelle) En perpétuelle mutation : “Linux is a process” --Yann Murdock (fondateur du projet Debian) Mais Linux seul ne sert pas à grand chose : ce n'est que le “noyau”. Il manque toutes les applications... Avantages de Linux : ● ● multi-tâche et multi-utilisateurs préemptif ( d'origine pour le noyau 2.6.x, patch pour 2.4.x) ● robuste, haute disponibilité ● sécurité “ouverte” : le code source est disponible ● ● une grosse partie de l'Internet fonctionne grâce à Linux et/ou les OS de type BSD. pas d'impératifs commerciaux (une distribution Debian “sort” quand elle est prête :-) ) Inconvénients de Linux ● ● ● ● Non uniformité d'une distribution à l'autre : frein pour le développement d'applications commerciales manque de convivialité, ce qui fait passer Linux pour un système de “spécialistes” pas de circuit commercial (ou très peu), mais les choses changent vite en ce moment la documentation est gigantesque, mais pas toujours “organisée” Architecture Unix : les couches d'interaction ● ● ● Aucun programme n'utilise la machine (le "hardware") directement. Il doit passer par le noyau qui gère toutes les interactions avec l'ordinateur, ceci est fait par l'intermédiaire d'appels systèmes ("System Calls"). L'exécution des applications ou des commandes par l'usager se fait par l'intermédiaire de l'interpréteur de commande ou du système de fenêtre ("Windowing System"). Appels systèmes : Les demandes de service faites au système d'exploitation sont faites à l'aide des appels systèmes (“OS calls” ou “System calls”). Les services demandés peuvent : ● contrôler l'execution d'un processus ● faires des accès et de la gestion sur le système de fichiers ● faire et contrôler des accès réseau ● créer et gérer de l'espace mémoire ● envoyer et recevoir des messages entre processus ● gérer ou s'informer sur l'état du système ● contrôler des permissions d'accès... L'interpréteur de commandes : ● L'utilisateur peut faire exécuter des commandes, de manière interactive, par le shell Syntaxe : nom_de_la_commande [- option(s)] [liste d'arguments] ● ● ● ● Une commande est formée d'une suite de "mots" séparés par un ou plusieurs séparateurs. N.B. : voir IFS --> man bash Un mot est constitué d'une suite finie de caractères et qui ne contient pas de séparateurs. Un séparateur du shell est soit un espace, soit une tabulation ou soit un caractère défini par l'utilisateur. Le "Retour Chariot" termine une ligne de commande. Le système de gestion de Fichiers <<Tout est fichier>> ● ● Les informations (données, programmes, images, courriers...) sont stockées dans des fichiers qui sont enregistrés dans des catalogues appelés répertoires (directory). Structure de données d'UNIX a la forme d'un arbre inversé racine / / /usr /usr/bin /home /var Arborescence : ● un point d'entrée appelé racine (root) et noté / (slash) ● des répertoires (noeuds) ● des fichiers constituent les feuilles de l'arbre Types de fichiers : 1) les fichiers ordinaires, qui contiennent des données 2) les répertoires, qui contiennent une liste de références à d'autres fichiers Unix 3) les fichiers spéciaux : pilotes de périphériques, sockets... 4) les liens symboliques Remarque : la vision uniforme de l'arborescence est possible grâce à la notion d'“inode” Inode = descripteur associé à chaque entrée et contenant le nom du propriétaire, les droits, sa taille, différentes dates + des attributs....