Introduction to system software
Introduction to system software
● Functionality: This refers to what the software can do or the tasks it can perform.
● Reliability: performs consistently and predictably under various conditions.
● Efficiency: utilizes system resources (such as CPU, memory, and storage)
effectively and minimizes resource usage while achieving its intended functions.
● Usability: is easy to understand, navigate, and operate, even for users with
varying levels of expertise.
● Maintainability: is easy to modify, update, and extend over time.
● Portability: can run on different hardware platforms or operating systems with
minimal or no modifications.
Software Hierarchy
Software Hierarchy (Contd.)
● Application software
Software that uses the computer system to perform special functions or services
or provide entertainment functions beyond the basic operation of the computer
itself (example: word processor)
● System software
Software that directly operates the computer hardware, to provide basic
functionality needed by users and other software, and to provide a platform for
running application software. System software includes software categories such
as operating systems, utility software, device drivers, compilers, and linkers.
System Software Includes:
Operating systems
which are essential collections of software that manage resources and provides
common services for other software that runs "on top" of them.
Device drivers
which operate or control a particular type of device that is attached to a computer.
Each device needs at least one corresponding device driver; because a computer
typically has at minimum at least one input device and at least one output device,
a computer typically needs more than one device driver.
System Programming
System programming aims to produce software and software platforms that provides
services to the other software or computer hardware (example: OS, device drivers,
utility software).
The essential characteristics of system programming are as follows:
1. Programmers are expected to know the hardware and internal behaviour of the computer
system on which the program will run. System programmers explore these known hardware
properties and write software for specific hardware using efficient algorithms.
2. Uses a low-level programming so that programs can operate on source-constrained
environment.
3. These are very efficient programs with a small or no runtime library requirements.
4. Has access to systems resources, including memory
5. System programs can be run in simulated environment
Lifecycle of a source program
The life cycle of a source program defines the program behavior and extends
through execution stage, which exhibits the behavior specified in the program.
Lifecycle of a source program (Contd.)
Every source program goes through a life cycle of several stages.
● Edit time: It is the phase where editing of the program code takes place and is
also known as design time. At this stage, the code is in its raw form and may not
be in a consistent state.
● Compile time: At the compile time stage, the source code after editing is passed
to a translator that translates it into machine code. One such translator is a
compiler. This stage checks the program for inconsistencies and errors and
produces an executable file.
● Distribution time: It is the stage that sends or distributes the program from the
entity creating it to an entity invoking it. Mostly executable files are distributed.
Lifecycle of a source program (Contd.)
● Installation time: Typically, a program goes through the installation process, which
makes it ready for execution within the system. The installation can also optionally
generate calls to other stages of a program's life cycle.
● Link time: System libraries are linked by using the lookup of the name and the
interface of the library needed during compile time or throughout the installation time,
or invoked with the start or even during the execution process.
● Load time: This stage actively takes the executable image from its stored
repositories and places them into active memory to initiate the execution. Load time
activities are influenced by the underlying operating system.
● Run time: This is the final stage of the life cycle in which the programmed behavior of
the source program is demonstrated.
Levels of System Software
● The levels of system software refer to the hierarchical stages or layers within
system software architecture, each responsible for different functions and
providing varying degrees of abstraction and interaction with the underlying
hardware and application software.
● These levels typically include the firmware, operating system kernel, system
libraries, and system utilities.
● Level refers to the specific tier or scope within a system where analysis,
design, or operations take place. It can range from high-level (abstract, broad
scope) to low-level (detailed, narrow scope) perspectives.
Text Editors
● A text editor is considered a primary interface for all types of workers as they
compose, organise, study and manipulate computer based information.
● The term document includes objects such as computer program, text,
equations, table, diagram and almost anything that can appear on a printed
page.
● Text editors range from simple tools for basic text editing to sophisticated
environments for code development.
Overview of editing process
The editing process is essential for refining and improving text, whether it's for
writing, programming, or document preparation.