bare metal

from Jargon File (4.4.4, 14 Aug 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}.
    
from The Free On-line Dictionary of Computing (8 July 2008)
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}]
    

[email protected]