"Lorsque l'on désire dépasser le "Hello World", l'on interagit avec l'OS c'est ce que l'on appelle la programmation système. C'est un sujet qui peut sembler hardu. Heureusement, "Advanced Programming in the UNIX Environment" de W. Richard Stevens devrait grandement vous aider. "
Advanced Programming in the UNIX Environment | |
Auteur | W. Richard Stevens |
Editeur | Addison-Wessley |
ISBN | 0-201-56317-7 |
Pages | 744 |
Prix | Constaté 350FF |
Rédacteur | trollhunter |
<!-- Ceci est a mettre comme texte de la news annoncant la revue<br/> du livre -->
Lorsque l'on désire dépasser le "Hello World", l'on interagit
avec l'OS c'est ce que l'on appelle la programmation système.
C'est un sujet qui peut sembler hardu. Heureusement,
"Advanced Programming in the UNIX Environment"
de W. Richard Stevens devrait grandement vous aider.
<!-- Fin du texte de la news -->
Après deux premiers chapitres rappelant les bases d'UNIX et les
différents standards du monde UNIX, les choses sérieuse commencent
avec les E/S fichiers et le travail avec les répertoires. Ensuite,
un chapitre est consacré à une librairie que l'on croit en général
bien connaître : stdio.h.
Saviez vous, par exemple, que l'on y trouve
deux fonctions facilitant grandement la gestion des fichiers
temporaires : tempfile et tempnam ? Vous y trouverez, bien entendu, du
code illustrant leur utilisation.
Le chapitre suivant, est lui consacré aux différents fichiers systèmes
et à l'accès à certains paramètres tel le temps. Ensuite, cette partie
sur les fichiers achevée, l'on aborde les process avec leur
environnement, leur contrôle et les différents signaux. Puis un petit
intermède permet d'aborder les E/S par les terminaux avec une section
sur terminfo, termcap et curses.
Ensuite viennent deux chapitres sur les E/S avancées, c'est à dire non
bloquantes, select, poll, readv, writev, mmap.
Le chapitre suivant est consacré aux daemons, allant de leurs
caractéristiques aux règles de codage en passant par la communication
avec syslogd.
Enfin cette partie de l'ouvrage s'achève par deux chapitres où l'on
reviens sur les process avec la communication interprocess ( IPC ) et
la communication interprocess avancée ( Advanced IPC ) dans lesquels
les pipes, FIFO, Sémaphores, Stream pipes, et le modèle client serveur
sont abordés.
Une fois ces 15 premiers chapitres achevés, trois chapitres sont
consacrés à des projets permettant la mise en application des
connaissances précédemment acquises.
Enfin, l'on trouve trois appendices, une bibliographie commentée très
complète et l'index.
L'une des premières remarques que l'on peut faire est que cet ouvrage
est fait pour durer. En effet, en dehors du nombre impressionnant de
pages ( 744 ), les deux premières choses qui frappent le lecteur sont
la solidité de l'ouvrage et l'aspect visuel très particulier.
Côté solidité, ce livre est imprimé dans un papier épais ( très
agréable au toucher ), la reliure est de très bonne qualité et la
couverture est vraiment solide. Le visuel très particulier est dû au
fait que W. R. Stevens a composé ses ouvrages avec troff pour le texte
et pic pour les illustrations. Il est certain que ni l'auteur ni
l'éditeur n'ont fait d'économies de bout de chandelles, la
présentation est aérée. Les schémas d'apparence très simple voire
simplistes sont en fait d'une grande pureté, W. R. Stevens a l'art de
résumer un concept ou un mécanisme en quelques traits. Il en est de
même des différents tableaux qui émaillant les chapitres synthétisent
les résultats, rappellent les options ou notent les différences entres
les différents standards. En prime, pour chaque fonction abordée, un
encadré fournit le nom de la librairie à laquelle elle appartient, son
prototype, sa ou ses valeurs de retour.
Le travail de l'auteur se retrouve aussi dans les explications de
l'auteur qui sont à la fois très claires et concises que ce soit dans
le texte, dans les schémas ou dans le code. En effet le code de
W. R. Stevens est doublement pédagogique ; non seulement il sert à
mettre en situation les concepts et sert d'exemple aux différentes
fonctions mais en plus au fil des pages il constitue un véritable
apprentissage de la programmation propre : pour les fonctions
appelées si il y a une valeur de retour signalant une erreur, elle est
gérée. Pour chaque allocation mémoire l'on trouve le free
correspondant. Au fil des pages l'étudiant s'imprègne alors du style
de W. R. Stevens et non seulement il acquière une connaissance réelle
du sujet traité dans le chapitre mais aussi une véritable méthodologie
de la programmation qui au fil des exercices ( hélas pas tous corrigés
) proposés à la fin des chapitres qui deviendra, espérons le,
une une seconde nature. Il faut signaler que le temps supplémentaire
passé à taper
char *ptr;
if( ( ptr = malloc( pathmax + 1 ) ) == NULL )
err_sys( "malloc error for pathname" );
au lieu de
char *ptr = malloc( pathmax + 1 );
sera largement compensé
par la propreté et temps précieux gagné lors de la phase de
déboguage.
Contrairement à beaucoup d'ouvrages vous exposant les concepts et vous
laissant ensuite seul face à la mise en oeuvre, W. R. Stevens
consacre les trois derniers chapitres de son ouvrage à l'écriture
d'applications non triviales illustrant les sujets et les méthodes
vus dans les chapitres précédents. Ainsi, les différentes parties du
livre s'assemblent en un tout ce qui permet de se rendre compte de
leur interaction. Ces chapitres débutent par une courte introduction
qui fixe le cadre du sujet, puis viennent des compléments
d'information et, dans la discussion des choix d'implémentation l'on
retrouve une fois encore la pédagogie de W. R. Stevens. Enfin
l'implémentation proprement dite est commentée et suivie, le cas
échéant, d'une discussion comme dans le cas de la base de données avec
une analyse des performances.
Bien entendu,à la fin de ces chapitres l'on retrouve les exercices
pour aller plus loin.
En conclusion, cet ouvrage s'adresse à un large public, en effet il
sert à la fois d'apprentissage à la programmation système sous UNIX
les connaissances pré requises sont du niveau de celles du Braquelaire
, d'acquisition d'une bonne méthodologie de la programmation en C. A
un niveau plus avancé, c'est un ouvrage de référence grâce à ses
nombreux tableaux résumant l'essentiel et aux tours de mains que
constituent les programmes des différents chapitres.
Table des matières
- Chapter 1. Introduction
- Chapter 2. Unix Standardization and Implementations
- Chapter 3. File I/O
- Chapter 4. Files and directories
- Chapter 5. Standard I/O Library
- Chapter 6. System Data Files and Information
- Chapter 7. The Environment of a Unix Process
- Chapter 8. Process Control
- Chapter 9. Process Relationships
- Chapter 10. Signals
- Chapter 11. Terminal I/O
- Chapter 12. Advanced I/O
- Chapter 13. Daemon Process
- Chapter 14. Interprocess Communication
- Chapter 15. Advanced Interprocess Communication
- Chapter 16. A Database Library
- Chapter 17. Communicating with a PostScript Printer
- Chapter 18. A Modem Dialer
- Chapter 19. Pseudo Terminals
- Appendix A. Function Prototypes
- Appendix B. Miscellaneous Source Code
- Appendix C. Solutions to Selected Exercises
- Bibliography
- Index
Références
Pour plus d'informations l'on pourra se reporter au
site de l'auteur
pour y trouver les sources des programmes ( y compris une
version Linux ), les errata et découvrir les autres ouvrages de
W. R. Stevens. Dans la mesure où l'auteur est mort il y a un peu plus
d'un an vous comprendrez qu'il ne peut honorer son engagement de
répondre aux mails qui lui sont envoyés.
Pour ce qui est de l'apprentissage
du C, vous pourrez vous reporter avec profit
a
Méthodoloie de la programmation en C.
# Question
Posté par Anonyme . Évalué à 0.
[^] # Re: Question
Posté par Chamelle Kolabo . Évalué à 1.
La serie des trois bouquins de JMRifflet
la programmation sous unix
communication sous unix"TLI,RPC,Socket,IPC"
99 exercicex corrige alias "bus error, core dumped "
[^] # RAV
Posté par Eric Leblond (site web personnel) . Évalué à 1.
je croyais que vous étiez vraiment sous Apache ;-)
[^] # Re: RAV
Posté par Chamelle Kolabo . Évalué à 1.
WWW est un vrai boukliboulga immonde , que certains petits kremlinux sont en train d ingerer
fetedelamusique, lireenfete, wap etc .....
netscape/bubulle vs linux/sioux ;)
[^] # Re: Question
Posté par patrick . Évalué à 1.
Du même Stevens, qui était un expert légendaire du monde Unix, "UNIX NETWORK PROGRAMMING" en deux volumes est une merveille ...
Le style de programmation de Stevens est très bon et ses bouquins ont l'avantage d'être absolument exhaustifs. Il faut malgré tout reconnaître que les ouvrages de Rifflet que tu cites sont excellents.
[^] # Re: Question
Posté par Anonyme . Évalué à 0.
que j'ai acheté suite à un article dans Linux Mag.
et que j'ai trouvé excellent.
[^] # Re: Question
Posté par trollhunter . Évalué à 1.
[^] # Re: Question
Posté par Anonyme . Évalué à 0.
[^] # Re: Question
Posté par trollhunter . Évalué à 1.
entres autres pages 870-871 ça répond à ta question ?
[^] # Re: Question
Posté par Anonyme . Évalué à 0.
que les TLI sont tres utilisés dans les telecoms
Voila un super kang hourou de chez Kang hourou
http://larecherche.fr/VIEW/328/03280321.html(...)
[^] # Re: Question
Posté par trollhunter . Évalué à 1.
2) pour ton plaisir je te file la liste exacte des pages où celà apparait ( oublie pas que le 3eme Tome n'est jamais sorti, Stevens ayant eu un rendez vous du genre qu'on ne peut annuler )
TLI 763, 764,771,791,798,835,845,852,861,870-871,880
Satisfait ?
[^] # Re: Question
Posté par Anonyme . Évalué à 0.
datagramme. Les paquets pouvaient arriver en ordre différent de leur envoi, ou bien sur
plusieurs circuits reliés à des noeuds du réseau différents. Les communications n'étaient
donc pas rompues en cas de panne d'un circuit ou d'un noeud ; elles changeaient seulement
de route. TCP-IP, le protocole d'Internet défini en 1974 pour Arpanet, a repris ces
caractéristiques de Cyclades, en particulier la notion d'indépendance des paquets."
C'est dingue, nonn !!!!!!
Sinon les sockets c'est pas tres jeune aussi .
[^] # Re: Question
Posté par trollhunter . Évalué à 1.
[^] # Re: Question
Posté par trollhunter . Évalué à 1.
[^] # Re: Question
Posté par Anonyme . Évalué à 0.
Personne connait un bon site ou livre en francais pour apprendre le termcap ou la librairie ncurses (je ne connaissais meme pas !) parce que l'anglais ne m'est pas plus proche que le javanais (geographiquement c'est tout).
Merci d'avance.
Boulon un jour se loguera
# Solidite de la reliure
Posté par Anonyme . Évalué à 1.
[^] # Re: Solidite de la reliure
Posté par trollhunter . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.