The
following glossary describes some terms
that either often or sometimes require definition. Many terms may have
common usage in the technical community, while some may only be familiar
to Cygnus engineers when needing to designate tools, platforms or processes.
For more etymology
and history of the technical jargon,
see the following HTML documentation:
-
http://dent.tky.hut.fi/jargon/Top
-
http://dent.tky.hut.fi/jargon/The+Jargon+Lexicon
-
http://dent.tky.hut.fi/jargon/Other+Lexicon+Conventions
-
http://wombat.doc.ic.ac.uk/foldoc/index.php3
-
http://grouper.ieee.org/groups/610/p610home.php3
-
http://dxsting.cern.ch/sting/glossary.php3
-
http://www.access.digex.net/~ikind/babel.php3
-
http://pespmc1.vub.ac.be/ASC/INDEXASC.php3
This list of URLs
is by no means exhaustive of the available content. Accordingly, it will
continue to grow as the technology and
the technology community grows.
A
a29k
AMD
29000 family of
RISC processors.
ABI
Application Binary Interface,
which defines how programs should interface with the operating system,
including specifications such as
executable
format, calling conventions, and chip-specific requirements.
accumulator
A
register
being used for arithmetic or logic (as opposed to
addressing
or a
loop index), especially one being
used to accumulate a sum or count of many items.
address
A number identifying a location
in the computer's memory that informs the computer where to find information
such as a file name or data for processing.
ADP
Angel Debug Protocol,
a
protocol used with
ARM's
newer Angel monitor and their
Embedded
ICE.
AIX
IBM's
version of
Unix for
RS/6000
and
PowerPC. Pronounced
aches.
Alpha
Name for
Digital's
family of 64-bit RISC processors.
API
Application Programming
Interface,
defining how programmers write source code that makes use of a library's
or operating system's facilities by accessing the behavior and state of
classes and objects.
ARC
Argonaut RISC Chip,
a simple
RISC processor designed into
custom chips.
architecture
A term for a
family
of
processors, generally used in reference
to features common to all members.
ARM
Acorn RISC Machine's
family of RISC processors. Also,
Annotated Reference Manual for C++.
Often used to describe a
name-mangling
style.
array
A collection of data items,
all of the same type, in which integers designate each item's position.
ASCII
American Standard Code
for Information Interchange. The predominant
character set encoding of present-day computers. The modern version uses
7
bits for each character, whereas most
earlier codes (including an early version of ASCII) had fewer assignments.
assembler
A tool that produces object
files from
assembly
code like the GNU assembler,
gas.
B
backtrace
A summary of how a program
got where it is with a
debugging process.
bash
BDM
Background Debugging Mode,
referring to the ability of the CPU32 sub-family (68302, 68360, etc.) of
Motorola 68000 series chips and
Motorola
PowerPC chips to be directly controlled through a special set of pins.
BFD
Binary File Descriptor,
the library used by GNU tools to read and write object files.
bi-endian
Refers to a processor or
toolchain that supports both
big-endian
and
little-endian code.
big-endian
A byte-ordering scheme in
which the most significant bytes are at lower addresses (big-end-first),
such as the Motorola 68000 family of microprocessors and most of the various
RISC
designs, which use a
big-endian microprocessor.
bignum
A multiple-precision computer
representation for very large integers. Most computer languages provide
a kind of "
integer-based" data, but such
computer integers are usually very limited in size; to work with larger
numbers, use floating-point numbers, which are usually accurate to only
six or seven decimal places. Computer languages that provide bignums can
perform exact calculations on very large numbers, such as 1000! (the factorial
of 1000, which is 1000
x 999
x 998
x ...
x
2
x 1).
binary
Base-two number system, of
which the only digits are 0 and 1. Used as a signal for processing as either
off (0) or on (1), from left to right the digits have a binary value of
1, 2, 4, 8, 16, and so on (the binary number of 101, for instance, is equivalent
to the decimal number, 5.
binary operator
An operator that has two
arguments.
Bison
The GNU
parser
generator, a workalike for
yacc.
bit
A computational quantity
that can take on one of two values, such as true and false or 0 and 1.
A bit is said to be set if its value is true or 1, and reset or clear if
its value is false or 0. One speaks of setting and clearing bits. To toggle
or invert a bit is to change it, either from 0 to 1 or from 1 to 0.
boot/bootstrap
The action for a machine
to run through its opening processes. Known by having to put on boots by
pulling on the sidestraps before going out in the world.
BSD
Berkeley System Distribution,
U.C. Berkeley's version of Unix, originally licensed from AT&T, and
later upgraded to all-free code. Formed the basis for
SunOS.
breakpoint
What makes a program stop
whenever a certain point is reached in a debugging process. See also
watchpoint and
tracepoint.
BSD
Berkeley Software Distribution,
a family of
Unix software tools, incorporating
paged
virtual
memory,
TCP/IP
networking
enhancements, among other features.
BSP
Board Support Package,
typically referring to the low-level code or scripts that build programs
running on a particular chip on a particular circuit board. Also refers
to the
ROM that boots an
RTOS
onto a specific board. Exact meaning varies.
buffer overflow
What happens when you try
to stuff more data into a buffer.
buffer
A holding area in a program's
memory (like an
Emacs buffer) for text
waiting to be edited.
bug
A problem with software that
needs a
patch. Etymology obscured by
various myths such as the Naval Surface Warfare Center story, with a picture
of the logbook and the purported moth taped into it, recorded in the "Annals
of the History of Computing" [Vol. 3, No. 3 (July 1981), pgs. 285--286],
as well as the electrical handbook, "
Hawkin's
New Catechism of Electricity" [Theo. Audel & Co.], which says, "The
term
bug is used to a limited extent to designate any fault or trouble
in the connections or working of electric apparatus."
build
The process of configuring,
compiling, and linking a set of tools. Also used as a noun, to denote the
results of the process.
Byacc
Berkeley yacc, version
in
BSD Unix. See also
yacc and
Bison.
byte
A sequence of eight
bits.
bytecode
Machine-independent code
generated by a compiler and executed by an interpreter.
C
Canadian cross
A
cross-compilation
in which a program being compiled is a cross compiler for some other host/target
pair. Example: building a 486 PC with a
Motorola
68k cross compiler on a
Sun
SPARC
station.
canonical
The usual or standard state
or manner or usage in technical terminology, derived from computation theory
and mathematical logic, meaning that, for instance, two formulas such as
1 + x and x + 1 are said to be equivalent because they mean the same thing,
but the second one is in canonical form because it is written in the usual
way, with the highest power of x first.
CHILL
A high-level language popular
in Europe for telecommunications programming.
CISC
Complex Instruction Set
Computer. This class of machines typically
has variable-length instructions with a variety of addressing modes. Examples
include
x86, Motorola 68K, and Vax.
classes
A class definition defines
instance and class variables and methods, as well as specifying the interfaces
the class implements and the immediate superclass of the class. In
Java,
a type that defines the implementation of a particular kind of object.
COFF
Common Object File Format.
This format appeared with Unix SVR3, formerly common for Unix, and still
used by some embedded systems. The
Microsoft
PE
format for
Windows is based on COFF.
COFF debugging
The debug format that is
defined as part of the
COFF specification.
comment
In source code, explanatory
text that the compiler ignores. In most code, comments are delimited using
// or
/* ...
*/ .
compiler
A tool that translates high-level
source
code in a language such as
C or
Pascal
into machine-executable programs. The term may also refer specifically
to the tool that translates from source to assembly language.
copyleft
The copyright notice for
GNU
Emacs and other GNU software, the
GNU
General Public License, which grants reuse and reproduction rights to all
users.
critical section
A segment of code in which
a thread uses resources (such as certain instance variables) that can be
used by other threads, but that must not be used by them at the same time.
CRLF
A
carriage
return (
CR, for the
ASCII, 0001101)
followed by a
line feed (
LF,
the ASCII, 0001010).
csh
A
command
shell for users to type commands, interacting with the operating system.
CVS
Concurrent Version System,
a free
source version control system
currently used for all sources at Cygnus.
CX/UX
A version of
Unix
produced by
Harris Computer Systems.
CygMon
Cygnus' standard
ROM
monitor.
Cygnus
The leading provider of single-source,
Unix, and NT desktop and cross-platform development tools for 32- and 64-bit
microcontrollers. The company strategy is to continue to extend the functionality
and performance of its development tools, as well as to deliver innovative
software component technologies for embedded systems.
With Roman etymology (for
swan), named for the constellation,
Cygnus is within the plane of our Milky Way galaxy and is 2,500-10,000
light-years away, forming a
cross. The
brightest star in Cygnus is
Deneb.
Cygnus InsightTM
The GNUPro visual debugger
(formerly known as GDBTk).
cygwin
Cygnus'
Unix
emulation library for Windows 95 and NT operating systems. The former name,
cygwin32, is no longer in use.
D
D10V
A small VLIW processor developed
by Mitsubishi, featuring 32-bit instructions each, with two 15-bit subinstructions.
D30V
A
VLIW
processor developed by
Mitsubishi, and
intended for use in video processing applications (camcorders and DVD players).
It has 64-bit instructions each, with two 30-bit subinstructions.
daemon
A program that is not invoked
explicitly, but lies dormant waiting for some condition(s) to occur. The
idea is that the perpetrator of the condition need not be aware that a
daemon is lurking.
dbx
The standard debugger on
many Unix systems.
debug format
The layout of debugging information
within an object file format. Debug formats include stabs,
COFF,
DWARF,
and
DWARF 2.
debug protocol
The mechanism by which a
debugger
examines and controls the program being debugged.
debugger
A tool that allows programmers
to examine and control a program, typically for the purpose of finding
errors in the
program.
DejaGNU/dejagnu
The regression testing framework
used at Cygnus, based on
tcl and
expect.
delta
A quantitative change, especially
a small or incremental one, used in general in physics and engineering.
diff
A change listing, especially
giving differences between (and additions to) source code or documents.
See also
patch.
DJGPP
D.J. Delorie's
DOS
port of GNU, using the
GO32 DOS extender.
It includes all the standard GNU tools, and runs in the
Windows
environments.
DWARF
A
debugging
format based on attribute records. Versions include DWARF 1, 1.1, 2, and
extensions to 2.
E
E7000
An
ICE
produced by
Hitachi for its
SH
and
H8/300 processors.
EABI
Generic term for an
ABI
adapted for
embedded use.
EBCDIC
Extended Binary Coded
Decimal Interchange Code, a character
set used by
IBM before its open-systems
policy, allegedly adapted from punched card code.
ECOFF
Extended COFF,
a format used with MIPS and Alpha processors, both for workstations and
embedded uses.
eCosTM
Embedded Cygnus Operating
System, a complete,
open-source
run-time
environment, allowing embedded system developers to focus on differentiating
their products instead of developing, maintaining, or configuring proprietary,
real-time
kernels.
ELF
Extended Linker Format.
Appeared with Unix
SVR4 and used on many
systems, including
Solaris/
SunOS,
Irix,
and
Linux. Many embedded systems also
use ELF.
Emacs
A programmable text editor
(derived from "Editing MACroS"), originally written by Richard
Stallman
at the "
MIT AI lab" including facilities to
run compilation subprocesses and send and receive mail.
encryption
Use of algorithms to alter
data, making it incomprehensible to unauthorized viewers.
end point
Device at which a virtual
circuit or virtual path begins or ends.
enterprise network
Large and diverse network
connecting most major points in a company or other organization.
EEPROM
Electrically Erasable
Programmable Read-Only Memory.
EPROM
Erasable Programmable
Read-Only Memory, non-volatile memory chips that are programmed after
they are manufactured, and, if necessary, made erasable and reprogrammed.
Compare with
EEPROM and
PROM.
exception
An event during program execution
that prevents the program from continuing normally; generally, an error.
exception handling
Event that occurs when a
block of code reacts to a specific type of exception. If the exception
is for an error from which the tool, the
debugger,
for instance, can recover, the debugger resumes its process.
executable file
A
binary-format
file containing machine instructions in a ready-to-run form.
expansion
The process of running a
compressed data set through an algorithm that restores the data set to
its original size.
expressions
A specification for an address
or numeric value. An
empty expression has
no value (being either whitespace or null). An
integer expression is
one or more arguments delimited by operators. Arguments can use symbols,
numbers or sub-expressions.
Sub-expressions have
a parenthetical usage containing an integer expression, or they are a
prefix
operator followed by an argument. See
Using
as in the
GNUPro Utilities documentation
for more discussion of these subjects.
expect
A program that allows scripted
control over another program.
F
flex
The GNU
lexical
analyzer generator.
foo/foobar
Used very generally as a
sample name for absolutely anything, especially programs and files. Etymology
from Army slang acronym,
FUBAR (bowdlerized
to mean "Fouled Up Beyond All Repair").
Foundry
Toolkit from Cygnus for microprocessor
evaluation program development, with a
Project Manager, a
Source
Code Editor, a
Visual Debugger (respectively: a GUI recompiling
and reconfiguring tool,
vmake; a simple editor,
jedit;
and a visual debugging tool based on
Insight), and a message-passing
backplane
based on
ILU.
FreeBSD
A free
Unix
operating system for PCs.
FTP/ftp
File Transfer Protocol,
based on
TCP/IP, which enables getting
and storing files between hosts on the web.
G
garbage collection
The automatic detection and
freeing of memory that is no longer in use. A
runtime
system performs garbage collection so that programmers never explicitly
free
objects.
gas
Acronym for the GNU
assembler.
Interchangeably used with capitalization, as GAS.
gcc
Acronym for the GNU C
compiler.
Interchangeably used with capitalization, as GCC.
gcj
Front end to GCC that is
able to read Java `
.class' files, generating assembly code.
gcjh
A program to generate C++
header files corresponding to
Java `
.class'
files.
gdb
Acronym for the GNU
debugger.
Interchangeably used with capitalization, as GDB.
gdbtk
global variable
Any variable external to
a function. See also
local variable.
GNU
Recursive acronym for
GNU's
Not Unix. A project to build a free operating system, started by
Richard
Stallman in 1985, with many useful spinoffs, such as the
Emacs
text editor, a C compiler, a debugger, and many other programming tools.
GO32
Freeware 32-bit
DOS
extender. Also the Cygnus name for GNU tools ported to DOS using
GO32.
See
DJGPP.
GUI
Graphical User Interface,
which refers to an interface and the techniques involved in using a keyboard
or a mouse, for instance, to provide an easy-to-use interface to some software.
H
H8300
Cygnus name for
Hitachi's
H8/300 family of microprocessors, including H8/300, H8/300H and H8/S.
H8500
Cygnus name for
Hitachi's
H8/500 family of microprocessors.
hacker
A person who enjoys exploring
the details of programmable systems and how to stretch their capabilities,
as opposed to most users, who prefer to learn only the minimum necessary.
Also, one who programs enthusiastically (even obsessively) or who enjoys
programming rather than just theorizing about programming.
hacker ethic
Belief that information-sharing
is a powerful positive good, and that it is an ethical duty of hackers
to share their expertise by writing free software and facilitating access
to information and to computing resources wherever possible. Also, the
belief that system-cracking for fun and exploration is ethically correct
as long as the cracker commits no theft, vandalism, or breach of confidentiality.
hexadecimal
The numbering system that
uses 16 as its
base. The code signified
by
0 -
9 and
a -
f (or equivalently
A -
F ) represents the digits 0 through 15.
host
The computer on which the
compiler runs.
HPPA
Cygnus name for
Hewlett
Packard's
PA architecture.
HP/UX
Hewlett
Packard's version of Unix for Motorola 68000 and
PA
architectures. Versions include 7, 8, 9, 10, and 11. Interchangeably designated
as "HP-UX" in the industry.
I
i370
Cygnus name for the
IBM
370 mainframe computer.
i386
Cygnus name for the 32-bit
members of the
Intel
x86
family. Members include 386, 486,
Pentium
("i586"), and Pentium Pro ("i686").
i860
Cygnus name for an obsolete
family of Intel RISC processors.
i960
Cygnus name for Intel's 80960
family of
RISC processors.
ICE
In-Circuit Emulator,
a hardware device that gives an engineer control over the execution of
a processor while it's connected to the rest of a system's circuitry.
Emulators
are powerful hardware debugging tools that can connect to debuggers.
IDE
Integrated Development
Environment, a GUI tool or a set of tools
that uses GUI functionality.
ILU
Inter-Language Unification,
a partial
CORBA implementation from
Xerox
PARC, allowing programs to associate.
include files
Often designated as
#include files,
using or assigning duplication of a portion (or whole) of another file,
sometimes leading to excessive multi-leveled inclusion (as within a newsgroup's
discussion
thread, a practice that tends
to annoy readers).
Insight
The GNUPro visual debugger,
Cygnus Insight
TM (formerly known
as GDBTk).
interpreter
A module that alternately
decodes and executes every statement in some body of code.
IP
Internet Protocol,
the basic protocol of the Internet, enabling the delivery of individual
packets from across the web. A packet may not be instantly delivered, or
if multiple packets are sent simultaneously, they may not simultaneously
arrive in the order they were sent.
Protocols
built on top of this add the notions of connection and reliability. See
also
TCP/IP.
ISA
Instruction Set Architecture.
Irix
SGI's
version of Unix for
MIPS architectures.
Versions include 4, 5, and 6.
J
JavaTM
An object-oriented, "write
once, run anywhere" programming language, developed by Sun Microsystems.
jcf-dump
Reads a `
.class'
Java-type file and prints out all sorts of useful information.
JDKTM
A software development environment
for writing applets and applications in the Java
TM
programming language, developed by
Sun
Microsystems.
jedit
Foundry's
text editor. See
Foundry.
JIT
Just-in-time compiler
that converts all of the bytecode into native machine code just as a Java
program is run, resulting in run-time speed improvements over code interpreted
by a Java Virtual Machine (JVM).
JTAG
Joint Test Advisory Group,
referring to a type of hardware interface that allows the testing of chips
and boards within a complete system; programs running on processors with
JTAG support may be controlled through the processor's JTAG port.
jvgenmain
A small program to generate
an appropriate `
main' for a Java class.
JVM
Java Virtual Machine,
part of the
Java Runtime Environment
responsible for interpreting Java bytecodes.
jv-scan
Reads a `
.java'
file and prints some useful information, such as for instance, which classes
are defined in that file.
K
Knuth
A safe answer. From
Donald
E. Knuth's "The
Art of Computer Programming,"
a reference that answers all questions about data structures or algorithms.
There is a Donald Knuth home page:
K & R
From Brian
Kernighan
and Dennis
Ritchie's book, "The
C
Programming Language," (Prentice-Hall 1978; ISBN 0-113-110163-3).
kluge
A clever programming trick
intended to solve a particular nasty case in an expedient, if not clear,
manner, often used to repair bugs. Also
kludge. From the German,
klug, a clever thing; possibly related to the Polish word,
klucza,
a trick or hook.
L
ld
The
GNU
linker.
Interchangably used with capitalization, as LD. See
linker.
lexical
How the characters in source
code are translated into tokens that the compiler can understand.
lexical scoping
Nested functions that can
access all the variables of the containing function that are visible at
the point of its definition.
libopcodes
This is the GNU library for
manipulating machine opcodes. Its main use is disassembling binary files.
Distributed under the GPL, this is currently only used by the GNU binary
utilities, the GNU assembler and the GNU debugger.
libreadline
This is the GNU command line
editing program, and it is distributed under the GPL. This library implements
full
Emacs or
vi
key bindings with history support. At Cygnus, this is currently only used
by
GDB.
libbfd
This is the
GNU
object file manipulation library, and is distributed under the GPL.
libbfd
is used by the GNU debugger, assembler, linker, and the binary utilities.
It can read and write files in any supported object file format, and presents
a somewhat loosely defined standard for manipulating object files.
libide
This is the Cygnus
IDE
library, a collection of useful procedures, mostly all related from
Tcl/Tk
development. These functions will be useful for all GUI applications. As
they are Tcl/Tk code, all are portable between NT, Unix and MacOS operating
systems.
linker
A tool that merges
object
files and
library archives (such as compiled
classes),
building an executable, a complete program or a single executable file.
For GNUPro Toolkit, the linker is the
ld tool.
linker script
A set of programmer-supplied
instructions that tell the
linker how
to handle object file sections, how to lay out memory, and so forth. For
native linking, the contents of the linker script are normally determined
by the needs of the operating system; for embedded targets, the programmer
explicitly supplies the linker script.
Linux
A free Unix operating system
for many kinds of computers, created by
Linus
Torvalds and friends starting about 1990 (the pronunciation of
/lee-nuhks/
is preferred, accenting the first syllable, since the name Linus has an
/ee/ sound in Swedish).
LISP
LISt Processing language,
based on the ideas of variable-length lists and/or trees as fundamental
data types, and the interpretation of code as data (and vice-versa). Invented
by John McCarthy at
MIT in the late 1950s.
literal
The basic representation
of any integer, floating point, or character value. For example, 3.0 is
a single-precision floating point literal, and "
a" is a character
literal.
local variable
A data item known within
a block, but inaccessible to code outside the block. For example, any variable
defined within a
Tcl method is a local
variable and can not be used outside the method.
little-endian
A
byte-ordering
scheme, such as used by the Intel
x 86 family, which is all little-endian.
Describes a computer architecture in which, within a given 16- or 32-bit
word, bytes at lower addresses have lower significance (the word is stored
little-end-first). See also
big-endian.
LynxOS
A Unix-like realtime operating
system developed by
Lynx Real-Time Systems.
M
m68k
Cygnus name for
Motorola's
68000 family of microprocessors. Depending on context, the abbreviation
may include the CPU32 and ColdFire families as well. Members include 68000,
68020, 68030, 68040, 68060, 68302, 68332, 5200.
m88k
Cygnus name for Motorola's
88000 family of
RISC microprocessors,
now discontinued.
Mach
An operating system developed
at
Carnegie-Mellon.
machine registers
Used for
general-register
(for intermediary and temporary results), index register (for arithmetic
operation and addressing memory),
pointer
register (for arithmetic operation and addressing memory), and
segment
register (for built-in memory management) purposes.
mangling/name
mangling
The process by which C++
types and classes are turned into symbols in object files that are compatible
with other languages.
mingw32
Minimal GNU-Win32,
a configuration of the GNU-Win32 tools that avoids the Unix emulation of
cygwin.
Minix
A tutorial version of Unix,
written by Andy Tanenbaum and described in his textbook.
Minix is
said to have been the inspiration for
Linux.
mips
Cygnus name for the MIPS
family of
RISC processors. Members include
R2000,
R3000, R4000, R5000, R8000, R10000, and
TinyRISC.
There are many vendors of MIPS parts, each using a distinct naming scheme,
such as
VR4
xxx for
NEC,
and TX3
xx for
Toshiba
parts.
MIT
Massachusetts Institute
of Technology, the birthplace of the
Artificial
Intelligence (
AI) Laboratory and the
Tech
Model Railroad Club (
TMRC), one of the wellsprings
of hacker culture.
MON960
Intel's ROM monitor for their
i960 processor.
multilib
A collection of libraries
built with different GNU compiler options. This ensures that a program
using
-msoft-float (using software
floating
point), will link with libraries built using the same option.
multithreading
Functionality of a program
that is designed to have parts of its code execute concurrently. See also
thread.
Multics
MULTiplexed Information
and Computing Service, an early (late 1960s) timesharing operating
system co-designed by a consortium including
MIT,
General Electric, and
Bell Laboratories.
munge
To make changes to a file,
irrevocably, such as a comprehensive rewrite of a routine, data structure
or a whole program.
N
name mangling
The process by which C++
types and classes are turned into symbols in object files that are compatible
with other languages.
namespaces
An ANSI/ISO standard in development
for the C++ libraries, allowing users to identify the
scope
for selecting specific functions by class or type from separate libraries,
while still being able to let libraries work together and separately.
NCSA
National
Center for Supercomputer Applications.
nested function
A function defined inside
another function. See also
lexical scoping.
NetBSD
A free Unix operating system
for PCs and other kinds of computers. See also
BSD.
newline
The
ASCII
LF character (for 0001010), used under Unix as a text line terminator.
See also
CRLF.
NINDY
An obsolete
ROM
monitor for the i960.
NOP
A machine instruction that
does nothing (sometimes used in
assembler-level
programming as filler or for overwriting code to be removed in
binaries).
NRE
Non-Recurring Engineering,
typically used to refer to one-time-only development, such as re-targeting
to a new architecture or adding a feature.
ns32k
Cygnus name for the
National
Semiconductor 32000 family of processors.
O
object
The principal building blocks
of object-oriented programs. Each object is a programming unit consisting
of data variables and functionality. See also
classes.
object file
A binary-format file containing
machine instructions and possibly symbolic relocation information. Typically
produced by an
assembler.
object file format
The layout of
object
files and executable files. Common formats include
a.out,
COFF,
and
ELF.
OS/9, OS/9000
A realtime operating system
from
Microware.
OSF/1
The
Open
Software Foundation's version of Unix, used in Digital's Alpha machines.
overflow bit
A
flag
on some processors indicating an attempt to calculate a result too large
for a register to hold.
P
PA
Name for
Hewlett-Packard's
family of
Precision Architecture processors.
patch
A change in source code to
correct or enhance processes.
path
A filename, fully specified
relative to the
root directory (as opposed
to relative to the current directory; the latter is sometimes called a
relative
path). This is also called a
pathname. With Unix and MS-DOS,
the search path uses an environment variable, specifying the directories
in which the
shell (
Command.com,
under MS-DOS) should look for commands. Other similar constructs abound
under Unix (for example, the C preprocessor has a
search
path it uses in looking for
#include files).
PDP
Programmed Data Processor,
the machine that made timesharing real, adopted by many university computing
facilities and research labs, including
MIT,
Stanford,
and
Carnegie-Mellon. Some aspects of
the instruction set (most notably the bit-field instructions) are still
considered unsurpassed. The PDP-10 was eventually eclipsed by the
VAX
machines (descendants of the PDP-11) when
DEC
recognized that the 10 and VAX product lines were competing with each other
and decided to concentrate its software development effort on the more
profitable VAX. The machine was finally dropped from DEC's line in 1983,
following the failure of the
Jupiter
Project at DEC to build a viable new model.
PE
Portable Executable,
Microsoft's
object
file format for Windows 95 and NT operating systems. It is basically
COFF
with additional header information.
PPC
PowerPC
family of
RISC processors, designed jointly
by
IBM and
Motorola.
Versions include the 601, 604, 401, 403, 801, and 860 processors.
PPC bug
ROM monitor from Motorola.
PROM
Programmable Read-Only
Memory,
ROM
that can be programmed using special equipment. PROMs can be programmed
only once. Compare with
EPROM.
pseudo-ops
pseudo registers
Pseudo registers can only
contain scalar variables that cannot be aliased. This means that
global
variables,
local variables that have
their
addresses taken, and aggregates
(such as structures and unions) cannot be stored in pseudo registers, and
thus they must be accessed with separate load and store instructions. Because
of the guarantee that
pseudo registers
are not aliased, they are ideal targets for optimization.
pSOS
A realtime operating system
from
ISI.
ptrace
The Unix system call, traditionally
used by debuggers to control other Unix processes.
ptrace arguments
may include commands to
read/write registers,
single-step,
and so forth.
R
RAM
Random-Access Memory,
referring to volatile memory that can be read and written by a microprocessor.
rc file
runcom files,
using a startup script file that contains startup instructions for an application
program (or an entire operating system), usually a text file containing
commands of the sort that might have been invoked manually once the system
was running but are to be executed automatically each time the system starts.
RDI
Remote debugging library,
used by
ARM.
RDP
Remote Debugging Protocol,
a protocol used with ARM's Demon monitor.
registers
Registers are settings representing
values that serve as temporary storage devices in a processor, allowing
for faster access to data. Registers are divided into several classes:
pseudo registers,
temporary registers,
and
machine registers.
remote target
RFC
Request For Comment,
one of a long-established series of numbered Internet informational documents
and standards widely followed by commercial software and freeware in the
Internet and Unix communities.
RISC
Reduced Instruction Set
Computer, machines typically having fixed-length
instructions, limited addressing modes, many registers, and visible pipelines.
Examples include MIPS, ARM, SH, PowerPC.
ROM
Read-Only Memory,
non-volatile memory that can be read, but not written, by the microprocessor.
root
In a hierarchy of items or
of separate files in a directory, the one item or directory from which
all other items or
directory paths descend.
router
Network device that determines
the optimal path along which network traffic should be forwarded, using
packets from one network to another based on network layer information.
rsh
Remote shell protocol that
allows a user to execute commands on a remote system without having to
log in to the system.
RS6000
IBM's RS/6000 family of
RISC
processors. Depending on context, this term may also include PowerPC systems.
RTEMS
A real-time operating system.
RTI
The mnemonic for the `
return
from interrupt' instruction on computers.
RTOS
Real-Time Operating System.
run-time memory
Memory accessed while a program
runs.
runtime system
The software system or environment
in which compiled programs can run. The runtime system includes all the
code necessary to load programs, dynamically link native methods, manage
memory, handle
exceptions, and an implementation
of what may be an
interpreter.
S
SCO
Santa Cruz Operation,
a vendor of
SVR3 Unix and more
recently Unixware for PCs.
scope
Rules determining where a
name is usable, such as a function or variable name (the general rule being
that a name can be used from the point of declaration to its innermost
enclosing
compound statement).
screaming tty
A
terminal
line that disgorges an infinite number of random characters at an operating
system. See also
tty.
SDS
A company that makes embedded
tools, primarily debuggers for Motorola chips.
segmentation fault
An error in which a running
program attempts to access memory not allocated to it and
core
dumps with a segmentation violation error.
selective linking
When configuring
libraries,
the linker's usage of source in libraries, whereby the linking explicitly
includes those libraries in the
linking
instruction.
SGML
Standardized Generalized
Markup Language, an ISO/ANSI/ECMA standard
that specifies a way to annotate text documents with information about
types of structure for a document.
SH
Cygnus name for the
Hitachi
Super-H family of RISC microprocessors. ISAs include SH-1, SH-2, SH-3,
SH-3e, SH-DSP, and SH-4; within each ISA, parts have numbers like SH7032
or SH7780.
simulation
A means to interpret, classify
and present information about an embedded system's behaviour that is being
modeled, comprising both hardware and software elements.
Solaris
Sun's current version of
Unix, superseding
SunOS. Based on
SVR4 Unix.
Sun
officially calls it
SunOS 5.x, with versions including
2.0-2.6 (or, as Sun refers to them, 5.0-5.6).
sparc
Cygnus name for the family
of RISC processors based on Sun's SPARC architecture. Members include SPARClite,
SPARClet, UltraSPARC, v7, v8, v9.
SPARClet
An embedded SPARC processor
from
TSqware (formerly
Matra).
SPARClite
An embedded SPARC processor
family from
Fujitsu. Members include
86930, 931, 932, 933, 934, and 936.
S-record
A binary download format,
consisting of a series of records, each beginning with
S, with
symbolic data encoded as hexadecimal
digits. Before downloading to a board, for instance, a program must be
converted using S-records.
stabs
Based on symbol tables, a
debug format originally introduced with the
Berkeley
Unix
system, which records debugging information in certain symbols in the
object
file's symbol table.
stabs information may also be encapsulated
in
COFF or
ELF
files.
stack
The contiguous parts of the
data associated with one call to a specified function in a frame. The frame
contains the arguments given to the function, the function's local variables,
and the address at which the program is executing. In "The Art of Computer
Programming" [2nd edition, vol. I, pg. 236], Donald
Knuth
writes, "Many people who realized the importance of stacks and queues independently
have given other names to these structures: stacks have been called push-down
lists, reversion storages, cellars, nesting stores, piles, last-in-first-out
("LIFO") lists, and even yo-yo lists!"
stack frame
When debugging, the location
of a function call,
arguments about the
call and called
local variables, are
within a block of data called the stack frame. Stack frames are
allocated
in a region of memory called the
call
stack. When a program stops, debugging commands for examining the stack
allow seeing all this information.
stub
A small piece of code that
executes on the target and communicates with the
debugger,
acting as its agent, collecting registers, setting memory values, etc.
Also, in a native shared library system, the part of the
shared
library that actually gets linked with a program.
sun4
Informal name for a SPARC
workstation running SunOS 4.
x.
SunOS
Sun's former version of Unix,
derived from
BSD 4.3. Versions include
2, 3, 4.0, 4.1, 4.1.3, 4.1.4. Sun currently refers to Solaris 2.
x
versions as SunOS 5.
x.
SVID
System V Interface Definition,
defining interfaces and partitioning components within System V environments.
SVR3
System V Release 3,
the third version of Unix for the AT&T 3B2.
SVR4
Acronym for
System V Release
4, the fourth version of Unix for the
AT&T 3B2. Currently owned by
SCO,
after being owned by Novell.
symbols
Symbols are used to refer
to
variables,
labels,
and
procedures in a program.
System V
A Unix system for porting
source code to build
binary operating
system products.
T
target
The computer for which the
compiler generates code. Used both to refer to an actual physical device,
and to the
class of devices.
Tcl/Tk
The code language used to
develop an IDE. Tcl/Tk is a programming system developed by John Ousterhout.
Easy to use with very useful graphical interface facilities, Tcl is the
basic programming language while Tk is a "toolKit" of widgets (graphical
objects similar to those of other GUI toolkits, such as
Xlib,
Xview and Motif). Unlike many of the other toolkits, it is not necessary
to use C or C++ in order to manipulate the
widgets,
and useful applications can be built very rapidly with Tcl/Tk.
TCP/IP
Transmission Control Protocol based
on
IP. This is an
internet
protocol that provides for the reliable delivery of streams of data across
the web.
telnet
Standard
terminal
emulation protocol in the TCP/IP
protocol
stack, used for
remote terminal connection,
enabling users to log in to
remote systems,
thereby using resources as if connected to a
local
system.
temporary registers
Temporary registers are used
to hold intermediate results of computations within a basic block. Each
temporary register must be defined and used in exactly one place, and never
assign a value to a temporary register that is never used, and do not use
the value in a temporary register more than once.
TeX
An extremely powerful macro-based
text formatter written by
Donald E.
Knuth.
Texinfo
A text formatting tool with
various output formats such as HTML and PostScript.
TMRC
The
Tech
Model Railroad Club at
MIT, the legendary
control system that featured about 1200 relays.
Steven
Levy, in his book,
Hackers,
gives a stimulating account of those early years; see:
http://www.echonyc.com/~steven/hackers.php3
toolchain
Informal term for the collection
of programs that make up a complete set of cross-compilation tools. Typically
consists of the following example's sequence:
compiler->assembler->archiver->linker->debugger
thread
The basic unit of program
execution. A process can have several threads running concurrently, each
performing a different job, such as waiting for events or performing a
time-consuming job that the program doesn't need to complete before resuming.
When a thread has finished its job, the thread is suspended or destroyed.
three-way cross
Thumb
The 16-bit instruction frontend
available with some ARM processors.
tracepoint
A hit during a
debugging
process.
trampolines
On-the-fly generation by
a compiler (such as
GCC) of small executable
code objects that do indirection between code sections, taking the address
of a nested function.
triple cross
twiddle
A small and insignificant
change to a program. Derived from squiggle, or in ASCII shorthand,
tilde
(for the
ASCII character definition,
1111110, of the character,
~).
tty
Any
serial
port, whether or not the device connected to it is a
terminal;
so called because under Unix such devices have names of the form,
tty*.
U
UDI
Universal Debug Interface,
a debugging protocol used only by
AMD,
and only for the
a29k architecture.
Unicode
A 16-bit character set defined
by ISO 10646.
URL
Uniform Resource Locator,
the standard for writing a text reference to an arbitrary piece of data
over the Internet. A URL looks like "
protocol :// host/localinfo
" where
protocol specifies a protocol to use to get the object (like
http or
ftp),
host specifies the Internet name
of the host on which to find it, and
localinfo is a string (often
a file name) passed to the protocol location on the remote host.
Unix
Unix operating system. The
uppercase spelling of `UNIX' is used interchangeably. Invented in 1969
by Ken Thompson after
Bell Labs left
the
Multics project, Unix subsequently
underwent mutations and expansions at the hands of many different people,
resulting in a uniquely flexible and developer-friendly environment. By
1991, Unix had become the most widely used multiuser general-purpose operating
system in the world.
Unixware
Name for the version of Unix
based on
SVR4, produced by Novell.
V
variables
A variable is a name used
in a program to stand for a value.
Global variables have
one value at a time, and this value is in effect for the whole system.
Constant variables have values
that never change.
Local variables help
create variable values that exist temporarily while within a certain part
of the program; these values are called
local , and the variables
so used are called local variables (for example, when a function is called,
its argument variables receive new local values that last until the function
exits).
Void variables use symbols
that lack values.
vax
Virtual Address eXtension,
Digital's
popular
CISC minicomputer of the 1980s,
the most successful minicomputer design in industry history, possibly excepting
its immediate ancestor, the
PDP-11. Between
its release in 1978 and its eclipse by killer micros after about 1986,
the VAX was probably the hacker's favorite machine of them all, especially
after the 1982 release of 4.2
BSD Unix
(see
BSD,
CISC and
PDP).
vi
Visual Interface ,
a screen
editor crafted together by Bill
Joy for an early
BSD release. Became
the de facto standard Unix editor and a nearly undisputed hacker favorite
outside of MIT until the rise of
Emacs
after about 1984.
VFS
Virtual File System architecture.
virtual machine
An abstract specification
for a computing device that can be implemented in different ways, in software
or hardware. Compiling to the instruction set of a virtual machine is much
like compiling to the instruction set of a microprocessor, using a bytecode
instruction set, a set of
registers,
a
stack, a
garbage-collected
heap, and an area for storing methods.
vmake
A GUI
recompiling/
reconfiguring
tool used for managing projects with Foundry.
VxWorks
A real-time operating system
from Wind River Systems.
W
watchpoint
A special breakpoint that
stops a program's
debugging process when
the value of an expression changes.
widget
The components of software
by which we get many of the interface features that provide interoperability,
such as the scrollbars or the means of selecting text with a cursor or
pointer, using
object-oriented programming.
worm
A program that propagates
itself over a network, reproducing itself as it goes (the famous "
Great Worm of 1988" is the best-known example;
Robert
T. Morris's 1988
virus, a benign one
that got out of control and hogged hundreds of Sun and
VAX
systems across the U.S.).
WWW
World Wide Web ,
the web of systems and the data in them that is the
Internet.
X
X
An allegedly "over-sized,
over-featured, over-engineered and incredibly over-complicated" window
system developed at
MIT and widely used
on Unix systems. With its sources freely available, it is a vehicle that
is widespread since developers can modify and customize it according to
their requirements.
x86
Cygnus name for the Intel
8086 architecture family.
XCOFF
eXtended COFF ,
IBM's
object file format for
RS/6000 and
PowerPC
systems.
XENIX
Microsoft version of
SVR4 .
XEROX PARC
The famed
Palo
Alto Research Center which, for more than a decade, from the early 1970s
into the mid-1980s, yielded an astonishing volume of groundbreaking hardware
and software innovations. The
mouse,
windows, and icon-type software interface was invented there, as well as
the laser printer, the local-area network (
LAN), and a series of D-machines that anticipated the personal computers
of the 1980s by a decade.
xor-endian
A way of implementing a big-endian
ISA. See
MIPS and
PowerPC for example members.
Y
yacc
Z
z8k
Cygnus name for the
Z8000,
a long-obsolete 16-bit descendent of the Z80 8-bit microprocessor.
Top|Contents|Index|Previous|Next