Coming from reading a SRE job posting at Google i saw:<p>"Experience with algorithms and data structures and/or Unix/Linux systems internals (e.g., filesystems, system calls) and administration."<p>I have a good grasp of algorithms, at least to the extent that I could further my knowledge in this domain alone.<p>How would you suggest learning about Unix/Linux systems internals?<p>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?
Although I personally haven’t got any experience with linux internals (insofar not needed as a user) I’d think <a href="https://www.kernel.org/doc/html/latest/" rel="nofollow">https://www.kernel.org/doc/html/latest/</a> 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.
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".<p>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.<p>In the second case, implement a /dev/reversestring or whatever. Perhaps make your daemon use it :).<p><a href="https://lwn.net/Kernel/LDD3/" rel="nofollow">https://lwn.net/Kernel/LDD3/</a>
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.
This might help, its a bit overkill maybe, but it will give you great knowledge about linux internals <a href="http://www.oldlinux.org/download/ECLK-5.0-WithCover.pdf" rel="nofollow">http://www.oldlinux.org/download/ECLK-5.0-WithCover.pdf</a>