Projets:Lab:2011:GHPSDR3-Alex:WindowsvsLinux

Qu’est-ce que Linux
Ou Des différences génétiques qui caractérisent Linux et Windows

Toi qui entres ici, abandonne tout espoir d’analogie avec le monde Windows qui t’a bercé jusqu’à présent. GHPSDR3-Alex, le serveur de flux SDR, n’existe que sous Linux. Ce qui n’est pas le cas des « clients », qui fonctionnent tant sous Linux que sous Windows, OS/X ou Android, voir sur n’importe quel système capable de faire tourner une machine virtuelle Java.

Il va donc falloir apprendre à maitriser Linux. Pour ce faire, deux ouvrages gratuits de référence, tous deux publiés chez Framabook

Le premier, Simple comme Ubuntu de Didier Roche

Et l’excellent [http://framabook.org/unix-pour-aller-plus-loin-avec-la-ligne-de-commande 'Unix. Pour aller plus loin avec la ligne de commande'] de Vincent Lozano

Le premier ouvrage s’assimile en un week-end et ne s'attache qu'à décrire l'interface graphique de Linux. Ce n’est pas franchement le cas du second livre, qui devra être pris comme un « assistant permanent » ou une référence à consulter et à conserver sous le coude gauche.

Mais avant de se plonger dans ces saines lectures (qui ne sont pas "obligatoires" mais "conseillées" pour la compréhension de la suite de l’installation), il est bon d’avoir un éclairage Windowsien de Linux, un regard subjectif sur les différences entre ces deux mondes.

L’enfer, dit-on, est pavé de bonnes intentions. Et Linux, quel que soit son « parfum » (les jeunes générations disent « distributions ») est bourré de bonnes intentions. C’est d’enfer !

A commencer par une règle simple qui régit le monde GNU-Linux : tout développeur génial est en droit de pondre un programme pour Linux, qui sera accepté dans la famille si celui-ci respecte un certain nombre de règles d’écriture, de syntaxe, de droits de diffusion et d'accès au code source. Et ceci même si un programme équivalent et « presque » aussi performant existe déjà. Du coup, il se pond chaque année des dizaines, des centaines de programmes, dont un nombre impressionnant d’utilitaires et de bibliothèques de fonction système. Un peu comme si Microsoft décidait d’ajouter, conjointement à ses fameux « correctifs du mercredi », un nouvel ordre « copy » ou une version de « super-chkdsk ».

A titre d’exemple, l’ordre que nous avons utilisé pour installer Midnight Commander, le fameux « apt-get » (voir la fin du chapitre Quelle version choisir), n’est qu’un outil parmi quatre autres. Pour installer un logiciel, on peut utiliser les ordres « apt-get », « aptitude », « wajig » ou « dpkg ». Ce n’est pas une plaisanterie. Tous sont plus ou moins compatibles et équivalents, mais certains possèdent des extensions de fonctions plus pratiques ou plus puissantes.

Ainsi, si apt-get est le cheval de labour des ordres d’installation Debian, il est plus facile d’utiliser dpkg pour s’assurer de l’existence d’un programme que l’on souhaite télécharger (enfin, c'est mon avis à moi que je partage avec moi-même). Exemple : dpkg -l |grep toto

dpkg est l’ordre « install ». Le commutateur « -l » (prononcer « moins elle ») signifie « appelle la liste de tous les programmes ». Le symbole « | » est le « pipe » qui fonctionne strictement de la même manière que sous DOS (c’est un filtre de commande), grep est un ordre de tri par chaine de caractère, et toto notre chaine de caractère. Ce qui se lit « avec l’ordre dpkg qui peut aller chercher n’importe quel programme sur un serveur internet, liste tous les programmes qui contiennent la chaine de caractère « toto »

Ce qui génèrera la réponse suivante

ii autotools-dev		20100122.1		Update infrastructure for config.{guess,sub} files

Il existe donc bien un programme que je peux télécharger et qui contient la chaîne de caractère toto (une bibliothèque de fonction en l’occurrence). Puissant, mais compliqué, il faut l’admettre.

Histoire de te terroriser un peu plus, toi, mon lecteur, mon semblable, mon frère, saches que ce que je te raconte ne concerne qu’un seul parfum Linux : Debian et ses multiples enfants (dont fait partie Ubuntu). Mais si j’avais du parler d’une autre branche de Linux, par exemple Fedora, apt-get se serait transformé en ordre « yum »… je sais, à la longue, ça peut rendre n’importe qui totalement fou. Mais ces « grosses différences sur les points de détail » masquent la cohérence de la forêt Linuxienne dans son ensemble. Passer d’une Debian à une Fedora ou à un Unix tel que FreeBSD ne désorientera pas énormément un utilisateur averti (mais finira par totalement achever un débutant) : la logique de base, le patrimoine génétique est le même de partout, ce sont les enfants des Unix System V r4 d’autrefois.

Ceci pour comprendre le dicton américano-linuxien « There are many ways to skin a cat », il existe plus d’une façon d’écorcher un chat. Autrement dit, pour un problème sous Linux, il existe des dizaines de réponses, aussi différentes les unes que les autres, mais toutes aussi utilisables en termes d’efficacité.

L’apprentissage étant souvent le fruit de la répétition, on comprend que lorsque cette notion de répétition disparait, l’apprentissage devienne plus compliqué. En d’autres mots, le principal défaut de Linux réside dans son absence de normalisation ergonomique. Cette absence de normalisation (ergonomique, j'insiste) est dictée précisément sur le principe qu’un système qui fixe dans le marbre un ensemble de « commandes » ou de « règles d’usage immuables » se sclérose, devient rapidement difficile à faire évoluer. Il s’alourdit en outre de problèmes « hérités », hérités du fait qu’il ne faut pas toucher à telle ou telle partie du système pour ne pas déboussoler les utilisateurs ou remettre en cause tout l'édifice logique qui repose dessus.

C’est ce qui explique un peu la situation de Windows (système payant) et de Linux (système gratuit, du moins pour les particuliers). de l'un, on peut chanter "toi, tu ne changes pas, t'es comme le prix des allumettes" et de l'autre, on fredonne "changes" de David Bowie.

Conséquence de quoi Linux ne représente pas plus de 1% des systèmes d’exploitation « end user » installés principalement en raison de son climat de perpétuelle entropie inventive… le consommateur aime les repères stables (aidé en cela par les ventes des noyaux pré-installés sur les nouveaux ordinateurs). Windows, par comparaison, détient plus de 90% du parc informatique mondial. Ce dernier, bien qu’alourdi par le poids d’un héritage technique conséquent, a su orienter tous ses efforts sur les habitudes acquises. Ce qui explique qu'il ait fallu plus de 5 ans pour que les usagers de Windows XP s'accoutument à l’interface de Windows Vista ou Seven… A contrario, la « révolution permanente » d'usage dans le monde Linux habitue ses utilisateurs à considérer une légère modification d’interface ou d’ordre de commande comme une épiphénomène presque quotidien. Gnome un jour, KDE le lendemain, Xfce la semaine suivante, ou peut-être Fvwm, Fluxbox, Enlightenment, Blackbox... on change d'environnement comme de chemise sous Unix depuis la généralisation de X11r3. L'une des blagues des étudiants de Berkeley dans les années 80 était "Et quel est le système d'exploitation du jour?" Si le parc des usagers Microsoft avait possédé la fibre Linuxienne, la transition XP/Vista se serait opérée en moins de 24 heures. Mais on ne peut posséder le beurre et l'argent du beure, la simplicité et les constantes qui forgent l'habitude et la fidélité, et la souplesse d'un système à géométrie variable.

Il n’y a là ni jugement de valeur, ni affirmation de la supériorité d’un noyau sur un autre, seulement une tentative d’explication socio-technique d’un succès et les raisons des appréhensions de certains informatisés confrontés à l’apprentissage de Linux. Le meilleur système d'exploitation est celui qui répond aux attentes d'un usager. Rôle que Windows assure généralement très bien... mais dans le cas de GHPSDR3-Alex ou de toute autre solution de serveur de flux pour SDR (portage GNU-Radio sous Windows y compris), Windows échoue lamentablement.

Ajoutons que bon nombre de doctes Linuxiens amateurs de LaTeX (informatique tendance SM) tenteront de vous expliquer qu’on ne doit pas dire « Linux » mais "GNU-Linux", Linux étant une expression possible de la vision d’un noyau, d’un système d’exploitation totalement « open source ». Le mot Gnu vient d’un jeu de mot récursif, le sigle de l’expression « Gnu is Not Unix ». Appellation venant de l’époque ou le mot Unix était une marque déposée AT&T et n’avait le droit d’être employée que par ceux qui en payaient la licence.

Les « compatibles » Unix et autres clone (on disait "perfume") devaient donc se faire baptiser Xenix, Venix, QNX… GNU n’est qu’une version de plus de ce que l’on appelait autrefois les « Unix-like », mais une version Open Source, non propriétaire, non attachée à une entreprise. Et cette différence est de taille. Seuls quelques intégristes tatillons insistent sur le préfixe GNU. Ce sont généralement des universitaires soucieux d’une légitime précision sémantique, ou de jeunes geek en quête d'identité culturelle. Mais cette précision GNU n'a plus franchement de raison d'être sinon historique, car Unix, le véritable, l'unique, après être passé de mains en mains (Bell labs, ATT, Novell, Apple)s'est isolé pour ne plus être utilisé pratiquement que par Apple avec OS/X. Les grands Unix-like professionnels et payants ont pratiquement tous disparus, et seuls subsistent les branches "open". Même IBM utilise des Linux Suse ou Red Hat, c'est dire.

Une fois que l’on a compris ça, on peut sereinement se dire qu’apprendre à jouer avec un Linux n’est qu’une affaire de temps… et de mémoire. Et lorsque l’on demande un renseignement sur un forum, il est parfois utile de demander « et comment faire avec un autre ordre plus simple à utiliser ? »

Reste que si un utilisateur DOS expérimenté pouvait passer pour un gourou en maitrisant moins d’une centaine de commandes (paramètres de manipulations de chaines de caractère sous edlin y comprises), un « bon » utilisateur Linux doit maitriser un champ sémantique de 500 à 1500 ordres et commandes. Ce n'est pas parce qu'Unix est un système complexe, c'est tout simplement parce que plus 30 ans séparent les premiers PC-DOS des systèmes actuels. L'interprète de commande Powershell de Windows est pratiquement aussi complexe que Bash, c'est la rançon de l'évolution.