Lecture : Commencer à programmer Linux - Seconde Edition

ArticleCategory: [Es gibt verschiedene Artikel Kategorien]

Software Development

AuthorImage:[Ein Bild von Dir]

[Photo of the Author]

TranslationInfo:[Autor und Übersetzer]

original in en Katja Socher 

en to frGeorges Tarbouriech 

AboutTheAuthor:[Eine kleine Biographie über den Autor]

Katja est l'éditrice Allemande de LinuxFocus. Elle est devenue utilisatrice de Linux lorsqu'elle a découvert Gimp voici quelques années. Vous pouvez visiter son site ici.

Abstract:[Hier sollte eine kleine Zusammenfassung stehen]

Voici une présentation du livre : Commencer à programmer Linux - Seconde Edition
écrit par Richard Stones et Neil Matthew
et publié aux éditions Wrox press

ArticleIllustration:[Das Titelbild des Artikels]

[tuxreading]

ArticleBody:

Le livre

"Commencer à programmer Linux - Seconde Edition" est une introduction à l'environnement Linux pour des programmeurs en C ayant déjà une certaine connaissance de ce système. Le livre aborde les concepts et les idées que Linux peut offrir aux programmeurs et présente au lecteur plusieurs très bons outils de programmation disponibles sur cet OS tels que Perl, Tk or Gtk+.

[Book cover] En achetant ce livre, vous n'obtenez pas seulement quelques 2 kilos de papier mais aussi de nombreuses informations sur une grande quantité de sujets. Ce n'est pas un livre pour débutants mais une entrée dans un vaste éventail de concepts et d'outils propres à la programmation sous Linux. Chaque chapitre propose une introduction si détaillée qu'après lecture vous aurez déjà une bonne connaissance des différents sujets, vous permettant ainsi d'être autonomes dans la réalisation de nombreuses tâches. Certes, vous ne deviendrez un expert dans aucun des domaines après la lecture de ce livre, mais ce que vous aurez appris sera souvent suffisant pour vous permettre de vous débrouiller en lisant les pages de manuel ou d'autres documents, plus à jour que ceux d'un livre sur un sujet aussi rapidement évolutif.

Les auteurs expliquent ce que nous pouvons faire de mieux avec un outil spécifique et dans quel domaine chaque outil est particulièrement adapté et efficace. Vous découvrez ce qu'il est possible de faire, quels outils utiliser, et où chercher pour approfondir les réponses à vos besoins.

Vous obtenez une vue d'ensemble sur les multiples possibilités qui s'offrent à vous en tant que programmeur sous Linux et vous pouvez ainsi décider du sujet auquel consacrer le plus de temps, qui est le plus adapté à vos besoins et qui mérite un approfondissement si vous souhaitez devenir un expert.

Même s'il ne s'agit que d'un point de départ, ce livre couvre tellement de choses qu'après sa lecture vous l'utiliserez sans cesse comme référence pour trouver des solutions à vos problèmes de programmation ou pour savoir comment réaliser une tâche particulière.

C'est vraiment un livre de programmeurs pour programmeurs dans lequel deux programmeurs Linux expérimentés partagent leurs connaissances avec d'autres programmeurs. Ils procèdent par de nombreux exemples à tester qu'ils expliquent de manière très détaillée. A travers ces exemples vous vous sentez de plus en plus à l'aise et comprenez comment réaliser pratiquement ce qui est expliqué. Vous vous rendrez compte que vous pouvez utiliser leurs exemples dans vos programmes, souvent avec des modifications mineures. J'ai vraiment beaucoup apprécié les exemples dans ma recherche de compréhension et d'exploration du sujet.

En plus des nombreux exemples de chaque chapitre, les auteurs développent une application CD tout au long du livre, dans laquelle se retrouvent tous les concepts nouvellement appris. Au fur et à mesure des chapitres, l'application devient de plus en plus élaborée et j'ai vraiment apprécié la version définitive qui est aussi expliquée en détail.


Synopsis

Le livre commence par une brève introduction sur Linux et sa philosophie, sur l'utilisation du langage C et ses bibliothèques sous Linux avant d'aborder la programmation du shell. Après avoir expliqué quelques concepts généraux du shell (tels que la redirection ou les pipes), le livre présente le shell en tant que langage de programmation avec par exemple, les variables, les conditions, les contrôles de programme, les listes, les fonctions, et tout est expliqué.

Le chapitre 3 explique la gestion des fichiers sous Linux où même les périphériques matériel sont représentés par des fichiers. Il commence par les appels système de bas niveau et continue par l'explication de la bibliothèque Standard.

Le chapitre 4 concerne l'environnement Linux. Les auteurs abordent par exemple, les arguments de la ligne de commande et les variables d'environnement grâce auxquelles vous pouvez modifier le comportement d'un programme. Ils montrent également comment un programme peut utiliser les fonctions de bibliothèque pour manipuler dates et heures ou pour obtenir des informations concernant ce programme lui-même, l'utilisateur et l'ordinateur sur lequel il est exécuté.

Le chapitre suivant aborde les terminaux et les différents aspects de leur contrôle. Après cette introduction sur les terminaux, nous découvrons la bibliothèque curses qui propose une sortie graphique sur les fenêtres des terminaux.

Le chapitre 7 sur la gestion des données parle de la gestion dynamique de la mémoire, du verrouillage de fichiers ou de parties de fichiers partagés et pour finir propose une introduction à la base de données dbm.

Dans le chapitre 8 les outils qui permettent de gérer le développement et la distribution des programmes sont présentés. make et makefile, servant à gérer de multiples fichiers source sont expliqués avant d'aborder le contrôle du code source par RCS et CVS. Enfin, patch, tar et gzip sont mentionnés puisqu'ils sont utilisés dans la distribution et la mise à jour de programmes.

Le chapitre 9 concerne le débogage. Après quelques généralités sur les techniques de débogage, le débogueur GNU, gdb, est présenté. Les outils d'analyse statique tels que cflow et lclint sont également abordés. Pour terminer, deux utilitaires permettant d'éviter la déperdition de mémoire, Electric Fence et Checker, sont mentionnés.

Le chapitre 10 concerne les processus et les signaux qui contrôlent pratiquement toute l'activité d'un système Linux. Il commence par la structure des processus et continue en expliquant comment de nouveaux processus peuvent être démarrés par l'appel système fork. Ensuite le programme d'interface pour les signaux est présenté au lecteur par quelques exemples.

Le chapitre 11 aborde les threads Posix. Il commence par expliquer la différence avec les processus et présente les mutexes et les sémaphores nécessaires à l'écriture de programmes "multithreaded" plus complexes.

Les chapitres suivants concernent la communication interprocessus. Les pipes sont expliqués les premiers. Les pipes sans nom, les pipes nommés (FIFOs), la manière dont les données circulent entre des programmes indépendants sont présentés.

Ensuite, les sémaphores, la mémoire partagée et les files d'attente de messages sont abordés. Les sémaphores sont requis pour éviter l'accès simultané de deux processus à une même zone critique et sont également nécessaires à l'utilisation de la mémoire partagée qui est un moyen efficace de partager et d'échanger des données entre de multiples processus. Les files d'attente de messages offrent une méthode simple et efficace d'échanger des données entre deux processus indépendants.

Pour terminer, les sockets qui peuvent être utilisés comme des pipes mais sur un réseau, sont expliqués.

Le chapitre 15 traite de Tcl, le Tool Command Language. Les auteurs abordent par exemple les commandes et les structures de contrôle, les chaînes et les listes dans Tcl, les entrées et sorties en tant qu'extensions ou applications Tcl.

Après un bref aperçu d'X, nous découvrons Tk, le toolkit graphique de Tcl dans le chapitre suivant. Sont présentés les différents widgets de Tk, tels que les cadres, les étiquettes, les boutons, les boîtes, les barres de défilement, le texte et les canevas. L'exemple d'un puzzle de 15 pièces est fourni et les concepts de menu, de boîtes de dialogue, de couleur, de polices, de liens, de gestion de géométrie et de focus et de navigation sont expliqués.

Nous découvrons ensuite Gnome et Gtk+. Il est question de l'architecture de Gnome, du bureau de Gnome, de la programmation de Gnome avec Gtk+ et ensuite nous découvrons l'ensemble des widgets Gtk+. Les possibilités sont énormes, plus encore que sous Tk. Les auteurs développent une application pour Gnome : une horloge analogique.

Le chapitre suivant est une très courte introduction à la programmation de base en Perl.

Le chapitre 19 enseigne les bases du HTML et sert d'introduction à la programmation CGI qui est couverte dans le chapitre suivant. Les auteurs nous expliquent comment créer les formulaires HTML côté client et comment transmettre l'information côté serveur, les décoder en C ou Perl et les renvoyer dynamiquement au client.

Le livre se termine par un chapitre sur les pilotes de périphériques qui donne une vue d'ensemble sur la manière dont ils sont écrits. Il parle par exemple des périphériques caractères et blocs ainsi que de la manière de déboguer du code dans le noyau.


Si vous êtes administrateur, programmeur ou amateur de Linux, vous adorerez certainement ce livre.