[go: up one dir, main page]

0% found this document useful (0 votes)
84 views13 pages

Chapter 1-SPCC

System software is a type of computer program that acts as an interface between the hardware and application programs. It manages the computer's basic functions so that users can run application software. The operating system is the most well-known example of system software, as it allocates resources and prioritizes processes. System software includes programs like the BIOS, boot program, device drivers, and utilities. It differs from application software in that it is written in low-level languages, remains running until shutdown, and is generally not interacted with directly by users. The primary goals of system software are to make the computer convenient and efficient for users to run applications.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
84 views13 pages

Chapter 1-SPCC

System software is a type of computer program that acts as an interface between the hardware and application programs. It manages the computer's basic functions so that users can run application software. The operating system is the most well-known example of system software, as it allocates resources and prioritizes processes. System software includes programs like the BIOS, boot program, device drivers, and utilities. It differs from application software in that it is written in low-level languages, remains running until shutdown, and is generally not interacted with directly by users. The primary goals of system software are to make the computer convenient and efficient for users to run applications.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 13

Concept of 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.

Important features of system software

Computer manufacturers usually develop the system software as an integral part of the
computer. The primary responsibility of this software is to create an interface between the
computer hardware they manufacture and the end user.

System software generally includes the following features:

1. High speed. System software must be as efficient as possible to provide an effective


platform for higher-level software in the computer system.

2. Hard to manipulate. It often requires the use of a programming language, which is more


difficult to use than a more intuitive user interface (UI).

3. Written in a low-level computer language. System software must be written in a


computer language the central processing unit (CPU) and other computer hardware can
read.

4. Close to the system. It connects directly to the hardware that enables the computer to
run.

5. Versatile. System software must communicate with both the specialized hardware it


runs on and the higher-level application software that is usually hardware-agnostic and
often has no direct connection to the hardware it runs on. System software also must
support other programs that depend on it as they evolve and change.

Types of system software


System software manages the computer's basic functions, including the disk operating system,
file management utility software and operating systems.

Other examples of system software include the following:

A complete picture of the software stack. System software includes the firmware through the OS
levels of this model.

 The BIOS (basic input/output system) gets the computer system started after it's


turned on and manages the data flow between the OS and attached devices, such as the
hard drive, video adapter, keyboard, mouse and printer.

 The boot program loads the OS into the computer's main memory or random access


memory (RAM).

 An assembler takes basic computer instructions and converts them into a pattern of bits
that the computer's processor can use to perform its basic operations.

 A device driver controls a particular type of device that is attached to your computer,


such as a keyboard or mouse. The driver program converts the more general I/O
instructions of the OS to messages that the device type can understand.
Additionally, system software can also include system utilities, such as the disk defragmenter
and System Restore, and development tools, such as compilers and debuggers.

Operating systems

The computer's OS is a well-known example of system software. Widely used operating systems
include Microsoft Windows, macOS and Linux. Unlike other system software types, the average
computer user regularly interacts with the computer OS through its graphical UI (GUI) and, with
some operating systems, a less complex command-line interface (CLI).

Because a GUI is a program that sits on top of the OS, it may be referred to as application
software, not system software. In other words, the GUI is application software that makes it
possible for the user to manipulate parts of the OS.

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.

Difference between system software and application software

System software and application programs are the two main types of computer software.
Unlike system software, application software -- often just called an application or app --
performs a particular function for the end user. Some examples of application software include
the following:

 web browsers

 email clients

 word processors

 spreadsheets

 Application software and system software are coded differently. System software is
written in system programming languages -- such as Executive Systems Problem
Oriented Language (ESPOL) -- designed to provide easy access to the underlying
computer hardware. Application programs are written in general-purpose languages, such
as Pascal, that enable the program to use the same code on different platforms. Some
languages, such as C, are used for both system and application software.
 System software and application software are also triggered differently. System software
is generally triggered when a computer or device is turned on, and it remains on until the
device is powered down. Application software is triggered by an end user after the
computer is turned on. Application software needs system software to function, whereas
system software can run independently of application software.
 In most cases, end users do not interact with system software because it runs in the
background. By contrast, end users do interact with application software -- installing it,
booting it up, using it to perform certain tasks, booting it down and uninstalling it.
Goals of System Software:
Convenience: the primary goals of os is to make computer system easier for user i.e. os makes
interaction b/w user and hardware.
Efficient: the secondary goals of os is to allocate the system resources to various applications
program as efficient as possible.

system program and system programming :


System programs provide an environment where programs can be developed and executed. In
the simplest sense, system programs also provide a bridge between the user interface and system
calls. In reality, they are much more complex. For example, a compiler is a complex system
program.

System Programs in Operating System

System Programming can be defined as the act of building Systems Software using System
Programming Languages. According to Computer Hierarchy, one which comes at last is
Hardware. Then it is Operating System, System Programs, and finally Application Programs.
Program Development and Execution can be done conveniently in System Programs. Some of
the System Programs are simply user interfaces, others are complex. It traditionally lies between
the user interface and system calls. 

So here, the user can only view up-to-the System Programs he can’t see System Calls. 
System Programs can be divided into these categories: 
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. 
 It helps to create new files in the computer system and placing them at specific
locations. 
 It helps in easily and quickly locating these files in the computer system. 
 It makes the process of sharing files among different users very easy and user-
friendly. 
 It helps to store files in separate folders known as directories. 
 These directories help users to search files quickly or to manage files according to
their types of uses. 
 It helps users to modify the data of files or to modify the name of files in
directories.  
2. 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. 
3. File Modification – 
For modifying the contents of files we use this. For Files stored on disks or other storage
devices, we used different types of editors. For searching contents of files or perform
transformations of files we use special commands. 
4. 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 languages of importance are already provided. 
5. 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. 
6. Communications – 
Virtual 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.  

Some examples of system program in O.S. are – 

 Windows 10 
 Mac OS X 
 Ubuntu 
 Linux 
 Unix 
 Android 
 Anti-virus 
 Disk formatting 
 Computer language translators 

Introduction to various system programs

Assembler:

An assembler is a program that takes basic computer instructions and converts them into a


pattern of bits that the computer's processor can use to perform its basic operations. Some people
call these instructions assembler language and others use the term assembly language.

The Assembler is a Software that converts an assembly language code to machine code. It takes
basic Computer commands and converts them into Binary Code that Computer’s Processor can
use to perform its Basic Operations. These instructions are assembler language or assembly
language.

Macro processor:
A macro processor is a program that reads a file (or files) and scans them for certain keywords.
When a keyword is found, it is replaced by some text. The keyword/text combination is called a
macro.
A simple example is the C language preprocessor. When you write
#define MAX_BANANAS 6
int banana;
for (banana = 0; banana < MAX_BANANAS; banana++){
...;
}
in a C program, the C preprocessor reads the first line and stores it as a macro definition. When it
comes across the later reference to MAX_BANANAS in the for loop, it replaces it with the
macro's definition, 6. The output of the C preprocessor is then fed to the C compiler proper.
M4 and the htm4l macros work in a very similar way. For example, the htm4l macros allow me
to write
m4_http(`www.teclata.es/terry', `my homepage')
in a .htm4l file, which produces
<a href="http://www.teclata.es/terry">my homepage</a>
when run through m4. This is a very simple example. The htm4l macros get much more
complicated (and useful!).

Loader:

In computer systems a loader is the part of an operating system that is responsible for


loading programs and libraries. It is one of the essential stages in the process of starting a
program, as it places programs into memory and prepares them for execution. Loading a program
involves reading the contents of the executable file containing the program instructions into
memory, and then carrying out other required preparatory tasks to prepare the executable for
running. Once loading is complete, the operating system starts the program by passing control to
the loaded program code.

All operating systems that support program loading have loaders, apart from highly specialized
computer systems that only have a fixed set of specialized programs. Embedded
systems typically do not have loaders, and instead the code executes directly from ROM. In
order to load the operating system itself, as part of booting, a specialized boot loader is used. In
many operating systems the loader is permanently resident in memory, although some operating
systems that support virtual memory may allow the loader to be located in a region of memory
that is pageable.

OR

 A loader is a system program, which takes the object code of a program as input and prepares it
for execution.

• Programmers usually define the Program to be loaded at some predefined location in the
memory.

• But this loading address given by the programmer is not be coordinated with the OS.

• The loader does the job of coordinating with the OS to get initial loading address for the .EXE
file and load it into the memory.

Linker:

Linker is a program in a system which helps to link a object modules of program into a single
object file. It performs the process of linking. Linker are also called link editors. Linking is
process of collecting and maintaining piece of code and data into a single file. Linker also link a
particular module into system library. It takes object modules from assembler as input and forms
an executable file as output for loader.

OR

A linker is a program in a system, also known as a link editor and binder, which combines object
modules into a single object file. Generally, it is a program that performs the process of linking;
it takes one or multiple object files, which are generated by compiler. And, then combines these
files into an executable files. Modules are called for the different pieces of code, which are
written in programming languages. Linking is a process that helps to gather and maintain a
different piece of code into an executable file or single file. With the help of a linker, a specific
module is also linked into the system library.
Compiler:

compiler, computer software that translates (compiles) source code written in a high-level


language (e.g., C++) into a set of machine-language instructions that can be understood by
a digital computer’s CPU. Compilers are very large programs, with error-checking and other
abilities. Some compilers translate high-level language into an intermediate assembly language,
which is then translated (assembled) into machine code by an assembly program or assembler. 

OR

A compiler is a program that translates a source program written in some high-level


programming language (such as Java) into machine code for some computer architecture (such
as the Intel Pentium architecture). The generated machine code can be later executed many times
against different data each time.

Interpreter:

An interpreter is a program that directly executes the instructions in a high-level language, without
converting it into machine code. In programming, we can execute a program in two ways. Firstly,
through compilation and secondly, through an interpreter. The common way is to use a compiler.
Device Drivers:

A device driver is a small piece of software that tells the operating system and other software
how to communicate with a piece of hardware.

For example, printer drivers tell the operating system, and by extension whatever program you
have the thing you want to print open in, exactly how to print information on the page.

OR

A driver, a device driver or hardware driver is a group of files that enable one or


more hardware devices to communicate with the computer's operating system. Without drivers,
the computer could not send and receive data correctly to hardware devices, such as a printer.

What devices need drivers?

Hardware devices that are unknown by the operating system or have features unknown by the
operating system all require drivers. Below is a list of hardware devices and peripherals that
require drivers.
 Card reader
 Controller
 Modem
 Motherboard chipset
 Network card
 Printer
 Scanner
 Sound card
 Tape drive
 USB devices
 Video card

Editors:

Editors or text editors are software programs that enable the user to create and edit text files. In
the field of programming, the term editor usually refers to source code editors that include many
special features for writing and editing code. Notepad, Wordpad are some of the common editors
used on Windows OS and vi, emacs, Jed, pico are the editors on UNIX OS. Features normally
associated with text editors are — moving the cursor, deleting, replacing, pasting, finding,
finding and replacing, saving etc. 

Types of Editors 
There are generally five types of editors as described below: 
 

1. Line editor: In this, you can only edit one line at a time or an integral number of lines.
You cannot have a free-flowing sequence of characters. It will take care of only one line. 
Ex : Teleprinter, edlin, teco 
 

2. Stream editors: In this type of editors, the file is treated as continuous flow or sequence
of characters instead of line numbers, which means here you can type paragraphs. 
Ex : Sed editor in UNIX
3. Screen editors: In this type of editors, the user is able to see the cursor on the screen and
can make a copy, cut, paste operation easily. It is very easy to use mouse pointer. 
Ex : vi, emacs, Notepad

4. Word Processor: Overcoming the limitations of screen editors, it allows one to use some
format to insert images, files, videos, use font, size, style features. It majorly focuses on
Natural language.

5. Structure Editor: Structure editor focuses on programming languages. It provides


features to write and edit source code. 
Ex : Netbeans IDE, gEdit.

Debuggers:

A debugger is a software program used to test and find bugs (errors) in other programs.

A debugger is also known as a debugging tool.

OR

A debugger is a computer program used by programmers to test and debug a target program.
Debuggers may use instruction-set simulators, rather than running a program directly on the
processor to achieve a higher level of control over its execution. This allows debuggers to stop
or halt the program according to specific conditions. However, use of simulators decreases
execution speed.

When a program crashes, debuggers show the position of the error in the target program. Most
debuggers also are capable of running programs in a step-by-step mode, besides stopping on
specific points. They also can often modify the state of programs while they are running.

You might also like