Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save SaveTheRbtz/3080238 to your computer and use it in GitHub Desktop.
Save SaveTheRbtz/3080238 to your computer and use it in GitHub Desktop.
My wishlist for next edition of Linux Kernel Development

Linux Kernel Development

Third Edition by Robert Love is an excellent book, but still there is a way for improvement. I'll attached tiny errata and my wishlist below.

Chapter 7: Interrupts and Interrupt Handlers

Wishlist

Mention of MSI/MSI-x interrupts.

Chapter 8: Bottom Halves and Deferring Work

p. 151

"It retrieves the function that should be called, func, and its argument, data"

But actually work->func is called with work itself as an argument (and data is unused):

f(work)

p. 159

-Chapters 8 and 9 give the details

+Chapters 9 and 10 give the details

Wishlist

RCU mention would be nice.

Chapter 12: Memory Management

p. 236

Why whole paragraph is dedicated to get_zero_page()? Why not just describe __GFP_ZERO in Table 12.3?

Wishlist

NUMA parts, splice(2) system call family, huge pages and memory control groups worth mentioning.

Chapter 13: The Virtual Filesystem

Wishlist

fallocate, xip, readahead

Chapter 14: The Block I/O Layer

Wishlist

CFQ IOPS mode

Chapter 15: The Process Address Space

p. 305

-process's view of memory is as if it alone has full access to the system's physical memory

+process's view of memory is as if it alone has full access to the system's virtual address space

Chapter 16: The Page Cache and Page Writeback

Wishlist

I suppose it is the right place to mention recent(2.6.28) file/anon LRU lists split.

Chapter 17: Devices and Modules

Wishlist

Brief mention of udev would be nice I think.

Chapter 18: Debugging

Wishlist

This chapter may be greatly improved by covering some neat debugging techniques like netconsole/netdump, performance problems debugging and mention of systemtap.

P.S.

Also it would be nice for next edition of the book to cover networking subsystem and visualization.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment