Ken's Korner Newsletter Logo
February 2016
What’s an Operating System?

Commonly referred to as an OS

Short answer:
An operating system is software that communicates with the hardware and allows other programs to run.

The Operating System
It is comprised of system software, or the fundamental files your computer needs to boot up and function. Every desktop computer, tablet, and smartphone includes an operating system that provides basic functionality for the device Application programs like MS Office or Adobe Reader usually require an operating system as a platform on which to function.

For PCs, the most popular operating systems are OS/X, UNIX and Windows, but others are available, such as DOS, Solaris, AIX, Linux, FreeBSD and the other UNIX clones. Tablets and smartphones often run Android or iOS. Operating systems provide a software platform on top of which other programs can run.

But it doesn’t end there!
There are many variations of these operating systems. For example we have Windows Home, Windows Professional and Windows Server which are all different operating systems. And they have been developed of many years so there are many versions of each one like Windows 95, 98, 2000, Millennium, Vista, 7, 8, 8.1 and 10. The same story can be told for Apple, Android and UNIX which is one of the oldest dating back to Bell Labs where it was developed by Ken Thompson and Dennis Ritchie in the 1970s.

In ancient times computers had a command-line interface, which meant users had to type every single command to the computer and the computer would only display text. It was cumbersome at best and easy to make mistakes.

Modern operating systems use a Graphical User Interface, or GUI (pronounced gooey). A GUI lets you use your mouse to click icons, buttons, and menus, and everything is clearly displayed on the screen using a combination of graphics and text. Now it’s easy just point and click.

Each operating system's GUI has a different look and feel, so if you switch to a different operating system it may seem unfamiliar at first. However, modern operating systems are designed to be easy to use, and most of the basic principles are the same.

Classification of Operating systems:

  1. Multi-user: Allows two or more users to run programs at the same time. Some operating systems permit hundreds or even thousands of concurrent users.
  2. Multiprocessing: Supports running a program on more than one CPU.
  3. Multitasking: Allows more than one program to run concurrently.
  4. Multithreading: Allows different parts of a single program to run concurrently.
  5. Real time: Responds to input instantly. Most common operating systems, such as Windows, OSX and UNIX, are not real-time.

The Kernel!

No need to salute. It isn’t that type of kernel. While it is the central part of an operating system which loads first and it remains in main memory. It is responsible for low-level tasks such as disk management, task management, time and memory management. It acts as a bridge between applications and the data processing performed at the hardware level.

MovingCommon Operating Systems
Different Types of Kernels
There are basically three types of kernels:
  1. Microkernel
  2. Monolithic
  3. Hybrid

Microkernel
A microkernel takes the approach of only managing what it has to: CPU, memory, and IPC. Pretty much everything else in a computer can be seen as an accessory and can be handled in user mode. Micro kernels have a advantage of portability because they don’t have to worry if you change your video card or even your operating system so long as the operating system still tries to access the hardware in the same way. Micro kernels also have a very small footprint, for both memory and install space, and they tend to be more secure because only specific processes run in user mode which doesn’t have the high permissions as supervisor mode.

Monolithic Kernel
Monolithic kernels are the opposite of micro kernels because they encompass not only the CPU, memory, and IPC, (Inter Process Control) but they also include things like device drivers, file system management, and system server calls. Monolithic kernels tend to be better at accessing hardware and multitasking because if a program needs to get information from memory or another process running it has a more direct line to access it and doesn’t have to wait in a queue to get things done. This however can cause problems because the more things that are running in supervisor mode, amount to more things that can bring down your system if one doesn’t behave properly.

Hybrid Kernel
Hybrid kernels have the ability to pick and choose what they want to run in user mode and what they want to run in supervisor mode. Often things like device drivers and filesystem I/O will be run in user mode while IPC and server calls will be kept in the supervisor mode. This give the best of both worlds but often will require more work of the hardware manufacturer because all of the driver responsibility is up to them. It also can have some of the latency problems that are inherent with micro kernels.

UNIX kernels are prolific both because they have a long history and they are open source. The Mac, (since OSX) is built on the UNIX kernel. Part of why they work so much better than some of the earlier versions. The current Linux kernel has over 13 million lines of code!

Microsoft built its own kernels from the ground up. That can take a lot of time and effort but it’s not like they can’t afford it. While the client and server systems may have a similar GUI they are very different animals under the skin.

Likewise Google built the Android from the ground up. While not an anthropomorphic robot it was a herculean task that is still taking place. It is UNIX “Like” but built by Google.

Linux, FreeBSD and the other Berkley Software Development clones all use one of the versions of the UNIX Kernel. And why not after more than fifty years of development by countless contributors most of the hard work is already done.

Go back to the top

Copyright © 2016. All Rights Reserved.
Ken's Korner Home Page