Operating Systems (OS)
We 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.
It's worth mentioning that the concept of operating systems is a massive topic that is potentially endless. We'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.)
Subjects
These are the subjects we're going to cover in this topic:
- The Kernel
- Processes & Threads
- Linux (overview)
Curated Materials
Operating systems are quite complex. We don't need to know everything about them. Not even close. We just need to scratch the surface (for now) and understand a few key topics. We'll break that down for you below and provide the best curated materials we can find.
The Kernel
This article is short and sweet, and nails it, frankly.
But we want you to learn a bit more than that, so check out this next resource to ensure you're getting more of an in-depth look at kernels.
And that's it. kernels are massive topics. The Linux kernel has an estimated 18,000,000(!) lines of code in it. Trust us when we say you don't need to read a single line of that code to be highly proficient with Linux. What's important is understanding the principle nature of a kernel: it controls (and protects) access to the hardware in the system and the software you run interacts with it to access that hardware.
Processes & Threads
Running software results in a process being created by the kernel, and a thread (or multiple) being executed against the software's code (instructions.) Processes and threads are important for understanding how we, as adminstrators, interact with the software we run at a fundamental level.
Don't dive too deeply into this topic as you'll explore it more in the projects section.
Linux
Linux is the operating system of choice for us as it makes it a lot easier to learn with. It's open source, free, and you can do anything you like with it (which includes breaking it.) Linux is heavily used in our industry, so that's why we'rell cover it over Windows Server, but more importantly, Linux makes it easier to learn fundamental concepts ("Learn Concepts, Not (Just) Technologies") at the lowest level possible.
This video sums Linux up very nicely for us.
Linux is used in billions of devices all around the world, from phones to cars, PCs and servers. We'll be using Linux a lot throughout this entire journey. You'll be very comfortable with it in no time.
Project
The very computer you're using to read and process this content has a kernel. That same system also has processes and threads running on it. Let's explore those details and, like we did in hardware, and write a report.
- Explore your operating system and discover the following details:
- What's the kernel called?
- What kernel modules are loaded?
- What version of the kernel are you running?
- How many processes are running on your system?
- How many threads are running
- How much RAM are the processes and threads using?
- What's the most CPU and RAM intensive task running on your system?
Write up a simple report which includes the tools you used to gather this information. Screenshots help with explaining what you're seeing.
Next
We're going to look at Networking, a massive but critical topic.