Présentation du système Linux


précédentsommairesuivant

I. Qu'est-ce que Linux ?

I-A. L'histoire de Linux

L'histoire de Linux a commencé en 1991 avec le début du projet personnel d'un étudiant finlandais, Linus Torvalds, qui crée le noyau d'un nouveau système exploitation.

Avant de parler de Linux il serait bon de parler un peu de l'histoire du noyau Unix qui a été conçu et mis en oeuvre dans les années 1960 aux Bell Laboratories sous l'impulsion de Ken Thomson et d'un petit groupe de chercheurs de ces laboratoires pour ensuite être publié en 1969 pour un usage interne à ces laboratoires. Le développement du langage C par Dennis Ritchie a permis l'écriture d'une version d'Unix dans ce langage de haut niveau et par conséquent portable a priori sur tout type de machine disposant d'un compilateur de ce langage. Certaines universités américaines comme Berkeley notamment s'y intéressent énormément. Les laboratoires Bell/ATT voyant Unix devenir de plus en plus populaire et utilisé décident d'en assurer eux-mêmes le développement.

A côté des versions "orthodoxes" développées à partir du noyau fourni par les laboratoires Bell (V7, System III, Xenix, Spix...), un certain nombre de systèmes Unix-oïdes ont été développés par différentes sociétés. Notamment les deux plus importantes :

  • Les versions que l'on peut rattacher à la souche Berkeley (version 4.2) ;
  • Les versions se voulant du standard System V défini par les laboratoires Bell.

Il est d'ailleurs très important de noter les efforts importants faits pour normaliser le système, que ce soit par la publication de cette norme System V ou par les grands constructeurs européens regroupés dans le "Unix-Open-Group" qui a publié un document de normalisation assez proche de celui des Laboratoires Bell. Par ailleurs, un certain nombre de travaux sont réalisés un peu partout dans le monde (Berkeley, Ultrix de Digital ou Spix de Bull) pour fournir des versions du système possédant à la fois les fonctionnalités de la version System V et celles de la version de Berkeley en intégrant en particulier à la première le mécanisme de socket de la seconde. Par ailleurs, il faut signaler les efforts réalisés en France dans le cadre du GIPSI (groupement d'intérêt public regroupant Bull, le CENT et l'INRIA) pour développer une version multiprocesseur du système.

Maintenant que nous connaissons en gros l'histoire du système Unix, il devient important de parler du projet GNU. C'est en 1983 que Richard Stallman a commencé le projet GNU dans le but de pouvoir créer des systèmes d'exploitation UNIX-oide libres. Dans le cadre de ce travail il écrit aussi la GNU General Public License (GPL). Petite anecdote intéressante sur GNU, depuis le début des années 1990 il existe un noyau GNU nommé Hurd qui n'a malheureusement pas réussi à attirer suffisamment d'attention de la part des développeurs.

Cette fabuleuse histoire se poursuivra par un autre projet de système d'exploitation libre dans les années 1980 qui est la Berkeley Software Distribution (BSD). Cela a été développé par Berkeley à partir de la 6e édition d'Unix d'ATT.

Vient ensuite en 1987 le système d'exploitation toujours Unix-oide, Minix, créé par Andrew S. Tanenbaum pour un usage scolaire. Le principal défaut de ce système d'exploitation était qu'une partie du code ne pouvait être modifié et redistribué. En outre Minix16bits n'est pas très bien adapté aux machines 32bits qui sont très populaires pour les ordinateurs personnels à l'époque. C'est principalement à cause des petits défauts de Minix que Linus Torvalds a décidé de commencer son projet qui deviendra l'un des noyaux les plus utilisés au monde de nos jours. Petite anecdote amusante d'ailleurs Linux a été compilé avec GCC (GNU C Compiler) sur Minix. Il faut savoir qu'au départ Linux n'était qu'un simple émulateur de terminal qu'il utilisait pour accéder au serveur Unix de son université : il voulait utiliser, indépendamment d'un quelconque système d'exploitation, des fonctions de son ordinateur que Minix ne prenait pas en compte. La toute première version de Linux (0.01) était sous la licence personnelle de Linus Torvalds, plus tard pour la version 0.99 elle fut mise sous GPL, pour devenir le noyau que l'on connaît actuellement.

I-B. Vue d'ensemble de Linux

A partir de maintenant le terme Linux et Unix seront utilisés non plus pour désigner un noyau mais le système d'exploitation tournant autour de celui-ci.

Le système Linux est un système multi-utilisateurs et multi-tâches. En tant que système d'exploitation, son rôle principal est donc d'assurer aux différentes tâches et aux différents utilisateurs une bonne répartition des ressources de l'ordinateur (mémoire, processeur(s), espace disque, imprimante(s), programmes utilitaires...) et cela sans intervention des utilisateurs; il prend totalement en charge ces utilisateurs et lorsque les demandes sont trop importantes pour être satisfaites rapidement, l'utilisateur le ressent par un certain ralentissement (qui peut être effectivement important, voire insupportable...), mais le système (en principe) ne se bloque pas.

Linux est par ailleurs un système de développement et les utilisateurs y ont à leur disposition un très grand nombre d'outils, pour la plupart assez simples à utiliser, leur permettant d'écrire, de mettre au point et de documenter leurs programmes (éditeurs, compilateurs, débogueurs, système de traitement de textes...). Les utilisateurs ont ainsi à leur disposition une boîte à outils bien garnie, le principal problème qui se pose à eux étant de savoir ce qu'elle contient exactement et à quoi sert chacun de ces outils !

En résumé, on peut dire que le système est composé de :

  • un noyau assurant la gestion de la mémoire et des entrées-sorties de bas niveau et l'enchaînement des différentes tâches ;
  • un (ou plusieurs) interpréteur(s) de langage de commandes; il existe en effet différents langages de commandes nommés Shell, le plus connu étant le Bourne Shell (du nom de son auteur), un autre étant le C-Shell développé à l'université de Berkeley et le plus répandu actuellement étant le Bash. Nous verrons dans ce tutoriel un cours de Bourne Shell et de Bash. Il est important de noter que, quelle que soit la version du langage de commandes utilisée, il s'agit d'un véritable langage de programmation possédant des instructions et surtout des structures de contrôle de très grande puissance ;
  • un système de messagerie assez complet (courrier, conversation en temps réel, journal de bord) ;
  • un grand nombre de programmes utilitaires dont évidemment un compilateur de langage C, des éditeurs, des outils de traitement de textes, des logiciels de communication avec d'autres systèmes Linux (ou autres), des générateurs d'analyseurs lexicaux et syntaxiques...

I-C. Quelques caractéristiques de Linux

I-C-1. Linux est fiable

L'écran bleu de Windows n'existe pas sous Linux. Les systèmes Linux et Unix peuvent fonctionner pendant des années sans échec (Windows aussi mais tout dépend aussi l'utilisation que vous en faites). L'équivalent des écrans bleu sur Linux se nomme Kernel Panic et est extrêmement rare et est à 99% du temps dus à une fausse manipulation de l'utilisateur (ce qui est très fréquent lorsque l'on ne maîtrise pas son fonctionnement par exemple avec une mauvaise manipulation d'une commande dangereuse comme rm). De nombreux utilisateurs de Linux n'ont jamais vu cette erreur. Et d'autres en voient fréquemment parfois même sans qu'ils y soient pour quelque chose.

Cette fiabilité est due à son noyau qui, d'après plusieurs études, contient bien moins de bogues que ses concurrents propriétaires. Ceci montre que les projets open sources sont généralement moins sources de bogues que les logiciels propriétaires. Mais attention extrêmement fiable ne veut pas dire 100%, des bogues existent toujours et vous ne serez jamais à l'abri, un jour peut-être, d'une mauvaise surprise.

Petit conseil par expérience, avant de toucher un quelconque fichier de configuration sous Linux il est IMPERATIF de sauvegarder quelque part le fichier d'origine et surtout avant de procéder à n'importe quel changement, soyez sûr et certain de ce que vous modifiez, sinon de graves conséquences sur le système seront inévitables et c'est donc ainsi que le système devient non fiable car vous avez créé une faille de sécurité, un bogue qui ne vous permettra plus de faire certaines choses, un plantage complet de la machine, un arrêt brutal de l'affichage, etc.

Il faut aussi savoir que les virus sont vraiment très rares sous Linux contrairement à Windows. Mais attention il existe malgré tout beaucoup de menaces sous Linux. Ceci est due au fait que les exécutables tel que vous les connaissez sous Windows n'existent pas sous Linux.

I-C-2. Linux fonctionne partout

L'efficacité de Linux et de tous les Unix-oïdes peut être utilisée sur pratiquement tous les ordinateurs même les plus vieux. Il en va de même pour beaucoup d'applications. Par contre, certaines applications peuvent recommander un certain taux de performance. Si jamais vous avez un vieux P.C. qui traîne, au lieu de le laisser à la poussière dans un coin, mettez-y Linux et vous pourrez recommencer à vous en servir.

Il faut savoir aussi qu'il existe maintenant ce que l'on appelle les live-CD qui sont intégrés à toutes (ou du moins quasiment toutes) les distributions Linux. Ceci vous permet d'avoir sur un CD à la fois le programme d'installation sur votre disque dur du système d'exploitation mais surtout (et c'est là l'intérêt du live-CD !!) d'utiliser Linux sans rien installer du tout sur votre disque dur.

Mais attention il y a des limites à cette possibilité, il faut savoir que l'utilisation d'un live-CD n'est pas faite pour une utilisation intensive de Linux (serveur, développement, etc.) vous ne pourrez d'ailleurs rien installer et les performances ne seront pas géniales vu que tout se passe non pas sur le disque dur mais dans la RAM. Le live-CD est donc fait pour une simple découverte du monde Linux c'est-à-dire se familiariser avec l'environnement de Bureau et comment on l'utilise par exemple. Une autre utilisation des live-CD est la possibilité d'effectuer des réparations ou des récupérations de données sur les disques durs qui, par exemple, ont un problème de boot.

I-C-3. Linux est gratuit

Vous pouvez télécharger Linux sur Internet et l'installer sur autant de machines que vous le voulez, ainsi que les applications. Il est possible aussi, pour beaucoup de distributions de commander le CD/DVD de la distribution. A noter aussi qu'il y a des distributions payantes mais ce sont des distributions réservées aux professionnels et entreprises.

Il faut savoir que ceci est dû au fait que le développement des distributions Linux est fait en open source. Par contre gratuit est un grand mot. Il faut savoir qu'il y a principalement quatre moyens d'acquérir une distribution Linux :

  • en la téléchargeant, ceci est totalement gratuit (sauf si vous comptez le prix de votre abonnement Internet) ;
  • en achetant un magazine spécialisé sur Linux (ces magazines contiennent toujours une distribution sur le CD qui est fourni avec) et ainsi vous payez le prix du magazine ;
  • en achetant la distribution dans un magasin spécialisé et dans ce cas, vous payerez le prix proposé par le magasin en question ;
  • en commandant un CD/DVD à l'éditeur de la distribution, ici par contre cela peut être gratuit ou bien alors payant suivant l'éditeur et la manière dont vous faites votre commande.

I-C-4. Le support de Linux

Linux est aujourd'hui le système regroupant une grosse communauté. Tout ça grâce à Internet. Vous pouvez obtenir de l'aide de plusieurs dizaines de milliers d'utilisateurs Linux et programmeurs bénévoles sur Internet. Le support est gratuit (pour les distributions non professionnelles).

Je pense que le site de developpez.com en est un très bon exemple. Mais il y en a bien d'autres, il suffit de questionner un peu votre moteur de recherche préféré. Par contre, il faut aussi aimer l'anglais, car ce qu'il faut savoir, c'est que la plupart des tutoriels ou articles concernant Linux sont malheureusement dans la langue de Shakespeare, désolé pour ceux qui ont cette langue en horreur.

Par contre pour ce qui concerne les distributions professionnelles en général, c'est dans un forfait mais il se peut aussi que le support soit offert si vous êtes partenaire de l'entreprise qui développe la distribution. Mais là aussi, suivant l'entreprise à laquelle vous achetez votre distribution, il se peut qu'il faille savoir parler anglais pour discuter avec la personne chargée du support ou bien pour lire les aides qu'elle fournit.

Eh oui, si vous ne l'avez pas encore compris, si vous voulez travailler dans l'informatique il est impératif de savoir parler anglais.

I-C-5. Linux n'a pas de registre

Lorsque Microsoft a introduit le registre dans Windows 95 il a été applaudi pour ce mécanisme qui a vocation d'éliminer la gestion d'un système avec les fichiers .ini de Windows 3.x. Linux, lui, est géré par de simples fichiers de texte brut pour sa configuration.

Il faut quand même dire que c'est beaucoup plus pratique mais aussi plus dangereux car on est moins à l'abri d'une fausse manipulation. Par contre, le fait d'instaurer un fichier de configuration pour chaque partie ou programme est quand même très sympathique car l'on sait exactement ce que l'on essaie de modifier et on n'a pas ainsi cette hiérarchie catastrophique du registre Windows où on ne sait jamais où se trouve ce que l'on cherche.

Mais je vous rassure pour beaucoup de programmes, ainsi que pour le système d'exploitation lui-même, il existe des outils permettant d'automatiser ou de fortement simplifier la configuration de ceux-ci. De cette manière vous ne serez pas obligé d'apprendre une notation compliquée qui caractérise très souvent les fichiers de configuration Linux. Par contre, ces outils dans la majeure partie ne permettent pas d'instaurer des paramètres de configuration très poussés il faudra donc à ce moment précis vous y mettre avec vos petites mains.

I-C-6. Redémarrage du système

La plupart des changements de configurations de Windows requièrent un redémarrage (mise à jour comprise), cela peut être vite embêtant lorsque la machine est un serveur. Sous Linux rares sont les changements qui requièrent un redémarrage, ceci permet d'effectuer des changements sur votre serveur sans affecter leurs utilisateurs. Quand je parle de mise à jour je parle bien évidemment de mises à jour proposées par votre distribution.

Il faut savoir que ceci est dû à la non-utilisation de registre et que sous Linux ce sont seulement des fichiers qui sont modifiés et donc un simple redémarrage des services suffit. Alors que sous Windows, les mises à jour consistent les trois quarts du temps à modifier le registre et comme la prise en compte n'est pas dynamique, il faut le redémarrage du système pour que les nouveaux paramètres soient pris en compte. En général sous Linux seules les mises à jour du noyau requièrent un redémarrage du système.

Il faut bien avouer que, vu la fréquence des mises à jour sous Linux tous les jours, contrairement à Windows, une fois par mois, s'il fallait redémarrer son ordinateur tous les jours cela deviendrait très vite un véritable calvaire.

I-C-7. L'interface graphique

Windows a toujours été fourni avec une interface graphique. Pourtant certains serveurs (Web, fichiers, BDD,...) n'ont aucunement besoin d'une interface graphique et de cette façon des ressources sont occupées pour rien. L'interface graphique Linux (X Window) est un sous-système facultatif que vous pouvez choisir d'utiliser ou non. En outre, vous pouvez démarrer et arrêter l'interface graphique quand vous le souhaitez sans avoir à redémarrer le système et sans avoir un quelconque effet sur les programmes en cours d'exécution.

Il faut savoir que sous Windows il n'existe qu'un seul environnement de bureau possible par défaut (on peut en installer d'autres mais ils sont très peu). Alors que sous Linux, il en existe plusieurs (KDE, GNOME, XFCE, etc.). On peut les combiner, c'est-à-dire choisir à l'ouverture de sa session le type d'environnement que l'on souhaite.

Par contre vous trouverez toujours des gens pour vous dire que tel ou tel environnement est mieux qu'un autre (le plus fréquemment entre GNOME et KDE). Mais la seule façon d'être sûr d'utiliser le bon est de les tester et de prendre celui avec lequel vous vous sentez le plus à l'aise.

I-C-8. La défragmentation

Toutes les versions de Windows souffrent du même problème, la fragmentation du disque. Ceci réduit considérablement les performances. Linux, lui, ne fragmente pas les données sur le disque et est ainsi plus apte à être un serveur de fichiers que Windows.

En fait, il est incorrect de dire qu'il n'en existe pas, mais il conviendra d'insister sur le fait qu'elles sont le plus souvent totalement inutiles.

Il est vrai que les systèmes de fichiers Linux font un usage optimisé de l'espace, mais il n'est malheureusement pas en mesure de savoir aujourd'hui quelle sera l'organisation optimale de votre disque après une ou deux années d'usage intensif. Pour résumer, si vos disques durs ont une durée de vie supérieure à environ deux ans, que vous travaillez régulièrement dessus, que vous manipulez quotidiennement de gros fichiers (vidéos, morceaux de musique, etc.), que vous vous livrez au P2P ou encore qu'il vous arrive d'exhumer de vieux (et gros !) fichiers pour retravailler dessus, vous ressentirez vite, comme tout le monde, le besoin de défragmenter votre disque Linux !

Pour mieux comprendre ce système de fragmentation, je vous renvoie aux articles sur les différents systèmes de fichiers existant sous Wikipédia qui sont vraiment très bien faits. Ceci juste pour vous dire que l'on oublie vraiment très souvent que Linux ne fragmente PRESQUE pas les données contenues sur le disque dur.

I-D. Comment se connecter

I-D-1. Mode graphique

Lorsque vous démarrez Linux vous tomberez sur une interface avec deux champs. Un pour votre login et l'autre pour votre mot de passe. Renseignez ces deux informations pour vous connecter au système.

Image non disponible

I-D-2. Mode console

Certaines distributions Linux ne démarrent pas directement avec l'interface graphique et vous serez donc amené à vous connecter via le terminal. Vous verrez ceci à l'écran :

Image non disponible

Entrez votre login et une fois que vous avez appuyé sur ENTRÉE, entrez votre mot de passe (si vous ne voyez pas de caractère s'afficher à l'écran c'est tout à fait normal ne vous inquiétez pas) et appuyez encore sur ENTRÉE.

I-E. A quoi ressemblent les commandes Linux ?

Sous Linux, l'utilisateur dispose de nombreuses commandes dont on trouvera une liste des plus utiles un peu plus tard. Une commande se compose du nom proprement dit de cette commande (un simple mot), suivi éventuellement d'un ou plusieurs arguments (fournissant des informations supplémentaires : options ou paramètres), les différents éléments de la commande étant séparés par des espaces ou des caractères de tabulation; la commande complète est elle-même terminée par l'appui sur la touche ENTRÉE. Il faut en effet savoir que chaque ligne entrée au clavier est mémorisée et n'est effectivement interprétée que lorsqu'elle est complète, c'est-à-dire à la réception du caractère de fin de ligne; ce mode de fonctionnement est appelé canonique. Il offre en particulier l'avantage de permettre l'annulation de caractères de la ligne en cours de frappe avant son interprétation. Une possibilité offerte est de modifier ce mode de fonctionnement afin par exemple que chaque caractère tapé soit interprété immédiatement. Il faut aussi noter dès à présent que Linux accepte la frappe anticipée de caractères, c'est-à-dire qu'il est possible de taper des commandes sans avoir la main (c'est-à-dire, alors que le "prompt" $ ou >> n'est pas apparu, le système étant par exemple en cours d'exécution de commandes ou même en cours d'impression).

Les résultats des commandes sont, comme nous l'avons déjà dit, affichés sur la sortie standard et les données nécessaires à la commande lues sur l'entrée standard toutes deux par défaut (c'est-à-dire sauf demande contraire) physiquement associées au terminal d'où la commande est lancée.

Au cours de la procédure d'identification ("login") en mode console ou au cours d'une session de travail, si le mode de fonctionnement est canonique, un certain nombre de caractères jouent un rôle particulier en ce sens qu'ils permettent d'annuler tout ou partie de la ligne en cours de frappe :

  • la touche BACKSPACE ou la combinaison CTRL+H annule le dernier caractère tapé ;
  • la combinaison CTRL+U annule tout ce qui précède sur la ligne.

I-F. Exemples de commandes

Nous allons voir ici quelques exemples de petites commandes simples, histoire que vous puissiez vous familiariser un peu avec ce système de commande.

I-F-1. La commande passwd

Elle permet à un utilisateur de créer ou de changer son mot de passe :

Image non disponible

Le système demande tout d'abord l'ancien mot de passe de l'utilisateur, puis demande deux fois le nouveau mot de passe choisi. Il n'y a naturellement pas d'écho des mots de passe frappés par l'utilisateur pour des raisons évidentes de sécurité.

I-F-2. La commande echo

Elle affiche la liste des paramètres sur la sortie standard, c'est-à-dire la chaîne de caractères qui suit echo :

Image non disponible

I-F-3. La commande date

On obtient la date dans la langue de configuration du système, ici en français :

Image non disponible

Avant il existait une commande date par type de date (anglo-saxon, français...) mais maintenant cette commande s'adapte à la langue et à la région que l'on a choisies lors de l'installation de Linux.

I-F-4. La commande who

Elle permet, utilisée sans paramètre, de connaître la liste des utilisateurs effectivement en train de travailler; utilisée avec les paramètres am et i, elle permet aux amnésiques de retrouver leur nom d'identification ainsi que le numéro du terminal sur lequel ils se sont connectés et l'heure à laquelle ils se sont connectés :

Image non disponible

Je vous laisse cette commande avec les paramètres indiqués à essayer chez vous pour que vous puissiez voir à quoi elle ressemble.

I-F-5. La commande tty

Elle donne le nom complet du terminal associé à l'utilisateur et le message not a tty si aucun terminal n'est associé :

Image non disponible

I-F-6. La commande stty

Elle permet d'une part de connaître les paramètres régissant la liaison entre le terminal et l'ordinateur et d'autre part de modifier leurs valeurs. L'option -a permet d'obtenir l'ensemble des valeurs des paramètres.

Sans l'option -a :

Image non disponible

Avec l'option -a :

Image non disponible

I-F-7. Les commandes incorrectes

Image non disponible

Ici la commande donnée n'est pas une commande reconnue par l'interpréteur. D'un autre côté, le nom d'une commande peut être correct et les paramètres ne pas l'être :

Image non disponible

Dans cet exemple, on obtient les formes correctes permettant d'utiliser la commande que l'on avait donnée sous une forme incorrecte.

Image non disponible

Dans ce dernier exemple, le système ne reconnaît pas la commande, car pour lui elle n'existe pas, mais elle peut être installée pour être ensuite utilisée et il nous indique le nom du (ou des) paquet contenant la commande que l'on a essayé d'entrer.

Petite information extrêmement utile pour la suite de votre apprentissage. Il existe un nombre vraiment très important de commandes et je ne vais pas toutes les détailler ici. Pour avoir vraiment tous les détails sur une commande, il vous faut utiliser la commande man dans votre terminal. Qui s'utilise de cette manière man "nomCommande".

I-G. Comment se déconnecter

I-G-1. Mode graphique

Vous pouvez vous déconnecter en mode graphique en cliquant sur Déconnexion dans le menu K.

Image non disponible

I-G-2. Mode console

Il suffit tout simplement ici d'entrer cette commande :

 
Sélectionnez

sudo pkill -KILL -u {username}

Bien entendu il faut que vous remplaciez {username} par votre login.

Il faut savoir aussi que cette commande marche pour déconnecter n'importe quel utilisateur connecté sur la machine.


précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Copyright © 2010-2013 Julien Plu. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.