Lecture : Commencer à programmer Linux - Seconde Edition
ArticleCategory: [Es gibt verschiedene Artikel Kategorien]
Software Development
AuthorImage:[Ein Bild von Dir]
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]
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+.
|
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.