History of Operating System
An operating system is a type of software that acts as an interface between the
user and the hardware. It is responsible for handling various critical functions of
the computer and utilizing resources very efficiently so the operating system is
also known as a resource manager. The operating system also acts like a
government because just as the government has authority over everything,
similarly the operating system has authority over all resources. Various tasks
that are handled by OS are file management, task management, garbage
management, memory management, process management, disk management,
I/O management, peripherals management, etc.
Generations of Operating Systems
1940s-1950s: Early Beginnings
o Computers operated without operating systems (OS).
o Programs were manually loaded and run, one at a time.
o The first operating system was introduced in 1956. It was a batch
processing system GM-NAA I/O (1956) that automated job handling.
1960s: Multiprogramming and Timesharing
o Introduction of multiprogramming to utilize CPU efficiently.
o Timesharing systems, like CTSS (1961) and Multics (1969), allowed
multiple users to interact with a single system.
1970s: Unix and Personal Computers
o Unix (1971) revolutionized OS design with simplicity, portability, and
multitasking.
o Personal computers emerged, leading to simpler OSs like CP/M (1974)
and PC-DOS (1981).
1980s: GUI and Networking
o Graphical User Interfaces (GUIs) gained popularity with systems like
Apple Macintosh (1984) and Microsoft Windows (1985).
o Networking features, like TCP/IP in Unix, became essential.
1990s: Linux and Advanced GUIs
o Linux (1991) introduced open-source development.
o Windows and Mac OS refined GUIs and gained widespread adoption.
2000s-Present: Mobility and Cloud
o Mobile OSs like iOS (2007) and Android (2008) dominate.
o Cloud-based and virtualization technologies reshape computing, with
OSs like Windows Server and Linux driving innovation.
Stages in the Evolution of OS
(a) Early Computer Systems (1940s – Early 1950s)
No real operating systems.
Computers were huge and expensive.
Programs were loaded manually using plugboards, switches, or
punched cards.
Execution was serial (one job at a time).
Main Issues: High idle time, very low efficiency.
(b) Batch Processing Systems (Mid 1950s – 1960s)
Jobs (programs + data) were collected and processed in batches.
Monitor Program introduced – a primitive OS that controlled job
execution.
Users submitted jobs to operators, who grouped them.
Examples: IBM 7094.
Advantages: Reduced setup time, better utilization of CPU.
Disadvantages: No interaction with users during execution (offline
system).
(c) Multiprogramming Systems (1960s – 1970s)
Multiple programs kept in main memory at the same time.
When one program waits for I/O, CPU executes another → better CPU
utilization.
Introduced concepts of:
o Job Scheduling
o Memory Management
Example OS: IBM OS/360.
Limitation: Users still had limited interaction.
(d) Time-Sharing Systems (Late 1960s – 1970s)
Extension of multiprogramming.
CPU time is divided into small slices (time quantum).
Multiple users could interact directly with the computer using terminals.
Supported interactive computing.
Led to development of command-line interfaces (CLI).
Example: MULTICS, UNIX (early versions).
Advantage: Resource sharing among many users.
Disadvantage: Expensive hardware, required high maintenance.
(e) Real-Time Systems (1970s – Present)
Designed for applications where time deadlines are critical.
Two types:
1. Hard Real-Time Systems: Deadlines must be met strictly (e.g.,
aircraft control, medical devices).
2. Soft Real-Time Systems: Deadlines flexible (e.g., multimedia,
online booking).
Example OS: VxWorks, QNX, RTLinux.
(f) Distributed Systems (1980s – Present)
Multiple computers (nodes) connected by a network.
Work is distributed among systems, appearing as one single system to
users.
Provide resource sharing, fault tolerance, and high performance.
Example: Amoeba, LOCUS, modern cloud OS.
Modern trend: Cluster computing, Cloud-based OS, Grid computing.
(g) Network Operating Systems (1980s – Present)
OS designed to manage network resources.
Users can access remote files, printers, and applications.
Examples: Novell NetWare, Windows NT, UNIX/Linux with networking
support.
(h) Modern Operating Systems (1990s – Present)
Designed for personal computers, servers, and mobile devices.
Support GUI (Graphical User Interface).
Examples: Windows, macOS, Linux, Android, iOS.
Provide features like:
o Multitasking
o Security
o Virtualization
o Cloud Integration
3. Timeline of OS Evolution
Generation Period OS Type Example
1st Gen 1940s – 50s No OS / Manual loading ENIAC, UNIVAC
Generation Period OS Type Example
2nd Gen 1950s – 60s Batch Processing IBM 7094
Multiprogramming, Time-
3rd Gen 1960s – 70s OS/360, UNIX
Sharing
4th Gen 1970s – 80s Real-Time, Network OS VMS, NetWare
1990s – GUI-based, Distributed, Windows, Linux,
5th Gen
Present Mobile OS Android, iOS
4. Comparative Chart
Batch Multiprogramming Time- Distributed Modern
Feature
OS OS Sharing OS OS OS
User High Very High
None Limited High
Interaction (interactive) (GUI)
Efficiency Low Moderate High Very High Very High
Response Depends on Very
Slow Faster than batch Quick
Time network Quick
Resource
No Limited Yes Extensive Extensive
Sharing
IBM Windows,
Examples OS/360 UNIX Amoeba
7094 Linux
Types of Operating Systems
An operating system (OS) is software that manages computer hardware and
software resources. It acts as a bridge between users and the computer, ensuring
smooth operation. Different types of OS serve different needs some handle one
task at a time, while others manage multiple users or real-time processes.
1. Batch Operating System
A Batch Operating System is designed to handle large groups of similar jobs
efficiently. It does not interact with the computer directly but instead processes
jobs that are grouped by an operator. These jobs are queued and executed one
after the other, without user interaction during the process.
Advantages of Batch Operating System
Efficient Job Management: Multiple users can efficiently share the system,
making it cost-effective.
Minimal Idle Time: The system minimizes idle time by processing jobs in a
continuous sequence without human intervention.
Handling Repetitive Tasks: Ideal for managing large, repetitive tasks, such
as payroll and billing, with minimal effort.
Improved Throughput: Batch systems can handle high volumes of jobs at
once, improving overall system throughput.
Examples:
Payroll Systems
Bank Statements
2. Multi-Programming Operating System
In a Multi-Programming Operating System, multiple programs run in memory
at the same time. The CPU switches between programs, utilizing its resources
more effectively and improving overall system performance.
Advantages of Multi-Programming Operating System
CPU is better utilized and the overall performance of the system improves.
It helps in reducing the response time.
Multi-tasking/Time-sharing Operating systems
Multitasking OS is a type of Multiprogramming system with every process
running in round robin manner. Each task is given some time to execute so
that all the tasks work smoothly. Each user gets the time of the CPU as they
use a single system. These systems are also known as Multitasking Systems.
The task can be from a single user or different users. The time that each task
gets to execute is called quantum. After this time interval is over, the OS
switches over to the next task.
Advantages of Time-Sharing OS
Each task gets an equal opportunity.
Fewer chances of duplication of software.
CPU idle time can be reduced.
Resource Sharing: Time-sharing systems allow multiple users to share
hardware resources such as the CPU, memory and peripherals, reducing the
cost of hardware and increasing efficiency.
Improved Productivity
Examples:
IBM VM/CMS
TSO (Time Sharing Option
Windows Terminal Services
Multi-Processing Operating System
A Multi-Processing Operating System is a type of Operating System in which
more than one CPU is used for the execution of resources. It betters the
throughput of the System.
Advantages of a Multi-Processing Operating System
It increases the throughput of the system as processes can be parallelized.
As it has several processors, so, if one processor fails, we can proceed with
another processor.
5. Distributed Operating System
Distributed operating systems are a recent advancement in the world of
computer technology and are being widely accepted all over the world and,
that too, at a great pace. Various autonomous interconnected computers
communicate with each other using a shared communication network.
Independent systems possess their own memory unit and CPU. Systems. These
systems' processors differ in size and function. The major benefit of working
with these types of operating systems is that it is always possible that one user
can access the files or software which are not present on his system but on
some other system connected within this network, i.e., remote access is
enabled within the devices connected to that network.
Advantages of Distributed Operating System
Failure of one will not affect the other network communication, as all
systems are independent of each other.
Electronic mail increases the data exchange speed.
Since resources are being shared, computation is highly fast and durable.
Load on host computer reduces.
These systems are easily scalable as many systems can be easily added to the
network.
Delay in data processing reduces.
Examples:
LOCUS
MICROS
Amoeba
Network Operating System
These systems run on a server and provide the capability to manage data,
users, groups, security, applications and other networking functions. These
types of operating systems allow shared access to files, printers, security,
applications and other networking functions over a small private network. One
more important aspect of Network Operating Systems is that all the users are
well aware of the underlying configuration, of all other users within the
network, their connections, etc. and that’s why these computers are popularly
known a tightly coupled systems.
Advantages of Network Operating System
Highly stable, centralized servers.
Security concerns are handled through servers.
New technologies and hardware upgrades are easily integrated into the
system.
Server access is possible remotely from different locations and types of
systems.
Examples:
Microsoft Windows Server 2003
Microsoft Windows Server 2008
UNIX, Linux
Mac OS X
Novell NetWare
7. Real-Time Operating System
These types of OSs serve real-time systems. The time interval required to
process and respond to inputs is very small. This time interval is
called response time. Real-time systems are used when there are time
requirements that are very strict like missile systems, air traffic control
systems, robots, etc.
Types of Real-Time Operating Systems
Hard Real-Time Systems: Hard Real-Time OSs are meant for applications
where time constraints are very strict and even the shortest possible delay is
not acceptable. These systems are built for saving lives like automatic
parachutes or airbags which are required to be readily available in case of an
accident. Virtual memory is rarely found in these systems.
Soft Real-Time Systems: These OSs are for applications where time is less
strict.
Examples:
Scientific experiments
Medical imaging systems
Industrial control systems
Weapon systems
Robots
Air traffic control systems
8. Mobile Operating Systems
Mobile operating systems are designed specifically for mobile devices such as
smartphones and tablets. Examples of such operating systems are Android and
iOS. These operating systems manage the hardware and software resources of
the device, providing a platform for running applications and ensuring a
seamless user experience.
Structure of Operating System
1. Introduction
An Operating System (OS) Structure defines how the operating system is
organized internally. It specifies how the OS functions, manages resources,
and communicates with hardware and applications.
Different OS structures have been developed over time depending on design
goals such as efficiency, security, modularity, maintainability, and
performance.
Types of OS Structures
(a) Monolithic Structure
Definition: The entire OS works as a single large program running in
kernel mode.
All basic functions like CPU scheduling, memory management, file
management, I/O are included in one big kernel.
Examples: UNIX, MS-DOS.
Advantages:
o Fast execution (all services in one place).
o Simple design.
Disadvantages:
o Difficult to maintain or debug.
o Errors in one service can crash the whole system.
�Diagram:
-----------------------
| Applications |
-----------------------
| System Calls |
-----------------------
| OS Kernel (File, |
| Process, I/O, MM) |
-----------------------
| Hardware |
-----------------------
(b) Layered Structure
OS divided into layers (levels), each built on top of lower layers.
The bottom layer = hardware; top layer = user interface.
Each layer communicates only with adjacent layers.
Examples: THE OS (by Dijkstra), IBM System/360.
Advantages:
o Easier debugging (problem isolated in a layer).
o Simpler design and testing.
Disadvantages:
o Performance overhead due to layer-to-layer communication.
�Diagram:
Layer N → User Programs
Layer N-1 → System Utilities
Layer N-2 → File Management
Layer N-3 → Memory Management
Layer N-4 → CPU Scheduling
Layer 0 → Hardware
(c) Microkernel Structure
Instead of one large kernel, only essential services (like CPU scheduling,
memory management, IPC – inter-process communication) run in kernel
mode.
Other services (file system, device drivers, networking) run in user mode
as separate processes (servers).
Examples: QNX, MINIX, Windows NT (partially).
Advantages:
o More secure (less code in kernel mode).
o Easy to extend (add/remove services).
Disadvantages:
o Slower than monolithic (context switching overhead).
�Diagram:
-----------------------
| Applications |
-----------------------
| System Servers | → File, Device, Network
-----------------------
| Microkernel | → Scheduling, MM, IPC
-----------------------
| Hardware |
-----------------------
(d) Modular Structure
OS designed as a collection of modules, each module implements
specific functionality.
Modules can be loaded/unloaded as needed.
Examples: Modern UNIX, Linux.
Advantages:
o Flexibility (load only required modules).
o Easier to update.
Disadvantages:
o Slightly complex design compared to monolithic.
(e) Hybrid Structure
Combines features of monolithic and microkernel.
Some critical services in kernel (fast performance), others in user space
(security and flexibility).
Examples: Windows (NT, XP, 10, 11), macOS, Linux (modular kernel).
Advantages:
o Balance of performance and modularity.
Disadvantages:
o Still complex to design.
(f) Virtual Machine Structure
OS acts as a host and provides an interface for creating multiple virtual
machines (VMs).
Each VM behaves like a real computer with its own OS.
Examples: VMware, VirtualBox, Hyper-V.
Advantages:
o Isolation between users/programs.
o Useful for testing, cloud computing.
Disadvantages:
o Overhead of virtualization.
�Diagram:
-----------------------------
| VM1 | VM2 | VM3 | ... | (Each runs OS + Apps)
-----------------------------
| Virtual Machine Monitor |
-----------------------------
| Hardware |
-----------------------------
3. Comparative Table of OS Structures
Structure Advantages Disadvantages Examples
Monolithic Fast, simple Hard to debug, less MS-DOS, UNIX
Structure Advantages Disadvantages Examples
secure
Easy debugging, THE OS, IBM
Layered Overhead of layers
modular 360
Slow due to
Microkernel Secure, extendable MINIX, QNX
overhead
Modular Flexible, dynamic Design complexity Linux, Solaris
Balance of speed + Windows NT/10,
Hybrid Still complex
modularity macOS
Virtual Isolation, testing, Virtualization VMware,
Machine cloud overhead VirtualBox
4. Important Points
The structure of OS is how its internal functions are organized.
Early OS (like MS-DOS, UNIX) used Monolithic kernels.
Layered OS provided better modularity.
Microkernels improved security and reliability.
Modern OS (Windows, Linux, macOS) use Hybrid or Modular designs.
Virtualization is widely used in cloud computing and enterprise
systems.
Functions of Operating System
The Operating System (OS) is software that manages hardware, software
resources, and provides services for computer programs. Its functions are
essential for the smooth functioning of a computer system.
1. Process Management
OS creates, schedules, and terminates processes.
Ensures efficient CPU utilization through algorithms like Round Robin,
Priority Scheduling, etc.
Handles synchronization, communication, and deadlock prevention
among processes.
Key Tasks:
1. Process creation and deletion
2. CPU scheduling
3. Inter-process communication
4. Deadlock handling
2. Memory Management
Allocates memory (RAM) to programs when they execute.
Keeps track of each memory location (allocated or free).
Ensures one program does not overwrite another.
Supports paging, segmentation, and virtual memory.
Key Tasks:
1. Allocation and deallocation of memory
2. Tracking memory usage
3. Implementing virtual memory
3. File Management
Organizes and stores data on storage devices.
Manages creation, deletion, read, write, update, and protection of
files.
Maintains file metadata (name, size, type, permissions).
Provides file directory structure (tree-like organization).
4. Device Management
OS manages input/output (I/O) devices such as printers, disks, scanners.
Uses device drivers to communicate between hardware and software.
Ensures efficient device allocation and avoids conflicts.
Key Tasks:
1. Tracking device status
2. Providing I/O scheduling
3. Buffering and caching
5. User Interface (UI)
Provides the medium for user interaction with the system.
Two main types:
o CLI (Command Line Interface) → text-based (MS-DOS, Linux
Shell)
o GUI (Graphical User Interface) → visual (Windows, macOS)
Key Tasks:
1. Accepting user commands
2. Displaying outputs
3. Managing desktop environment
6. Security & Access Control
Protects the system from unauthorized access.
Implements passwords, authentication, file permissions, and
encryption.
Defends against viruses, worms, and hackers.
Key Tasks:
1. Authentication and authorization
2. Data protection
3. Secure communication
7. Performance Monitoring & Optimization
OS monitors CPU usage, memory load, and I/O traffic.
Identifies bottlenecks and optimizes resource use.
Provides tools like Task Manager or Activity Monitor.
Key Tasks:
1. Resource monitoring
2. Load balancing
3. System tuning
8. Job Accounting & Error Detection
Keeps logs of user activities and system resource usage.
Helps in billing, auditing, and performance analysis.
Detects and reports hardware/software errors.
Key Tasks:
1. Resource usage tracking
2. Billing (in commercial environments)
3. Error detection and correction
9. Program Loading & Execution
OS loads programs into memory.
Assigns CPU for execution.
Ensures safe and orderly running of programs.
Key Tasks:
1. Loading programs
2. Executing instructions
3. Context switching
10. Networking & Communication
Provides facilities for systems to connect and share resources.
Supports TCP/IP protocols, sockets, and network drivers.
Enables distributed computing and cloud operations.
Protection and Security of OS
Access Control: The operating system ensures that processes and users can
only access resources they are authorized to. This is achieved through
mechanisms like memory-addressing hardware (which keeps processes
within their own address space) and timer interrupts (which prevent processes
from monopolizing the CPU).
User Authentication: A system identifies users through user IDs (UIDs) or
Security IDs (SIDs). During login, the operating system verifies the user’s
credentials, ensuring that only authorized users can access their data or
system resources.
Resource Protection: Mechanisms like file protection (ensuring only
authorized users can access or modify files) and device protection (restricting
direct access to device-control registers) ensure the integrity of system
resources, preventing unauthorized or harmful use.
Security Against Attacks: Security mechanisms defend against external
threats like viruses, worms, denial-of-service attacks, and identity theft.
These attacks can misuse system resources, steal sensitive data, or disrupt
system operation. The OS works to prevent these threats and minimize
damage.
What is Protection?
Protection refers to a mechanism which controls the access of programs,
processes, or users to the resources defined by a computer system. We can
take protection as a helper to multi programming operating system, so that
many users might safely share a common logical name space such as directory
or files.
Need for Protection:
To prevent the access of unauthorized users
To ensure that each active programs or processes in the system uses resources
only as the stated policy
To improve reliability by detecting latent errors
Protection and security mechanisms in an operating system are designed to
safeguard system resources from unauthorized access or misuse. These
mechanisms control which processes or users can access specific resources
(such as memory, files, and CPU time) and ensure that only authorized users
can perform specific actions. While protection ensures proper access control,
security focuses on defending the system against external and internal attacks.
Access Control: The operating system ensures that processes and users can
only access resources they are authorized to. This is achieved through
mechanisms like memory-addressing hardware (which keeps processes
within their own address space) and timer interrupts (which prevent processes
from monopolizing the CPU).
User Authentication: A system identifies users through user IDs (UIDs) or
Security IDs (SIDs). During login, the operating system verifies the user’s
credentials, ensuring that only authorized users can access their data or
system resources.
Resource Protection: Mechanisms like file protection (ensuring only
authorized users can access or modify files) and device protection (restricting
direct access to device-control registers) ensure the integrity of system
resources, preventing unauthorized or harmful use.
Security Against Attacks: Security mechanisms defend against external
threats like viruses, worms, denial-of-service attacks, and identity theft.
These attacks can misuse system resources, steal sensitive data, or disrupt
system operation. The OS works to prevent these threats and minimize
damage.
System protection in an operating system refers to the mechanisms
implemented by the operating system to ensure the security and integrity of the
system. System protection involves various techniques to prevent unauthorized
access, misuse, or modification of the operating system and its resources.
There are several ways in which an operating system can provide system
protection:
User authentication: The operating system requires users to authenticate
themselves before accessing the system. Usernames and passwords are
commonly used for this purpose.
Access control: The operating system uses access control lists (ACLs) to
determine which users or processes have permission to access specific
resources or perform specific actions.
Encryption: The operating system can use encryption to protect sensitive data
and prevent unauthorized access.
Firewall: A firewall is a software program that monitors and controls
incoming and outgoing network traffic based on predefined security rules.
Antivirus software: Antivirus software is used to protect the system from
viruses, malware, and other malicious software.
System updates and patches: The operating system must be kept up-to-date
with the latest security patches and updates to prevent known vulnerabilities
from being exploited.
By implementing these protection mechanisms, the operating system can
prevent unauthorized access to the system, protect sensitive data, and ensure
the overall security and integrity of the system.
System Call
A system call is a programmatic way in which a computer program requests a
service from the kernel of the operating system on which it is executed.
System Calls are,
A way for programs to interact with the operating system.
Provide the services of the operating system to the user programs.
Only entry points into the kernel and are executed in kernel mode.
A system call can be written in high-level languages like C or C++ or Pascal
or in assembly language.
A system call is initiated by the program executing a specific instruction,
which triggers a switch to kernel mode, allowing the program to request a
service from the OS. The OS then handles the request, performs the
necessary operations and returns the result back to the program.
Without system calls, each program would need to implement its methods for
accessing hardware and system services, leading to inconsistent and error-
prone behavior.
Services Provided by System Calls
Process Creation and Management
Main Memory Management
File Access, Directory and File System Management
Process Control: end, abort, create, terminate, allocate and free memory.
File Management: create, open, close, delete, read files, etc.
Device Management
Information Maintenance & Communication
Protection, Networking, etc.
Features of System Calls
Interface: System calls provide a well-defined interface between user
programs and the operating system. Programs make requests by calling
specific functions and the operating system responds by executing the
requested service and returning a result.
Protection: System calls are used to access privileged operations that are not
available to normal user programs. The operating system uses this privilege
to protect the system from malicious or unauthorized access.
Kernel Mode: When a system call is made, the program is temporarily
switched from user mode to kernel mode. In kernel mode, the program has
access to all system resources, including hardware, memory and other
processes.
Context Switching: A system call requires a context switch, which involves
saving the state of the current process and switching to the kernel mode to
execute the requested service. This can introduce overhead, which can impact
system performance.
Error Handling: System calls can return error codes to indicate problems
with the requested service. Programs must check for these errors and handle
them appropriately.
Synchronization: System calls can be used to synchronize access to shared
resources, such as files or network connections. The operating system
provides synchronization mechanisms, such as locks or semaphores, to
ensure that multiple programs can access these resources safely.
Types of System Calls
Services provided by an OS are typically related to any kind of operation that a
user program can perform like creation, termination, forking, moving,
communication, etc. Similar types of operations are grouped into one single
system call category. System calls are classified into the following categories:
When a computer or any other computing device is in a powerless state, its
operating system remains stored in secondary storage like a hard disk or SSD.
But, when the computer is started, the operating system must be present in the
main memory or RAM of the system in order to perform all the functioning.
What is Booting?
When a computer system is started, there is a mechanism in the system that
loads the operating system from the secondary storage into the main memory,
or RAM, of the system. This is called the booting process of the system.
Types of Booting
There are two types of booting depending on the number of operating
systems installed on the machine/computer, i.e.
1. Cold or Hard Booting
A state in which a computer is switched on from being switched off is referred
to as cold booting. Powering on a computer that has been turned off
completely is usually called a cold boot. In this procedure, the system
undergoes a complete power-on self-test (POST) that initializes hardware
devices and loads operating systems from a storage medium into random-
access memory (RAM).
2. Soft or Warm Booting
Soft boot or restart method Warm Booting, also called soft boots or restarts,
reboots a computer system without shutting it down entirely. This technique is
usually started by an operating system restart command or by pressing an
appropriate key combination. Warm reboots do skip some of the hardware
initialization processes that are done on cold booting since the hardware
components have been on power and have been initialized earlier. In operation
of a computer system, both cold boot and warm boot processes are absolutely
necessary, where the cold boot yields total system initialization whereas the
warm boot allows a quicker restart choice that does not really involve the
entire start up sequence.
Power on Self Test (POST) Booting
Power on Self Test booting is a part of the booting cycle in a computer system.
The POST is the very first diagnostic routine that the installed hardware
components undergo every time you power up your computer to assure the
presence and functionality of the devices.
The POST tests the status of many hardware components, including the CPU,
memory, storage devices, and other peripherals.
It watches for problems that may prevent booting. In case of a malfunction, the
POST usually displays some error message or beeps in a pattern that indicates
where the problem lies. If it succeeds, the computer starts loading the
operating system and other necessary software for normal running.
Master Boot Record (MBR)
A piece that is very important in the boot process of a computer is called the
Master Boot Record (MBR). This thing is located at the very beginning on the
hard disk, and it has critical details for starting up. It is composed by division
tables among other parts for different types of partitions used on disks with
their respective filesystems being identified here too. During system startup
sequence or POST (Power On Self Test), following things occur:
Firmware like BIOS (Basic Input Output System) /UEFI (Unified Extensible
Firmware Interface) tries looking for MBR from storage device used during
boot up process (boot device) before running its contents.
Then, the bootloader is loaded by this code.
And subsequently, the operating system is loaded by the bootloader.
MBR is an essential cog in booting procedure wherein it starts off steps that
culminate in the system booting appropriately.
Process of Booting
After an operating system is generated, it must be available for use by the
hardware. But how does the hardware know where the kernel is or how to load
that kernel? The procedure of starting a computer by loading the kernel is
known as booting the system. Hence, it needs a special program, stored in
the ROM to do this job known as the Bootstrap loader.
Example: BIOS (boot input-output system). A modern PC BIOS (Basic
Input/Output System) supports booting from various devices. Typically, the
BIOS will allow the user to configure a boot order. If the boot order is set to:
CD Drive
Hard Disk Drive
Network
Then the BIOS will try to boot from the CD drive first, and if that fails, it will
try to boot from the hard disk drive, and if that fails then it will try to boot
from the network, and if that fails, it won’t boot at all. Booting is a startup
sequence that starts the operating system of a computer when it is turned on. A
boot sequence is the initial set of operations that the computer performs when
it is switched on. Every computer has a boot sequence. The Bootstrap loader
locates the kernel, loads it into main memory, and starts its execution. In some
systems, a simple bootstrap loader fetches a more complex boot program from
disk, which in turn loads the kernel.
System Program Definition
System programs in an operating system are software tools that help users
manage files, run programs, and control system resources. They include file
managers, program loaders, compilers, and system utilities, making it easier to
operate the computer efficiently and keep it running smoothly.
Here are the examples of System Programs :
1. File Management : A file is a collection of specific information stored in
the memory of a computer system. File management is defined as the
process of manipulating files in the computer system, its management
includes the process of creating, modifying and deleting files.
2. Command Line Interface(CLI's) : CLIs is the essential tool for user . It
provide user facility to write commands directly to the system for
performing any operation . It is a text-based way to interact with operating
system. CLIs can perform many tasks like file manipulation, system
configuration and etc.
3. Device drivers : Device drivers work as a simple translator for OS and
devices . Basically it act as an intermediatory between the OS and devices
and provide facility to both OS and devices to understand each other's
language so that they can work together efficiently without interrupt.
4. Status Information : Information like date, time amount of available
memory, or disk space is asked by some users. Others providing detailed
performance, logging, and debugging information which is more complex.
All this information is formatted and displayed on output devices or
printed. Terminal or other output devices or files or a window of GUI is
used for showing the output of programs.
5. File Modification : This is used for modifying the content of files. Files
stored on disks or other storage devices, we use different types of editors.
For searching contents of files or perform transformations of files we use
special commands.
6. Programming-Language support : For common programming languages,
we use Compilers, Assemblers, Debuggers, and interpreters which are
already provided to users. It provides all support to users. We can run any
programming language. All important languages are provided.
7. Program Loading and Execution : When the program is ready after
Assembling and compilation, it must be loaded into memory for execution.
A loader is part of an operating system that is responsible for loading
programs and libraries. It is one of the essential stages for starting a
program. Loaders, relocatable loaders, linkage editors, and Overlay loaders
are provided by the system.
8. Communications : Connections among processes, users, and computer
systems are provided by programs. Users can send messages to another
user on their screen, User can send e-mail, browsing on web pages, remote
login, the transformation of files from one user to another.
Types of System Programs
Different types of system programs are:
Device Drivers: Works as intermediaries between the operating system and
hardware components. Without drivers, the OS cannot communicate
effectively with devices like printers, keyboards, or graphic cards.
Utility Program: Perform essential maintenance tasks to ensure the smooth
functioning of the system. They include tools for disk cleanup,
defragmentation, and antivirus protection, helping maintain system
performance and security.
Communication Programs: Enable data exchange between devices or users.
User can send e-mail, browsing on web pages, remote login, the
transformation of files from one user to another.
File Management Programs: These programs create, delete, copy, rename,
print, dump, list, and generally manipulate files and directories.
Program loading and execution: Manage the process of loading executable
programs into memory so they can run. The system may provide absolute
loaders, relocatable loaders, linkage editors, and overlay loaders.