Advanced Programming in the UNIX Environment

Posté par  . Modéré par trollhunter.
Étiquettes :
0
23
oct.
2000
Linux
Extrait:
"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



Couverture
<!-- 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  . Évalué à 0.

    C'est un réédition ou la traduction du bouquin original de 1992 ?
    • [^] # Re: Question

      Posté par  . Évalué à 1.

      Mouai pourquoi pas ca

      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  (site web personnel) . Évalué à 1.

        Pourquoi le serveur principal du ministère est-il sous netscape enterprise?
        je croyais que vous étiez vraiment sous Apache ;-)
        • [^] # Re: RAV

          Posté par  . Évalué à 1.

          Mouai petit curieux vl a !!

          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  . Évalué à 1.

        Je trouve pour ma part que cet ouvrage de Stevens est exceptionnel. Pédagogie, exhaustivité et grandes compétences techniques de l'auteur, ... tout y est !
        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  . Évalué à 0.

          Je recommenderais également "Programmation Système en C sous Linux",
          que j'ai acheté suite à un article dans Linux Mag.
          et que j'ai trouvé excellent.
        • [^] # Re: Question

          Posté par  . Évalué à 1.

          Ouaich, d'accord avec toi, personellement je préfère largement Stevens à Rifflet c'est surtout évident lorsque l'on regarde les livres réseau, TCP/IP Illustrated et UNIX Network Programming : il y a pas photo. Pour TCP/IP on peut aussi citer Comer. En fait Stevens est bien le gourou des gourous.
          • [^] # Re: Question

            Posté par  . Évalué à 0.

            parle t il des TLI ???
            • [^] # Re: Question

              Posté par  . Évalué à 1.

              UNIX Network Programming Vol1
              entres autres pages 870-871 ça répond à ta question ?
              • [^] # Re: Question

                Posté par  . Évalué à 0.

                2 pages pour une refence ;) juste pour rappeler
                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  . Évalué à 1.

                  1) le TLIs c'est assez ancien
                  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  . Évalué à 0.

                    "Le protocole de Cyclades était conçu pour tirer le meilleur parti des caractéristiques du
                    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  . Évalué à 1.

                      Tu as l'air doué pour rédiger tu nous pond une petite critique de bouquin ? tu me la maile
    • [^] # Re: Question

      Posté par  . Évalué à 1.

      Bien, j'aurais peut être du le préciser mais comme on peut le voir dans la table des matières c'est en Anglais. Pour ce qui est de la réedition c'est pas prévu au programme.
      • [^] # Re: Question

        Posté par  . Évalué à 0.

        Arghh, c'est bien ce que je pensais !
        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  . Évalué à 1.

    Pour la solidite de la reliure, j'ai quand meme quelques doutes. J'ai le tome 1 du Stevens sur les reseaux (en hard-cover). Si la couverture est solide, il ne faut pas oublier que (comme pour las plus part des bouquins d'info americains) que les feuilles sont attachee "a la colle" et pas "cousues", et ont donc tendance a se detacher avec l'usage (surtout si tu photocopie le livre !). JE presume qu'il en est de meme avec ce livre...
    • [^] # Re: Solidite de la reliure

      Posté par  . Évalué à 1.

      Ben écoutes, celà fait 4 ans que j'ai ce livre, trimballé en vrac dans le sac a dos,prété à des potes et toujours en bon état : je connais d'autres livres qui ont pas tenu 2 mois de ce traitement. Les pages sont toujours bien collées en place.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.