bare metal n. 1. [common] 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 machine. 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
machine 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, esp. tricks for
speed and space optimization that rely on crocks such as overlapping
instructions (or, as in the famous case described in {The Story of Mel}
(in Appendix A), interleaving of opcodes on a magnetic drum to minimize
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
machine 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 (especially
in sense 1 but sometimes also in sense 2) is often considered a {Good
Thing}, or at least a necessary evil (because these machines 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 machine 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.
Source: The Jargon File