{"id":1308,"date":"2011-12-16T15:16:14","date_gmt":"2011-12-16T14:16:14","guid":{"rendered":"http:\/\/www.blaess.fr\/christophe\/?page_id=1308"},"modified":"2024-02-10T19:09:48","modified_gmt":"2024-02-10T18:09:48","slug":"recommandations-de-lecture","status":"publish","type":"page","link":"https:\/\/www.blaess.fr\/christophe\/livres\/recommandations-de-lecture\/","title":{"rendered":"Recommandations de lecture"},"content":{"rendered":"\n<p class=\"has-small-font-size\">Durant des sessions de formations, on m&rsquo;a souvent demand\u00e9 des bibliographies ou des conseils de lecture sur certains sujets. J&rsquo;ai d\u00e9cid\u00e9 de mentionner ici quelques ouvrages qui me semblent particuli\u00e8rement judicieux pour \u00e9tudier ou approfondir des domaines li\u00e9s \u00e0 la programmation, aux syst\u00e8mes Unix et Linux, ou aux environnements temps-r\u00e9el et embarqu\u00e9s.<\/p>\n\n\n\n<p>J&rsquo;ai regroup\u00e9 les livres par th\u00e8mes, et au sein de chaque th\u00e8me j&rsquo;ai class\u00e9 les ouvrages par ordre alphab\u00e9tique de nom d&rsquo;auteur.<\/p>\n\n\n\n<p>Tous ces ouvrages sont de grande qualit\u00e9, et en regard de chaque livre j&rsquo;ai indiqu\u00e9 sur une \u00e9chelle de 1 \u00e0 3 \u00e9toiles ma perception personnelle et subjective ainsi&nbsp;:<\/p>\n\n\n\n<p class=\"has-small-font-size\"><strong>***<\/strong> Indispensable. Si vous ne l&rsquo;avez pas lu, commandez-le tout de suite.<br \/><strong>** <\/strong> Tr\u00e8s utile. Fortement recommand\u00e9 pour ma\u00eetriser le domaine.<br \/><strong>* <\/strong> Utile pour approfondir un sujet.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">CONCEPTION, ARCHITECTURE<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Frederick P. Brooks&nbsp;: Le mythe du mois-homme &#8211; <em>The Mythical Man-Month<\/em> (*)<\/h3>\n\n\n\n<p>S&rsquo;appuyant sur l&rsquo;\u00e9tude de projets d&rsquo;envergure des ann\u00e9es 70, notamment sur IBM\/360, Frederick Brooks pose les fondations du g\u00e9nie logiciel, qu&rsquo;il approfondit \u00e0 travers une collection d&rsquo;articles des ann\u00e9es 80 et 90. Deux id\u00e9es ma\u00eetresses qui me semblent parfaitement juste: \u00ab\u00a0<em>Inutile d&rsquo;ajouter des programmeurs sur un projet en retard, \u00e7a le retardera encore plus<\/em>\u00a0\u00bb et \u00ab\u00a0<em>Pr\u00e9voyez de jeter un exemplaire de votre code et de tout r\u00e9\u00e9crire, alors commencez par un prototype<\/em>\u00ab\u00a0.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"200\" class=\"wp-image-5185\" style=\"width: 150px; height: auto;\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2018\/10\/Brooks-1995-1.jpg\" alt=\"\" \/>\n<figcaption class=\"wp-element-caption\"><br \/>Consultable en-ligne sur Internet A<\/figcaption>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Steve Krug&nbsp;: <em>Don&rsquo;t make me think revisited<\/em> (*) et <em>Rocket Surgery Made Easy<\/em> (*)<\/h3>\n\n\n\n<p><em>Don&rsquo;t make me think<\/em> est un guide pour le d\u00e9veloppeur et le testeur pour s&rsquo;assurer de la qualit\u00e9 d&rsquo;utilisation d&rsquo;une interface graphique. Les \u00e9ditions actuelles sont centr\u00e9es sur les fonctionnalit\u00e9s modernes li\u00e9es au web 2.0, mais les concepts s&rsquo;appliquent plus largement \u00e0 de nombreuses applications graphiques. Il s&rsquo;agit de la seconde \u00e9dition, revue et modifi\u00e9e pour s&rsquo;adapter aux applications mobiles. Rocket Surgery Made Easy est la mise en pratique de ces concepts, en menant des \u00ab\u00a0<em>Usability Tests<\/em>\u00a0\u00bb pour v\u00e9rifier la qualit\u00e9 d&rsquo;utilisation d&rsquo;un logiciel ou d&rsquo;un site web.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"200\" class=\"wp-image-5188\" style=\"width: 150px; height: 200px;\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2018\/10\/Krug-2013.jpg\" alt=\"\" \/><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"200\" class=\"wp-image-5190\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2018\/10\/Krug-2010.jpg\" alt=\"\" \/><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">Steve Mc Connell&nbsp;: Strat\u00e9gies pour D\u00e9velopper Juste &#8211; <em>Software Project Survival Guide<\/em> (**)<\/h3>\n\n\n\n<p>Se pr\u00e9sentant comme un guide de survie (pour le logiciel, pas pour le d\u00e9veloppeur), ce livre insiste sur l&rsquo;organisation des \u00e9tapes n\u00e9cessaires autour du d\u00e9veloppement proprement dit (architecture, qualit\u00e9, livraison, modifications, etc.) pour assurer la r\u00e9ussite d&rsquo;un projet.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"200\" class=\"wp-image-5194\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2018\/10\/McConnell-1997.jpeg\" alt=\"\" \/><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">Steve Maguire&nbsp;: <em>Debugging the Development Process<\/em> (**)<\/h3>\n\n\n\n<p>Ce livre est un manuel \u00e0 l&rsquo;usage du chef de projet pour mener \u00e0 bien un d\u00e9veloppement logiciel en minimisant les retards et optimisant la qualit\u00e9 du code produit. L&rsquo;accent est port\u00e9 sur la motivation et l&rsquo;encadrement de l&rsquo;\u00e9quipe de d\u00e9veloppement.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"200\" class=\"wp-image-5195\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2018\/10\/Maguire-1994.jpeg\" alt=\"\" \/>\n<figcaption class=\"wp-element-caption\"><\/figcaption>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">PROGRAMMATION, LANGAGES<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Michael Feathers&nbsp;: <em>Working Effectively with Legacy Code<\/em> (**)<\/h3>\n\n\n\n<p>La maintenance d&rsquo;un code pr\u00e9-existant, dont on h\u00e9rite sans avoir particip\u00e9 \u00e0 sa cr\u00e9ation initiale, sans conna\u00eetre les raisons des choix initiaux de conception est une activit\u00e9 tr\u00e8s r\u00e9pandue, souvent peu gratifiante et plut\u00f4t p\u00e9nible.<\/p>\n\n\n\n<p>L&rsquo;auteur nous pr\u00e9sente une m\u00e9thode de travail, s&rsquo;appuyant notamment sur la qualit\u00e9 des tests unitaires pour intervenir dans du code qui n&rsquo;est pas le n\u00f4tre. De nombreux cas sont analys\u00e9s et pr\u00e9sent\u00e9s en d\u00e9tail.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"200\" class=\"wp-image-5220\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2018\/10\/Feathers-2004.jpeg\" alt=\"\" \/>\n<figcaption class=\"wp-element-caption\"><\/figcaption>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Martin Fowler, Kent Beck, et al. : <em>Refactoring: Improving the Design of Existing Code<\/em> (**)<\/h3>\n\n\n\n<p>Ce livre est une r\u00e9f\u00e9rence incontournable du <em>refactoring<\/em>, la retouche r\u00e9guli\u00e8re du code existant pour en am\u00e9liorer la qualit\u00e9, la robustesse, la maintenabilit\u00e9, etc. Les auteurs pr\u00e9sentent des recettes d\u00e9taill\u00e9es pour la modification d&rsquo;un code source en \u00e9vitant les risques de r\u00e9gression.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"200\" class=\"wp-image-5219\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2018\/10\/Fowler-1999.jpg\" alt=\"\" \/>\n<figcaption class=\"wp-element-caption\"><\/figcaption>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">James W. Grenning&nbsp;: <em>Test-Driven Development for Embedded C<\/em> (***)<\/h3>\n\n\n\n<p>Le d\u00e9veloppement pilot\u00e9 par les tests est une mani\u00e8re d&rsquo;organiser la programmation en structurant la production de code autour des tests unitaires. Cette approche permet de garantir un d\u00e9veloppement fluide, en \u00e9liminant au maximum les phases de d\u00e9bogage p\u00e9nibles et co\u00fbteuses. Plusieurs livres traitent de ce sujet avec talent. Celui-ci me pla\u00eet beaucoup pour deux raisons&nbsp;: il traite du langage C, alors que la plupart des autres ouvrages contiennent des exemples en Java, et il pr\u00e9sente la vision d&rsquo;un ing\u00e9nieur en syst\u00e8mes embarqu\u00e9s. Ce point est important car la communication avec le mat\u00e9riel &#8211; qui est habituellement au c\u0153ur des projets embarqu\u00e9s &#8211; est souvent complexe \u00e0 tester de mani\u00e8re automatis\u00e9e.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"200\" class=\"wp-image-5431\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2018\/12\/Grenning-2011.jpg\" alt=\"\" \/>\n<figcaption class=\"wp-element-caption\"><\/figcaption>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Andrew Hunt &amp; David Thomas&nbsp;: <em>The Pragmatic Programmer, from Journeyman to Master<\/em> (***)<\/h3>\n\n\n\n<p>Ce livre est une mine de conseils, de r\u00e9flexions et de petites remarques sur l&rsquo;am\u00e9lioration de la qualit\u00e9 du code. Comme les ouvrages de Robert C. Martin (voir ci-dessous), ce sont des textes qui mettent en avant la satisfaction qu&rsquo;apporte le travail du d\u00e9veloppeur.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"200\" class=\"wp-image-5216\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2018\/10\/Hunt-1999.jpg\" alt=\"\" \/>\n<figcaption class=\"wp-element-caption\"><\/figcaption>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Brian W. Kernighan &amp; Rob Pike&nbsp;: <em>The Practice of Programming<\/em> (**)<\/h3>\n\n\n\n<p>Ce livre tr\u00e8s int\u00e9ressant est un ensemble de conseils avis\u00e9s sur la qualit\u00e9 de la programmation tant sur le fond (algorithmes, structures de donn\u00e9es, etc.) que sur la forme (style, conventions de codage&#8230;). L&rsquo;accent est mis sur deux points essentiels pour la qualit\u00e9 logicielle&nbsp;: la lisibilit\u00e9 du code et la robustesse de l&rsquo;impl\u00e9mentation.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"200\" class=\"wp-image-5198\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2018\/10\/Kernighan-Pike-1999.jpg\" alt=\"\" \/>\n<figcaption class=\"wp-element-caption\"><\/figcaption>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Brian W. Kernighan &amp; Dennis M. Ritchie&nbsp;: Le langage C &#8211; <em>The C Programming Language<\/em> (***)<\/h3>\n\n\n\n<p>Un livre incontournable pour tout d\u00e9veloppeur amen\u00e9 \u00e0 programmer en C, C++, Java et tous les autres langages d\u00e9riv\u00e9s. L&rsquo;intelligence du texte et le choix judicieux des exemples en fait un mod\u00e8le de clart\u00e9 et de pr\u00e9cision.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"200\" class=\"wp-image-5199\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2018\/10\/Kernighan-Ritchie-2014.jpg\" alt=\"\" \/>\n<figcaption class=\"wp-element-caption\"><\/figcaption>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Andrew Koenig&nbsp;: Pi\u00e8ges du langage C &#8211; <em>C Traps and Pitfalls<\/em> (**)<\/h3>\n\n\n\n<p>Une analyse pointue de certaines erreurs que peuvent commettre programmeurs d\u00e9butants ou chevronn\u00e9s en langage C. Tr\u00e8s utile pour se perfectionner dans ce langage.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"200\" class=\"wp-image-5201\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2018\/10\/Koenig-1994.jpg\" alt=\"\" \/>\n<figcaption class=\"wp-element-caption\"><\/figcaption>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Steve Mc Connell&nbsp;: <em>Code Complete<\/em> (***)<\/h3>\n\n\n\n<p>Je mettrais peut-\u00eatre ce livre en t\u00eate de ceux que je consid\u00e8re comme indispensables pour pr\u00e9tendre \u00e9crire du code robuste, extensible et performant. Il en existe deux \u00e9ditions, la seconde int\u00e9grant les concepts de la programmation orient\u00e9e objet. On peut le trouver tant en version originale qu&rsquo;en version fran\u00e7aise, mais le titre fran\u00e7ais a chang\u00e9 entre les deux \u00e9ditions.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Premi\u00e8re \u00e9dition<\/h4>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"200\" class=\"wp-image-5203\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2018\/10\/McConnell-1993.jpeg\" alt=\"\" \/>\n<figcaption class=\"wp-element-caption\"><\/figcaption>\n<\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Seconde \u00e9dition<\/h4>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"200\" class=\"wp-image-5204\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2018\/10\/McConnell-2004.jpeg\" alt=\"\" \/>\n<figcaption class=\"wp-element-caption\"><\/figcaption>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Steve Maguire&nbsp;: L&rsquo;art du code &#8211; <em>Writing Solid Code<\/em> (***)<\/h3>\n\n\n\n<p>Je rapproche cet ouvrage de celui de Steve Mc Connell ci-dessus. Il contient beaucoup de tr\u00e8s bonnes id\u00e9es pour am\u00e9liorer la robustesse d&rsquo;un logiciel en am\u00e9liorant la qualit\u00e9 de l&rsquo;impl\u00e9mentation originale plut\u00f4t qu&rsquo;en comptant sur l&rsquo;exhaustivit\u00e9 des tests.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"200\" class=\"wp-image-5207\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2018\/10\/Maguire-1993-1.jpeg\" alt=\"\" \/>\n<figcaption class=\"wp-element-caption\"><\/figcaption>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Robert C. \u00ab\u00a0<em>Uncle Bob<\/em>\u00a0\u00bb Martin&nbsp;: <em>Clean Code<\/em> (***), <em>Clean Coder<\/em> (***), <em>Clean Architecture<\/em> (**)<\/h3>\n\n\n\n<p>Ces trois livres sont assez proches de ceux de Steve Mc Connell et Steve Maguire, mais l&rsquo;approche est plus moderne. Le style et la richesse des textes d&rsquo;<em>Uncle Bob<\/em> sont appr\u00e9ciables \u00e0 chaque page. Comme les pr\u00e9c\u00e9dents, ce sont des ouvrages que je trouve enrichissant de lire et relire \u00e0 plusieurs reprises.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"200\" class=\"wp-image-5212\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2018\/10\/Martin-2008.jpeg\" alt=\"\" \/>\n<figcaption class=\"wp-element-caption\"><\/figcaption>\n<\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"152\" height=\"200\" class=\"wp-image-5213\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2018\/10\/Martin-2011.jpg\" alt=\"\" \/>\n<figcaption class=\"wp-element-caption\"><\/figcaption>\n<\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"149\" height=\"200\" class=\"wp-image-5214\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2018\/10\/Martin-2017.jpeg\" alt=\"\" \/>\n<figcaption class=\"wp-element-caption\"><\/figcaption>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">SYST\u00c8MES D&rsquo;EXPLOITATION, UNIX, LINUX<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Michael Kerrisk&nbsp;: <em>The Linux Programming Interface<\/em> (***)<\/h3>\n\n\n\n<p>Je connais Michael depuis longtemps&nbsp;; il est mainteneur du projet \u00ab\u00a0<em>Linux man-pages<\/em>\u00a0\u00bb et j&rsquo;ai fait sa connaissance lorsque je g\u00e9rais les traductions fran\u00e7aises des pages de manuel. J&rsquo;ai eu le plaisir de participer \u00e0 la relecture technique de ce livre et j&rsquo;ai beaucoup appr\u00e9ci\u00e9 la clart\u00e9 du texte de Michael ainsi que la pr\u00e9cision et le choix judicieux de ses exemples.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"200\" class=\"wp-image-5268\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2018\/10\/Kerrisk-2010.jpg\" alt=\"\" \/>\n<figcaption class=\"wp-element-caption\"><\/figcaption>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Eric S. Raymond&nbsp;: <em>The Art of Unix Programming<\/em> (**)<\/h3>\n\n\n\n<p>On conna\u00eet Eric Raymond comme promoteur de l&rsquo;<em>Open Source<\/em> (plut\u00f4t que du <em>Free Software<\/em> de Richard Stallman dont il rejette la dimension politique et philosophique), et comme sociologue des logiciels libres (\u00e0 travers entre autres son texte \u00ab\u00a0<a href=\"http:\/\/www.linux-france.org\/article\/these\/cathedrale-bazar\/cathedrale-bazar_monoblock.html\" target=\"_blank\" rel=\"noreferrer noopener\">La Cath\u00e9drale et le Bazar<\/a>\u00ab\u00a0). Dans ce livre, il pr\u00e9sente, \u00e0 travers de tr\u00e8s nombreuses \u00e9tudes de cas, des exemples de bonnes pratiques pour le d\u00e9veloppement Unix.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"200\" class=\"wp-image-5269\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2018\/10\/Raymond-2003.jpg\" alt=\"\" \/>\n<figcaption class=\"wp-element-caption\"><\/figcaption>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Richard Stevens&nbsp;: <em>Unix Network Programming<\/em> (**)<\/h3>\n\n\n\n<p>Pour tous ceux qui veulent approfondir les arcanes de la programmation r\u00e9seau, il s&rsquo;agit probablement d&rsquo;un des ouvrages les plus pointus dans ce domaines. A noter que certains protocoles pr\u00e9sent\u00e9s sont aujourd&rsquo;hui obsol\u00e8tes (<code>rlogin<\/code> par exemple), mais les exemples de code utilisant les sockets BSD sont toujours aussi pertinents.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"200\" class=\"wp-image-5270\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2018\/10\/Stevens-2003.jpeg\" alt=\"\" \/>\n<figcaption class=\"wp-element-caption\"><\/figcaption>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Richard Stevens, Stephen A. Rago&nbsp;: <em>Advanced Programming in the Unix Environment<\/em> (**)<\/h3>\n\n\n\n<p>Ce livre, souvent surnomm\u00e9 APUE dans les forums de d\u00e9veloppeurs, permet de tirer le meilleur parti des syst\u00e8mes Unix. Pour l&rsquo;\u00e9tude des aspects sp\u00e9cifiques de Linux, je conseillerais toutefois en compl\u00e9ment le livre de Michael Kerrisk.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"200\" class=\"wp-image-5271\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2018\/10\/Stevens-2013.jpeg\" alt=\"\" \/>\n<figcaption class=\"wp-element-caption\"><\/figcaption>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Andrew Tanenbaum &#8211; <em>Operating Systems Design and Implementation<\/em> (***)<\/h3>\n\n\n\n<p>Un livre fondamental pour l&rsquo;\u00e9tude des syst\u00e8mes d&rsquo;exploitation modernes. C&rsquo;est cet ouvrage qui a donn\u00e9 \u00e0 Linus Torvalds l&rsquo;envie d&rsquo;\u00e9crire son propre clone d&rsquo;Unix. L&rsquo;auteur a \u00e9crit le syst\u00e8me Minix dont les sources servent de support pour illustrer le propos de cet ouvrage.<\/p>\n\n\n\n<p>Depuis son fameux <a href=\"http:\/\/www.blaess.fr\/christophe\/articles\/linux-histoire-dun-noyau\/\" target=\"_blank\" rel=\"noreferrer noopener\">conflit avec Linus<\/a>, Andrew Tanenbaum reste arc-bout\u00e9 contre Linux et persuad\u00e9 de la supr\u00e9matie de son syst\u00e8me Minix. Il exprime dans <a href=\"http:\/\/linuxfr.org\/news\/entretien-avec-andrew%C2%A0tanenbaum-%C3%A0-propos-de-minix\" target=\"_blank\" rel=\"noreferrer noopener\">un entretien r\u00e9cent<\/a> sa frustration \u00e0 travers des justifications futiles (le projet BSD bloqu\u00e9 \u00e0 cause d&rsquo;un conflit sur un num\u00e9ro de t\u00e9l\u00e9phone&#8230;). Il n&rsquo;en reste pas moins que ce livre est excellent pour comprendre les ressorts des syst\u00e8mes d&rsquo;exploitation et les algorithmes fondamentaux de gestion des ressources mat\u00e9rielles.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"200\" class=\"wp-image-5273\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2018\/10\/Tannenbaum-2006.jpg\" alt=\"\" \/>\n<figcaption class=\"wp-element-caption\"><\/figcaption>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Linus Torvalds&nbsp;: Il \u00e9tait une fois Linux &#8211; <em>Just for fun<\/em> (*)<\/h3>\n\n\n\n<p>Incontournable pour les amateurs de l&rsquo;histoire de Linux. De nombreuses anecdotes amusantes. Probablement inint\u00e9ressant pour les autres lecteurs qui pr\u00e9f\u00e9reront peut-\u00eatre une biographie de Steve Jobs&#8230;<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"200\" class=\"wp-image-5274\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2018\/10\/Torvalds-2003.jpg\" alt=\"\" \/>\n<figcaption class=\"wp-element-caption\"><\/figcaption>\n<\/figure>\n\n\n\n<h1 class=\"wp-block-heading\">TEMPS R\u00c9EL, DRIVERS, SYST\u00c8MES EMBARQU\u00c9S<\/h1>\n\n\n\n<h3 class=\"wp-block-heading\">Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman&nbsp;: <em>Linux Device Drivers<\/em> (**)<\/h3>\n\n\n\n<p>Cet excellent livre est g\u00e9n\u00e9ralement surnomm\u00e9 LDD3 (troisi\u00e8me \u00e9dition) par les d\u00e9veloppeurs Linux.<\/p>\n\n\n\n<p>Je crois qu&rsquo;il s&rsquo;agit du seul livre que j&rsquo;ai achet\u00e9 trois fois, \u00e0 chacune de ses nouvelles \u00e9ditions car elles suivaient les \u00e9volutions importantes de structure du noyau dans ses premi\u00e8res versions. Depuis la troisi\u00e8me \u00e9dition, adapt\u00e9e au noyau 2.6.10, il n&rsquo;y a malheureusement plus de mise \u00e0 jour (hormis quelques ajouts et errata sur <em>lwn.net<\/em>).<\/p>\n\n\n\n<p>Les rumeurs incessantes de nouvelle \u00e9dition imminente ont \u00e9t\u00e9 douch\u00e9es par Greg Kroah-Hartman en 2017 d&rsquo;un \u00ab\u00a0<a href=\"https:\/\/www.reddit.com\/r\/linux\/comments\/61q6y8\/what_happened_to_linux_device_drivers_4th_edition\/\" target=\"_blank\" rel=\"noopener\"><em>It&rsquo;s not going to happen sorry. There is no current plans for a new edition at all.<\/em><\/a>\u00ab\u00a0.<\/p>\n\n\n\n<p>Le livre de John Madieu (ci-apr\u00e8s) vient combler ce manque. Je conseillerais toutefois de conserver \u00e9galement le LDD3 en r\u00e9f\u00e9rence, tout en sachant que ses exemples sont d\u00e9pass\u00e9s.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"200\" class=\"wp-image-5280\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2018\/10\/Corbet-2006.gif\" alt=\"\" \/>\n<figcaption class=\"wp-element-caption\">Lien LWN&nbsp;: <a href=\"https:\/\/lwn.net\/Kernel\/LDD3\/\" target=\"_blank\" rel=\"noopener\">https:\/\/lwn.net\/Kernel\/LDD3\/<\/a><\/figcaption>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Pierre Ficheux&nbsp;: \u00ab\u00a0Linux embarqu\u00e9\u00a0\u00bb (***)<\/h3>\n\n\n\n<p>Le livre de mon ami Pierre est un ouvrage incontournable pour ma\u00eetriser\u00a0 la conception et la production d&rsquo;un syst\u00e8me embarqu\u00e9 construit sur Linux. Outre la pr\u00e9cision technique et la justesse des exemples, on notera la qualit\u00e9 p\u00e9dagogique de ses explications, comme peuvent \u00e9galement en t\u00e9moigner les lecteurs de ses nombreux articles dans la presse technique Linux.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"200\" class=\"wp-image-5277\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2018\/10\/Ficheux-2017-1.jpeg\" alt=\"\" \/>\n<figcaption class=\"wp-element-caption\"><\/figcaption>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">John Madieu&nbsp;: \u00ab\u00a0<em>Linux Device Drivers Development<\/em>\u00a0\u00bb (***)<\/h3>\n\n\n\n<p>Pendant de nombreuses ann\u00e9es, le seul livre d\u00e9taill\u00e9 sur l&rsquo;\u00e9criture de drivers pour Linux \u00e9tait le \u00ab\u00a0LDD3\u00a0\u00bb malheureusement d\u00e9pass\u00e9. Le livre de John Madieu vient combler un manque important en permettant aux lecteurs int\u00e9ress\u00e9s par le d\u00e9veloppement <em>kernel<\/em> de s&rsquo;initier en s&rsquo;appuyant sur des exemples r\u00e9cents et des r\u00e9f\u00e9rences \u00e0 jour aux noyaux actuels.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"200\" class=\"wp-image-5279\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2018\/10\/Madieu-2017.jpeg\" alt=\"\" \/>\n<figcaption class=\"wp-element-caption\"><\/figcaption>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Pierre-Jean Texier &amp; Petter Mab\u00e4cker&nbsp;: \u00ab\u00a0Yocto for Raspberry Pi\u00a0\u00bb (***)<\/h2>\n\n\n\n<p>Ce livre de mon confr\u00e8re Pierre-Jean Texier est un tr\u00e8s bon outil d&rsquo;apprentissage de Yocto qui s&rsquo;appuie sur la plus populaire des plates-formes pour Linux embarqu\u00e9. Clair et tr\u00e8s d\u00e9taill\u00e9, il facilite \u00e9norm\u00e9ment la d\u00e9couverte de l&rsquo;univers Yocto \/ Open Embedded.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"200\" class=\"wp-image-5448\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2018\/12\/Texier-2016.jpg\" alt=\"\" \/>\n<figcaption class=\"wp-element-caption\"><\/figcaption>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Karim Yaghmour&nbsp;: \u00ab\u00a0<em>Building Embedded Linux Systems<\/em>\u00a0\u00bb (***)<\/h2>\n\n\n\n<p>Un des premiers livres publi\u00e9s consacr\u00e9 aux syst\u00e8mes embarqu\u00e9s avec\u00a0Linux. J&rsquo;ai beaucoup aim\u00e9 la premi\u00e8re \u00e9dition de ce livre. Un tr\u00e8s bon compl\u00e9ment \u00e0 celui de Pierre Ficheux.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"200\" class=\"wp-image-5425\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2018\/11\/Yaghmour-2008.jpg\" alt=\"\" \/>\n<figcaption class=\"wp-element-caption\"><br \/><br \/><\/figcaption>\n<\/figure>","protected":false},"excerpt":{"rendered":"<p>Durant des sessions de formations, on m&rsquo;a souvent demand&eacute; des bibliographies ou des conseils de lecture sur certains sujets. J&rsquo;ai d&eacute;cid&eacute; de mentionner ici quelques ouvrages qui me semblent particuli&egrave;rement judicieux pour &eacute;tudier ou approfondir des domaines li&eacute;s &agrave; la programmation, aux syst&egrave;mes Unix et Linux, ou aux environnements temps-r&eacute;el et embarqu&eacute;s. J&rsquo;ai regroup&eacute; les [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"parent":15,"menu_order":10,"comment_status":"open","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-1308","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/pages\/1308","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/comments?post=1308"}],"version-history":[{"count":33,"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/pages\/1308\/revisions"}],"predecessor-version":[{"id":6051,"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/pages\/1308\/revisions\/6051"}],"up":[{"embeddable":true,"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/pages\/15"}],"wp:attachment":[{"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/media?parent=1308"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}