- administrator
- See
superuser.
- alias
- A shell feature that lets you create new commands or specify your
favorite options.
For example, alias my_ls='ls -F' creates an alias called
my_ls that the shell replaces with ls -F.
- atomic
- Of or relating to atoms. :-)
In operating systems, this refers to the requirement that an
operation, or sequence of operations, be considered
indivisible. For example, a thread may need to move
a file position to a given location and read data. These
operations must be performed in an atomic manner; otherwise,
another thread could preempt the original thread and move
the file position to a different location, thus causing
the original thread to read data from the second thread's
position.
- BIOS/ROM Monitor extension signature
- A certain sequence of bytes indicating to the BIOS or
ROM Monitor that the device is to be considered an
extension to the BIOS or ROM Monitor—control
is to be transferred to the device by the BIOS
or ROM Monitor, with the expectation that the device will
perform additional initializations.
On the x86 architecture, the two bytes 0x55 and
0xAA must be present (in that order) as the first
two bytes in the device, with control being transferred to offset
0x0003.
- budget
- In
sporadic
scheduling, the amount of time a thread is permitted to execute at its normal priority before
being dropped to its low priority.
- buildfile
- A text file containing instructions for mkifs
specifying the contents and other details of an
image,
or for mkefs specifying the
contents and other details of an embedded filesystem image.
- canonical mode
- Also called edited mode or cooked mode.
In this mode the character device library performs
line-editing operations on each received character. Only
when a line is completely entered—typically when a carriage return (CR)
is received—will the line of data be made available to application
processes. Contrast
raw mode.
- channel
- A kernel object used with message passing.
In QNX Neutrino, message passing is directed towards a
connection
(made to a channel); threads can receive messages from channels.
A thread that wishes to receive messages creates a channel (using ChannelCreate()), and
then receives messages from that channel (using MsgReceive()).
Another thread that wishes to send a message to the first thread must make
a connection to that channel by attaching to
the channel (using ConnectAttach()) and then sending data
(using MsgSend()).
- CIFS
- Common Internet File System (aka SMB)—a protocol that allows
a client computer to perform transparent file access over
a network to a Windows server. Client file
access calls are converted to CIFS protocol requests and are
sent to the server over the network. The server receives the
request, performs the actual filesystem operation, and sends
a response back to the client.
- CIS
- Card Information Structure.
- command completion
- A shell feature that saves typing;
type enough of the command's name to identify it
uniquely, and then press Esc twice.
If possible, the shell fills in the rest of the name.
- command interpreter
- A process that parses what you type on the command line; also known as a
shell.
- compound command
- A command that includes a shell's reserved words, grouping constructs,
and function definitions (e.g., ls -al | less).
Contrast
simple command.
- configurable limit
- A special variable that stores system information.
Some (e.g., _PC_NAME_MAX) depend on the filesystem and
are associated with a path;
others (e.g., _SC_ARG_MAX) are independent of paths.
- configuration string
- A system variable that's like an environment variable, but is more dynamic.
When you set an environment variable, the new value affects only the
current instance of the shell and any of its children that you create
after setting the variable;
when you set a configuration string, its new value is immediately available
to the entire system.
- connection
- A kernel object used with message passing.
Connections are created by client threads to connect to
the channels made available by servers.
Once connections are established, clients can MsgSend() messages over them.
- console
- The display adapter, the screen, and the system keyboard are collectively
referred to as the physical console.
A virtual console emulates a physical console and lets you
run more than one terminal session at a time on a machine.
- cooked mode
- See
canonical mode.
- core dump
- A file describing the state of a process that terminated abnormally.
- critical section
- A code passage that must be executed
serially (i.e., by only one thread at a time).
The simplest from of critical section enforcement is via a
mutex.
- device driver
- A process that allows the OS and application programs to
make use of the underlying hardware in a generic way (e.g., a
disk drive, a network interface). Unlike OSs that require
device drivers to be tightly bound into the OS itself,
device drivers for QNX Neutrino are standard processes that
can be started and stopped dynamically. As a result, adding
device drivers doesn't affect any other part of the OS;
drivers can be developed and debugged like any other
application. Also, device drivers are in their own protected
address space, so a bug in a device driver won't cause the
entire OS to shut down.
- DNS
- Domain Name Service—an Internet protocol used to convert ASCII domain names
into IP addresses.
In QNX Neutrino native networking, dns is one of
Qnet's
builtin resolvers.
- edge-sensitive
- One of two ways in which a
PIC
(Programmable Interrupt Controller) can be programmed to respond to
interrupts. In edge-sensitive mode, the interrupt is
noticed upon a transition to/from the
rising/falling edge of a pulse. Contrast
level-sensitive.
- edited mode
- See
canonical mode.
- EPROM
- Erasable Programmable Read-Only Memory—a memory
technology that allows the device to be programmed (typically with
higher-than-operating voltages, e.g., 12V), with the characteristic
that any bit (or bits) may be individually programmed from
a 1 state to a 0 state.
Changing a bit from a 0 state into a 1 state
can be accomplished only by erasing the entire device, setting
all of the bits to a 1 state.
Erasing is accomplished by shining an ultraviolet light through
the erase window of the device for a fixed period of time
(typically 10-20 minutes).
The device is further characterized by having a limited number of
erase cycles (typically 10e5 - 10e6).
Contrast
EEPROM,
flash,
and
RAM.
- EEPROM
- Electrically Erasable Programmable Read-Only Memory—a memory technology that's similar to
EPROM,
but you can erase the entire device electrically instead of via ultraviolet light.
Contrast
flash
and
RAM.
- event
- A notification scheme used to inform a thread that a
particular condition has occurred. Events can be signals or
pulses in the general case; they can also be unblocking
events or interrupt events in the case of kernel timeouts
and interrupt service routines. An event is delivered by a
thread, a timer, the kernel, or an interrupt service routine
when appropriate to the requestor of the event.
- extent
- A contiguous sequence of blocks on a disk.
- fd
- File Descriptor—a client must open a file
descriptor to a resource manager via the open()
function call. The file descriptor then serves as a handle
for the client to use in subsequent messages.
- FIFO
- First In First Out—a scheduling policy
whereby a thread is able to consume CPU at its priority level without bounds.
See also
round robin
and
sporadic.
- filename completion
- A shell feature that saves typing;
type enough of the file's name to identify it
uniquely, and then press Esc twice.
If possible, the shell fills in the rest of the name.
- filter
- A program that reads from standard input and writes to standard output,
such as
grep
and
sort.
You can use a pipe (|) to combine filters.
- flash memory
- A memory technology similar in characteristics to
EEPROM
memory, with the exception that erasing is performed electrically,
and, depending upon the organization of the flash memory
device, erasing may be accomplished in blocks (typically 64 KB
bytes at a time) instead of the entire device. Contrast
EPROM
and
RAM.
- FQNN
- Fully Qualified Node Name—a unique name that identifies a QNX Neutrino node
on a network.
The FQNN consists of the nodename plus the node domain tacked together.
- garbage collection
- The process whereby a filesystem manager recovers the space occupied by deleted files and
directories.
Also known as space reclamation.
- group
- A collection of users who share similar file permissions.
- HA
- High Availability—in telecommunications and
other industries, HA describes a system's ability to remain
up and running without interruption for extended periods of time.
- hard link
- See
link.
- hidden file
- A file whose name starts with a dot (.), such as
.profile.
Commands such as ls don't operate on hidden files unless you
explicitly say to.
- image
- In the context of embedded QNX Neutrino systems, an image
can mean either a structure that contains files
(i.e., an OS image) or a structure that can be used in a
read-only, read/write, or read/write/reclaim filesystem
(i.e., a flash filesystem image).
- inode
- Information node—a storage table that holds information about
files, other than the files' names.
In order to support links for each file, the filename is
separated from the other information that describes a file.
- interrupt
- An event (usually caused by hardware) that interrupts whatever the
processor was doing and asks it do something else.
The hardware will generate an interrupt whenever it has reached
some state where software intervention is required.
- interrupt latency
- The amount of elapsed time between the generation of a
hardware interrupt and the first instruction executed by the
relevant interrupt service routine.
Also designated as Til.
Contrast
scheduling latency.
- IPC
- Interprocess Communication—the ability for two
processes (or threads) to communicate.
QNX Neutrino offers several forms of IPC, most notably native messaging (synchronous,
client/server relationship), POSIX message queues and pipes (asynchronous), as well as signals.
- IPL
- Initial Program Loader—the software component
that either takes control at the processor's reset vector
(e.g., location 0xFFFFFFF0 on the x86), or is a BIOS extension.
This component is responsible for setting up the machine
into a usable state, such that the startup program can then
perform further initializations.
The IPL is written in assembler and C.
See also
BIOS/ROM Monitor extension signature
and
startup code.
- IRQ
- Interrupt Request—a hardware request line
asserted by a peripheral to indicate that it requires servicing by software.
The IRQ is handled by the
PIC,
which then interrupts the processor, usually causing the processor to execute an
Interrupt Service Routine (ISR).
- ISR
- Interrupt Service Routine—a routine responsible
for servicing hardware (e.g., reading and/or writing some
device ports), for updating some data structures shared between the
ISR and the thread(s) running in the application, and
for signalling the thread that some kind of event has occurred.
- kernel
- See
microkernel.
- level-sensitive
- One of two ways in which a
PIC
(Programmable Interrupt Controller) can be programmed to respond to interrupts.
If the PIC is operating in level-sensitive mode, the IRQ is considered active whenever
the corresponding hardware line is active.
Contrast
edge-sensitive.
- link
- A filename; a pointer to the file's contents.
Contrast
symbolic link.
- message
- A parcel of bytes passed from one process to another.
The OS attaches no special meaning to the content of a message;
the data in a message has meaning for the
sender of the message and for its receiver, but for no one else.
Message passing not only allows processes to pass data to each
other, but also provides a means of synchronizing the execution of
several processes. As they send, receive, and reply to messages,
processes undergo various changes of state that affect when, and for
how long, they may run.
- metadata
- Data about data; for a filesystem, metadata includes all the overhead
and attributes involved in storing the user data itself, such as the name
of a file, the physical blocks it uses, modification and access timestamps,
and so on.
- microkernel
- A part of the operating system that provides the minimal services used
by a team of optional cooperating processes, which in turn provide the
higher-level OS functionality.
The microkernel itself lacks filesystems and many other
services normally expected of an OS; those services are provided by
optional processes.
- mountpoint
- The location in the pathname space where a resource
manager has registered itself.
For example, a CD-ROM filesystem may register a single mountpoint of /cdrom.
- mutex
- Mutual exclusion lock, a simple synchronization service
used to ensure exclusive access to data shared between threads.
It's typically acquired
(pthread_mutex_lock()) and released
(pthread_mutex_unlock()) around the code that
accesses the shared data (usually a
critical section).
- name resolution
- In a QNX Neutrino network, the process by which the
Qnet
network manager converts an
FQNN
to a list of destination addresses that the transport layer knows how to get to.
- name resolver
- Program code that attempts to convert an
FQNN
to a destination address.
- NDP
- Node Discovery Protocol—proprietary BlackBerry QNX
protocol for broadcasting name resolution requests on a
QNX Neutrino LAN.
- network directory
- A directory in the pathname space that's implemented by the
Qnet
network manager.
- NFS
- Network FileSystem—a TCP/IP application that lets you graft
remote filesystems (or portions of them) onto your local namespace.
Directories on the remote systems appear as part of
your local filesystem and all the utilities you use for listing and managing
files (e.g., ls, cp, mv) operate on the
remote files exactly as they do on your local files.
- Node Discovery Protocol
- See
NDP.
- node domain
- A character string that the
Qnet
network manager tacks onto the nodename to form an
FQNN.
- nodename
- A unique name consisting of a character string that identifies a node on a network.
- pathname prefix
- See
mountpoint.
- pathname-space mapping
- The process whereby the Process Manager maintains an association
between resource managers and entries in the pathname space.
- persistent
- When applied to storage media, the ability for the
media to retain information across a power-cycle.
For example, a hard disk is a persistent storage media, whereas
a ramdisk is not, because the data is lost when power is lost.
- PIC
- Programmable Interrupt Controller—a hardware component that handles IRQs.
- PID
- Process ID. Also often pid (e.g., as an argument in a function call).
See also
process ID.
- POSIX
- An IEEE/ISO standard. The term is an acronym (of sorts)
for Portable Operating System Interface—the
X alludes to Unix, on which the interface is based.
- preemption
- The act of suspending the execution of one thread and starting (or resuming) another.
The suspended thread is said to have been preempted by the new thread.
Whenever a lower-priority thread is actively consuming the
CPU, and a higher-priority thread becomes READY, the
lower-priority thread is immediately preempted by the higher-priority thread.
- prefix tree
- The internal representation used by the Process Manager to store the pathname table.
- priority inheritance
- The characteristic of a thread that causes its priority
to be raised or lowered to that of the thread that sent it a message.
Also used with mutexes.
Priority inheritance is a method used to prevent priority inversion.
- priority inversion
- A condition that can occur when a low-priority thread
consumes CPU at a higher priority than it should.
This can be caused by not supporting priority inheritance, such that
when the lower-priority thread sends a message to a
higher-priority thread, the higher-priority thread consumes
CPU on behalf of the lower-priority thread.
This is solved by having the higher-priority thread inherit the
priority of the thread on whose behalf it's working.
- process
- A nonschedulable entity, which defines the address space and a few data areas.
A process must have at least one
thread
running in it.
- process group
- A collection of processes that permits the signalling of related processes.
Each process in the system is a member of a process group identified by a process group ID.
A newly created process joins the process group of its creator.
- process group ID
- The unique identifier representing a process group during its lifetime.
A process group ID is a positive integer.
The system may reuse a process group ID after the process group dies.
- process group leader
- A process whose ID is the same as its process group ID.
- process ID (PID)
- The unique identifier representing a process. A PID is a
positive integer. The system may reuse a process ID after
the process dies, provided no existing process group has the
same ID. Only the Process Manager can have a process ID of 1.
- pty
- Pseudo-TTY—a character-based device that has two
ends: a master end and a slave end.
Data written to the master end shows up on the slave end, and vice versa.
You typically use these devices
when a program requires a terminal for standard input and
output, and one doesn't exist, for example as with sockets.
- Qnet
- The native network manager in the QNX Neutrino RTOS.
- QoS
- Quality of Service—a policy (e.g., loadbalance) used to
connect nodes in a network in order to ensure highly dependable transmission.
QoS is an issue that often arises in high-availability
(HA)
networks as well as realtime control systems.
- quoting
- A method of forcing a shell's special characters to be treated as simple
characters instead of being interpreted in a special way by the shell.
For example, less "my file name" escapes the special meaning of
the spaces in a filename.
- RAM
- Random Access Memory—a memory technology characterized
by the ability to read and write any location in the device without limitation.
Contrast
flash,
EPROM,
and
EEPROM.
- raw mode
- In raw input mode, the character device library performs
no editing on received characters.
This reduces the processing done on each character to a minimum and provides
the highest performance interface for reading data.
Also, raw mode is used with devices that typically generate binary
data—you don't want any translations of the raw
binary stream between the device and the application.
Contrast
canonical mode.
- remote execution
- Running commands on a machine other than your own over a network.
- replenishment
- In
sporadic
scheduling, the period of time during which
a thread is allowed to consume its execution
budget.
- reset vector
- The address at which the processor begins executing
instructions after the processor's reset line has been activated.
On the x86, for example, this is the address 0xFFFFFFF0.
- resource manager
- A user-level server program that accepts messages from
other programs and, optionally, communicates with hardware.
QNX Neutrino resource managers are responsible for presenting an
interface to various types of devices, whether actual (e.g.,
serial ports, parallel ports, network cards, disk drives) or
virtual (e.g., /dev/null, a network
filesystem, and pseudo-ttys).
In other operating systems, this functionality is traditionally associated with
device drivers.
But unlike device drivers, QNX Neutrino resource managers don't require
any special arrangements with the kernel.
In fact, a resource manager looks just like any other user-level program.
See also device driver.
- root
- The superuser, which can do anything on your system.
The superuser has what Windows calls administrator's rights.
- round robin
- A scheduling policy whereby a thread is given a certain period of time (the
timeslice)
to run.
Should the thread consume CPU for the entire period of its timeslice, the thread will be
placed at the end of the ready queue for its priority, and
the next available thread will be made READY.
If a thread is the only thread READY at its priority level, it will be able
to consume CPU again immediately.
See also
FIFO
and
sporadic.
- RTOS
- Realtime operating system.
- runtime loading
- The process whereby a program decides while it's actually running that it wishes
to load a particular function from a library.
Contrast
static linking.
- scheduling latency
- The amount of time that elapses between the point when
one thread makes another thread READY and when the other
thread actually gets some CPU time.
Note that this latency is almost always at the control of the system designer.
Also designated as Tsl.
Contrast
interrupt latency.
- session
- A collection of process groups established for job-control purposes.
Each process group is a member of a session.
A process belongs to the session that its process group belongs to.
A newly created process joins the session of its creator.
A process can alter its session membership via setsid().
A session can contain multiple process groups.
- session leader
- A process whose death causes all processes within its process group to receive a SIGHUP signal.
- shell
- A process that parses what you type on the command line; also known as a
command interpreter.
- shell script
- A file that contains shell commands.
- simple command
- A command line that contains a single command, usually a program that you
want to run (e.g., less my_file).
Contrast
compound command.
- socket
- A logical drive in a flash filesystem,
consisting of a contiguous and homogeneous region of flash memory.
- socket
- In TCP/IP, a combination of an IP address and a port number that
uniquely identifies a single network process.
- software interrupt
- Similar to a hardware interrupt (see
interrupt),
except that the source of the interrupt is software.
- sporadic
- A scheduling policy whereby a thread's priority can oscillate dynamically between a
foreground or normal priority and a background or low priority.
A thread is given an execution
budget
of time to be consumed within a certain
replenishment
period. See also
FIFO
and
round robin.
- startup code
- The software component that gains control after the IPL
code has performed the minimum necessary amount of initialization.
After gathering information about the system, the startup code transfers control to the OS.
- static linking
- The process whereby you combine your programs with the
modules from the library to form a single executable that's entirely self-contained.
The word static implies that it's not going to change—all
the required modules are already combined into one.
Contrast
runtime loading.
- superuser
- The root user, which can do anything on your system.
The superuser has what Windows calls administrator's rights.
- symbolic link
- A special file that usually has a pathname as its data.
Symbolic links are a flexible means of pathname indirection
and are often used to provide multiple paths to a single file.
Unlike hard links, symbolic links can cross filesystems and can also create links to directories.
- system page area
- An area in the kernel that is filled by the startup
code and contains information about the system (number of
bytes of memory, location of serial ports, etc.)
This is also called the SYSPAGE area.
- thread
- The schedulable entity under QNX Neutrino.
A thread is a flow of execution; it exists within the context of a
process.
- timer
- A kernel object used in conjunction with time-based functions.
A timer is created via timer_create()
and armed via timer_settime().
A timer can then deliver an
event,
either periodically or on a one-shot basis.
- timeslice
- A period of time assigned to a
round-robin
scheduled thread.
This period of time is small (four times the clock period in QNX Neutrino);
programs shouldn't rely on the actual value (doing so is considered bad design).