A stand-alone program, also known as a freestanding program, is a computer program that does not load any external module, library function or program and that is designed to boot with the bootstrap procedure of the target processor – it runs on bare metal. In early computers like the ENIAC without the concept of an operating system, standalone programs were the only way to run a computer. Standalone programs are usually written in or compiled to the assembly language for the specific hardware.
Later standalone programs typically were provided for utility functions such as disk formatting. Also, computers with very limited memory used standalone programs, i.e. most computers until the mid-1950s, and later still embedded processors.
Standalone programs are now mainly limited to SoC's or Microcontrollers (where battery life, price, and data space are at premiums) and critical systems. In extreme cases every possible set of inputs and errors must be tested and thus every potential output known; fully independent [separate physical suppliers and programing teams] yet fully parallel system-state monitoring; or where the attack surface must be minimized; an operating system would add unacceptable complexity and uncertainty. (examples, industrial operator safety interrupts, commercial airlines, medical devices, and ballistic missile launch controls, lithium-battery charge controllers in consumer devices[fire hazard and chip cost of approx ten cents].) Resource limited microcontrollers can also be made more tolerant of varied environmental conditions than the more powerful hardware needed for an operating system; this is possible because the much lower clock frequency, pin spacing, lack of large data buses (e.g. ddr4 ram modules), and limited transistor count allow for wider design margins and thus the potential for more robust electrical and physical properties both in circuit layout and material choices.