Software
Application software
● An application program (software application, or application, or app for short) is
a computer program designed to carry out a specific task other than one relating to the
operation of the computer itself, typically to be used by end-users. Word processors,
media players, and accounting software are examples.
● When a user interacts directly with a piece of software, it is called application
software. The sole purpose of application software is to assist the user in doing
specified tasks. Microsoft Word and Excel, as well as popular web browsers like
Firefox and Google Chrome, are examples of application software.
System Software
System software is a type of computer program that is designed to run a computer's
hardware and application programs. If we think of the computer system as a layered
model, the system software is the interface between the hardware and user applications.
The operating system is the best-known example of system software. The OS manages all
the other programs in a computer.
System software is used to manage the computer itself. It runs in the background,
maintaining the computer's basic functions so users can run higher-level application
software to perform certain tasks. Essentially, system software provides a platform for
application software to be run on top of.
Operating System
An operating system is the most important software that runs on a computer. It manages
the computer's memory and processes, as well as all of its software and hardware. It also
allows you to communicate with the computer without knowing how to speak the
computer's language.
An operating system is a software program that acts as an interface between the hardware,
the application software, and the users. There are mainly 5 popular operating systems:
Apple macOS, Microsoft Windows, Google's Android OS, Linux Operating System, and
Apple iOS.
Important tasks performed by the operating system
The main responsibility of the operating system is to manage a computer's software and hardware resources. It is the
computer's main control program. The OS controls and maintains a record of all other programs on the computer,
including both application and system software. The OS creates an environment that all other computer programs run
within and provides service to those other applications.
Operating systems perform tasks. Five of the most important ones are the following:
1. File management and process scheduling. The OS allocates resources and prioritizes which programs
should receive the resources and in what order. For example, a digital audio workstation application may
require a certain level of processing power when being used. The OS decides how much power the
application gets from the CPU and manages the effects of that allocation on other applications. If a more
critical process is happening elsewhere on the computer, the OS might sacrifice some of the power the
digital audio workstation has requested, for example, to ensure the other process can be completed.
2. Processor and memory management. The OS allocates the computer's memory to a process when needed
and deallocates it when the process is finished.
3. Error detection. The OS detects, tracks and debugs errors in the computer's other programs.
4. Security. The OS uses passwords to protect the computer's programs and data from unauthorized access.
5. Control and management. The OS uses compilers, assemblers and interpreters to control and manage
other programs on the computer. These language processers are pieces of system software that translate the
high-level languages -- Java, Python and C++ -- that many computer programs are written in into low-level
machine code instructions, which is essentially a series of 1s and 0s that the computer's CPU can read.
Hardware Software Compatibility
Hardware and software compatibility is the ability of different hardware and software components
to work together without issues. It's important for a smooth user experience, reducing conflicts, and
increasing [Link] are some types of compatibility:
Hardware compatibility
The physical compatibility of devices and components, such as a printer needing a specific cable
or driver to connect to a computer
Software compatibility
The logical compatibility of programs and applications, such as a word processor needing a
specific file format or operating system
Cross-platform compatibility
The compatibility of hardware and software across different operating systems, devices, and
browsers
Backward compatibility
The compatibility of newer hardware and software with older hardware and software
Forward compatibility
The compatibility of older hardware and software with newer hardware and software
Factors that affect hardware and software compatibility include drivers, firmware, updates,
standards, protocols, and specifications.
To check hardware compatibility for an operating system migration, you can check the BIOS
settings. BIOS stands for Basic Input/Output System, and it's a firmware program that controls the
startup and basic functions of your computer.
Here are some examples of hardware and software compatibility:
Printer and computer: A printer may need a specific type of cable, port, or driver to connect to a
computer.
Video game and hardware: A video game may need to meet the minimum and recommended
requirements of the hardware and software to work.
Android and iOS: Android cannot be run on a phone with iOS.
POST and BOOTING
POST stands for Power-On Self-Test, and it's a diagnostic test that a computer performs when it's
turned on but before the operating system (OS) boots up. Booting is the process of starting the
operating system in a computer.
What POST does
POST is a crucial part of the boot process that checks if the computer's hardware is working
properly. It verifies the hardware, including the CPU, RAM, storage, controllers, keyboard, and
pointer device. POST can also validate hardware configurations, verify the firmware, and initialize
the hardware.
How long POST takes
POST usually takes a few seconds, but the time can vary based on the number and complexity of
the computer's hardware components.
What happens if POST fails
If POST fails, it means there's a problem with one of the computer's components. The machine
won't continue with the boot sequence if the POST fails.
POST(Power-On-Self-Test)
A power-on self-test (POST) is a set of routines performed by firmware or software
immediately after a computer is powered on, to determine if the hardware is working as
expected. The process would proceed further only if the required hardware is working
correctly, else the BIOS(Basic Input Output Software) would issue an error message.
POST sequence is executed irrespective of the Operating System and is handled by the
system BIOS. Once the tests are passed the POST would generally notify the OS with
beeps while the number of beeps can vary from system to system. When POST is
successfully finalized, bootstrapping is enabled. Bootstrapping starts the initialization of
the OS.
After the BIOS starts running, it starts a process called POST (Power-On Self-Test) which
tests all the hardware devices and makes sure there are no issues. Moreover, if POST finds
some issues in the hardware, the booting process stops and the computer fails to boot.
BOOTING
Booting is the process of starting a computer and loading its operating system (OS) into
the computer's main memory.
How it works
When you turn on a computer, the bootloader in the cache memory performs a Power On
Self Test (POST). If everything is okay, the Basic Input Output System (BIOS) is activated
and loads the OS.
OS Installation
Operating system (OS) installation is the process of setting up and booting an OS on a
computer. It involves the following steps:
Prepare a bootable media
Create a device that can start the installation process when the computer is turned on. This
can be a CD, DVD, USB drive, or hard drive.
Install the OS
Boot the computer from the bootable media and follow the installation screens. This
usually involves logging in as an administrator, running the installation file, and following
the setup wizard.
Install drivers
After the OS is installed, install the drivers that are required for the computer's hardware to
work.
UEFI/Legacy BIOS
UEFI and Legacy BIOS are two different firmware (Firmware is a form of microcode or program
embedded into hardware devices to help them operate effectively) modes used to boot computers and other
hardware:
UEFI
A modern alternative to the traditional BIOS, UEFI stands for Unified Extensible
Firmware Interface. It's a 32-bit or 64-bit program written in C language. UEFI offers
several benefits, including:
Faster boot times
Better security features, such as Secure Boot
Larger disk support
Graphical user interface
Legacy BIOS
The traditional BIOS firmware interface, which is based on conventions that are no longer
relevant. Legacy BIOS uses a 16-bit code and has a limited number of options.
Here are some things to consider when choosing between UEFI and Legacy BIOS:
Compatibility: Some older hardware and software may not be compatible with
UEFI.
Boot mode: When booting into Windows PE (WinPE) or Windows Setup, you can
choose between UEFI or legacy BIOS modes.
Switching modes: If you need to switch firmware modes after Windows is installed,
you may be able to use the MBR2GPT tool.
Reinstalling the OS: If you change the boot mode, you will need to re-install the OS.
Disk Partitioning
Disk partitioning or disk slicing is the creation of one or more regions on secondary
storage, so that each region can be managed separately.
These regions are called partitions. It is typically the first step of preparing a newly
installed disk after a partitioning scheme is chosen for the new disk before any file system
is created. The disk stores the information about the partitions' locations and sizes in an
area known as the partition table that the operating system reads before any other part of
the disk.
Dual booting
Dual booting refers to the process of installing and running two different operating
systems on a single computer.
A dual boot is when you run two operating systems on one computer at the same time.
This can be any combination of operating systems, for example, Windows and Mac,
Windows and Linux or Windows 7 and Windows 10.
It allows you to run multiple operating systems on one machine, which can be beneficial if
you need to use specific software that only runs on a particular operating system (OS). It
also enables you to experiment with different operating systems without having to buy
separate hardware.
Boot Manager - BOOTMGR
A boot manager is a software program that allows you to choose which operating system to
boot into when your computer starts up. It is especially useful if you have multiple
operating systems installed or if you want to experiment with different ones.
● When your computer starts, the boot manager takes over from the BIOS or UEFI
firmware and scans the boot configuration data (BCD) store. It then determines which
operating system to load and where its files are located.
● The boot manager launches boot applications that provide functionality before the
device boots.
● You can access the boot menu by pressing a key like F12, F11, Esc, or Del. When
your computer starts, look for any instructions or prompts on the screen that tell you
which key to press.
● The boot manager invokes the operating system boot loader, which loads the
operating system kernel executive and core device drivers.
● You might encounter a BOOTMGR error if your PC is trying to boot from a drive that
isn't properly configured.
Grub
GNU GRUB (short for GNU GRand Unified Bootloader, commonly referred to as GRUB)
is a boot loader package from the GNU Project. GRUB is the reference implementation of
the Free Software Foundation's Multiboot Specification, which provides a user the choice
to boot one of multiple operating systems installed on a computer or select a specific
kernel configuration available on a particular operating system's partitions.
Briefly, a boot loader is the first software program that runs when a computer starts. It is
responsible for loading and transferring control to the operating system kernel software
(such as the Hurd or Linux). The kernel, in turn, initializes the rest of the operating system
(e.g. GNU).
GRUB functions as both a bootloader and a boot manager.
File Systems in Operating System
A computer file is defined as a medium used for saving and managing data in the computer
system. The data stored in the computer system is completely in digital format, although
there can be various types of files that help us to store the data.
File systems are a crucial part of any operating system, providing a structured way to store,
organize, and manage data on storage devices such as hard drives, SSDs, and USB drives.
Essentially, a file system acts as a bridge between the operating system and the physical
storage hardware, allowing users and applications to create, read, update, and delete files
in an organized and efficient manner.
File System- FAT, NTFS, ext
A file system is a method an operating system uses to store, organize, and manage files and
directories on a storage device. Some common types of file systems include:
● FAT (File Allocation Table): An older file system used by older versions of
Windows and other operating systems.
● NTFS (New Technology File System): A modern file system used by Windows. It
supports features such as file and folder permissions, compression, and encryption.
● ext (Extended File System): A file system commonly used on Linux and
Unix-based operating systems.
● HFS (Hierarchical File System): A file system used by macOS.
● APFS (Apple File System): A new file system introduced by Apple for their Macs
and iOS devices.
A file is a collection of related information that is recorded on secondary storage. Or file is
a collection of logically related entities. From the user’s perspective, a file is the smallest
allotment of logical secondary storage.
FAT32 is a simple file system. It has no journaling, meaning that it is more vulnerable to
data corruption in case of sudden system crashes or power failures. It also has a file size
limited only to a 4 GB. But, it is supported by virtually all major operating systems,
including Windows, macOS, and Linux. This compatibility makes it a popular choice for
cross-platform data exchange. Nevertheless, NTFS and EXT4 are far more complex with
some nuances to them.
NTFS is the default file system for Windows. It includes journaling which keeps it safe
from data corruption. It is also more secure because each file record includes a security
descriptor that specifies the permissions and access rights for different users and groups.
This enables administrators to control who can access, modify, or delete files and
directories.
On the other hand, EXT4 is a default for Linux. Same as NTFS, it includes journaling
which makes it more reliable. EXT4 employs delayed allocation and extents, leading to
improved performance and reduced fragmentation, and supports online defragmentation. It
also includes backward compatibility with EXT3, the previous iteration of this file system.
The choice of a file system depends on various factors, including the intended usage,
operating system compatibility, and desired features. FAT32 offers broad
compatibility, NTFS provides advanced features and security for Windows users,
while EXT4 excels in the Linux environment with its performance enhancements and
scalability.
Device Drivers
A device driver, or driver, is a special kind of software program that controls a specific
hardware device attached to a computer. Device drivers are essential for a computer to
work properly. In addition, without a device driver, the respective hardware will fail to
work accordingly.
Device drivers provide a software interface for attached hardware that enables the
operating system (OS) and other applications to access that hardware's functionalities.
There are device drivers for keyboards, mice and printers, for example.
These programs are compact, but they enable a computer to interact with hardware and
work with networks, storage and graphics.
Device drivers are hardware dependent and specific to the OS. They communicate with
computer hardware through a computer bus or a communications subsystem that's
connected to the hardware.
A device driver enables an operating system or application to interact with a connected
piece of hardware.
Need of device drivers
Device drivers are necessary to enable a computer to interface and interact with specific
devices. They define the messages and mechanisms whereby the computer -- the OS and
applications -- can access the device or make requests for the device to fulfill. They also
handle device responses and messages for delivery to the computer.
Device drivers essentially act as a translator for hardware devices and the OS and
applications connected to it.
Driver Interactions
For device drivers to interact with hardware, Virtual Device Driver can be used.
There are also virtual device drivers (VxD), which manage the virtual device. Sometimes
we use the same hardware virtually at that time virtual driver controls/manages the data
flow from the different applications used by different users to the same hardware.
It is essential for a computer to have the required device drivers for all its parts to keep the
system running efficiently. Many device drivers are provided by manufacturers from the
beginning and also we can later include any required device driver for our system.