The Jargon File (version 4.4.7, 29 Dec 2003):
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 rare 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. See
Real Programmer.
The Free On-line Dictionary of Computing (30 December 2018):
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]