OPERATING SYSTEM



An Operating System (OS) is a system software which serves as an interface between a user and a computer.

This controls input, output and other peripheral devices such as disk drives, printers and electronic gadgets.

When a computer is switched on, the operating system is loaded in to the memory automatically. Without an Operating System, a computer cannot effectively manage all the resources.

It is the most important software in a computer system. It consists of the essential files that the computer needs to function.




Prominent OS

01 Microsoft Windows
  1. Most common and used operating system in personal computers
  2. This was introduced by Microsoft
  3. There is a Windows Mobile version which is meant to be used in smart phones & tablets
  4. There is a server edition called MS Windows Server as well
  5. The latest Windows update is Windows 11 - version 22H2, also known as the Windows 11 2022 Update
02 Android
  1. A popular OS for mobile phone technology
  2. This used with Android compatible smart phones & tablets
  3. This was developed by Google
  4. This is also Free & Open Source
  5. Android 13 is the 13th major version of the Android operating system
03 iOS
  1. Designed to be used for the Apple iPhone & iPad
  2. This was developed by Apple Inc
  3. iOS 16 is the latest version
04 macOS
  1. Operating system used in computers manufactured by Apple Inc.
  2. Used with Apple computers & works well with cloud computing
  3. This is called Apple Macintosh
  4. macOS Ventura [Version 13] is the 19th and current major release of macOS, Apple's desktop operating system for Mac computers.
05 Linux
  1. A command-line operating system is an example of Open Source software development & Free Operating System
  2. This was developed by Linus Benedict Torvalds who is a Finnish-American software engineer
06 Unix
  1. This is an Operating System that is very popular in universities, companies, big enterprises etc
  2. Historically proprietary software, while some Unix projects are open-source
  3. This is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started at the Bell Labs research center by Ken Thompson, Dennis Ritchie & others
07 Ubuntu
  1. This is a Linux distribution based on Debian and composed mostly of free and open-source software
  2. This is officially released in 3 editions & all the editions can run on the computer alone, or in a virtual machine
    1. Desktop
    2. Server
    3. Core for Internet of things devices & robots
  3. Popular OS for cloud computing, with support for OpenStack
  4. The most-recent release is 22.10 [Kinetic Kudu] & the current long-term support release is 22.04 [Jammy Jellyfish]
08 HarmonyOS
  1. This is a distributed operating system developed by Huawei to collaborate and interconnect with multiple smart devices on the Internet of Things ecosystem
  2. This was not positioned as a Mobile operating system
  3. This is a next-gen operating system that enables different smart devices to speak the same language, facilitating better connection and collaboration, and bringing a simple, smooth, continuous, secure and reliable interaction experience in all scenarios
09 Fedora
  1. This is another Linux based system which gives Ubuntu’s open-source features a run for the money
  2. This is reliable, user-friendly and makes for a powerful operating system for any laptop and desktop computer
  3. This is the Operating system that is for casual users and caters to students, hobbyists, and professionals working in corporate environments
  4. Developed by the Fedora Project, Red Hat Software & FLOSS community
10 Hanthana Linux
  1. This is a Linux distribution based on Fedora, distributed as free and open source software
  2. This is specially designed to cater to the needs of Sri Lankan computer users who are unable to access the Internet frequently, with many most-wanted applications built in
  3. This is developed by the Sri Lanka-based Hanthana Community
11 BOSS GNU/Linux
  1. This is an Indian Linux distribution derived from Debian
  2. This is developed by Centre for Development of Advanced Computing [C-DAC] in order for enhancing and gain benefit from the usage of Free and Open Source Software throughout India
  3. This has been endorsed by the Government of India for adoption and implementation on a national scale
  4. This is officially released in 4 editions:
    1. BOSS Desktop [for personal use, home and office]
    2. EduBOSS [for schools and education community]
    3. BOSS Advanced Server
    4. BOSS MOOL
  5. The latest stable version 9.0 [Urja]
12 Kylin
  1. This is an operating system developed by academics at the National University of Defense Technology in the People's Republic of China
  2. The first versions were based on FreeBSD and were intended for use by the Chinese military and other government organizations
  3. With version 3.0 Kylin became Linux-based
  4. There is a version called NeoKylin
  5. Together Kylin & Neokylin have 90% market share of the government sector



Uses of OPERATING SYSTEMS

The following are few uses of Operating System. The main use of Operating System is :

    🔥 to ensure that a computer can be used to extract what the user wants it do.
    🔥 Easy interaction between the users and computers.
    🔥 Starting computer operation automatically when power is turned on (Booting).
    🔥 Controlling Input and Output Devices.
    🔥 Manage the utilisation of main memory.
    🔥 Providing security to user programs.



Types of OPERATING SYSTEMS
Based on the FUNCTIONALITY of the Operating System it can be classified as :


☞ 1. Single User System

An operating system that supports only one user at a time

  1. MS-DOS
  2. Windows 3x
  3. Windows 95
  4. Windows 97
  5. Windows 98
  6. Symbian OS


☞ 2. Multi User System

An operating system that allows multiple users to access a computer’s resources at the same time. In such a system a server and terminals are used. In the diagram below, USER-1 acts as the server.

  1. Linux
  2. Ubuntu
  3. Unix
  4. Mac OS X
  5. Windows Server


SERVER

a server is a computer that provides data to other computers

TERMINAL

a terminal is a personal computer connected to a network



☞ 3. Real Time System

An Operating System which gives the output in real time without any observable delays. This is mostly utilized in ATM end points. Also these kind of Operating Systems are installed in scientific devices and small gadgets. These Operating Systems are specifically designed for particular devices.

  1. Airline Traffic Control System
  2. Airlines Reservation System
  3. Process Control System
  4. Command Control System
  5. Autonomous Driving System
  6. ATM System


☞ 4. Multi Tasking System

An operating system capable of allowing several programs to run at the same time

  1. Windows XP
  2. Windows Vista
  3. Windows 7
  4. Windows 8
  5. Windows 10
  6. Windows 11
  7. IBM OS/390
  8. Linux
  9. UNIX


☞ 5. Multi Processing System

An operating system capable of supporting and utilising more than one computer processor

  1. UNIX
  2. Windows NT
  3. Solaris


Based on the USER INTERFACE of the Operating System it can be classified as :


☞ 1. Command Line Interface [CLI]

This is a text-based user interface (UI) used to run programs, manage computer files and interact with the computer. Programs with command-line interfaces are generally easier to automate via scripting. Many software systems implement command-line interfaces for control and operation. This includes programming environments and utility programs.

The components of the CLI display are :

  1. Command Prompt
  2. Cursor
  3. Input/Commands [text you have typed in]
  4. Output [of your commands and programs]
  1. MS-DOS
  2. Windows Command Prompt
  3. Linux Bash Shell
  4. Mac Terminal
  5. PowerShell
  6. Cloud shell
  7. AWS Command Prompt
  8. Azure CLI bash


☞ 2. Graphical User Interface [GUI]

GUI is an interface that allows users to interact with different electronic devices using icons and other visual indicators. The graphical user interfaces were created because command line interfaces were quite complicated and it was difficult to learn all the commands in it. In today’s times, graphical user interfaces are used in many devices such as mobiles, MP3 players, gaming devices, smartphones etc. Almost all the present day Operating Systems use graphics on their interfaces.

GUI uses 4 components in order to make a friendly environment. These components are abbreviated as WIMP

  1. Windows
  2. 🔥 This displays the information on the screen. There are multiple types of windows in a GUI, such as :
    1. Container window
    2. Browser window
    3. Text terminal window
    4. Child window
    5. Message window
  3. Icons
  4. 🔥 Files, programs, web pages can be represented using a small picture in a graphical user interface
    🔥 This picture is known as an icon
    🔥 Using an icon is a fast way to open documents, run programs
    🔥 Because clicking on them yields instant access
  5. Menus
  6. 🔥 This contains a list a choices and it allows users to select one from them
    🔥 When any option is clicked in a menu bar which is displayed horizontally across the screen then the Pull-Down Menu appears
    🔥 Context Menu appears only when the user is pressing the right mouse button. When this is done, a menu will appear under the cursor
  7. Pointer
  8. 🔥 A symbol such as an arrow which is moved by a pointing device and can be used to select objects

Graphical User Interface makes use of visual elements mostly. These elements define the appearance of the GUI. Some of these are :

  1. Widgets
  2. 🔥 Information in an application can be directly read or influences using the graphical control elements. These are also known as Controls
    🔥 Normally, widgets are used to display lists of similar items, navigate the system using links, tabs etc & manipulating data using check boxes, radio boxes etc
  3. Tab
  4. 🔥 This is associated with a view pane. It usually contains a text label or a graphical icon
    🔥 Tabs are sometimes related to widgets & multiple tabs allow users to switch between different widgets
    🔥 Tabs are used in Web Browsers & Multiple web pages can be opened in a web browser & users can switch between them using tabs
  1. Windows
  2. macOS
  3. Ubuntu
  4. Android
  5. iOS


CLI vs GUI
Parameters CLI GUI
Ease of Use It is comparatively more difficult to understand and use. It is comparatively easier to understand and use.
Memory Consumption CLI consumes comparatively less memory. The GUI consumes comparatively more memory.
Level of Precision Higher precision of work can be obtained using CLI. GUI offers a lower level of precision.
Speed It works at a higher speed as compared to the GUI. It works at a much slower speed as compared to the CLI.
Keyboard and Mouse Its OS only requires a user’s keyboard. Its OS requires both keyboard and mouse to work.
Modification of Appearance We cannot change or modify the CLI operating system’s appearance. We can change or modify the GUI operating system’s appearance.
Graphics No graphs are included in CLI. Graphics are always used in the GUI.
Menus No menus are provided in CLI. The GUI OS comes with menus.
Display of Information The information that the user wants to view is displayed in files and plain text. The information that the user wants to access is presented in various forms, like plain text, images, videos, gifs, videographs, etc.
Input of Information The input is usually entered at the command prompt in CLI. We can input the data anywhere on the computer screen in the case of GUI.
Pointing devices Pointing devices are not used at all in CLI. We use pointing devices in the GUI for choosing/selecting the items we want to.
Avoiding Errors No typing errors or spelling mistakes can be avoided by CLI. The typing errors or spelling mistakes cannot be avoided by the GUI.



Functions of OS


There are 8 main services performed by an OS. They are :


☞ 1. It provides a user interface

User interface is one of the significant feature in Operating System. The only way that user can make interaction with a computer. This is a main reason for key success of GUI based Operating Systems.

The following points are considered when User Interface is designed for an application :

  1. This should enable the user to retain this expertise for a longer time
  2. This should also satisfy the customer based on their needs
  3. This should save user’s precious time
  4. The ultimate aim of any product is to satisfy the customer & This is also to satisfy the customer
  5. This should reduce number of errors committed by the user



☞ 2. Memory management

Memory management process makes sure that enough memory is allocated for each process and it also makes sure that the memory is freed once a particular process ends.

OS utilizes both Primary & Secondary Memories efficiently in order to manage the memory for various processes.

The objective of Memory Management process is to improve both the utilization of the CPU and the speed of the computer’s response to its users via main memory.

🔥 OS deals with the loading and running of application programs
🔥 It allocates memory [RAM] space to programs and data
🔥 It keeps track of which parts of the memory are in use and which parts are free



☞ 3. Process Management

Process management is function that includes creating and deleting processes(program) & providing mechanisms for processes to communicate and synchronize with each other.

We can call a running computer program or part of the program as a process. All the activities in a computer run as either a single process or a multiple processes.

A computer consists of a collection of processes. All these processes can potentially execute concurrently on a single CPU. They are classified as 2 categories :

1. Operating System processes
🔥 which is executed by system code
2. User Processes
🔥 which is execute by user code

  1. OS allocates processor time [CPU time] to the different tasks being performed simultaneously by the computer
  2. A time slice is given to each job that needs to be processed

The following algorithms are mainly used to allocate the job [process] to the processor.

  1. FIFO (First In First Out) Scheduling
    🔥 This algorithm is based on queuing technique.
    🔥 Technically, the process that enters the queue first is executed first by the CPU, followed by the next and so on.
    🔥 The processes are executed in the order of the queue (row).
  2. SJF (Shortest Job First) Scheduling
    🔥 This algorithm works based on the size of the job being executed by the CPU.
  3. Round Robin Scheduling
    🔥 This algorithm is designed especially for time sharing systems.
    🔥 Jobs (processes) are assigned and processor time in a circular method.
  4. Based On Priority
    🔥 The given job (process) is assigned based on a Priority.
    🔥 The job which has higher priority is more important than other jobs.



MULTI-PROCESSING

🔥 This is one of the features of Operating System.
🔥 It has two or more processors for a single running process (job).
🔥 Processing takes place in parallel is known as parallel processing.
🔥 Since the execution takes place in parallel, this feature is used for high speed execution which increases the power of computing.



TIME-SHARING

🔥 This is one of the features of Operating Systems.
🔥 It allows execution of multiple tasks or processes concurrently.
🔥 For each task a fixed time is allocated. This division of time is called Time- sharing.
🔥 The processor switches rapidly between various processes after a time is elapsed or the process is completed.




☞ 4. File Management

File management is an important function of OS which handles the data storage techniques. The operating System manages the files, folders and directory systems on a computer.

File and folder management includes handling file properties, file operations, file access and file systems.

The FAT(File Allocation Table) stores general information about files like filename, type (text or binary), size, starting address and access mode. The file manager of the operating system helps to create, edit, copy, allocate memory to the files and also updates the FAT.

There are few other file management techniques available like Next Generation File System (NTFS) and ext2(Linux).

  1. OS manages the transfer of data and files.
  2. It helps us to save our work, organise our files, find files that we have saved and load files.

Some of the services performed by the Operating System in file management are listed below :

🔥 Making new files and saving them at suitable places
🔥 Deleting the unnecessary files
🔥 Arranging the folders in order and deleting the unnecessary folders
🔥 Renaming the files and folders
🔥 Changing the storage location of files and folders
🔥 Creating backups of the files and folders as needed


DISTRIBUTED OS

🔥 The Distributed Operating System is used to access shared data and files that reside in any machine around the world using internet.
🔥 The users can access as if it is available on their own computer.
🔥 The advantages of distributed OS are as follows:
  1. A user at one location can make use of all the resources available at another location over the network.
  2. Many computer resources can be added easily in the network
  3. Improves the interaction with the customers and clients.
  4. Reduces the load on the host computer.




☞ 5. Device/Peripheral Management

The operating system is responsible for the management of several peripheral devices connected to a computer system.

Device controllers are used to control the peripheral devices whereas Device drivers are used to control software components.

  1. OS controls all attached devices.
  2. It accepts and transfers data from input devices to the computer’s memory.
  3. It makes sure that any output is sent to the correct output device.
  4. It manages the transfer of data between the computer’s memory and backing storage devices.
PLUG & PLAY

Today there are devices which work once they are connected [plug & play].

The relevant device drivers are installed automatically once the device is connected to the computer for the first time.

When it does not install automatically you need to manually install it.




☞ 6. System Security Management

The Operating System provides 3 levels of securities to the user end. They are :

  1. File access level
    🔥 In order to access the files created by other people, you should have the access permission. Permissions can either be granted by the creator of the file or by the administrator of the system.
  2. System level
    🔥 System level security is offered by the password in a multi-user environment.
  3. Network level
    🔥 Network security is an indefinable one. So people from all over the world try to provide such a security.

  1. OS monitors and restricts access to programs and data.
  2. It prevents unauthorised access to the computer system by checking usernames & passwords.



☞ 7. Network Management

Operating Systems support different types of network connectivities. They support wired and wireless connectivity for hardware devices in the system such as computers, printers, scanners that exist in the network.

  1. The Operating System also helps in accessing one computer from a remote computer.
  2. A computer network facilitates from simple text communication to a multimedia data communication.
  3. Today data communication is utilized at a greater scale in networks.
  4. This concept is well demonstrated by Cloud Computing.



☞ 8. Fault Tolerance [Error handling]

The Operating Systems should be robust. When there is a fault, the Operating System should not crash, instead the Operating System have fault tolerance capabilities and retain the existing state of system.

OS deals with errors that occur when a program is being run or when data is being transferred somewhere & informs the user if necessary.