Cover of Linux device drivers

Linux device drivers

by Alessandro Rubini, Jonathan Corbet, Greg Kroah-Hartman · first published 1998

39mentions
21recommended by
33HN commenters
2009–2023first – last mentioned

64% recommend27% neutral9% critical

Why HN recommends it

Clear, freely available introduction to kernel programming, organized by subsystem and built around writing a small driver (scull). Useful as an API reference and a first step into kernel internals and systems C.

Common criticism: Dated: written for the 2.6 kernel, so many APIs have changed

Summarised by Claude from recommending comments

Provides "hands-on" information on writing device drivers for the Linux system, with particular focus on the features of the 2.4 kernel and its implementation.

Affiliate links. As an Amazon Associate I earn from qualifying purchases.

Mentions per year

60 2007: 0 mentions2008: 0 mentions2009: 1 mention2010: 3 mentions2011: 1 mention2012: 2 mentions2013: 2 mentions2014: 5 mentions2015: 1 mention2016: 1 mention2017: 4 mentions2018: 1 mention2019: 6 mentions2020: 2 mentions2021: 3 mentions2022: 2 mentions2023: 3 mentions2024: 0 mentions2025: 0 mentions2026: 0 mentions200720172026

What Hacker News says

  • antegamisou · Sep 14, 2022 · Recommends

    Grab a copy of Linux Device Drivers by Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman: https://lwn.net/Kernel/LDD3/ Don't mind the document's age, the principles have largely remained unchanged. Besides, it's probably a better…

    on “Ask HN: How do I write a Linux driver for my 15 year old photo printer?” ↗
  • MichaelCrawford · Dec 10, 2014 · Recommends

    …of the day when I would have enough money for an SE. Whatever box you presently have, install Linux or BSD into a VM. For Linux, read "Understanding the Linux Kernel" by Bovet and Cesati, as well as "Linux Device Drivers" by Corbet, Rubini and Kroah-Hartman. They're both published by O'Reilly. If you're going to do embedded, while not strictly necessary, it is helpful to know how to build your own cross-compiler from…

    on “What kind of companies hire C developers” ↗
  • rsto · Mar 3, 2017 · Recommends

    I found "Linux Device Drivers, Third Edition" by Rubini et al an excellent intro to Kernel development: https://lwn.net/Kernel/LDD3/ Probably a lot has changed in the Linux kernel since then, so YMMV.

    on “Ask HN: Best hands on kernel books?” ↗
  • pmjordan · Mar 1, 2010 · Recommends

    I'm currently working on a block device driver, which means I'm digging around in kernels. I've found the O'Reilly books on the Linux kernel ("Understanding the Linux Kernel, 3rd ed" and "Linux Device Drivers, 3rd ed") as well as "Mac OS X Internals" by Amit Singh extremely helpful. The latter doesn't only cover the darwin/xnu kernel but also a lot of the OS X user space. All of them are quite technical and…

    on “Ask HN: Do you understand your operating system?” ↗
  • woodrowbarlow · Nov 14, 2018 · Recommends

    …or mobile app development, but my first job was writing kernel drivers for i2c peripherals on a proprietary embedded linux SoC. at first i was very lost, but right away i fell in love with embedded. "linux device drivers"[1] was a godsend. this book is written with utter clarity and very well organized. my only wish is that corbet will update it -- i am convinced that there are many embedded devices in the wild still…

    on “A book list for OS kernel developers and device driver writers (2006)” ↗
  • bromonkey · May 15, 2020 · Recommends

    I started learning kernel internals from these books, I highly recommend all of them. Operating Systems: Three Easy Pieces (free online) - Arpaci-Dusseau Linux Device Drivers, 3rd ed (o'Reilly) - Jonathan Corbet The Linux Programming Interface - Michael Kerrisk The Design and Implementation of the FreeBSD Operating System (2nd ed) - McKusick, McKusick, Watson Solaris Internals…

    on “Ask HN: What programming skills are required by HFT or Trading firms” ↗
  • chrisBob · May 30, 2014 · Recommends

    …experience is with an embedded linux environment, and I would probably recommend starting with something like a RPi so that your environment is easy to restore if you mess something up. I also recommend "Linux Device Drivers" from O'Reilly. http://lwn.net/Kernel/LDD3/

    on “Write your first Linux kernel module” ↗
  • lewis1028282 · Jun 23, 2020 · Recommends

    Might be a bit controversial but I found writing drivers for Linux on my raspberry pi helped me understand kernels, virtual memory etc. I used Linux Device Drivers (ldd3) which is free online. The book was written for the 2.6 kernel but someone on GitHub updated the code for the latest kernels.

    on “Learning operating system development using Linux kernel and Raspberry Pi” ↗
  • cjbprime · Oct 1, 2012 · Recommends

    …kernel code has been wanting to change it and having to learn exactly how it works to achieve that. If you just want to learn more about how the kernel fits together, reading http://lwn.net/Kernel/LDD3/ (Linux Device Drivers, freely downloadable) is a fine start.

    on “Linux 3.6 released” ↗
  • pmjordan · Sep 26, 2009 · Recommends

    I've invested quite a bit of time into learning about Linux kernel programming over the last few months, and the O'Reilly books Understanding the Linux Kernel and Linux Device Drivers helped immensely. They were useful for getting higher-level feel for the system, as well as going into enough detail so I now usually know where to look or start. They're also great as references during…

    on “Ask HN: Resources/Books for kernel/driver programming on Windows and OSX” ↗
  • wmat · Aug 12, 2011 · Recommends

    …changes as they see fit. No more searching for errata URLs, simply update your repository. I'd even pay for this. A great example of where this idea could be really useful is with Linux books like 'Linux Device Drivers', or 'Understanding the Linux Kernel'. These books are often out of date at the time they're published. I'd happily pay for access to them in a repository somewhere. This is not unlike how the Pragmatic…

    on “Free Printed Copies of "Version Control by Example"” ↗
  • magpi3 · Nov 30, 2017 · Recommends

    There is a similar exercise in "Linux Device Drivers." The first driver they ask you to write is a char device that runs in memory called "scull." Here is a link to the free book (warning it's a pdf): http://free-electrons.com/doc/books/ldd3.pdf And…

    on “Writing a Simple Linux Kernel Module” ↗
  • woodrowbarlow · Jun 11, 2018 · Recommends

    …if i were to pick just a couple, they would be: "Write a System Call": https://brennan.io/2016/11/14/kernel-dev-ep3/ "The TTY Demystified": http://www.linusakesson.net/programming/tty/ And a book, "Linux Device Drivers, 3rd Edition":https://lwn.net/Kernel/LDD3/ (free!) protip: as you're getting started with kernel hacking, use kernel 2.6. LDD3 uses 2.6, as do a wealth of other books.

    on “Learning operating system development using Linux kernel and Raspberry Pi” ↗
  • ceidsness · Jan 11, 2019 · Recommends

    Linux Device Drivers 3rd Edition is a bit dated but is still a wonderful introduction to systems programming in C. It's for Linux, but it presents information that is useful when working with any system. Low-level systems…

    on “Ask HN: What should a systems/low-level software engineer know?” ↗
  • nitrogen · Jan 21, 2010 · Recommends

    …the controller plugs into the Xbox's controller port. You can just download the Xbox controller drivers written by others. That said, you may find the following resources useful (I certainly have): Linux Device Drivers (a very helpful book, but the kernel API has changed a bit since its release): http://lwn.net/Kernel/LDD3/ Windows Driver Development Kit (use Google to find the XP or Server 2003 versions if you need…

    on “Complete IDE Disk Driver in Forth” ↗

Keyboard shortcuts

/
Focus search
j / k
Next / previous book
Enter
Open focused book
Esc
Close / go back
g h
Go to Home
g t
Go to Top all-time
g m
Go to Most recommended
g r
Go to Rising
g f
Go to For You
?
Show this help