An operating system is a software which is used to operate, use computer or server hardware and provide these sources to the user applications. Operating systems is an intermediate software which is very important for computers and servers because it provides a lot of different services to the user side applications.
Operating System History
Operating system history consists of mainly 4 phases.
First Generation (1945-1955)
First operating systems are created with the first computers in the 1940’s and early 1950s. But these computers mainly used to solve mathematical calculations like a calculator.
Second Generation (1955-1965)
The first operating system in this era is created by General Motors for an IBM machine named 701. This generation operating systems generally used for batch data processing. Hardware was called as Main Frame where users connect with dummy systems to the Main Frame and run batch operations.
Third Generation (1965-1980)
The most important change during this generation is the multiprogramming feature where a single system can run multiple applications at the same time.
Fourth Generation (1980-Present Day)
The modern operating system and computer era started with the development of multi-task, multi-user operating systems and computers by IBM. PC or Personal Computers changed the operating system and computer era and vision. Windows operating system is created in 1975 by Paul Allan and Bill Gates for personal computers created by IBM. Popular operating system MS-DOS creates in 1981. Another operating system family called Linux is created in 1990 by Linus Torvalds.
Operating System Services
As stated previously and Operating System provides different services to the User applications. Here some of the most important of them.
- `Memory Management` will manage RAM memory of the system how much is used or free. How to allocate new memory requests etc.
- `Processor Management` will initialize and run processor of the system. The cache memory, instruction translation, and use are done with Processor Management.
- `Device Management` will track all devices connected to the system. The I/O, drivers, initialization will be managed by the Operating System.
- `Process Management` is used to create user level and user applications. Process Management also related to managing system resources, memory, disk access, etc.
- `File System Management/Disk Management` is used to manage persistent storage like Hard Disk Drive, USB, DVD. File systems are used to manage files on disks logically in a structured manner.
- `Network Management` is related to the computer network, LAN and internet access. The network protocols like Ethernet, IP, TCP, UDP are provided and implemented by the OS.
Operating System Components
An operating system has some architecture and related components in order to work properly. Here are some of them.
- `Kernel` is the low-level part of the operating system which is responsible with the management of the system resources. The kernel provides subsystems like device drivers, firmware, I/O management, etc.
- `User Interface` provides access to the operating system services and features. User Interface is used by the user level applications in order to run and complete tasks which require operating system services and resources.
- `User Application` is applications which are used by users to write documents, run scripts, browse the internet.
Hardware For Operating Systems
There is a different type of operating systems run on different hardware types. In this part, we will list some popular hardware platform’s and operating systems they run.
- `x86` is the most popular platform which is used by servers and PCs. This platform uses operating systems like Windows, Linux, MacOS, BSD, etc. They can be 32-bit or 64-bit.
- `ARM` is another CPU architecture where most of the smartphones run. An ARM can run operating systems like Windows, Linux, BSD, IOS, Android, etc.
- `Real-Time Hardware` is specially designed hardware for time restricted tasks. This type of hardware generally uses specially developed and designed operating systems.
- `Embedded Hardware` is similar to the ARM systems and used in rugged and auxiliary systems and uses Windows, Linux, Android operating systems.
Operating System Features
Operating systems are designed to provide some services and features to the users. We can list the following features in order to categorize operating systems.
- `Single User` means the current operating system do not handle different users and preferences where only a single user profile can be used.
- `Multi-User` means multiple users can use a single operating system where each of them has their own files, preferences, and desktops.
- `Single Task` means at a time an only a single task can be run. This is a big problem for users. Currently, all operating systems except real-time operating systems can run multiple tasks.
- `Multi-Task` single or multiple users can run multiple tasks at a time.
- `Real Time` means a task running and set for a specified time can complete at the specified time without latency.
Operating System Families
Although some end users known Windows as the sole operating system, there is a lot of different type of operating systems. Actually, we can them as Operating System Families because there are different versions and alternatives in those operating systems.
Windows is the most popular operating system family where there are different versions of it. Windows is a user-friendly operating system which is mainly designed for Personal Computer. Windows also provided as Server version for enterprise use.
- Windows 95
- Windows 98
- Windows XP
- Windows Vista
- Windows 8
- Windows 10
- Windows NT
- Windows Server 2003
- Windows Server 2008
- Windows Server 2012
- Windows Server 2016
- Windows Server 2019
Unix is the father of all operating systems which is designed to be used by computer scientists. Unix mainly uses the command line to complete tasks. It is not so user-friendly but it inspires the operating systems like Linux, BSD, and MacOS.
Linux is a very interesting operating system which bases Unix and started in 1990 by Linux Torvalds as a free operating system. Linux is actually a kernel part of the operating system and there are distributions where they complete the operating system with the system and user-level tools. Here is some popular distribution.
- Red Hat
BSD is a Unix variant and aimed the security. BSD is less user-friendly and mainly used in enterprise and security systems. BSD provides fewer user functionalities but very secure and security-related operating system features and functions.
MacOS is a prioparity operating system designed for Apple desktop PCs. MacOS provides very high-level user experience and user-oriented operating system. MacOS GUI is shining with its user interactive uses. MacOS also lock down the user to the Apple ecosystem in most of the cases like file sharing, email, office documents, etc.
Android is the most popular mobile operating system generally used in smartphones, TV’s, entertainment systems. Android is based on Linux kernel but other parts are developed or integrated by Google. Current Android version is 9.0
IOS is an operating system based MacOS was designed for iPhone’s manufactured by Apple. IOS provides the same user experience as MacOS.