I believe it's important you start by understanding what an operating system is, how they work and how you can manage one. With these skills everything else will make a lot more sense. Without an operating system, you're going to struggle to deploy software because it's the operating system's job to manage the resources needed by software, to execute their instructions and complete their work.
We talk about hardware in the previous chapter, well this is what the computer "stack" looks like when it comes to hardware, the operating system, the applications that run on the operating system, and the user(s) of the system:
We can see that the OS is installed onto our hardware, which it manages. Applications then use the operating system and in turn the user uses the applications. Users can also use the operating system directly, of course, like managing their user accounts, hardware, files, and a lot more.
At this point, it's worth mentioning that the concept of operating systems is a massive topic that is potentially endless. I've listed the core concepts below so that you can focus your time on the key items and minimise wasting time. We'll also be looking at operating systems from the perspective of the server environment, not the desktop (which is what you're likely using now.)
These are high level concepts that apply to any operating system you're going to interact with (Linux, Windows, macOS, etc.)
We're going to be focusing our knowledge on Linux as it's a better environment to learn in. Windows and macOS are fine operating systems, but Linux is simply better for learning the fundamentals you need to do your job as a systems administrator.
- The Kernel (Operating System)
- Memory management
- Resource management
- Device management
- System calls
- Processes and Threads
- Linux (introduction)
Operating systems are a big topic but there are some basic concepts you can focus on to get a really good idea of what's going on. You don't need a degree in computer science to use computer systems to perform tasks useful to businesses - the basics of operating systems is enough. The rest will come later.
I've broken the kernel up into a few of its key tasks like memory and resource management. The kernel also manages processes and threads, but I feel these are important enough to stand on their own as they need some special attention.
Finally we'll cover some administrative tasks, as a user of the system, that you should understand well so that you can help businesses manages their infrastructure and networks.
Once you have these topics covered you'll have a decent idea of what is required to operate Linux. There's a lot to learn but remember that a lot of what you need to learn will come organically with use. It's very hard to learn everything in a book, so doing it is just as important as reading about it in a book.
Now let's begin our journey by looking at the concept of an OS kernel.