How to learn Linux system internals

That's a very vague requirement. Because it's DevOps you are referring to, it probably means things similar to these, including but not limited to

  • Knowledge about the kernel run-time tunables (sysctl, /proc, /sys)
  • Familiar with the usual processes running on your typical Linux machine -- systemd, cron, some syslog daemon, ntp...
  • Familiar with typical Linux filesystems
  • Knowledge about how to resize filesystems, observe the machine load, install and configure common programs needed...
  • Ability to debug basic problems by reading logs, using programs like top, vmstat, iostat, sar, strace and so forth

That's just a guess from my side.


"Internals" is a common marketing term often used in job descriptions as they are often written by HR or hiring managers who are non-technical.

You would have to go to the interview to meet the technical staff to find out what the job really requires.

"Linux Internals" usually would mean a high level familiarity with the OS, including knowledge of using and configuring the Kernel, but not programming or developing it.

I would recommend studying for the RHCE or Linux+


why should I know Linux internals?

Understanding how it all works "under the hood" is essential in order to reason about the state of complex systems. It's one thing to just type commands from runbook, it's another to understand what those commands are doing, and be able to intelligently choose from a range of options, all of which might work at some level, the best one for any given situation.

where I can find practical use of this?

The practical use is every day! I mean here is a very simple example, you want to kill a process. You could just blindly type kill of course. But you probably ought to understand what this command really does, how it can be used for more than just killing a process, what a process is likely to do in response to different uses of kill, at what point in its execution will it act on that request, what to do if it seemingly ignores the request, what it means if it becomes a zombie after being killed, I could go on and on...

how to learn Linux internals?

You are fortunate that a lot of this stuff is common to most Unix-like operating systems, and that the fundamentals don't change very quickly, therefore learning it is an investment that will pay off throughout your entire career. Any of the books by W Richard Stevens is timeless knowledge, that's where I started and I still often reach for those books. The Design and Implementation of the FreeBSD Operating System is also very relevant. But there is no substitute for actually doing it.