How to learn Linux system internals [closed]

Recently I tried to apply for some DevOps Engineering positions, but I got scared about a specific requirement that was present in almost every job description:

Experience with Linux internals and administration.

I am working with Linux servers and applications deployed in Linux/Unix for quite some time and honestly, I have no idea what they meant by "Experience with Linux internals".

My questions are:

  • why should I know Linux internals?
  • where I can find practical use of this?
  • how to learn Linux internals?

Thx


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+