Linux ... késako ?

06/01/2005 09:43
973 lectures
Premier arcticle sur linux. Avant de parler de choses pratiques... de quoi parlons-nous au juste ?
Pour stubistes aventureux.

Linux... késako ?

A la suite d'un discussion à la dérobée avec marc, il me glissa qu'il serait peut-être intéressant de lancer une discussion sur ce fantôme informatique: Linux. Tout le monde en a entendu parler, on ne sait jamais trop ce que c'est. Il parait que c'est génial ou même il parait que c'est tout pourri... Certes, mais rare sont ceux qui ont eu le plaisir de pouvoir l'installer correctement sur leur box, et donc de pouvoir en profiter, car OUI, Linux, c'est très bien ! (Enfin c'est pas mal). Que les stubistes aventureux se mettent en selle, ça vaut le coup.

Je n'est évidement pas la prétention de tous savoir sur le sujet, mais j'ai quelques années d'expériences (bonnes et mauvaises)... Alors qu'en foot-suporting je suis plutôt novice... (on m'a enseigner ce qu'il faut à propos des conduites sexuelles contre-nature des bordelais)

Donc avant de parler plus à même des raisons d'utiliser linux dans un deuxième article, de quoi parlons nous ? Pour éviter que la discutssion ne parte en bavardages vides et inintéressants.

Qu'est-ce que c'est ?

Linux est moins de choses que ce que l'on pense... Linux est un tout petit programme (de 800Ko à 2Mo). Ce n'est pas vraiment un programme, c'est un noyau (kernel) de système d'exploitation (OS), le tout petit morceau d'un OS qui n'a que peu de choses à faire (cf. plus bas), mais encore faut-il bien le faire...

Le problème est que ça a beau être tout petit, c'est sans doute une des partie les plus fines, compliquées d'un OS. Se lancer dans la programmation d'un tel kernel, cela nécessites des connaissances du temps et plein de collaborateurs. On notera une de ces caractéristiques importantes de linux: c'est un programme libre !


Qu'est qu'un programme libre ?

Le Free Software est souvent une notion mal comprise. On entend par logiciel libre un logiciel que l'on peut utiliser comme bon nous semble, sans limitations de 'nombre d'installations', 'nombre d'utilisateurs' ou 'durée d'utilisation'. On peut y faire des modifications, des extensions, on peut l'utiliser pour faire d'autres programmes basés sur ces derniers etc...

Un logiciel libre n'est pas un logiciel gratuit ! Le mot 'libre' est à comprendre comme 'liberté' (liberté d'expression, d'action) et non comme 'gratuité' (entrée libre). Cela dit, beaucoup de logiciels libres sont gratuits.

Beaucoup de programmeurs utilisent de plein droit des morceaux d'autres programmes libres pour leurs produits. Le prix exigé pour l'acquisition d'un tel produit est donc le prix d'un travail ajouté, car la plupart du temps le programmeur d'un logiciel libre ne permet qu'un tiers le vende.

Les textes définissant les droit d'utilisations d'un logiciel libres sont appelés licences. C'est dans ces textes que l'on dit ce qu'on a le droit de faire, et ce qu'on n'a pas le droit de faire, sous quelles conditions, etc... On peut en écrire une chaque fois qu'on fait un programme, ou utiliser des licences existantes comme la licence GPL (http://www.gnu.org) par exemple.


Quels sont les avantages / inconvénients des logiciels libres ?

Un logiciel libre est souvent plus mieux (désolé j'ai un parti pris). La plupart du temps il est gratuit, ce qui pour un jeune étudiant est déjà pas mal :-)

Ensuite, le monde entier peut contribuer (et contribue d'ailleurs) à l'amélioration d'un logiciels existant (fixer les bugs, proposer des nouvelles fonctionnalités, etc...) car tout le monde a accès au code source (le plan) du programme. On a donc le monde entier qui travaille gratuitement pour la communauté. Même une énorme boite ne peut pas se payer une telle main d'oeuvre !

Fini aussi les 2000 clients FTP, les 40 000 vérificateurs de température, ou encore tous les logiciels qui ne font rien du tout (accélérateurs de connexions, chien de garde système, etc...) !
Pourquoi réinventer la roue ? Si l'on a quelque chose à redire sur un programme existant, on en fait part et hop là ! Tout le monde est content. Ou alors on le réinvente mais en vraiment mieux.

Mais bon, la plupart des programmeurs qui donnent dans le libre font ça de manière bénévole, donc impossibilité d'avoir des exigences de temps de fonctionnalités sur un logiciel libre. C'est pourquoi on ne se passera jamais des logiciels payants... avec du personnel, des heures de bureau, des patrons qui rallent, des clients qui rallent.


Qu'est-ce qu'un OS ?

Operating System, c'est un ensemble de pleins de programmes et d'un noyau dont le but est de donner la possibilité à des utilisateurs d'utiliser un ordinateur. En général c'est assez gros (plusieurs CD).

On entend par utiliser : se servir des capacités et ressources liées à votre ordinateur de manière plus ou moins ergonomique / pratiques / pointues / aisée / sures etc...

Linux ? C'est le noyau sur lequel se basent plusieurs OS (en l'occurrence appelées distributions) plus ou moins libres d'accès. On n'en notera que quelques-unes des plus connues : "Debian" (ma favorite), "Mandrake", "RedHat", "Suse", etc... Il y en a vraiment plein, chacune ses avantages et inconvénients !

L'effort de guerre du logiciel libre est à l'origine de la Free Software Fundation, connue sous le nom de GNU (http://www.gnu.org). Des centaines de programmes de bases y ont été (et le sont toujours) développés et proposés en accès gratuit.

La plus part des distributions Linux utilisent ces programmes, libres
et gratuits.


Quel est le rôle d'un noyau d'un OS ?

Un noyau est le petit morceau de code machine qui fait l'interface entre l'ordinateur (l'objet, la machine) et les utilisateur (les programmes), c'est lui qui gère les ressource (mémoires, périphériques, temps de calcul, etc...) et qui les distribue de manière équitable entre les différents utilisateurs (les programmes). Tous ceci en consommant lui-même le moins de ressources possible (peut être le plus gros point faible des noyaux Microsoft). C'est là la tâche principale du noyau.

Si un noyau permet de faire tourner plusieurs programmes en même temps, il est multi-tâches, si un noyau est capable de gérer plusieurs utilisateurs en même temps est dit multi-utilisateurs. Ce ne sont pas la les seules taches supplémentaires qu'un noyau peut supporter...

Pour chacune de ses fonctionnalités le noyau fournit des portes d'entrées (appels systèmes), qui seront utilisés par les programmes utilisateurs pour lui soumettre des requêtes sur les ressources de la machine, par exemple : lire un fichier, commander la carte son, envoyer des données sur le réseau, afficher un point à l'écran, etc... C'est donc le noyau qui décidera si telle ou telle requête est légitime (essayes-tu de lire un fichier qui n'est pas a toi ? essayes-tu d'utiliser le réseau sans en avoir le droit ?)

Mais que font les programmes eux-mêmes alors ? Les calculs. C'est eux qui décident quoi écrire dans ce fichier, que faire du texte lu dans un autre. Les appels système ne sont que des fonctions spéciales dont la résolution se fait par un accès aux ressources.

Un noyau est fait pour une architecture donnée (PC, Mac, Sparq, etc...) et défini plusieurs caractéristiques qui lui sont propres : le format des fichier dit exécutables par exemple, ou évidement les drivers, bouts de code du noyau pilotant les périphérique (un type particulier de disque dur, un model de carte son, etc...).

Linux existe en plusieurs versions pour plusieurs architectures (Oui vous pouvez avoir linux sur un mac !). Mais il a été largement développé pour PC, les autres versions sont souvent moins efficaces (mais elles fonctionnent).


Et donc... Linux?

Avec Linux (ce n'est ni le premier, ni le seul) c'est le noyau qui contrôle l'exécution de tous les programmes courant et pas l'inverse (Windows 95 98)!

Autrement dit chaque programme en cours d'exécution (appelons ça un processus) se voit à tour de rôle attribué un peut de temps selon des critères complexes. Cette tâche est effectuée par la partie du noyau appelée ordonanceur (scheduler). Les processus n'ont aucun moyen de se faire mieux traiter que d'autres. Et quoiqu'il arrive sera remis dans la file à un moment ou un autre, pour laisser la place à un autre processus. Peut importe donc qu'un processus rentre en boucle infinie... ça ne doit pas bloquer tout le système.

Chaque processus est connu du noyau et est associé à l'utilisateur qui l'a lancé. C'est de cette manière que le noyau contrôle ce que ce processus a le droit de faire.


Les nombreuses distributions

Les distributions linux sont, en fait, une version du noyau linux (légèrement modifiée ou non), et un collection de programmes de bases généralement les mêmes dans toutes les distributions :
  • Emacs : LE éditeur de... tout ce qu'il y a d'éditable et plus encore.
  • XFree86 : le serveur X... no comment
  • gcc : le compilateur GNU de langage C.
  • bash : le shell le plus rependu (shell = coquillage = ligne de commande).
  • Gnome : un environnement graphique parmi tant d'autres (et là les problèmes commencent)
  • etc...

On notera l'apport de programmes secondaire propre la distribution, les programmes d'installation de maintenance à jour etc... Ce sont les seules raisons de faire payer une distribution Linux : le travail ajouté.

Beaucoup de distributions ne varient que par la sélection de programmes et n'inventent en fait pas grand choses. Certaines s'installent plus facilement que d'autres certes, mais c'est toujours au détriment de la propreté du système.

Pour ma part j'utilise debian (www.debian.org) 100% gratuite et réputé comme étant la distribution des puristes. C'est vrai que c'est un peut rugueux, mais au moins t'as le contrôle, et question propreté c'est sans doute très proche du nirvana. En fait avec un peu d'habitude et de café c'est je pense la meilleur solution. Cela dit je n'ai jamais utiliser d'autres distributions, mais je ne crois pas que ça en vaille la peine :-

Debian tient à jours une collection de plusieurs centaines (milliers ?) de logiciels (packages) totalement libres et accessibles via des centaines de serveurs sur la planète. Ce qui rends les téléchargements et mises à jours de sécurité très faciles. Ils sont regroupés en trois catégories :
  • 'stable' : vous pouvez toujours essayer de trouver un bug :-) bonne chance, jamais une distribution n'aura été plus parano (même firefox n'y est pas) !
  • 'testing' : on respire un peut et on a les versions du moments, mais il vaut mieux avoir une bonne connexion (pas un modem en Indonésie) les mises à jour sont à faire deux trois fois par semaines... Ça bouge vite.
  • 'unstable': on y retrouve la plupart des logiciels de versions acceptées par les autres distributions (no comment).

On en est à la version 3.0 nommée 'Woody' après la 'Potato', la 'Sarge' est à venir... pour ceux à qui ces prénoms sonnent une cloche.


UNIX =? Linux

On a sans doute aussi entendu parler de UNIX... UNIX est (ou plutôt était) un des premiers OS développés par des université/firmes à un époque ou on commençait juste à avoir l'idée que l'informatique pourrait servir à autre chose qu'à la science (c'était il y plusieurs années). Et donc qu'on pourrait peut être avoir là des produits commerciaux... à vendre donc, et a protéger du coup.

Comme tout bon travail d'universitaire, c'était le fruit d'un travail théorique, utilisant des théories toutes neuves (vraiment les débuts de l'informatique). Et tout ça est parti un peut dans tous les sens...

Jusqu'à ce que en 1983, Richard Stallman s'énerve de ne pas pourvoir utiliser un ordinateur de manière libre et se lance dans la fabrication d'un OS libre : GNU (Gnu is Not Unix). Il a bien avancé jusqu'en 1991 et ne lui reste plus qu'à faire un noyau (le petit truc super dur à bien faire) mais en 1992 Mr Linus Torvalds, dans un projet totalement annexe, fini d'écrire un noyau... Linux. Il le publie en tant que logiciel libre. Et là : Les programmes GNU accouplés au noyau Linux est tout à fait fonctionnel !

On appellera cela dit "un UNIX" tout OS se basant sur les principes du vieux UNIX, et adoptant une certaine ressemblance dans la manière dont il fonctionne, s'utilise.

D'habitude les fabriquant de machine (de gros ordinateurs) développent leur propre OS : SOLARIS, IRIX, et plein d'autres... beaucoup sont des UNIXs !

Notons en ce qui concerne les Mac l'apparition de "MacOS X", un UNIX et oui ! J'ai eu l'occasion de tester ça... (merci denpasar) c'est vraiment pas mal :-) enfin c'est une excellente raison à mon goût de ne pas utiliser Linux sous Mac. Enfin, tant qu'Apple ne nous permettrera pas d'acheter une machine vide (sans OS). C'est évidement beaucoup mieux que la version Mac de Linux (les patrons qui rallent). Et comme c'est un UNIX, la plupart des logiciels libres qui fonctionnaient sous Linux, sont potentiellement utilisables sous Mac OS X (à une compilation près :-)


Bon, il y a tant de choses à dire encore... mais je me lance dans la rédaction d'un article un peu plus pratique sur les raisons d'utiliser Linux. Patientez encore un moment, mais dores et déjà, n'hésitez pas a faire part de vos remarques, corrections, ajouts sur le nouveau topic ouvert sur le sujet: Linux.

Commentaires (6)

Flux RSS 6 messages · Premier message par wilfried · Dernier message par id

Commenter

Flux RSS Le stublog de barbu : billets, photos, souvenirs, activité racingstub.com, livre d'or...
barbu1212394639.jpg

barbu

Voir son profil complet

Chargement... Chargement...