bare metal
1. New computer hardware, unadorned with such snares and delusions as an
operating system, an HLL, or even assembler. Commonly used in the phrase
"programming on the bare metal", which refers to the arduous work of bit bashing
needed to create these basic tools for a new computer. Real bare-metal
programming involves things like building boot PROMs and BIOS chips,
implementing basic monitors used to test device drivers, and writing the
assemblers that will be used to write the compiler back ends that will give the
new computer a real development environment.
2. "Programming on the bare metal" is also used to describe a style of
hand-hacking that relies on bit-level peculiarities of a particular hardware
design, especially tricks for speed and space optimisation that rely on crocks
such as overlapping instructions (or, as in the famous case described in The
Story of Mel, interleaving of opcodes on a magnetic drum to minimise fetch
delays due to the device's rotational latency). This sort of thing has become
less common as the relative costs of programming time and computer resources
have changed, but is still found in heavily constrained environments such as
industrial embedded systems, and in the code of hackers who just can't let go of
that low-level control. See Real Programmer.
In the world of personal computing, bare metal programming is often considered a
Good Thing, or at least a necessary evil (because these computers have often
been sufficiently slow and poorly designed to make it necessary; see
ill-behaved). There, the term usually refers to bypassing the BIOS or OS
interface and writing the application to directly access device registers and
computer addresses. "To get 19.2 kilobaud on the serial port, you need to get
down to the bare metal." People who can do this sort of thing well are held in
high regard.
[Jargon File]
Nearby terms:
BAPI « bar « bar code « bare metal » barf »
barfmail » barfulation
|