Basics of Operating Systems for DevOps

Course Code - 1.1.1

Β·

7 min read

Basics of Operating Systems for DevOps

INTRODUCTION

Beginning your DevOps journey? Operating Systems is a topic you must begin with which clears a lot of concepts about the system which you are interacting every day. This topic is a subject in itself and to learn all those concepts you would need a semester probably, and for someone coming from a non-CS background like me, they might struggle a bit here. but hold on that's why I am writing this blog so you don't get stuck.

This blog will be covering a high-level overview about some important topics :

  • What is an OS.

  • Tasks of an OS.

  • Types of OS and which OS is recommended for DevOps.

  • Setting up the OS environment.

image.png

What is an OS?

We are using computers every day for daily tasks, watching videos, playing games etc. All this is done when the user interacts with the hardware (CPU, RAM, I/O Devices) by giving some commands via applications. But does this happen directly? for e.g., if you just enter the print command will your printer print the required file?

No, you need to write some kind of programme which tells the printer to print. OS is the bridge between the user and the hardware which contains these programmes which makes our life easier. The user interacts with the hardware via OS.

By definition, An Operating System (OS) is an interface between a computer user and computer hardware. When you turn On your computer OS is the first program that runs. Basically, The operating system is something that brings both these components together and put them into work.

image.png

TIP: The more you learn about what value OS provides via its functionality, the better you will understand it. Now let's jump onto the functionality part.

Tasks of an OS

  • Resource/File management: The resource allocation & deallocation for different users according to their needs. This is also called parallel processing where multiple users access the same resource.
  • Process management: Management of different processes running by the user such as Microsoft Word, Google Chrome is also done by OS. This is done by CPU Scheduling internally. We can see which process uses what CPU % in task manager.

  • Memory Management: Memory management refers to the management of Primary Memory or Main Memory i.e RAM. OS keeps track of primary memory, the OS also decides which process will get memory when and how much which is called multiprogramming. OS allocates memory when required by a process and de-allocates the memory when a process no longer needs it or has been terminated.

  • Storage Management: Management of how data is stored in Secondary storage such as Hard Disk by the file systems.

  • Device Management: Managing connection of the I/O devices and which device processes get how much time. The program responsible for these tasks is known as the I/O controller.

There are lots of other functions, If you are interested to read more about the functions of an OS, here's a reference : geeksforgeeks.org/functions-of-operating-sy..

The three most common operating systems for personal computers are

Microsoft Windows, macOS, and Linux.

These three are different in lot aspects and one prefers them accordingly for their requirements and experiences. Working in IT you should be ready to move from one type of OS to another as you would be using different types of technologies throughout your career which may be dependent on some particular OS. Also, all of these are amazing for the value they provide to the users.

For e.g.

Linux is the most reliable OS when used with servers, running websites and web applications and in cloud environments, provides good throughput, open-source, free and many more things.

Windows is best for user convenience and ease of use can run any software on it providing compatibility, providing a good edge on cost over MacOS.

macOS is good in terms of integration with Apple products, Security, optimisation for software in creative fields such as video editing, graphic designing etc and also the brand, design and show-off value it provides. (the urge of getting and flaunting a Mac at some point of your IT career).

If you want more comparisons, you can check out these slides at: slideshare.net/MeharAliZar/comparison-of-wi..

For now, our main focus is to learn and choose the OS which will land us the dream job of DevOps Engineer. So any guesses?

image.png

If you have guessed it Linux, clap for yourself πŸ‘. Yes, you have to learn Linux to become a DevOps engineer.

Why Linux?

The very first reason, Go and search on different job portals for DevOps & Cloud engineer roles, you will probably see Linux in that long list of skillset required for this role.

Now let's understand why do they want us to learn Linux.

Most DevOps tools have requirements for Linux, The latest popular tools were available on Linux first for many years and then came to windows.

For e.g. Docker was invented in 2013 but came on windows in 2016, configuration management tools like Puppet, Chef, and Ansible have dependencies on Linux. Kubernetes master node components can only be on Linux.

Linux is open-source, and the way open-source popularity is growing is crazy. Even Windows is adopting this ideology now. From days of Windows branding Linux as cancer and now providing support for it via WSL and open-sourcing some of its products, the trend is changing.

So there's no better time to learn Linux which is a major requirement for DevOps and Cloud-based roles.

I know it is a little difficult to switch from the easy all-graphics interface such as Windows to running weird commands, accessing files and running processes via terminal but it's worth it and once you get your hands on it you will feel good about it.

Setting up the OS environment.

Okay if you have reached here, questions might be flying in your mind that how should I start with Linux and most importantly about getting the environment to start learning and practising Linux. Should I dual boot, should I switch to Linux forever. Yes, I also had these questions when I was starting this journey and wasted a lot of time discovering ways, that's why I am here to help you to save your time.

So what is dual booting? Very simple, running multiple OS on your computer. Honestly, dual booting is not difficult but it may mess up with the performance and disk space and someone working on a four years old i3 computer, I didn't want to take the risk.

So I went for other alternatives which allow me to use Windows for my day-to-day tasks and also helps me learn Linux by providing a local environment to practise Linux commands and get used to the CLI.

I set up VirtualBox on my Windows 10 and created a Virtual Machine with Ubuntu (Distro of Linux) as the OS. It started well but it consumed a lot of memory and CPU resources as a result when I used VB, my system went slow. So I tried WSL 2 (Windows Subsystem For Linux) and it worked perfectly for me. It integrates well with Docker & Kubernetes.

Read this article if you want to understand which one will work better for your use case:

Links to set up Linux Environment

TASKS FOR TODAY

  • Install Linux in any of the ways mentioned above

  • Explore which one works best for you and do comment below so others also know.

  • Run some basic Linux commands such as pwd , ls etc and appreciate yourself for reaching this point.

Looking for learning Linux next? checkout the " About the Series" part.

SUMMARY

If you have read till here, You're good to start your DevOps journey. Reading blogs and watching videos will give you some directions but ultimately Hands-On is the real deal-breaker. So, go Learn & Practise!

ABOUT THE SERIES

So, This was the explanation of Operating systems for DevOps from the Series "The Ultimate Guide to DevOps & Cloud".

If you want to Get started with DevOps make sure to check out our course on Twitter The Ultimate Guide to DevOps & Cloud

Master DevOps with our online community and join us in the initiative of learning DevOps & Cloud.

Follow the creators:

  • Divyam Sharma πŸ”₯ on Twitter

  • Saurav Chaudhary ⚑on Twitter

If you feel we should change any of our approaches in order to make this course the Best course, please comment down with your ideas. we would love to hear that from you.

And if you feel that this energy & effort, we are putting down in this is worth every penny then please share out with other folks who are struggling to break down into Tech-verse. Best of luck with a new journey & Happy Learning From the Team :)

Β