The
following glossary documentation lists
some terms that either often or sometimes require definition. Many may
have common usage in the technical community, while some have a lineage
with Cygnus engineers who have needed to create names for designating common
tools, platforms or processes.
Application Binary Interface.
The ABI defines how programs should interface
with the operating system, and may include specifications of executable
format, calling conventions, and so forth.
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.
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.
Assembler
The tool that produces object
files from assembly
code.
B
BDM
Background Debugging Mode,
referring to the ability of the CPU32 sub-family (68302, 68360, etc.) of
m68k 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. The Motorola 68000
is a big-endian microprocessor.
Bison
The GNU parser generator,
a workalike for yacc .
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.
BSP
Board Support Package.
Exact meaning varies. Typically refers to the low-level code or scripts
ffb
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.
bug
A problem with software that
needs a patch.
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.
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.
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, m68k, and vax.
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.
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.
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.
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), name of the constellation, 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.
cygwin32
Cygnus' Unix emulation library
for Windows 95 and NT.
D
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
The regression testing framework
used at Cygnus, based on tcland
expect.
DJGPP
DJ Delorie's DOS port of
GNU, using the GO32 DOS extender. It
includes all the tools, and runs under DOS, Win95, etc.
DWARF
A debugging format. 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.
ECOFF
Extended COFF , a
format used with MIPS and Alpha processors, both for workstations and embedded
uses.
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.
Executable file
A binary-format file containing
machine instructions in a ready-to-run form.
expect
A program that allows scripted
control over another program.
F
flex
The GNU lexical analyzer
generator.
Foundry
Cygnus IDE,
with a Project Manager, Source Code Editor and a Debugger. These are a
GUI recompiling/reconfiguring tool (known as vmake ), a simple
editor (known as jedit ), and GDBtk (from which you can perform
extensive analysis while debugging), with a message-passing backplane currently
based on ILU.
FreeBSD
A free Unix operating system
for PCs.
G
gas
Acronym for the GNU assembler.
gcc
Acronym for the GNU C compiler.
gdb
Acronym for the GNU debugger.
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
.
H
h8300
Cygnus name for
ffb
Hitachi's
H8/300 family of microprocessors, including H8/300, H8/300H.
h8500
Cygnus name for Hitachi's
H8/500 family of microprocessors.
Host
The computer on which the
compiler runs.
hppa
Cygnus name for HP's PA architecture.
HP/UX
HP's version of Unix for
m68k and PA architectures. Versions include 7, 8, 9, 10, and 11.
I
i370
Cygnus name for the IBM
370 mainframe computer.
i386
Cygnus name for the 32-bit
members of the Intel x 86 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 program.
ILU
Inter-Language Unification
, a partial CORBA implementation from
Xerox PARC, allowing programs to associate.
ISA
Instruction Set Architecture
.
Irix
SGI's
version of Unix for MIPS architectures.
Versions include 4, 5, and 6.
J
jedit
Foundry's text editor.
JTAG
Joint Test Advisory Group,
referring to a type of hardware interface that allows the
ffb
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.
L
Linker
The tool that merges object
files and library archives into a single
executable file.
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 is normally determined
by the needs of the operating system; for embedded targets, the programmer
supplies the linker script explicitly.
Linux
A free Unix operating system
for PCs and other kinds of computers. Currently runs on i386, m68k, Alpha,
PowerPC, MIPS, and SPARC architectures.
Little-endian
A byte-ordering scheme in
which the most significant bytes are at higher addresses. The Intel x
86 family is all little-endian.
LynxOS
A Unix-like realtime operating
system developed by Lynx Real-Time Systems.
M
m32r
Cygnus name for M32R/D
processor developed by Mitsubishi.
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. The 88000 family was discontinued
in 19xx.
Mach
An operating system developed
at Carnegie-Mellon.
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
cygwin32.
Minix
A tutorial version of Unix,
written by Andy Tanenbaum and described in his textbook. Min
ffb
ix 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 VR4xxx for NEC,
and TX39xx for Toshiba parts.
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.
N
NetBSD
A free Unix operating system
for PCs and other kinds of computers. Currently runs on i386, m68k, Alpha,
PowerPC, MIPS, and SPARC processors.
NINDY
An obsolete ROM
monitor for the i960.
NRE
Non-Recurring Engineering
, typically used to refer to one-time-only development, such as retargeting
to a new architecture or adding a feature.
ns32k
Cygnus name for the National
Semiconductor 32000 family of processors.
O
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.
P
PA
Name for Hewlett-Packard's
family of Precision Architectureprocessors.
patch
A change in source code to
correct or enhance processes.
PE
Portable Executable.
This is Microsoft's object
file format for Windows 95 and NT. It is basically COFF
with additional header information.
PPC
PowerPC family of RISC
processors, designed jointly by IBM and Motorola.
Members include 601, 604, 401, 403, 801, 860.
PPC Bug
ROM monitor from Motorola.
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,
etc.
R
RDI
Remote debugging library,
used by ARM.
RDP
Remote Debugging Protocol,
a protocol used with ARM's Demon monitor.
remote target
See target.
RISC
Reduced Instruction Set
Computer. Machines typically have fixed-length
instructions, limited addressing modes, many registers, and visible pipelines.
Examples include MIPS, ARM,
SH, PowerPC.
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.
RTOS
Real-Time Operating System
.
S
SCO
The Santa Cruz Operation,
a vendor of SVR3 Unix and more recently Unixware for PCs.
SDS
A company that makes embedded
tools, primarily debuggers for Motorola chips.
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.
Solaris
Sun's current version of
Unix, superseding SunOS. Based on SVR4Unix.
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 symbolicdata encoded as
hexadecimal digits. Before downloading to a board, for instance, a program
must be converted using S-records.
stabs
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.
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,
for 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.
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.
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
Three-way cross
See Canadian cross.
thumb
Cygnus name for the 16-bit
instruction frontend available with some ARM processors.
Triple cross
See Canadian cross
.
U
UDI
Universal Debug Interface,
a debugging protocol used only by AMD, and only for the a29k architecture.
Unix
Unix operating system.
Unixware
Name for the version of Unix
based on SVR4, produced by Novell.
V
vax
Digital's popular CISC minicomputer
of the 1980s.
VFS
Virtual File System
architecture.
VxWorks
A real-time operating system
from Wind River Systems. Supported processors include i386, m68k, i960,
PowerPC,
951
SPARC, among others.
W
Win32
The Windows 32-bit operating system software. See also
cygwin32.
X
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.
xor-endian
A way of implementing a big-endian
ISA. See MIPS and PowerPC for example members.
Y
yacc
GNU parser
generator.
Z
z8k
Cygnus name for the Z8000,
a long-obsolete 16-bit descendent of the Z80 8-bit microprocessor.