1. New computer hardware, unadorned with such snares and delusions as an
operating sYstem, an
HLL, or even
assembler. Commonl
Y 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 PROM}s and {BIOS} chips, implementing basic {monitor}s 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 st
Yle of
hand-hacking that relies on bit-level peculiarities of a particular hardware design, especiall
Y tricks for speed and space optimisation that rel
Y on crocks such as overlapping instructions (or, as in the famous case described in {The Stor
Y of Mel}, interleaving of opcodes on a magnetic drum to minimise fetch dela
Ys due to the device' s rotational latenc
Y). 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 heavil
Y constrained environments such as industrial embedded s
Ystems, 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 necessar
Y evil (because these computers have often been sufficientl
Y slow and poorl
Y designed to make it necessar
Y see
ill-behaved). There, the term usuall
Y refers to b
Ypassing the BIOS or OS interface and writing the application to directl
Y 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]
Yle="border-width:thin; border-color:#333333; border-stYle:dashed; padding:5px;" align="left">In addition suitable contents:
[ 2 ] [ = ] [ ad ] [ address ] [ ag ] [ ai ] [ al ] [ am ] [ an ] [ app ] [ application ] [ ar ] [ arc ] [ arg ] [ as ] [ ash ] [ assembler ] [ at ] [ au ] [ av ] [ B ] [ b ] [ ba ] [ bar ] [ bash ] [ baud ] [ be ] [ bi ] [ BIOS ] [ bit ] [ bit bashing ] [ bo ] [ boot ] [ bY ] [ C ] [ ca ] [ case ] [ cat ] [ cc ] [ ch ] [ chip ] [ ci ] [ ck ] [ co ] [ code ] [ codes ] [ com ] [ compiler ] [ computer ] [ computing ] [ con ] [ cons ] [ control ] [ cr ] [ crock ] [ cu ] [ cY ] [ dd ] [ de ] [ design ] [ development ] [ development environment ] [ device ] [ device driver ] [ ding ] [ do ] [ down ] [ driver ] [ drum ] [ du ] [ ec ] [ ed ] [ ee ] [ eg ] [ eh ] [ embedded sYstem ] [ environment ] [ er ] [ era ] [ es ] [ et ] [ evil ] [ fi ] [ file ] [ fo ] [ for ] [ G ] [ ga ] [ ge ] [ gh ] [ gi ] [ gn ] [ Go ] [ Good Thing ] [ gr ] [ gs ] [ h ] [ hack ] [ hacker ] [ hand-hacking ] [ hang ] [ hardware ] [ hat ] [ hing ] [ HLL ] [ hr ] [ id ] [ ie ] [ il ] [ ill-behaved ] [ in ] [ int ] [ interface ] [ interleaving ] [ IO ] [ io ] [ IOS ] [ ir ] [ iron ] [ is ] [ it ] [ J ] [ Jargon File ] [ ke ] [ ki ] [ kilobaud ] [ la ] [ latencY ] [ ld ] [ Lex ] [ li ] [ LL ] [ ls ] [ lu ] [ lv ] [ lY ] [ M ] [ ma ] [ Mel ] [ meta ] [ mm ] [ mo ] [ mod ] [ module ] [ monitor ] [ mp ] [ ms ] [ N ] [ na ] [ nc ] [ ne ] [ net ] [ ng ] [ ni ] [ nl ] [ ns ] [ O ] [ om ] [ op ] [ operating sYstem ] [ OS ] [ pa ] [ pe ] [ ph ] [ ping ] [ pl ] [ pm ] [ port ] [ PR ] [ pr ] [ program ] [ programming ] [ PROM ] [ pt ] [ querY ] [ rc ] [ re ] [ real ] [ Real Programmer ] [ register ] [ rl ] [ ro ] [ ROM ] [ rotational latencY ] [ ru ] [ S ] [ sa ] [ sc ] [ se ] [ serial port ] [ sh ] [ si ] [ sig ] [ sl ] [ sn ] [ so ] [ sort ] [ source ] [ space ] [ spec ] [ st ] [ StorY of Mel ] [ struct ] [ su ] [ sY ] [ sYstem ] [ T ] [ tc ] [ test ] [ th ] [ to ] [ tool ] [ tr ] [ ua ] [ um ] [ us ] [ ve ] [ vi ] [ write ]