0% found this document useful (0 votes)
18 views

Introduction to system software

Minimal and efficient description of system software basics

Uploaded by

drmadhavpvt
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views

Introduction to system software

Minimal and efficient description of system software basics

Uploaded by

drmadhavpvt
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

Overview of System

Software & Text Editors


Presented by: Foram Thakor
Overview
● Introduction to System Software
● Characteristics of Software
● Software Hierarchy
● System Programming
● Lifecycle of a Source Program
● Levels of System Software
● Text Editors
● User Interface
● Types of Text Editors
What is a Software?

● It typically refers to programs or applications that directly manage the


hardware resources of a computer system and provide a platform for
running other softwares.
● In a formal definition, Computer software, or simply software, is a
generic term that refers to a collection of data or computer
instructions that tell the computer how to work.
● It can be better understood by an example, imagine your house is a big
computer and software acts as the foundation and structure that holds
everything.
Characteristics of a Software
Characteristics of a 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.

1. Select the path of the target document to be viewed and manipulated.


2. Determine how to format this view on-line and how to display it.
3. Specify and execute operations that modify the target document.
4. Update the view appropriately.
Overview of editing process
● Editing phase involves how the target document is created or altered with a
set of operations such as insert, delete, replace, move and copy.
● A manuscript-oriented editor might operate on element such as single
characters, words, lines, sentences and paragraphs.
● A program-oriented editor might operate on elements such as identifiers,
keyword and statements.
User interface
● User interface allows interaction between a software and a user by providing
various modalities of interaction including graphics, sound, position,
movement, etc.
● These interfaces facilitate transfer of data between the user and the
computing system.
● User interface is very important for all systems that require user inputs.
● A well-designed user interface in a text editor enhances usability, productivity,
and user satisfaction.
● Visual Studio Code (VS Code) is a prime example of a text editor with an
excellent UI, combining functionality, customization, and ease of use.
Structure of User Interface
Dialog Manager Presentation manager

● The dialog manager manages the ● The presentation manager displays


conversation between the user and the data produced by the application
the application. in appropriate manner on the user’s
● This involves prompting the user for display.
the command and transmitting the ● It is also responsible for managing
command to the application. the user’s screen and for accepting
● It is also responsible for interpreting data and presentation results.
user commands and implementing
them by invoking different modules of
the application code.
● It is also responsible for error
messages and online help function.
Types of Text Editors
1. Line-by-line Editor
● Line-by-line editors are a type of text editor where the user interacts with the
text one line at a time.
● These editors are typically used in command-line environments and are often
preferred for their simplicity and efficiency in certain scenarios, such as quick
edits on remote servers.
● Users can edit, delete, or insert lines of text one at a time.
● Often used for quick edits or scripting tasks.
● Generally less intuitive for complex editing compared to modern text editors.
● Examples: ed(for Unix-based systems), sed(Stream Editor)
Types of Text Editors
2. File-Oriented Editor (WYSIWYG)
● File-oriented text editors allow users to interact with the entire file as a whole,
providing a more comprehensive and visual interface for text editing.
● These editors are generally more user-friendly and suitable for more complex
editing tasks, including coding, writing, and document preparation.
● Users can see and edit multiple lines or the entire file at once.
● Often include advanced features such as syntax highlighting, search and
replace, and multi-file editing.
● Provide a more intuitive interface for complex tasks.
● Examples: Notepad++, Visual Studio Code (VS Code), Emacs, Vim

You might also like