Cygnus glossary
Cygnus glossary   
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.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

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
A basic command shell.
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
See Cygnus Insight.
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 InsightTM (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 JavaTM 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 VR4xxx for NEC, and TX3xx 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
Assembler directives.
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
See 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
See Canadian 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
See Canadian 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
GNU parser generator.

Z

z8k
Cygnus name for the Z8000, a long-obsolete 16-bit descendent of the Z80 8-bit microprocessor.

Top|Contents|Index|Previous|Next
 
© 2005 Red Hat, Inc. All rights reserved.
About Red Hat  :  Legal statement  :  Privacy statement  :  Contact