How to Learn Operating Systems
Linux, macOS, and Windows are all operating systems. You’ll see these names when you go to download software. Some software is only available for a specific operating system, whereas other pieces of software have multiple versions to accommodate multiple operating systems.
An operating system is a special type of software that manages all the hardware and software on a computer. It is also known as an OS.
In this guide, we’re going to talk about what operating systems are and what they do. We’ll also discuss the main types of operating system and examples of each of those types. Without further ado, let’s get started!
What is an Operating System?
An Operating System (OS) is like the glue that brings together the rest of a computer.
Operating systems connect with and manage the hardware of your device. Hardware are the physical resources which allow you to use your computer, such as your keyboard, storage device, and motherboard.
Operating systems are where applications are run on your personal computer. When you open up an application, the operating system creates a process for it and manages that process.
The OS doesn’t work with these parts of a computer in isolation. Let’s say that you want to install a program. The operating system will walk you through the installation process. It will also receive and process keystrokes from your keyboard while you are setting up the application.
What is an Operating System Used For?
The primary role of the operating system is to connect hardware resources and software application programs. It does this in a number of different ways.
User Interface
Operating systems give you an interface that you can use, called a User Interface (UI), which makes it easy to interact with a computer. If you’re viewing this article from a desktop, you are using its UI to view this article. User Interfaces are sometimes called GUIs, or Graphical User Interfaces.
UIs are important because they make computers more accessible.
In the early days of computing devices, operating systems usually used command line interfaces. These interfaces only supported writing commands. There were no visuals with which you could interact. If you didn’t know about the commands that worked on a computer, you could not use it.
The first operating system with a graphical user interface came around in 1985. This was when Windows was paired with MS-DOS to create an operating system with a desktop-like interface.
Managing Applications
Operating systems are essential in application management. When you open up an application, an operating system will handle everything that needs to be done to get that application running. It will create a process for the application, ensure that there is enough processor power available to run the application, and it will handle any errors that may arise.
What’s more, operating systems manage memory. They transfer programs into and out of memory, track memory usage, and ensure that the hardware of a computer has all the instructions it needs to carry out the actions a user has requested.
OSes are essential not only for the average user. They are important for the developers who build applications on a computer. The operating system handles all of the hard work associated with hardware. This means that individual applications, like Microsoft Office or Spotify, do not need to know how the hardware on a computer works to run.
Other Roles
While providing a user interface and application management may be the most notable parts of an operating system, this is by far from all that they do. Here’s a list that covers some of the other roles that an operating system plays on a computer:
- File Management: OSes keep track of and organize files on a computer.
- Security: OSes have built-in security features to protect a computer against malware and unauthorized access.
- Process Management: OSes log all the processes running on a computer, track errors, and ensure that programs open and close gracefully.
- Device Management: OSes manage all the devices connected to a computer such as the network interface card and peripherals such as the keyboard and mouse.
Every operating system performs these roles in different ways. For instance, Microsoft’s Windows and Apple’s macOS are both based on completely different file systems. This means that while both systems play the role of file management, they do so in different ways.
Types of Operating System
In this article, we’ve so far said that operating systems work with computers. This includes any computer-based device, from smartphones to tablets to ATMs. Depending on the type of device that you are using, the type of operating system you’ll use will vary. The three most common types of OSes are general-purpose, embedded, and mobile.
General-Purpose Operating Systems
General-purpose operating systems are run on desktop or laptop computers.
They ensure that applications can share the resources available to a computer. Windows has become almost the standard operating system for general purposes, given its ubiquity in both homes and businesses. macOS is used on Apple’s Macintosh line of computers. Linux is another general-purpose operating system which is known for being fast and lean.
These are often called desktop operating systems.
Embedded Operating Systems
Embedded operating systems are written for specific devices.
A great example of an embedded operating system in use is at an ATM. ATMs do not usually run a business version of an operating system: they have their own custom-built system. These systems lack certain features so that they can be more efficient. They also have purpose-built error handling solutions in place so that an error does not crash a system.
Embedded systems can be found in airplanes, Internet of Things (IoT) devices like smart bulbs, and in digital home assistants like the Amazon’s Echo.
Mobile Operating Systems
Mobile operating systems are used by mobile devices like smartphones and tablets.
iOS and Android are the two leading mobile operating systems. They are purpose-built for mobile devices. They know how to work with the specific hardware on these devices, and the processes that need to be run to make a mobile device work.
Learning Operating Systems
Having a keen understanding of operating systems is useful for any career in technology. Say you want to become a web developer, for instance. You can expect that your operating system knowledge may come up if you want to host your site on a server.
"Career Karma entered my life when I needed it most and quickly helped me match with a bootcamp. Two months after graduating, I found my dream job that aligned with my values and goals in life!"
Venus, Software Engineer at Rockbot
You don’t even need to have an interest in a tech job to use knowledge of operating systems. Knowing a bit about operating systems will give you a further insight into how the computers that you use every day work.
How Long Does it Take to Learn Operating Systems?
It will take you two to three months to learn the principles behind modern operating systems. You can expect to spend even longer learning about operating systems if you want to build your own, or write complicated scripts with an existing system.
To learn the basics of operating systems, you should have a good ude understanding of fundamental computer science concepts. If this is the case, it will only take you a few weeks to learn the basic theory.
The basics include knowing the different parts of the operating system, the role of a kernel, and differences between the top operating systems.
If you want to build an operating system project, expect to spend much longer learning. For instance, it may take you a month or two to start building your own bootloader. This is a common project in operating systems studies.
You can expect to spend a few months learning about each of the modern operating systems assuming you study for an hour or two a day. This would involve learning the basics of Linux and Windows.
But, you may want to refine your studies to focus on one operating system. This will bring down the time it takes you to learn how to use an operating system.
The Best Operating System Courses and Trainings
Whether you want to learn about a specific operating system like Linux or the principles underlying operating systems, you’ll have no trouble finding a range of online courses. For this guide, we’re going to discuss courses that cover operating system theory.
Below we’ve produced a list of the best operating systems courses to help you get started on your learning journey.
Operating Systems Courses
Operating Systems and You: Becoming a Power User by Google
- Provider: Coursera
- Cost: Free
- Audience: Beginners
This course is for beginners to operating systems. In this course, you’ll learn how to navigate around Windows and Linux using both command line and visual interfaces.
Once you’ve learned the fundamentals, you’ll go on to learn about disk partitions, system logs, processes, and more. This course takes approximately 35 hours to complete, according to Coursera.
Introduction to Operating Systems
- Provider: Udacity
- Cost: Free
- Audience: Intermediate
This course, aimed at people with a good understanding of computer science, will introduce you to the principles of operating systems.
In this course, you’ll learn about process and thread management, distributed systems, and how resources are managed on a computer. This course comes with detailed learning material and interactive quizzes you can use to build your knowledge of operating systems.
Computer Hardware and Operating Systems
- Provider: eDX
- Cost: Free
- Audience: Beginners
This course, taught by New York University, is a primer on operating systems for people with little to no computer science experience.
In this course, you’ll start by defining what computers and operating systems are. Then, you’ll go on to discuss the components of an operating system, threads, memory, and data representation.
eDX expects participants to spend about six weeks working on this course with a time commitment of three to five hours per week.
Online Operating Systems Books
Linux for Beginners by Jason Cannon
If you want to specialize in learning about Linux operating system development, this book is a great place to start.
In this book, you’ll learn the knowledge you need to work efficiently with Linux. You’ll discuss basic Linux commands, editing text, pipes, compressing files, and other common Linux operations.
Operating System Concepts by Abraham Silberschatz, Peter Galvin and Greg Gagne
Operating System Concepts is focused on operating system theory. Now in its seventh edition, this book delves deep into the fundamental concepts you need to build an understanding of operating systems.
In this book, you’ll cover topics like real-time and embedded systems, operating system security, and more. This book comes with plenty of exrcises to help you reinforce your knowledge.
Linux Kernel Development by Robert Love
For programmers with some basic experience with Linux, this book will help you deepen your understanding of the Linux kernel.
In this book, you’ll cover topics like time management, kernel synchronization, and debugging. You’ll learn all you need to know to write kernel code for a Linux operating system.
Operating System Resources
CS 537 Course Notes
CS 537 is a computer science course taught by the University of Wisconsin-Madison. The notes given to students for the class are available online for reading.
The course notes for CS 537 cover basic operating system topics, from processes and scheduling to protection and security. These notes are filled with diagrams which illustrate the knowledge you are learning.
TutorialsPoint Operating System Tutorials
On the TutorialsPoint website, you’ll find a series of tutorials on operating systems. These tutorials cover types of operating systems, prpocess scheduling, the file system, and more. If you have little to no background with operating systems, these tutorials are a great place to start.
OSDev.org Wiki
The OSDev.org wiki is devoted to creating operating systems. You’ll find over 660 articles on topics ranging from memory architecture to how the kernel, compiler, and C library work together.
This wiki is useful as a reference. You can refer to this wiki as you learn more about operating systems and the architecture of a computer. There are also basic tutorials on how to write your own kernel and operating system for you to follow.
What is a Kernel?
The kernel is arguably the most important part of the operating system. It is one of the first programs loaded when your computer boots up. The kernel handles the basic instructions your computer needs to set itself up. This includes initializing hardware and allocating memory to core system processes.
You’ll probably not run into a kernel when you’re using your operating system. This is because the kernel is usually protected because of how important it is to an operating system. Without one, your computer would not boot up.
Should You Study Operating Systems?
Operating systems play a crucial role in every modern computing device. Without an operating system, a computer would not be able to send instructions to its underlying hardware.
There is a lot to learn about operating systems which makes studying them an interesting endeavor. By studying operating systems, you’ll be able to answer questions like “how does a computer register my keystrokes” and “how does the CPU know what to do.”
If you want to study computing science in more depth or pursue a career as a computer scientist, having a good understanding of operating systems is essential. But, you don’t have to be an aspiring computer scientist to use your knowledge.
What you learn about operating systems will give you tools you can use to fix your computers when they are broken. If you take your studies down the route of operating systems development, you’ll learn how to build your own operating system. Those are impressive skills!
Conclusion
Computers would not be what they are today without operating systems.
Modern operating systems abstract away a lot of the technical parts of using a computer. There’s no longer a need to type in commands to use a computer.
You can use the graphical user interface provided by an operating system. For developers, OSes make it easy for them to work with a computer without having to know the details of the hardware on a device.
About us: Career Karma is a platform designed to help job seekers find, research, and connect with job training programs to advance their careers. Learn about the CK publication.