HACKER Q&A
📣 rory_isAdonk

How to learn about Linux system internals?


Coming from reading a SRE job posting at Google i saw:

"Experience with algorithms and data structures and/or Unix/Linux systems internals (e.g., filesystems, system calls) and administration."

I have a good grasp of algorithms, at least to the extent that I could further my knowledge in this domain alone.

How would you suggest learning about Unix/Linux systems internals?

I was thinking of setting up a linux server and managing it, any suggestions for good places to start in regards to practical things i could do with it which would expose me to the internals?


  👤 SanderSantema Accepted Answer ✓
Although I personally haven’t got any experience with linux internals (insofar not needed as a user) I’d think https://www.kernel.org/doc/html/latest/ might be a good place to start. You might want to find out how much actually is about system internals instead of administration. I think system internals are a much broader subject than what is needed to be a very good linux administrator.

👤 dyingkneepad
Either they mean something you can learn by reading "Advanced Programming in the Unix Environment" or something you can learn by reading "Linux Device Drivers".

In the first case, I'd suggest trying to write a daemon that opens a socket and/or a fifo or pipe, sends some data, forks, execs, reacts to SIGUSR2, gets started by systemd, etc.

In the second case, implement a /dev/reversestring or whatever. Perhaps make your daemon use it :).

https://lwn.net/Kernel/LDD3/


👤 stephenheron
I have never applied at Google so I don't know what they are looking for exactly, however I read "Linux Kernel Development" by Robert Love a few years ago and I really enjoyed it. It might be the best technical book I have ever read now that I think about it.

👤 fm200
This might help, its a bit overkill maybe, but it will give you great knowledge about linux internals http://www.oldlinux.org/download/ECLK-5.0-WithCover.pdf

👤 chefkoch
I would start with courseworks for rhcsa/rhce. Every distro does some stuff different but the redhat certs cover all the basics and more.