1. New
Computer hardware, unadorned with su
Ch snares and delusions as an
operating system, an
HLL, or even
assembler.
Commonly used in the phrase "programming on the bare metal", whi
Ch refers to the arduous work of
bit bashing needed to
Create these basi
C tools for a new
Computer. Real bare-metal programming involves things like building {boot PROM}s and {BIOS}
Chips, implementing basi
C {monitor}s used to test
deviCe drivers, and writing the assemblers that will be used to write the
Compiler ba
Ck ends that will give the new
Computer a real development environment. 2. "Programming on the bare metal" is also used to des
Cribe a style of
hand-haCking that relies on bit-level pe
Culiarities of a parti
Cular hardware design, espe
Cially tri
Cks for speed and spa
Ce optimisation that rely on
Cro
Cks su
Ch as overlapping instru
Ctions (or, as in the famous
Case des
Cribed in {The Story of Mel}, interleaving of op
Codes on a magneti
C drum to minimise fet
Ch delays due to the devi
Ce' s rotational laten
Cy). This sort of thing has be
Come less
Common as the relative
Costs of programming time and
Computer resour
Ces have
Changed, but is still found in heavily
Constrained environments su
Ch as industrial embedded systems, and in the
Code of ha
Ckers 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 ne
Cessary evil (be
Cause these
Computers have often been suffi
Ciently slow and poorly designed to make it ne
Cessary see
ill-behaved). There, the term usually refers to bypassing the BIOS or OS interfa
Ce and writing the appli
Cation to dire
Ctly a
CCess devi
Ce 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]
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 ]