Computer Software and OS
Computer Software and OS
SOFTWARE
Software is a set of instructions that a computer can execute to perform a specific task or function.
Software can be broadly classified into two main categories: system software and application software.
Types of Software
System software refers to the operating system and other low-level programs that enable the computer
hardware to function and provide basic capabilities for the computer. Examples of system software include
the operating system (e.g. Windows, macOS, Linux), device drivers, and utility programs.
Utility
Firmware
Language Processor
Package
Applicatio Tailored
Productivity
n Database
Graphics
Web browsers
Mobile apps
Operating systems: These are the most important type of system software, as they manage and control the
hardware and software resources of a computer. Examples include Microsoft Windows, macOS, and Linux.
Device drivers: These are specialized programs that allow the operating system to communicate with specific
hardware devices, such as printers and network adapters.
Utility software: These are programs that help users manage and maintain their computers, such as disk
defragmenters and antivirus programs.
Firmware: This is a type of software that is permanently stored on a device, such as the BIOS of a computer
or the firmware of a router.
Language Processor: A language processor is a type of software that converts a high-level programming
language into machine code, which can be executed by a computer. An example of a language processor is a
1
Compiled by Abhay Sharma (AS)
Computer Software and Operating System
compiler, which converts the source code of a program written in a programming language into machine
code that can be run on a specific type of computer.
In general, system software is designed to improve the functionality and performance of a computer or
device, and it is essential for the smooth operation of the system.
Application software refers to programs that enable users to perform specific tasks and accomplish specific
goals. Examples of application software include word processors, spreadsheet programs, web browsers, and
media players.
Package software, also known as a "software package" or "application suite," is a collection of multiple
application programs that are bundled together and sold as a single unit. Package software often includes a
variety of different types of application programs, such as productivity, graphics, and utility programs that are
designed to work together and provide a complete solution for a specific need or task.
Some examples of package software include the Microsoft Office suite, which includes word processing,
spreadsheet, and presentation programs, and the Adobe Creative Cloud suite, which includes graphic design,
video editing, and web development tools.
Package software is often more cost-effective than purchasing individual application programs, and it can
provide users with a more integrated and seamless experience when working with multiple types of
software.
Tailored software, also known as custom software or bespoke software, is application software that is
developed specifically to meet the unique needs and requirements of a particular organization or individual.
It is created for a specific purpose and is customized to fit the specific requirements of the user.
Application software, also known as an "application" or "app," is a type of computer software that performs
specific tasks or functions for users. Some examples of application software include:
Productivity software: This type of application software is designed to help users create, manage, and
organize various types of information, such as word processing, spreadsheet, and presentation programs.
Database software: This type of application software is used to store, manage, and retrieve large amounts of
data, such as customer information or inventory records.
Graphics software: This type of application software is used to create and edit images, such as photo and
video editing programs.
Web browsers: These are application programs that allow users to access and navigate the internet.
Mobile apps: These are specialized application programs that are designed to run on smartphones and other
mobile devices.
In general, application software is designed to solve specific problems or perform specific tasks for users, and
it is typically used for personal or business purposes.
2
Compiled by Abhay Sharma (AS)
Computer Software and Operating System
In addition to these two main categories, software can also be classified based on the intended audience,
such as commercial software and free/open-source software, as well as the method of distribution, such as
offline software and online/cloud-based software.
The term "operating system" is derived from the fact that it is the system that "operates" or manages the
computer and its resources. It is typically abbreviated as "OS" and is sometimes referred to as the "system
software" or "platform" of a computer.
History
Over time, the concept of the operating system has evolved to include a wide range of functions and
capabilities.
3
Compiled by Abhay Sharma (AS)
Computer Software and Operating System
The first known use of the term "operating system" was in a 1955 paper by John W. Tukey, an American
mathematician and statistician. In this paper, Tukey used the term to describe a set of programs that
managed the resources of an early digital computer, such as the Central Processing Unit (CPU), memory, and
input/output devices. Over time, the concept of the operating system has evolved and expanded to include a
wide range of functions and capabilities, such as managing memory, scheduling processes, handling
input/output, and providing various system services.
The history of operating systems can be traced back to the early days of computing. In the 1950s, most
computers were large, expensive machines that were operated by trained technicians. These machines were
used primarily by governments and large corporations for scientific and military applications.
As computers became smaller and more affordable in the 1970s, they began to be used for a wider range of
purposes, including business and personal use. This led to the development of the first general-purpose
operating systems, such as UNIX and DOS, which were designed to support a wide range of applications.
In the 1980s, personal computers (PCs) became more popular, and operating systems such as Apple's
Macintosh and Microsoft's Windows were introduced to make it easier for non-technical users to work with
computers. These operating systems included graphical user interfaces (GUIs) that made it easier to navigate
and perform common tasks.
In the 1990s, the rise of the Internet led to the development of new operating systems that were designed to
support networking and connectivity. These included the Linux operating system, which was developed as an
open-source alternative to proprietary operating systems like Windows.
Today, there are many different operating systems available for a wide range of devices, including
smartphones, tablets, and other mobile devices. These operating systems continue to evolve to meet the
changing needs of users and the growing complexity of technology.
Most Popular OS are MS-DOS, UNIX, Linux, Windows, MacOS, iOS, Android, Ubuntu, Fedora, etc.
MS-DOS
MS-DOS is a single-user, single-tasking operating system (OS) that was developed for IBM-compatible
personal computers in the 1980s.
It was developed by Microsoft and was the first OS released for the IBM PC.
The first version of MS-DOS was released in 1981 and was called version 1.0.
Over the years, several versions of MS-DOS were released, including version 2.0, 2.1, 3.0, 3.1, 3.2, and 4.0.
In 1993, Microsoft released a new OS called Windows, and development of MS-DOS ceased.
However, many people still continued to use MS-DOS for a variety of tasks, and Microsoft continued to
release updates and fixes for the OS until 1994.
4
Compiled by Abhay Sharma (AS)
Computer Software and Operating System
Despite its age and the advent of newer, more advanced operating systems, MS-DOS remains a popular
choice for many users due to its simplicity and ease of use.
MacOS
macOS is a series of operating systems developed and marketed by Apple Inc.
Over the years, several major versions of macOS have been released, each with its own unique features and
improvements.
OS X 10.8 (2012)
OS X 10.9 (2013)
OS X 10.10 (2014)
OS X 10.11 (2015)
Windows
Microsoft Windows is an operating system that was created by Microsoft Corporation.
5
Compiled by Abhay Sharma (AS)
Computer Software and Operating System
The first version of Microsoft Windows was released in 1985 and was called Windows 1.0.
Since then, there have been several versions of Windows released, including Windows 2.0, Windows 3.0,
Windows 95, Windows 98, Windows 2000, Windows XP, Windows Vista, Windows 7, Windows 8, and
Windows 10.
Each version of Windows has introduced new features and improvements to the operating system.
Windows 10 is the latest version of Windows and was released in 2015. It includes features such as the
Cortana digital assistant and the Edge web browser.
GNU/Linux
GNU/Linux is a free and open-source operating system
The name "GNU/Linux" refers to the fact that the operating system is built on top of the GNU operating
system, with the Linux kernel added to provide support for different hardware architectures
Since its inception, there have been many different versions, or "distributions," of GNU/Linux, including
Ubuntu, Debian, Fedora, and CentOS
These distributions vary in their specific features and intended uses, but they all share the same core
components and principles of the GNU/Linux operating system.
HarmonyOS
Harmony OS is a microkernel-based, distributed operating system developed by Huawei. It is designed to be
used across a range of devices, from smartphones to smart speakers and other connected devices.
The initial version, known as Hongmeng OS in China, was released in beta form for developers in August
2019.
The first commercial version of Harmony OS, known as HarmonyOS 1.0, was released in September 2020.
HarmonyOS 2.0, the second major version of the operating system, was released in June 2021.
HarmonyOS is designed to be a scalable and flexible operating system that can be used across a range of
devices, including smartphones, smart speakers, and other connected devices.
It is based on a microkernel architecture, which means that it is designed to be highly modular and scalable.
6
Compiled by Abhay Sharma (AS)
Computer Software and Operating System
HarmonyOS features a distributed architecture, which allows it to run across multiple devices and share
resources seamlessly.
Huawei has positioned HarmonyOS as an alternative to Android and iOS, with a focus on providing a more
seamless and integrated user experience across different types of devices.
An operating system is a piece of software that manages the hardware and software resources of a
computer.
An operating system provides a platform for other programs to run on, allowing users to perform tasks on a
computer.
An operating system provides common services such as file management, networking, and security.
An operating system allows for the efficient use of a computer's resources, including its memory, processors,
and input/output devices.
An operating system provides a user interface, allowing users to interact with the computer and access its
features and functions.
An operating system is responsible for the allocation and management of system resources, such as memory
and processor time.
An operating system enables multiple users and programs to run concurrently on a computer, providing
mechanisms for communication and coordination among them.
An operating system can be either single-user, allowing only one user to access the computer at a time, or
multi-user, allowing multiple users to access the computer simultaneously.
An operating system may also provide support for virtualization, allowing multiple virtual machines to run on
a single physical machine.
The design and implementation of an operating system can have a significant impact on the performance,
reliability, and security of a computer.
Resource management: An operating system manages the allocation and use of hardware resources, such as
memory, processor time, and input/output devices. This ensures that different programs and users can
efficiently use the computer's resources without interfering with each other.
7
Compiled by Abhay Sharma (AS)
Computer Software and Operating System
Memory management: An operating system manages the allocation and deallocation of memory to
programs, ensuring that each program has enough memory to run properly and that memory is used
efficiently.
Process management: An operating system manages the execution of programs, allowing multiple programs
to run concurrently and providing mechanisms for programs to communicate with each other.
Security: An operating system provides mechanisms to protect the computer and its resources from
unauthorized access and malicious software.
User interface: An operating system provides a user interface, such as a graphical user interface (GUI), that
allows users to interact with the computer and its programs.
Hardware support: An operating system includes device drivers that allow programs to access the
computer's hardware, such as printers and network interfaces.
File management: An operating system provides mechanisms for organizing and storing files, as well as
controlling access to those files.
Networking: An operating system provides support for networking, allowing programs to communicate over
a network and access network resources.
These are just some of the key functions of an operating system. Depending on the specific operating system,
it may have additional or different functions.
Use of visual elements such as icons, windows, and menus to represent programs and files, making it easy to
navigate and use the computer.
The ability to use a mouse or touchpad to point and click on these elements, rather than having to remember
and type commands.
The ability to run multiple programs and switch between them easily, using windows and taskbars.
The ability to customize the appearance of the user interface, such as changing the desktop background and
organizing icons.
The ability to connect to and use other devices, such as printers and external storage devices, through the
GUI.
Overall, a GUI-based operating system provides a more user-friendly and intuitive way to interact with the
computer, making it easier for users of all skill levels to use the computer effectively.
8
Compiled by Abhay Sharma (AS)
Computer Software and Operating System
DESKTOP APPLICATION
A desktop application is a software program that is installed on a computer or laptop and runs locally on the
device.
Desktop applications are different from web-based applications, which are accessed through a web browser
and run on a remote server.
Desktop applications can offer a more powerful and responsive user experience, as they have access to the
full capabilities of the device they are installed on.
Examples of desktop applications include productivity tools like Microsoft Office and Adobe Photoshop,
media players like VLC and iTunes, and games like Minecraft and Fortnite.
Desktop applications are typically installed from a CD or DVD, or downloaded from the internet and installed
on the computer.
Users can typically manage and update their desktop applications through an app store or other software
management tool.
WINDOWS ENVIRONMENT
Microsoft Windows is an operating system that provides a graphical user interface (GUI) for computers.
Windows allows users to interact with the computer using a mouse and keyboard, as well as other input
devices such as touchscreens and styluses.
It provides a platform for running and managing applications, as well as organizing and accessing files,
folders, and other resources on the computer.
Windows also includes many built-in features and tools, such as a web browser, media player, and
productivity software.
It is widely used on personal computers, as well as on servers and other large systems.
Open File Explorer by clicking the "Start" button and selecting "Computer" from the menu.
Navigate to the location where you want to create the file or folder.
In the toolbar, click the "New Folder" button to create a new folder. Alternatively, you can right-click on an
empty area in the folder and select "New" > "Folder" from the context menu.
A new folder will be created in the current location with a default name.
9
Compiled by Abhay Sharma (AS)
Computer Software and Operating System
To rename the folder, right-click on it and select "Rename" from the context menu. Type in the new name
and press Enter to save the changes.
Open File Explorer by clicking the "Start" button and selecting "Computer" from the menu.
Navigate to the location where you want to create the text file.
In the toolbar, click the "New Text Document" button to create a new text file. Alternatively, you can right-
click on an empty area in the folder and select "New" > "Text Document" from the context menu.
A new text document will be created in the current location with a default name.
To rename the text file, right-click on it and select "Rename" from the context menu. Type in the new name
and press Enter to save the changes.
Note: The exact steps for creating files and folders may vary depending on the version of Windows you are
using.
The source code of the software is typically made available to the public, allowing anyone to view and
contribute to the development of the software.
Open source software is often developed collaboratively by a community of volunteers and enthusiasts.
Open source software can be distributed under various licenses, which determine how the software can be
used and modified.
Open source software is often seen as an alternative to proprietary software, which is typically owned by a
single company and distributed under strict licensing terms.
Built-in support for common mobile features, such as GPS, Bluetooth, and cellular data connectivity
The ability to run a wide variety of mobile applications, often called "apps"
Support for automatic updates and security features to help protect the device and its data
10
Compiled by Abhay Sharma (AS)
Computer Software and Operating System
Integration with cloud services and other online platforms to allow users to access their data and services
from anywhere.
LINUX OS
Linux is a free and open-source operating system. Here are some key points to know about Linux:
It is a popular choice for operating servers and other large, high-performance computers.
It is highly customizable, with a wide variety of distributions available that offer different features and user
experiences.
It is built on the Linux kernel, which was first developed in 1991 by Linus Torvalds.
It is known for its stability and security, as well as its support for a wide range of hardware platforms.
It is used by many large organizations, including Google, IBM, and NASA, as well as by many individuals
around the world.
It is available for free, and its source code can be modified and distributed by anyone.
It is often used in conjunction with other software, such as the Apache web server, the MySQL database, and
the PHP programming language, to create powerful and flexible web-based applications.
UNIX OS
UNIX is a multi-user, multitasking operating system (OS) that was first developed in the late 1970s.
It was originally developed by AT&T Bell Labs for use on minicomputers, but has since been adapted for use
on a wide variety of computer hardware, including desktop computers, servers, and mobile devices.
UNIX is known for its portability, flexibility, and robustness, and is widely used in both commercial and
academic settings.
UNIX is built on the concept of a "kernel," which is the central part of the operating system that manages the
resources of the computer and provides services to the other parts of the system.
UNIX is known for its powerful command-line interface, which allows users to perform complex tasks by
typing commands into a text-based terminal.
Some popular versions of UNIX include Linux, FreeBSD, OpenBSD, and macOS (which is based on a UNIX-like
kernel called Darwin).
Linux Distribution
Linux is a free and open-source operating system, which means that anyone can use, modify, and distribute
the source code for their own purposes.
11
Compiled by Abhay Sharma (AS)
Computer Software and Operating System
Linux is often used on servers and other large computers, but it can also be installed on personal computers.
Linux is free and open-source, which means that anyone can access and modify the source code.
Linux is highly customizable, with many different versions (called "distributions" or "distros") available, each
with its own features and focus.
Android: Developed by Google, Android is an open-source operating system that is widely used on a variety
of smartphones and tablets.
iOS: Developed by Apple, iOS is a proprietary operating system used on Apple's iPhone, iPad, and iPod touch
devices.
BlackBerry OS: Developed by BlackBerry Limited, BlackBerry OS is a proprietary operating system used on
BlackBerry smartphones and tablets.
Windows Phone: Developed by Microsoft, Windows Phone is a proprietary operating system used on a
limited number of smartphones and tablets.
Sailfish OS: Developed by Jolla, Sailfish OS is an open-source operating system used on a small number of
smartphones and tablets.
Tizen: Developed by the Linux Foundation, Tizen is an open-source operating system used on a variety of
smartphones and tablets, as well as smart TVs and other devices.
STATE OF PROCESS / OS
In an operating system, a process is an instance of a program that is being executed. The state of a process
refers to the current status of that process as it runs or waits to be run on the computer.
Whenever the process creation is taking place process is in a new state and when the process gets
terminated it is in the terminated state or completed state.
The states of the process are stored in Process Control Block (PCB). PCB is a special data structure that stores
information about the process.
12
Compiled by Abhay Sharma (AS)
Computer Software and Operating System
There are several possible states that a process can be in, depending on the specific operating system and
how it is implemented. Some common states include:
New State
This is the first state of the process life cycle. When process creation is taking place, the process is in a new
state.
Ready State
When the process creation gets completed, the process comes into a ready state. During this state, the
process is loaded into the main memory and will be placed in the queue of processes which are waiting for
the CPU allocation.
When the process is in the creation process is in a new state and when the process gets created process is in
the ready state.
Running State
Whenever the CPU is allocated to the process from the ready queue, the process state changes to Running.
13
Compiled by Abhay Sharma (AS)
Computer Software and Operating System
When the process is executing the instructions, the process might require carrying out a few tasks which
might not require CPU. If the process requires performing Input-Output task or the process needs some
resources which are already acquired by other processes, during such conditions process is brought back into
the main memory, and the state is changed to Blocking or Wait for the state. Process is placed in the queue
of processes that are in waiting or block state in the main memory.
Terminated or Completed
When the entire set of instructions is executed and the process is completed. The process is changed to
terminated or completed state. During this state the PCB of the process is also deleted. It is possible that
there are multiple processes present in the main memory at the same time.
Suspend Ready
So whenever the main memory is full, the process which is in a ready state is swapped out from main
memory to secondary memory. The process is in a ready state when goes through the transition of moving
from main memory to secondary memory, the state of that process is changed to Suspend Ready state. Once
the main memory will have enough space for the process, the process will be brought back to the main
memory and will be in a ready state.
14
Compiled by Abhay Sharma (AS)
Computer Software and Operating System
It’s possible that the process is waiting or blocked state can be swapped out to secondary memory. Let’s
understand in which state process in waiting or block state will go.
Whenever the process that is in waiting for state or block state in main memory gets to swap out to
secondary memory due to main memory being completely full, the process state is changed to Suspend wait
or Suspend blocked state.
15
Compiled by Abhay Sharma (AS)
Computer Software and Operating System
The state of a process can change over time as it executes. For example, a process might start out in the
"ready" state, be moved to the "running" state when the CPU becomes available, and then return to the
"waiting" state if it needs to wait for some external event.
VIRTUAL MEMORY
In a multi-tasking operating system, the operating system kernel is responsible for managing the states of all
the processes and ensuring that each process gets a fair share of the CPU's time. This is known as process
scheduling.
Virtual memory is a feature of an operating system (OS) that enables a computer to be able to compensate
for shortages of physical memory by temporarily transferring pages of data from random access memory
(RAM) to disk storage. This allows a computer to run larger applications or multiple applications concurrently.
Virtual memory works by creating a virtual address space that is larger than the available physical memory.
When a program or application requests memory, the OS checks to see if the requested memory is available
in physical RAM. If it is not, the OS will temporarily transfer a page of data from RAM to the hard disk,
creating space in RAM for the new data. This process is known as paging. The data on the hard disk is stored
in a reserved area called the swap file or paging file.
16
Compiled by Abhay Sharma (AS)
Computer Software and Operating System
When the program or application needs to access the data that has been transferred to the hard disk, the OS
retrieves it and places it back in RAM. This process is known as swapping. The swapping of data between
RAM and the hard disk is transparent to the user and is managed by the OS.
Virtual memory allows a computer to run multiple applications at the same time and to handle larger
applications than would be possible with just the available physical memory. However, using virtual memory
can slow down the performance of the computer because accessing data on the hard disk is slower than
accessing data in RAM.
In computer science, virtual memory is a feature of an operating system (OS) that enables a computer to be
able to compensate for shortages of physical memory by temporarily transferring pages of data from random
access memory (RAM) to disk storage.
Segmentation is a technique used in virtual memory systems to divide the virtual address space of a process
into smaller units called segments. Each segment corresponds to a different region of memory, such as the
program code, data, or stack. Segments are used to better manage the virtual memory of a process, as they
allow the OS to more efficiently allocate and de-allocate memory, and to protect the memory of a process
from being accessed by other processes.
Segmentation is typically implemented in conjunction with paging, which is a technique used to divide the
physical memory of a computer into smaller units called pages. The combination of segmentation and paging
allows the OS to efficiently manage the virtual memory of a process by mapping the segments to physical
pages in RAM or on disk.
In summary, virtual memory is a feature of the OS that enables a computer to use disk storage as an
extension of its physical memory, allowing it to run larger applications and multiple applications concurrently.
TYPES OF OS
There are several types of operating systems, including:
Single-user, single-task operating systems: These operating systems allow only one user to execute one task
at a time.
Single-user, multi-task operating systems: These operating systems allow a single user to execute multiple
tasks concurrently.
Multi-user operating systems: These operating systems allow multiple users to access the system
simultaneously and execute multiple tasks concurrently.
Distributed operating systems: These operating systems allow multiple computers to work together as a
single system.
Real-time operating systems: These operating systems are designed for applications that require timely
processing of data, such as control systems and multimedia applications.
17
Compiled by Abhay Sharma (AS)
Computer Software and Operating System
Embedded operating systems: These operating systems are designed for use in devices with limited
resources, such as smartphones and smart appliances.
Mobile operating systems: These operating systems are designed for use on mobile devices, such as
smartphones and tablets.
Server operating systems: These operating systems are designed for use on servers, which are powerful
computers that provide resources and services to other computers and devices on a network.
Multiprocessing
In computer science, multiprocessing is the use of two or more central processing units (CPUs) within a single
computer system to execute multiple processes concurrently. This is achieved by assigning each process to a
separate CPU, or by assigning each process to a separate CPU core, which is a processing unit within a CPU
that is capable of executing instructions independently of the other cores.
Multiprocessing is used to improve the performance of a computer system by allowing it to execute multiple
processes simultaneously, rather than sequentially. This is particularly useful for applications that require a
lot of processing power, such as video editing, 3D rendering, and scientific simulations.
In order to support multiprocessing, an operating system (OS) must have the ability to schedule processes
across multiple CPUs or CPU cores, and must also provide mechanisms for synchronizing and communicating
between processes. Many modern operating systems, such as Windows, Linux, and MacOS, are designed to
support multiprocessing.
Multithreading
In computer science, multithreading is the ability of a central processing unit (CPU), or a single core in a
multi-core processor, to execute multiple threads concurrently. A thread is a sequence of instructions that
can be executed independently of other threads within the same process.
18
Compiled by Abhay Sharma (AS)
Computer Software and Operating System
Multithreading is used to improve the performance of a computer system by allowing it to execute multiple
threads concurrently, rather than sequentially. This is particularly useful for applications that need to
perform multiple tasks concurrently, such as a web server that needs to handle multiple client requests at the
same time.
In order to support multithreading, an operating system (OS) must have the ability to schedule threads across
a CPU or multiple CPU cores, and must also provide mechanisms for synchronizing and communicating
between threads. Many modern operating systems, such as Windows, Linux, and MacOS, are designed to
support multithreading.
Multiprogramming
In computer science, multiprogramming is the ability of an operating system (OS) to execute multiple
programs concurrently. This is achieved by interleaving the execution of the programs, so that each program
is allocated a small amount of CPU time in turn, rather than executing all of the programs sequentially.
In order to support multiprogramming, an OS must have the ability to schedule the execution of multiple
programs, and must also provide mechanisms for synchronizing and communicating between the programs.
19
Compiled by Abhay Sharma (AS)
Computer Software and Operating System
Many modern operating systems, such as Windows, Linux, and MacOS, are designed to support
multiprogramming.
20
Compiled by Abhay Sharma (AS)