Module 1-Lesson 1
Module 1-Lesson 1
An operating system acts as an intermediary between a computer user and computer hardware. In short, it's an
interface between computer hardware and the user.
• The purpose of an operating system is to provide an environment in which a user can execute programs
conveniently and efficiently.
• An operating system is software that manages computer hardware and software. The hardware must
provide appropriate mechanisms to ensure the computer system's correct operation and prevent user
programs from interfering with the system's proper operation.
• Operating system is a program that is always running on the computer (usually called the kernel), with all
else being application programs.
• Concerned with assigning resources among programs, e.g., memory, processors, and input/output
devices.
The operating system has been evolving through the years. The following table shows the history of OS.
GUI-based OSs gained traction; networking features became Apple Macintosh (1984),
1980s
standard. Windows (1985)
Open-source Linux emerged; GUIs in Windows and Mac OS Linux (1991), Windows 95
1990s
improved. (1995)
Let us now discuss some of the important characteristic features of operating systems:
• Device Management: The operating system keeps track of all the devices. So, it is also called the
Input/Output controller that decides which process gets the device, when, and for how long.
• File Management: It allocates and de-allocates the resources and decides who gets them.
• Job Accounting: It keeps track of time and resources used by various jobs or users.
• Error-detecting Aids: These contain methods that include the production of dumps, traces, error
messages, and other debugging and error-detecting methods.
• Memory Management: It is responsible for managing the primary memory of a computer, including what
parts of it are in use by whom also checks how much is free or used and allocates process
• Processor Management: It allocates the processor to a process and then de-allocates it when it is no
longer required or the job is done.
• Control on System Performance: It records the delays between the request for a service and the system.
• Security: It prevents unauthorized access to programs and data using passwords or some kind of
protection technique.
• Ability to Evolve: An OS should be constructed in such a way as to permit the effective development,
testing, and introduction of new system functions at the same time without interfering with service.
• Throughput: An OS should be constructed to give maximum throughput (Number of tasks per unit time).
There are multiple types of operating systems, each having its own unique features:
Windows OS
• Developer : Microsoft
• Key Features : User-friendly interface, software compatibility, hardware support, Strong gaming support.
• Advantages : Easy to use for most users, Broad support from third-party applications , Frequent updates
and support.
macOS
• Developer : Apple.
• Key Features : Sleek, intuitive user interface, Strong integration with other Apple products, Robust security
features, High performance and stability.
• Advantages : Optimized for Apple hardware, Seamless experience across Apple ecosystem, Superior
graphics and multimedia capabilities.
• Typical Use Cases : Creative industries (design, video editing, music production), Personal computing,
Professional environments.
Linux
• Key Features : Open-source and highly customizable, robust security and stability, lightweight and can run
on older hardware, and large selection of distributions (e.g., Ubuntu, Fedora, Debian).
• Advantages : Free to use and distribute, Strong community support, Suitable for servers and development
environments.
• Typical Use Cases : Servers and data centers, Development and programming, Personal computing for
tech enthusiasts.
Unix
• Developer: Originally AT&T Bell Labs, various commercial and open-source versions available
• Key Features: Multiuser and multitasking capabilities, Strong security and stability, Powerful command-
line interface, Portability across different hardware platforms
• Advantages: Reliable and robust performance, Suitable for high-performance computing and servers,
Extensive support for networking
• Typical Use Cases: Servers and workstations, Development environments, Research and academic
settings
• Resource Management: When parallel accessing happens in the OS means when multiple users are
accessing the system the OS works as Resource Manager, Its responsibility is to provide hardware to the
user. It decreases the load in the system.
• Process Management: It includes various tasks like scheduling and termination of the process. It is done
with the help of CPU Scheduling algorithms .
• Storage Management: The file system mechanism used for the management of the
storage. NIFS , CIFS , CFS , NFS , etc. are some file systems. All the data is stored in various tracks of Hard
disks that are all managed by the storage manager. It included Hard Disk .
• Memory Management: Refers to the management of primary memory. The operating system has to keep
track of how much memory has been used and by whom. It has to decide which process needs memory
space and how much. OS also has to allocate and deallocate the memory space.
• Security/Privacy Management: Privacy is also provided by the Operating system using passwords so that
unauthorized applications can’t access programs or data. For example, Windows
uses Kerberos authentication to prevent unauthorized access to data.
1. User
3. Operating system
4. Hardware
Every general-purpose computer consists of hardware, an operating system(s), system programs, and application
programs. The hardware consists of memory, CPU, ALU, I/O devices, peripheral devices, and storage devices. The
system program consists of compilers, loaders, editors, OS, etc.
Every computer must have an operating system to run other programs. The operating system coordinates the use
of the hardware among the various system programs and application programs for various users. It simply provides
an environment within which other programs can do useful work.
An OS is a package of some programs that runs on a computer machine, allowing it to perform efficiently. It
manages the simple tasks of recognizing input from the keyboard, managing files and directories on disk,
displaying output on the screen, and controlling peripheral devices.
Layered Design of Operating System
Fig. Layered OS
The extended machine provides operations like context save, dispatching, swapping, and I/O initiation. The
operating system layer is located on top of the extended machine layer. This arrangement considerably simplifies
the coding and testing of OS modules by separating the algorithm of a function from the implementation of its
primitive operations. It is now easier to test, debug, and modify an OS module than in a monolithic OS. We say that
the lower layer provides an abstraction that is the extended machine. We call the operating system layer the top
layer of the OS.
Several tasks are performed by the Operating Systems and it also helps in serving a lot of purposes which are
mentioned below. We will see how Operating System helps us in serving in a better way with the help of the task
performed by it.
• It controls the allocation and use of the computing System’s resources among the various user and tasks.
• It provides an interface between the computer hardware and the programmer that simplifies and makes it
feasible for coding and debugging of application programs.
1. Provides the facilities to create and modify programs and data files using an editor.
2. Access to the compiler for translating the user program from high-level language to machine language.
3. Provide a loader program to move the compiled program code to the computer’s memory for execution.
The module that keeps track of the status of devices is called the I/O traffic controller. Each I/O device has a device
handler that resides in a separate process associated with that device.
The I/O subsystem consists of
The input to an assembler is an assembly language program. The output is an object program plus information that
enables the loader to prepare the object program for execution. At one time, the computer programmer had at his
disposal a basic machine that interpreted, through hardware, certain fundamental instructions. He would program
this computer by writing a series of ones and Zeros (Machine language) and placing them into the memory of the
machine. Examples of assembly languages include
The High-level languages – examples are C, C++, Java, Python, etc (around 300+ famous high-level languages) are
processed by compilers and interpreters . A compiler is a program that accepts a source program in a “high-level
language “and produces machine code in one go. Some of the compiled languages are FORTRAN, COBOL, C, C++,
Rust, and Go. An interpreter is a program that does the same thing but converts high-level code to machine code
line-by-line and not all at once. Examples of interpreted languages are
• Python
• Perl
• Ruby
Loader
A Loader is a routine that loads an object program and prepares it for execution. There are various loading
schemes: absolute, relocating, and direct-linking. In general, the loader must load, relocate and link the object
program. The loader is a program that places programs into memory and prepares them for execution. In a simple
loading scheme, the assembler outputs the machine language translation of a program on a secondary device and
a loader places it in the core. The loader places into memory the machine language version of the user’s program
and transfers control to it. Since the loader program is much smaller than the assembler, those make more core
available to the user’s program.
• Shell
• Kernel
Shell
Shell is the outermost layer of the Operating System and it handles the interaction with the user. The main task of
the Shell is the management of interaction between the User and OS. Shell provides better communication with
the user and the Operating System Shell does it by giving proper input to the user it also interprets input for the OS
and handles the output from the OS. It works as a way of communication between the User and the OS.
Kernel
The kernel is one of the components of the Operating System which works as a core component. The rest of the
components depends on Kernel for the supply of the important services that are provided by the Operating
System. The kernel is the primary interface between the Operating system and Hardware.
Functions of Kernel
• Monolithic Kernel
• Microkernel
• Hybrid Kernel
• Exokernel
Less amount of data is managed in 32-Bit Operating A large amount of data can be stored in 64-Bit
System as compared to 64-Bit Os. Operating System.
32-Bit Operating System can address 2^32 bytes of 64-Bit Operating System can address 2^64 bytes of
RAM. RAM.
Efficient use
An operating system must ensure efficient use of the fundamental computer system resources of memory, CPU,
and I/O devices such as disks and printers. Poor efficiency can result if a program does not use a resource
allocated to it. Efficient use of resources can be obtained by monitoring use of resources and performing corrective
actions when necessary. However, monitoring use of resources increases the overhead, which lowers efficiency of
use. In practice, operating systems that emphasize efficient use limit their overhead by either restricting their focus
to efficiency of a few important resources, like the CPU and the memory, or by not monitoring the use of resources
at all, and instead handling user programs and resources in a manner that guarantees high efficiency.
User convenience
In the early days of computing, user convenience was synonymous with bare necessity—the mere ability to
execute a program written in a higher level language was considered adequate. Experience with early operating
systems led to demands for better service, which in those days meant only fast response to a user request. Other
facets of user convenience evolved with the use of computers in new fields. Early operating systems had
command-line interfaces, which required a user to type in a command and specify values of its parameters. Users
needed substantial training to learn use of the commands, which was acceptable because most users were
scientists or computer professionals. However, simpler interfaces were needed to facilitate use of computers by
new classes of users. Hence graphical user interfaces (GUIs) were evolved. These interfaces used icons on a
screen to represent programs and files and interpreted mouse clicks on the icons and associated menus as
commands concerning them. In many ways, this move can be compared to the spread of car driving skills in the
first half of the twentieth century. Over a period of time, driving became less of a specialty and more of a skill that
could be acquired with limited training and experience.
Non interference
A computer user can face different kinds of interference in his computational activities. Execution of his program
can be disrupted by actions of other persons, or the OS services which he wishes to use can be disrupted in a
similar manner. The OS prevents such interference by allocating resources for exclusive use of programs and OS
services, and preventing illegal accesses to resources. Another form of interference concerns programs and data
stored in user files.
• It helps in managing the data present in the device i.e. Memory Management.
Conclusion
OS (operating system) – this is how we call the absolute core of modern computing API which directly interacts
between you and machine. Types of Operating System and its FeaturesDifferent types of operating systems have
their distinct features, so we can choose the right one for different applications. Windows (widely used), macOS
(high security level), Linux (flexible OS) and smaller systems/devices such as Android and iOS, it all depends on the
requirements of what you need.
In a similar way like technology improves, operating systems will always have a part in managing jobs such as
security and enhancing user experience. Operating systems are mostly about the way you use IT – even if not at a
high level, as would have been required by developers or professionals. Few focus areas when picking OS are too,
getting a good job done at the moment and all set for later tasks as well.