3 ms·
Read the Unix books, LWN, the kernel mailing list - It's definitely a good way to start out to get the fundamentals. A good start on device drivers (old 2.6.10
by convivialdingo 3y ago
Read the Unix books, LWN, the kernel mailing list - It's definitely a good way to start out to get the fundamentals.
A good start on device drivers (old 2.6.10 kernel but still good): https://lwn.net/Kernel/LDD3/ https://lwn.net/Kernel/LDD3/
Operating Systems: Three Easy Pieces - Files and directories: https://pages.cs.wisc.edu/~remzi/OSTEP/file-intro.pdf https://pages.cs.wisc.edu/~remzi/OSTEP/file-intro.pdf
(Another great book from an OS perspective with some userspace interactions)
A thorough Linux internal engineering book is: https://mirrors.edge.kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.html https://mirrors.edge.kernel.org/pub/linux/kernel/people/paul...
(The bibliography has tons of links on topics you might be interested in, Chapter 7 on locks is great)
I recommend implementing a basic key/value single table "database" in C/C++ and then add threading/multi-process interfaces so you can mentally figure out all the pros/cons. It's not technically "hard" and you'll learn a lot.