Sei sulla pagina 1di 25

LECTURE-13

Linkers , Loaders and Operating System

WHAT IS A SOFTWARE
Computer Instructions or data, anything that can be stored electronically is Software. Collection of Different programs makes a Software Software are of any types:

System Software: Application Software Open source Software and Proprietary Software

APPLICATION SOFTWARE:
Application Software includes programs that do real work for user. Example: Payroll systems, Inventory Control, Manage student database, Word Processor, Spreadsheet and Database Management System etc.,

OPEN SOURCE SOFTWARE:

Open source software (OSS) is computer software whose source code is available under a license that permits users to use, change, and improve the software, and to redistribute it in modified or unmodified form. It is often developed in a public, collaborative manner. Well-known OSS products are Linux, Netscape, Apache, etc.,

PROPRIETARY SOFTWARE:

Proprietary software (also called non-free software) is software with restrictions on using, copying and modifying as enforced by the proprietor. Restrictions on use, modification and copying is achieved by either legal or technical means and sometimes both. Proponents of proprietary software are Microsoft.

Ex: CAD, Nortan Antivirus etc.,

SYSTEM SOFTWARE:
System Software includes the Operating System and all the utilities that enable the computer to function. System software is a term referring to any computer software which manages and controls the hardware so that application software can perform a task. Example: Operating Systems, Compiler, Loader, Linker, Interpreter.

TRANSLATORS
A device that changes a sentence from one language to another without change of meaning. Types of TRANSLATOR Compiler Assembler Interpreter

COMPILERS

Compiler: A compiler is a program that reads a

program in one language the source language and translates into an equivalent program in another language the target language. It Converts High-level Language to machine language.

High-Level Language

Compiler

Machine Language

SYSTEM SOFTWARE (CONTD):

Source Languages
C language Pascal language FORTRAN language

Target Languages
C language Machine language

C++ language
ADA language

PHASES OF COMPILER

PHASES OF COMPILER
Lexical analysis - it contains a sequence of characters called tokens. Input is source program & the output is tokens. Tokens

while (count<=100) { /** demonstration */ while

count++; (
// body of while continues count ... <= 100 ) { count ++ ;

...

SYNTAX ANALYZER

b)Syntax analysis - input is token and the output is parse tree.

Semantic Analysis: input is parse tree and the output is expanded version of parse tree. Intermediate Code generation - Here all the errors are checked & it produce an intermediate code. Code Optimization - the intermediate code is optimized here to get the target program Code Generation - this is the final step & here the target program code is generated.

INTERPRETERS
Interpreter: An interpreter is a computer program that translates and executes instructions written in a computer programming language line-by-line, unit by unit etc.,

An interpreter needs to be able to analyze, or parse, instructions written in the source language. Example: Lisp systems, etc.,

ASSEMBLERS
An Assembler is a program that translates a symbolic version of an instruction into the binary version.

LANGUAGE LEVELS
High Level Language

Assembler Language

Machine Language

Normally deepest free accessible Level

Micro programming

Firmware

Hardware

LOADERS

Loader : A loader is the part of an operating system that is responsible for loading programs into memory, preparing them for execution and then executing them.

The loader is usually a part of the operating system's kernel and usually is loaded at system boot time and stays in memory until the system is rebooted, shut down, or powered off.
In Unix, the loader is the handler for the system call execve().

ROLE OF LOADER
Source Program Translator Object Program
Object program ready for execution

Loader

Translator Assembler/Compiler
Memory

LINKER

Linker : A linker or link editor is a program that takes one or more objects generated by compilers and assembles them into a single executable program.

Linkers can take objects from a collection called a library. The objects are program modules containing machine code and information for the linker.
The linker takes care of arranging the objects in a program's address space.

ROLE OF LOADER AND LINKER


Memory

Source Program Assembler

Object Program

Linker
Object program ready for execution

Executable Code

Loader

SO WE NEEDTHREE PROCESSES
Loading - which allocates memory location and brings the object program into memory for execution - Loader Linking- which combines two or more separate object programs and supplies the information needed to allow references between them - Linker Relocation - which modifies the object program so that it can be loaded at an address different from the location originally specified - Linking Loader

WHAT IS AN OPERATING SYSTEM

It is a collection of system programs that together controls the operation of a computer system

A program that acts as an intermediary between a user of a computer and the computer hardware. Operating system goals:

Execute user programs and make solving user problems easier. Make the computer system convenient to use.

Use the computer hardware in an efficient manner.

COMPUTER SYSTEM STRUCTURE

Hardware - provides basic computing resources e.g. CPU, memory, I/O devices Operating system Controls and coordinates use of hardware among various applications and users Application programs define the ways in which the system resources are used to solve the computing problems of the users Word processors, compilers, web browsers, database systems, video games Users

WHY IT IS IMPORTANT?
Operating systems perform basic tasks, such as: 1. recognizing input from the keyboard 2. sending output to the display screen 3. keeping track of files and directories on the disk 4. controlling peripheral devices such as disk drives and printers.

FUNCTIONS OF OS.

The operating system's tasks, in the most general sense, fall into six categories:

Process management Memory management Device management Storage management Application interface User interface

Potrebbero piacerti anche