Computer Software:
Linker:
Software is a
generic term for organized collections of computer data and instructions, often
broken into two major categories: system software that provides the basic
non-task-specific functions of the computer, and application software which is
used by users to accomplish specific tasks.
System software is
responsible for controlling, integrating, and managing the individual hardware
components of a computer system so that other software and the users of the
system see it as a functional unit without having to be concerned with the
low-level details such as transferring data from memory to disk, or rendering
text onto a display. Generally, system software consists of an operating system
and some fundamental utilities such as disk formatters, file managers, display
managers, text editors, user authentication (login) and management tools, and
networking and device control software.
Application software, on
the other hand, is used to accomplish specific tasks other than just running the
computer system. Application software may consist of a single program, such as
an image viewer; a small collection of programs (often called a software
package) that work closely together to accomplish a task, such as a spreadsheet
or text processing system; a larger collection (often called a software suite)
of related but independent programs and packages that have a common user
interface or shared data format, such as Microsoft Office, which consists of
closely integrated word processor, spreadsheet, database, etc.; or a software
system, such as a database management system, which is a collection of
fundamental programs that may provide some service to a variety of other
independent applications.
à Software is a general
term for the various kinds of programs
used to operate computers
and related devices.
System software : Includes the operating
system and all the utilities that enable the
computer to function.
Application software : Includes programs that do real
work for users.
For example, word
processors, spreadsheets,
and database
management systems fall under the category of applications software.
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.
Compiler:
A
compiler is a computer program (or set of programs) that transforms
source code written in a programming 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.
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). If the compiled program can run on a
computer whose CPU or operating system is different from the one on which the
compiler runs, the compiler is known as a cross-compiler. A program that
translates from a low level language to a higher level one is a decompiler.
A program that translates between high-level languages is usually called a language
translator, source to source translator, or language converter.
A language rewriter is usually a program that translates the form of
expressions without a change of language.
Loader:
1. In a computer operating system ,
a loader is a component that locates a given program (which can be an
application or, in some cases, part of the operating system itself) in offline
storage (such as a hard disk ), loads it into main storage (in a personal
computer, it's called random access memory ), and gives that program control of
the computer (allows it to execute its instruction s).
A program that is loaded may
itself contain components that are not initially loaded into main storage, but
can be loaded if and when their logic is needed. In a multitasking operating
system, a program that is sometimes called a dispatcher juggles the
computer processor's time among different tasks and calls the loader when a
program associated with a task is not already in main storage. (By program
here, we mean a binary file that is the result of a programming language
compilation, linkage editing, or some other program preparation process.)
2. 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.
Most loaders
are transparent, i.e., you cannot directly execute them, but the operating
system uses them when necessary.
Linker:
1. 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.
In addition to
combining modules, a linker also replaces symbolic addresses with real
addresses. Therefore, you may need to link a program even if it contains only
one module.
2. Link
editors are commonly known as linkers. The compiler automatically invokes the
linker as the last step in compiling a program. The linker inserts code (or
maps in shared libraries) to resolve program library references, and/or
combines object modules into an executable image suitable for loading into
memory. On Unix-like systems, the linker is typically invoked with the
ld command.
Static linking
is the result of the linker copying all library routines used in the program
into the executable image. This may require more disk space and memory than
dynamic linking, but is both faster and more portable, since it does not
require the presence of the library on the system where it is run.
Dynamic linking
is accomplished by placing the name of a sharable library in the executable
image. Actual linking with the library routines does not occur until the image
is run, when both the executable and the library are placed in memory. An
advantage of dynamic linking is that multiple programs can share a single copy
of the library.










No comments:
Post a Comment