Develop Your Own x86 Operating System(OS) #1

This series of articles will assist you in developing your own x86 operating system. Nevertheless, if you don’t know what an operating system is, how can you develop one or what is the purpose of developing. Thus, through this first article of the series, a brief introduction on operating systems will be provided.

Software, are the instructions that tell a computer system how to process data into the form needed by the end user. There are two major kinds of software as system software and application software. Application software can be described as end user software as it is the type you, the end user interacts with. System software is the type of software that the computer uses. It enables the application software to interact with the computer hardware and it is also the background software that helps the computer manage its own internal resources. System software is not a single program but a collection programs that handle hundreds of technical details with little or no user intervention. System software consists of four types of programs:

• Operating systems

• Utilities

• Device drivers

• Language translators

From here onwards operating systems come to the fore.

what is an operating system?

An operating system is a type of system software and also a collection of programs that coordinate computer resources, providing an interface between end users and the computer. So reasonably, operating system is the most important type of system software. Without a functioning operating system, a computer would be useless even though it is equipped with other software.

what are the functionalities of an operating system?

An operating system performs a variety of functions. There are mainly two functions performed by an operating system:

  • Managing resources: Operating system coordinates all the computer’s resources including memory, processing, storage, and devices such as printers and monitors. It allows multiple applications to share resources and protects these applications from each other improving performance of the system by efficient utilization of resources. Operating systems also monitor system performance, schedule tasks, provide security, and start up the computer.
  • Providing user interface: Operating systems allow users to interact with application software and computer hardware through a user interface. Originally, operating systems used a character-based interface where users communicated with the operating system through written commands such as “Copy A: report.txt C:”. Today, most operating systems use a graphical user interface (GUI) and new feature available with many operating systems is voice recognition which allows users to interact with voice commands.

what are the basic categories of operating systems?

There are hundreds of different operating systems, however they can be basically categorized into three:

  • Embedded operating systems: These are also known as real-time operating systems and RTOS. Embedded OS are entirely stored or embedded within a device. They are available within smartwatches, smartphones, video game systems, and thousands of other small electronic devices. QNX, WinCE, and VxWorks are the most widely used embedded operating systems today.
  • Stand-alone operating systems: These are also called as desktop operating systems. Stand-alone operating systems control a single desktop or laptop computer. These operating systems are located on the computer’s hard disk. The three most common stand-alone operating systems are Microsoft Windows, macOS, and Linux.
  • Network operating systems (NOS): These are used to control and coordinate computers that are networked together. There are two basic types of network operating systems, the peer-to-peer NOS and the client/server NOS. Peer-to-peer network operating systems allow users to share network resources saved in a common, accessible network location. Client/server network operating systems are typically located on one of the connected computers’ hard disks. That device is called the network server and it coordinates all communication between the other computers. Most popular operating systems like Windows, Unix, Linux and Mac include built-in networking functions that may not require additional network services so they can be used as network operating systems.

The Operating System(OS) play a very crucial role in any computer system. Thus, developing an operating system is not an easy task. So, knowing what is an operating system is important in developing an operating system. From next article onwards step by step process in developing an operating system will be explained.

Next article of Develop Your Own x86 Operating System(OS) article series is on setting up the development environment and booting a primitive operating system. You can read it from here.

Hope the article is useful in gaining some basic knowledge on operating systems. Will see you with the next article on the series. Thank you for reading !!!!!!!!!!!!!!!!!!!!!

Isuruni Rathnayaka




Software Engineering Undergraduate - University of Kelaniya Sri Lanka

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Openwhisk web actions for API backends

Learning Python: Itertools

Build a highly scalable dashboard that runs on Kubernetes

New Release: c-lightning 0.7.1

Data integration at scale with Azure Data Factory — Populate slowly changing dimensions

LeetCode 143. Reorder List


Bytecraft with web3 and Haskell

⚡️ The EasyFi Mega Staking Program on @0xPolygon continues⚡️

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Isuruni Rathnayaka

Isuruni Rathnayaka

Software Engineering Undergraduate - University of Kelaniya Sri Lanka

More from Medium

How to run Podman with Hashicorp Nomad on Ubuntu 20.04 LTS

Elixir logging to (multiple) file(s) using metadata_filter

Scheduling Algorithms in OS

Practical tracing: a final recap