← Back

Operating System

1. Introduction

Operating system is a software that manages computer's hardware and provides a basis for applications to run on and act as an intermediary between hardware and Applications/computer user.

1.1 What Operating Systems Do

A computer system can be divided into 3 categories:

From User's View

Figures

From the user's view, the operating system is designed for ease of use, with little attention paid to resource utilization (how various hardware and software resources are shared).

System's View

From the computer's view, the operating system acts as a control manager/resource allocator that controls various I/O devices and applications by allocating resources such as CPU time, memory space, storage space, and I/O devices.

Kernel

The kernel (also called the core kernel) is the part of the operating system that manages the core features of the OS.

So, we can say that Linux is a kernel as it does not include applications like file-system utilities, windowing systems, graphical desktops, system administrator commands, text editors, compilers, etc. Various companies add these kinds of applications over the Linux kernel and provide their operating systems, such as Ubuntu, SUSE, CentOS, Red Hat, etc.

Middleware

Middleware is a software layer between the operating system and applications on each side of a distributed computing system in a network, which eases the development of applications. It connects heterogeneous networks and software systems.

Middleware provides core services like concurrency, transactions, threading, messaging, and the SCA framework for service-oriented architecture (SOA) applications.

Middleware Documentation by Oracle

Middleware includes:

It is especially essential to information technology based on Extensible Markup Language (XML), Simple Object Access Protocol (SOAP), Web services, SOA, Web 2.0 infrastructure, and Lightweight Directory Access Protocol (LDAP), etc.

Operating System Components

An operating system must include:

1.2 Computer-System Organization

A modern computer consists of one or more CPUs and multiple device controllers that are connected through a system bus that provides access between components and shared memory.

Typically, operating systems have a device driver for each device controller. This device driver understands the device controller and provides the rest of the operating system with a uniform interface to the device. The CPU and the device controllers can execute in parallel, competing for memory cycles. To ensure orderly access to the shared memory, a memory controller synchronizes access to the memory.

Figures