Sunteți pe pagina 1din 40

System Software

Concept
Computer software
 Computer software, or just software is a
general term primarily used for digitally stored
data such as computer programs and other
kinds of information read and written by
computers.

Examples:

Application software, such as word processors


which perform productive tasks for users.

Firmware, which is software programmed
resident to electrically programmable
memory devices on board mainboards or
other types of integrated hardware carriers.
Middleware, which controls and co-ordinates
distributed systems.
System software such as operating systems,
which govern computing resources and
provide convenience for users.

Software testing is a domain dependent of
development and programming. Software testing
consists of various methods to test and declare a
software product fit before it can be launched for
use by either an individual or a group.
Testware, which is an umbrella term or container
term for all utilities and application software that
serve in combination for testing a
software package but not necessarily may
optionally contribute to operational purposes. As
such, testware is not a standing configuration but
merely a working environment for application
software or subsets thereof.
Video games (except the hardware part)
Websites

Software is generally divided into-:
1. Applications software -:

comprises programs designed for an


end user, such as word processors,
database systems, and
spreadsheet programs.
2.Systems software-

It includes compilers, loaders, linkers, and

debuggers

System software is usually not what a user would
buy a computer, it can be seen as the basics of a
computer which come built-in or pre-installed. I
In contrast to system software, software that allows
users to do things like create text documents,
play games, listen to music, or surf the web is
called application software

Purpose of SS
The purpose of systems software is to
unburden the applications programmer from
the often complex details of the particular
computer being used, including such
accessories as communications devices,
printers, device readers, displays and
keyboards, and also to partition the
computer's resources such as memory and
processor time in a safe and stable manner.
Examples are- Windows XP, Linux, and Mac
OS X.

System Software
System Software consists of variety of the
programs that support the operation of the
computer.
Refers to the operating system and all utility
programs that manage computer resources at a
low level.
By understanding the system software ,you will
gain a deeper understanding of how
computer actually works. System software
are developed to make computers better
adapted to the needs of the users.
System software is computer software
designed to operate the
computer hardware and to provide and
maintain a platform for running
application software.
The most important types of system
software are:
The computer BIOS and device firmware,

which provide basic functionality to operate


and control the hardware connected to or
built into the computer.
The operating system (prominent examples being
Microsoft Windows, Mac OS X and Linux), which
allows the parts of a computer to work together
by performing tasks like transferring data
between memory and disks or rendering output
onto a display device. It also provides a platform
to run high-level system software and
application software.
Utility software, which helps to analyze, configure,
optimize and maintain the computer.

system software is also used to designate
software development tools (like a
compiler, linker or debugger).

Specific kinds of system software include:
Loaders
Linkers
Utility software
Desktop environment / Graphical user interface
A desktop environment typically consists of
icons, windows, toolbars, folders, wallpapers,
and desktop widgets(In computer software, a
widget engine is a software service
available to users for running and displaying
applets on a graphical user interface, such as
that of the desktop).

Shells A shell is a piece of software that provides
an interface for users. Typically, the term refers to
an operating system shell which provides access
to the services of a kerne
BIOS The BIOS is boot firmware, designed to be the
first code run by a PC when powered on. The
initial function of the BIOS is to identify, test, and
initialize system devices such as the
video display card, hard disk, floppy disk and
other hardware. The BIOS sets the machine
hardware into a known state, so that software
stored on compatible media can be loaded,
executed, and given control of the PC. This
process is known as booting, or booting up, which
is short for bootstrapping.

Hypervisors In computing, a hypervisor, also
called virtual machine monitor (VMM), is a
piece of software/hardware
platform-virtualization software that allows
multiple operating systems to run on a host
computer concurrently.


Boot loaders In computing, booting (also
known as "booting up") is a bootstrapping
process that starts operating systems when
the user turns on a computer system. A boot
sequence is the initial set of operations that
the computer performs when power is
switched on. The bootloader typically loads
the main operating system for the computer
If system software is stored on

non-volatile memory such as integrated circuits


, it is usually termed firmware
Various types of system
Program
Assembler-:An Assembler is program that
accepts as input an assembly language
program and produces its machine language
equivalent along with the information for the
loader.

Assembly
Lang.Prog. Assembler M/C Lang
 or Info. for the
Loader

Database
Loader
Loader is the part of an operating system which
is responsible for one of the essential stages in
the process of starting a program, loading
programs, that is, starting up programs by
reading the contents of executable files into
memory.
It then carrying out other required preparatory

tasks, after which the program code is finally


allowed to run and is started when the
operating system passes control to the loaded
program code.
Loader
The purpose of the loader is to assure that the
object programs are placed in memory in an
executable form.
A Loader is a program that places programs into
memory and prepares them for the execution.
In simple loading scheme the assembler outputs
the machine language translation of a program
on a secondary storage devices and the loader is
placed in main memory.
The loader places the M/C lang. version of the
program into the memory and transfer the control
to it.
Loader prgm is smaller than assembler, so more
memory will be available to the user’s prgm.
Linker
Execution of the HLL prgm involves following
steps-:
1.Translation of the prgm in M/C lang.
2.Linking of the prgm with the other prgms
needed for the execution.
3.Relocation of the prgmto execute from the
specific memory area allocated to it.
4.Loading of the program in the memory for the
purpose of execution.

Linkers
Computer programs typically comprise several

parts or modules; all these parts/modules need


not be contained within a single object file, and
in such case refer to each other by means of
symbols. Typically, an object file can contain
three kinds of symbols:
defined symbols, which allow it to be called by
other modules,
undefined symbols, which call the other
modules where these symbols are defined,
and
local symbols, used internally within the object
file to facilitate relocation.
When a program comprises multiple object
files, the linker combines these files into a
unified executable program, resolving the
symbols as it goes along.
Linkers can take objects from a collection
called a library. Some linkers do not include
the whole library in the output; they only
include its symbols that are referenced from
other object files or libraries. Libraries exist
for diverse purposes, and one or more system
libraries are usually linked in by default.

The linker also takes care of arranging the
objects in a program's address space. This
may involve relocating code that assumes a
specific base address to another base. Since
a compiler seldom knows where an object will
reside, it often assumes a fixed base location
(for example, zero). Relocating machine code
may involve re-targeting of absolute jumps,
loads and stores
The executable output by the linker may need
another relocation pass when it is finally
loaded into memory (just before execution).
This pass is usually omitted on hardware
offering virtual memory — every program is
put into its own address space, so there is no
conflict even if all programs load at the same
base address. This pass may also be omitted
if the executable is a position independent
executable


Macro-Processor
A Macro instruction is as simple notational
convenience for the programmer.
Advantage of the Macro instruction is it allows
the programmer to write the shorthand
version of the prgm and leave the mechanical
details to be handled by the Macro Processor.
It also allow programmer to avoid the repeat
the identical parts of their prgm. It permits
the programmer to define an abbreviation for
a part of his prgm.

Macro-Processor
The Macro Processor treats the identical parts
of the prgm defined by the abbrvtn as a
Macro Definition and saves the definition.
Macro represents the commonly used group of
stmt. In source programming lang.
The Macro-processor replaces each Macro
instruction with the corresponding group of
source language stmt.
This is called expanding the Macros.
Macro-Processor
The Macro-processor performs no analysis of
the text it handles.
Design of the Macro-Processor is not directly
related to the architecture of the computer
on which it is to run.
Compiler
A Compiler is a prgm that accepts a prgm
written in HLL and produces an object
program.
During this translation process compiler reports
to its user the presence of errors in the
source prgm.
Compiler Target

Src. Prgm.
Prgm

Error
Msgs.
Interpreters
Interpreters execute the operation implied by the
src prgm instead of translating the prgm into
target prgm as complier does.
Interpreter translate the src prgmin to an internal
form after performing syntactic analysis on the
stmt. And then it executes the operation specified
by the prgm.
The process of translation the src prgman internal
form is simpler and faster then the compiler. But
the execution of the internal form produced by
the interpreter is much slower than the m/c code
produced by the Complier.

Compiler Vs. Interpreter
Where the speed of the translation is primary
concern, and the execution of the translated
prgm is short ,there interpreter can be a good
choice.
The real advantage of an interpreter over a
compilers in the debugging facility, So
interpreters are useful in an educational
environment where the emphasis is on
learning and prgm testing.
Operating System
The main purpose of the operating system is
to make the computer easier to use .This
provides an interface that is more user-
friendly than the underlying hardware.
It manages the resources of the computer to
make the system efficient.
Types of OS
Single Job System-:runs one user job at a time.
Multiprogramming system-: permits several
jobs to be executed concurrently. The Os has
to take care of switching the CPU among the
various user jobs.
The Multiprocessor System is similar to
multiprogramming system, but involves more
than one CPU. The Processors can share a
common memory.
Types of OS
Network Operating System-:Computer
connected in a n/w can be organized in a
different ways and each computer has its own
independent OS, which provides an interface
to allow communication via the n/w. Since the
user of such system is aware of the N/W, he
may login to remote machines and perform
the operations.
Distributed Operating System-: Manages the
H/W and S/w resources so that a user views
the entire network as a single system
Types of OS
Batch Processing System-:A job is described by
a sequence of control stmts stored in a M/C
readable form. OS can read and execute the
series of such jobs without human
intervention.
Time sharing System-:Provides interactive
access to number of users. The Os executes
the cmd as user enters it and try to provide
each user with short response time for each
cmd.
Real time System-:is designed to respond
quickly to external signal like generated by
Device Drivers
A device driver is a program that controls a
particular type of device that is attached to your
computer. There are device drivers for printers,
displays, CD-ROM readers, diskette drives, and so
on. When you buy an operating system, many
device drivers are built into the product.
However, if you later buy a new type of device
that the operating system didn't anticipate, you'll
have to install the new device driver. A device
driver essentially converts the more general
input/output instructions of the operating system
to messages that the device type can
understand.

device driver or software driver is a
computer program allowing higher-level
computer programs to interact with a
hardware device.
A driver typically communicates with the
device through the computer bus or
communications subsystem to which the
hardware connects. When a calling program
invokes a routine in the driver, the driver
issues commands to the device. Once the
device sends data back to the driver, the
driver may invoke routines in the original
Drivers are hardware-dependent and
operating-system-specific. They usually
provide the interrupt handling required for
any necessary asynchronous time-dependent
hardware interface.

A device driver simplifies programming by
acting as a translator between a hardware
device and the applications or
operating systems that use it. Programmers
can write the higher-level application code
independently of whatever specific hardware
device it will ultimately control, because code
and device can interface in a standard way,
regardless of the software superstructure or
of underlying hardware. Every version of a
device, such as a printer, requires its own
hardware-specific specialized commands.
In contrast, most applications utilize devices
(such as a file to a printer) by means of high-
level device-generic commands such as
PRINTLN (print a line). The device-driver
accepts these generic high-level commands
and breaks them into a series of low-level
device-specific commands as required by the
device being driven. Furthermore, drivers can
provide a level of security as they can run in
kernel-mode, thereby protecting the
operating system from applications running in
user-mode.