Astandalone program, also known as afreestanding program, is acomputer program that does not load any external module, library function or program and that is designed toboot with the bootstrap procedure of the target processor – it runs onbare metal. Inearly computers like theENIAC without the concept of anoperating system, standalone programs were the only way to run a computer. Standalone programs are usually written inassembly language for a specific hardware.
Later standalone programs typically were provided for utility functions such asdisk formatting. Also, computers with very limited memory may use standalone programs, i.e. most computers until the mid-1950s and later stillembedded processors.
Standalone programs are now mainly limited toSoC's ormicrocontrollers (where battery life, price, and data space are at premiums)[1] andcritical 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;[2][3][4] or where theattack surface must be minimized; an operating system would add unacceptable complexity and uncertainty (examples include industrial operator safety interrupts,[4] commercial airlines,[2][3] medical devices, ballistic missile launch controls and lithium-battery charge controllers in consumer devices [fire hazard and chip cost of approximately 10 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 of the much lower clock frequency, pin spacing, lack of large data buses (e.g. DDR4 RAM modules), and limited transistor count allowance for wider design margins and thus the potential for more robust electrical and physical properties both in circuit layout and material choices.