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 them you're going to struggle to deploy software as without an operating system you simply cannot deploy software.
An operating system is defined by Wikipedia as:
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. - https://en.wikipedia.org/wiki/Operating_system
I am going to recommend you study and use Linux on a daily basis.
Here is how I would go about studying operating systems in more detail. Keep in mind this 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.
I'd also like to mention that I'm going to be providing these resources from the perspective of managing a server, not a desktop environment. Some of the links will therefore be referring to Linux server environments.
These are high level concepts that apply to any operating system you're going to interact with (Linux, Windows, macOS, etc.)
- The kernel
- Memory management
- Resource management
- Device management
- Processes and threads
- System calls
Wikipedia has these topics covered pretty well. You don't need much more than these pages.
|Kernel||Wikipedia||Kernel (operating system)|
|Memory Management||Wikipedia||Memory management|
|Resource Management||Wikipedia||Kernel (operating system) Resource Management|
|Device Management||Wikipedia||Kernel (operating system) Device Management|
|Processes Management||Wikipedia||Process management (computing)|
|System Calls||Wikipedia||System call|
The tasks below are common operation you're going to perform when working with operating systems locally, remotely, on hardware, in virutalisation, and more.
- Remote access via SSH
- User management
- File management and access
- Software installation
- Service management
- Resource utilisation discovery
Each of these tasks changes based on the operating system being managed. I'm going to provide resources for Linux only.
The thing with Linux is there are a lot of distributions available and companies can use a variety, sometimes in the same organisation. The most common Linux distributions you'll find in the wild include:
- RedHat Enterprise Linux (RHEL)
- Ubuntu Linux
- Debian Linux
From here things get a bit more interesting (and therefore complex) because RHEL is based off of CentOS, and Ubuntu is based off of Debian. This means they share common traits and you can learn one and have a decent understanding of the other. Therefore what I suggest is you use CentOS and Ubuntu to start learning the Linux ecosystem. In the interest of keeping things simple, I'll provide resources for Ubuntu below as I'd argue it's probably the most common distribution in use today.
|SSH Access||phoenixNAP||How to Use SSH to Connect to a Remote Server in Linux or Windows|
|User management||Ubuntu Server Docs||User Management|
|File management||DigitalOcean Community||Basic Linux Navigation and File Management|
|File permissions||DigitalOcean Community||An Introduction to Linux Permissions|
|Software installation||Ubuntu Server Docs||Package Management|
|Service management||DigitalOcean Community||Systemd Essentials|
|Resource utilisation||Vitux.com||How to use htop to monitor system processes in Ubuntu|
Let's look at some resources that cover the above topics so you can begin studying.