top of page
  • White Facebook Icon
  • White Instagram Icon

Linux Kernel Development (Developer's Library) Robert Love



LWN.net is a subscriber-supported publication; we rely on subscribers to keep the entire operation going. Please help out by buying a subscription and keeping LWN on the net. By Jonathan CorbetDecember 15, 2010 It has been well over five years since LWN reviewed the second edition of Robert Love'sLinux Kernel Development. Needless to say, things have changed alittle since the 2.6.10 release covered by that edition. As it happens,the third edition has been out for a few months now; your editor hasfinally had a chance to read through his copy and put together a review.In summary, the third edition is a much-needed update, and Linux KernelDevelopment remains a valuable resource, but there are somedisappointments to be found as well.One has to dig a little bit to figure out which kernel version is coveredby the third edition; according to the preface, the target is 2.6.34.Robert, ever the optimist, suggests that it will be good for a long time:"As the Linux kernel matures, there is a greater chance of a snapshotof the kernel remaining representative long into the future." Timewill tell.The third edition has been extensively updated, but it retains the samestructure as its predecessors. The preface talks of "all-new" chapters,but the number of chapters remains the same. The scheduler discussion hasbeen updated to reflect the merging of the completely fair scheduler. Otherrelatively recent kernel changes (mutexes, for example) have been added,and there are changes throughout to reflect what has happened over the last24 kernel releases.There is a new chapter on kernel data structures; it containsthe linked list discussion previously found in Appendix A, along withcoverage of FIFOs, red-black trees, and the idr subsystem. The low-leveldevice model chapter has been combined with the chapter on loadablemodules, for some reason, but the discussion is not much changed. Theappendix on the random number generator is gone.All told, the coverage of the core kernel is well written and clear, in anapproachable style. Linux Kernel Development is, at this time,probably the best reference available for developers wanting to learn howthe kernel works and how the major pieces fit together. Your editor isglad to have a copy on hand.With that understanding in place, this, too, must be said: the update tothe third edition appears to have been done in a hurry. As a result, thebook contains a number of errors and inconsistencies, and it fails to coverno end of interesting things which have happened in the kernel over thelast five years while retaining text which was obsolete even in previouseditions. Robert has not been hugely present in the kernel developmentcommunity in the last few years (he got a job at a company with areputation for removing developers from the community) and, unfortunately,it shows.For example, this book (which covers 2.6.34) includes a section on theanticipatory I/O scheduler - which was removed in 2.6.33. There is stilltalk of the "Linus" scheduler - which (as is noted in the book) was a 2.4feature. The mutual exclusion chapter discusses semaphores - which havebeen deprecated for mutual exclusion purposes - with the section on mutexesseemingly bolted on afterward. (The book also says elsewhere that we cannot kill a process in anuninterruptible sleep because it "may hold a semaphore")There is a lengthy discussion of the old"bottom half" mechanism which is long gone; the removed-in-2.5 task queuemechanism also merits a section of its own. The unlamentedksymoops tool, we are told, "probably came with yourdistribution". Some things are simply wrong. We're told that do_exit() callsdel_timer_sync(), but that last happened in 2.6.15. The workqueuediscussion appears to be stuck in a 2.6.10 time warp; changes which were merged for 2.6.20 are not reflected here. Kernel stack size is said to be16K on 64-bit architectures because they usually have 8K pages. Theversion of struct file shown on page 279 never existed; itincludes f_ep_lock which was renamed (by your editor) tof_lock in 2.6.30. The "process address space" chapter says,several times, that all Linux systems have three-level page tables, despitethe fact that the fourth level was added for 2.6.11. The device modelchapter no longer mentions struct subsystem, but it still appearsin the associated diagram.And many things which should be discussed in a contemporary book aren't.Developers working on the kernel now should probably be familiar withcontrol groups, contemporary debugging tools (kmemleak, lockdep, the faultinjection framework, ...), debugfs, ftrace, git, high-resolution timers, hugepages, linux-next, multiple slab allocators, namespaces, perf, powermanagement and quality of service, read-copy-update, readahead, reversemapping in the VM subsystem, scheduler domains, splice(),TASK_KILLABLE, threaded interrupt handlers, virtualization, and so on.No book on the kernel can hope to be complete and still be something that aperson of ordinary strength can physically lift, but these topics are allimportant enough that, one would assume, at least some of them would meritcoverage, but none are mentioned in the third edition.Keeping up with all that is happening in the kernel is hard - your editorhopes that readers will trust him to understand this. So it is notsurprising that some mistakes would slip through when a book isfast-forwarded from 2.6.10 to 2.6.34. But the amount of old stuff thatleaked through, combined with the things which should have been mentionedbut weren't, seems a bit high; some of them should, at least, have beencaught in technical review. As a result, the third edition of LinuxKernel Development is not as good as it could have been.These grumbles notwithstanding, your editor will restate what was saidabove: this book remains the best overview of contemporary kernel development available today.Robert is a talented and engaging writer who is able to cover complextopics in a readily understandable manner. The third edition merits aplace on the "L1 bookshelf" (the one which can be reached without gettingout of the chair); developers who are working with the kernel willprobably want a copy. Index entries for this article KernelBooks (Log in to post comments) Book review: Linux Kernel Development, third edition Posted Dec 15, 2010 18:45 UTC (Wed) by karim (subscriber, #114) [Link]




Linux Kernel Development (Developer's Library) Robert Love


2ff7e9595c


 
 
 

Recent Posts

See All
Baixe www.movies.com 2017 tamil

Como baixar filmes Tamil de www.movies.com em 2017 Os filmes tâmeis são conhecidos por sua rica cultura, música vibrante e ação...

 
 
 
Download 02 conta

Como Baixar 02 Bill Se você é um cliente da O2, pode querer baixar sua fatura por vários motivos. Talvez você queira manter um registro...

 
 
 

Comentarios


STAY UPDATED

Tel: 123-456-7890     Email: info@mysite.com

  • White Facebook Icon
  • White Instagram Icon

© 2023 by Roundhouse. Proudly created with Wix.com

bottom of page