Anda di halaman 1dari 15

Subject:-System programming & system Administration

Unit-1

System programming
Def: - System programming (or systems programming) is the activity of programming
system software.

The primary distinguishing characteristic of systems programming when compared to


application programming is that application programming aims to produce software
which provides services to the user (e.g. word processor), whereas systems programming
aims to produce software which provides services to the computer hardware (e.g. disk
defragmenter).

System Software have direct control and access to your computer hardware , and
memory locations . They perform I/O operations on various memory locations , and
control the hardware , to make the application software do a task . Operating systems ,
are the main examples for system software .

Examples :
1) Microsoft Windows
2) Linux
3) Unix
4) Mac OSX
5) DOS
6) BIOS Software
7) HD Sector Boot Software
8) Device Driver Software i.e Graphics Driver etc
9) Linker Software
10) Assembler and Compiler Software

i
Application software run under System Software , and are made to do a specific task i.e
( Word Processing etc) , which have indirect access to the hardware (i.e Behind System
Software) .

Examples:
Web browser, word processing software, spreadsheet software, database software,
presentation graphics software.

1) Opera (Web Browser)


2) Microsoft Word (Word Processing)
3) Microsoft Excel (Spreadsheet software)
5) MySQL (Database Software)
6) Microsoft PowerPoint (Presentation Software)
7) iTunes (Music / Sound Software)
8) VLC Media Player (Audio / Video Software )
9) World of War craft (Game Software)
10) Adobe Photoshop (Graphics Software)

Anti-virus are system software only. Though they are installed as an application, still they
are used to ensure the proper functioning of the computer.
So it is indeed System software.

**Evolution of components systems programming: - Page No. 4 to 7 (System


Programming by “Donovan”)

ii
Assembler:-
Assembly languages:-

Assembly languages are a family of low-level languages for programming computers,


microprocessors, microcontrollers, and other (usually) integrated circuits. They
implement a symbolic representation of the numeric machine codes and other constants
needed to program a particular CPU architecture. This representation is usually defined
by the hardware manufacturer, and is based on abbreviations (called mnemonics) that
help the programmer remember individual instructions, registers, etc. An assembly
language is thus specific to a certain physical or virtual computer architecture (as
opposed to most high-level languages, which are usually portable).

Assembler is a program which takes assembly source code and assembles it into
machine code.

Or

A program to convert assembly language into machine language

Or

Programming language processor that translates an assembly language program (the


source program) to the machine language program (the object program) executable by a
computer

There are two types of assemblers based on how many passes through the source are
needed to produce the executable program. One pass assemblers go through the source
code once and assumes that all symbols will be defined before any instruction that
references them. Two pass assemblers (and multi-pass assemblers) create a table with all
unresolved symbols in the first pass, then use the 2nd pass to resolve these addresses.

The advantage in one pass assemblers is speed - which is not as important as it once was
with advances in computer speed and capabilities.

The advantage of the two-pass assembler is that symbols can be defined anywhere in the
program source. As a result, the program can be defined in a more logical and meaningful
way. This makes two-pass assembler programs easier to read and maintain

iii
Loader:-
A loader is the part of an operating system that 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 (executables- files containing
program text) into memory, 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.

Or

An operating system utility that copies programs from a storage device to main memory,
where they can be executed. In addition to copying a program into main memory, the
loader can also replace virtual addresses with physical addresses.

All operating systems that support program loading have loaders, apart from systems
where code executes directly from ROM or in the case of highly specialized computer
systems that only a fixed set of specialised programs.

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.

iv
Linker:-

A linker or link editor is a program that takes one or more objects generated by a
compiler and combines them into a single executable program.

In IBM mainframe environments such as OS/360 this program is known as a linkage


editor.

Also called link editor and binder, a linker is a program that combines object modules to
form an executable program. Many programming languages allow you to write different
pieces of code, called modules, separately. This simplifies the programming task because
you can break a large program into small, more manageable pieces. Eventually, though,
you need to put all the modules together. This is the job of the linker.

Linking is the process of combining various pieces of code and data together to form a
single executable that can be loaded in memory. Linking can be done at compile time, at
load time (by loaders) and also at run time (by application programs).

v
Macros:-

Def:-A rule or pattern that specifies how a certain input sequence (often a sequence of
characters) should be mapped to an output sequence (also often a sequence of characters)
according to a defined procedure. The mapping process that instantiates a macro into a
specific output sequence is known as macro expansion.

Or

A macro is a simple program that automates a series of Image commands. The easiest
way to create a macro is to record a series of commands using the command recorder. A
macro is saved as a text file and executed by selecting a menu command, by pressing a
key or by clicking on an icon in the Image toolbar.

Or

A symbol, name, or key that represents a list of commands, actions, or keystrokes. Many
programs allow you to create macros so that you can enter a single character or word to
perform a whole series of actions. Suppose, for example, that you are editing a file and
want to indent every third line five spaces. If your word processor supports macros, you
can create one that consists of the following keystrokes:

Move Cursor to Beginning of Line

Move Cursor Down 1 Line

Move Cursor Down 1 Line

Move Cursor Down 1 Line

Insert 5 Spaces

Now you can enter the name of the macro, and the word processor will perform all these
commands at once.

You can also use macros to enter words or phrases that you use frequently. For example,
you could define a macro to contain all the keystrokes necessary to begin a letter -- your
name, address, and a code that inserts the current date. Then, whenever you write a letter,
you just press the macro key to include the letter header.

vi
Compiler:-
Programming language processor that translates a program written in a high-level
language (the 'source program') which humans can understand, into machine language
program (the 'object program') which the computers can understand. A compiled
program, in comparison to an interpreted program generally runs (executes) much faster.

Or

A compiler is a computer program (or set of programs) that transforms source code
written in a computer language (the source language) into another computer language
(the target language, often having a binary form known as object code). The most
common reason for wanting to transform source code is to create an executable program.

Or

The name "compiler" is primarily used for programs that translate source code from a
high-level programming language to a lower level language (e.g., assembly language or
machine code).

A program that translates from a low level language to a higher level one
is a decompiler.

A compiler is likely to perform many or all of the following operations:


lexical analysis, preprocessing, parsing, semantic analysis, code generation, and code
optimization.

A compiler is likely to perform many or all of the following operations: lexical analysis,
preprocessing, parsing, semantic analysis, code generation, and code optimization.

vii
**Software Tools: - Page No. 249 to 264 (System Programming & Operating System
by “Dhamdhere”)

viii
Software tool:-

A program that is employed in the development, repair, or enhancement of other


programs or of hardware. Traditionally a set of software tools addressed only the
essential needs during program development: a typical set might consist of a text editor,
compiler, link loader, and some form of debug tool. Such a set concentrates solely on
the program production phase and is that normally provided by a program development
system.

It is now recognized that software tools can assist in all activities of all phases of the
software life cycle, including management and quality-assurance activities. Thus a
comprehensive set would address such issues as requirements specification, design,
validation, configuration control, and project management. Such tools would frequently
form part of an integrated software engineering environment.

Or

Software, such as a computer program, routine, subroutine, program block, or program


module, that can be used to develop, test, analyze, or maintain a computer program or its
documentation. Note: Examples of software tools are automated software verification
routines, compilers, program maintenance routines, bootstraps, program analyzers, and
software monitors.

ix
Text editor

A text editor is a type of program used for editing plain text files.

Text editors are often provided with operating systems or software development
packages, and can be used to change configuration files and programming language
source code.

An example of a text editor; Vim.

x
Types of text editors

Some text editors are small and simple, while others offer a broad and complex range of
functionality.

For example, Unix and Unix-like operating systems have the vi editor (or a variant), but
many also include the Emacs editor.

Microsoft Windows systems come with the very simple Notepad, though many people—
especially programmers—prefer to use one of many other Windows text editors with
more features.

Under Apple Macintosh's classic Mac OS there was the native SimpleText, which was
replaced by TextEdit. Some editors, such as WordStar, have dual operating modes
allowing them to be either a text editor or a word processor.

Text editors geared for professional computer users place no limit on the size of the file
being opened. In particular, they start quickly even when editing large files, and are
capable of editing files that are too large to fit the computer's main memory. Simpler text
editors often just read files into an array in RAM. On larger files this is a slow process,
and very large files often do not fit.

The ability to read and write very large files is needed by many professional computer
users. For example, system administrators may need to read long log files. Programmers
may need to change large source code files, or examine unusually large texts, such as an
entire dictionary placed in a single file.

Some text editors include specialized computer languages to customize the editor
(programmable editors). For example, Emacs can be customized by programming in
Lisp. These usually permit the editor to simulate the keystroke combinations and features
of other editors, so that users do not have to learn the native command combinations.

Many text editors for software developers include source code syntax highlighting and
automatic completion to make programs easier to read and write. Programming editors
often permit one to select the name of a subprogram or variable, and then jump to its
definition and back. Often an auxiliary utility like ctags is used to locate the definitions.

xi
Typical features of text editors:-

Search and replace

search string with a replacement string. Different methods are employed, Global(ly)
Search And Replace, Conditional Search and Replace, Unconditional Search and
Replace.

Cut, copy, and paste

Most text editors provide methods to duplicate and move text within the file, or between
files.

Text formatting

Text editors often provide basic formatting features like line wrap, auto-indentation,
bullet list formatting, comment formatting, and so on.

Undo and redo

xii
Interpreter:-
Computer language processor that translates a program line-by-line (statement-by-
statement) and carries out the specified actions in sequence. In contrast, an assembler or
compiler completely translates a program written in a high-level language (the source
program) into a machine-language program (the object program) for later execution.
Whereas a compiled-program executes much faster than an interpreted-program, an
interpreter allows examination and modification of the program while it is running
(executing).

Or

A program that executes instructions written in a high-level language. There are two
ways to run programs written in a high-level language. The most common is to compile
the program; the other method is to pass the program through an interpreter.

Or

In computing, an interpreter is a computer program that reads the source code of another
computer program and executes that program.

An interpreter translates high-level instructions into an intermediate form, which it then


executes. In contrast, a compiler translates high-level instructions directly into machine
language. Compiled programs generally run faster than interpreted programs. The
advantage of an interpreter, however, is that it does not need to go through the
compilation stage during which machine instructions are generated. This process can be
time-consuming if the program is long. The interpreter, on the other hand, can
immediately execute high-level programs. For this reason, interpreters are sometimes
used during the development of a program, when a programmer wants to add small
sections at a time and test them quickly. In addition, interpreters are often used in
education because they allow students to program interactively.

Both interpreters and compilers are available for most high-level languages. However,
BASIC and LISP are especially designed to be executed by an interpreter. In addition,
page description languages, such as PostScript, use an interpreter. Every PostScript
printer, for example, has a built-in interpreter that executes PostScript instructions.

xiii
Program generator:-

Software program that enables an individual to easily create a program of their


own with less effort and programming knowledge. With a program generator a
user may only be required to specify the steps or rules required for his or her
program and not need to write any code or very little code.

Some great examples of a program generator are: Adventure Maker, Alice,


Stagecast Creator, and YoYo Games

Or

A program generator automatically generates a program based on a flow-chart of a series


of sequence control processes. The flow-chart is prepared while being displayed on the
display area of a display means such as CRT, and when the flow-chart is complete, a
program is automatically generated corresponding to the flow-chart.

xiv
Debug monitor:-

A debug monitor is very powerful graphical or console mode tool that monitors all
the activities that are handled by the WinDriver Kernel. You can use the debug
monitor to see how each command that is sent to the kernel is executed.

A debug monitor, simply put, is a tool that helps to find and reduce the number of
bugs and defects in a computer program or any electrical device within or attached
to the computer in order to make it act the way it should. While the driver is being
created and downloaded, the debug monitor helps it work properly. For example,
when an armored car drives up to a bank and the guards have to transfer money
from the truck to the bank, there are special guards that stand watch to make sure
no one tries to rob them thus making the transaction go smoothly. Those guards
could be the debug monitors in the computer industry.

If the debugging monitor locates a bug or defect in any of the equipment, it will first
try to reproduce the problem which will allow a programmer to view each string that
was within the bug or defect range and try to fix it. A programmer is a technician
who has learned the basic format of computers that make them run. These are
strings of technical information that most people using computers will never see. For
example, using a clock. The general public will plug in the clock and use it to tell time
but will not open it up to see how it works. That is saved for the people who fix
clocks. They are the programmers of clocks in the computer industry.

The programmer will delete strings or add new ones and then use the debug monitor
to re-create the driver download to see if he fixed the problem. This can be a tedious
task with all the processes that run in the computer, but the debug monitor helps to
make it a lot easier.

Debug monitor is a piece of software that has been designed specifically for use as a
debugging tool for processors and chips. The debug monitor provides a set of
primitive commands to view and modify memory locations and registers, create and
remove breakpoints, and execute your program. A remote debugger with knowledge
of the command format communicates with the debug monitor and combines these
primitives to fulfill higher-level requests like program download and single-step.

xv

Anda mungkin juga menyukai