Booting

Minimally, some embedded systems do not require a noticeable boot sequence to begin functioning and when turned on may simply run operational programs that are stored in ROM.The EDSAC system, the second stored-program computer to be built, used stepping switches to transfer a fixed program into memory when its start button was pressed.The program stored on this device, which David Wheeler completed in late 1948, loaded further instructions from punched tape and then executed them.[21] However, since this makes few assumptions about the system it can equally well be used to load diagnostic (Maintenance Test Routine) tapes which display an intelligible code on the front panel even in cases of gross CPU failure.For example, on the System/370 Model 158, the keyboard sequence 0-7-X (zero, seven and X, in that order) results in an IPL from the device address which was keyed into the input area.The IPL function in the System/360 and its successors prior to IBM Z, and its compatibles such as Amdahl's, reads 24 bytes from an operator-specified device into main storage starting at real address zero.[22] The IPL device is usually a disk drive, hence the special significance of the 02h read-type command, but exactly the same procedure is also used to IPL from other input-type devices, such as tape drives, or even card readers, in a device-independent manner, allowing, for example, the installation of an operating system on a brand-new computer from an OS initial distribution magnetic tape.Minicomputers, starting with the Digital Equipment Corporation (DEC) PDP-5 and PDP-8 (1965) simplified design by using the CPU to assist input and output operations.Since the early minicomputers used magnetic-core memory, which did not lose its information when power was off, these bootstrap loaders would remain in place unless they were erased.Other minicomputers with such simple form of booting include Hewlett-Packard's HP 2100 series (mid-1960s), the original Data General Nova (1969), and DEC's PDP-4 (1962) and PDP-11 (1970).DEC later added, in 1971, an optional diode matrix read-only memory for the PDP-11 that stored a bootstrap program of up to 32 words (64 bytes).DEC also sold versions of the card, the BM792-Yx series, pre-programmed for many standard input devices by simply omitting the unneeded diodes.The earliest microcomputers, such as the Altair 8800 (released first in 1975) and an even earlier, similar machine (based on the Intel 8008 CPU) had no bootstrapping hardware as such.Simple additions to the hardware permitted one memory location at a time to be loaded from those switches to store bootstrap code.An Italian telephone switching computer, called "Gruppi Speciali", patented in 1975 by Alberto Ciaramella, a researcher at CSELT,[40] included an (external) ROM.Gruppi Speciali was, starting from 1975, a fully single-button machine booting into the operating system from a ROM memory composed from semiconductors, not from ferrite cores.[45] Typically, a microprocessor will, after a reset or power-on condition, perform a start-up process that usually takes the form of "begin execution of the code that is found starting at a specific address" or "look for a multibyte code at a specific address and jump to the indicated location to begin execution".According to Apple's ad announcing it "No More Switches, No More Lights ... the firmware in PROMS enables you to enter, display and debug programs (all in hex) from the keyboard.This is the opposite extreme of the scenario using switches mentioned above; it is highly inflexible but relatively error-proof and foolproof as long as all hardware is working normally.To allow system customizations, accessories, and other support software to be loaded automatically, the Atari's floppy drive was read for additional components during the boot process.Examples of first-stage (hardware initialization stage) boot loaders include BIOS, UEFI, coreboot, Libreboot and Das U-Boot.This is an example of dual booting, in which the user chooses which operating system to start after the computer has performed its Power-on self-test (POST).[57][58] Several devices are available that enable the user to quick-boot into what is usually a variant of Linux for various simple tasks such as Internet access; examples are Splashtop and Latitude ON.[66] When Microsoft added LBA and FAT32 support, they even switched to a boot loader reaching over two physical sectors and using 386 instructions for size reasons.At the same time other vendors managed to squeeze much more functionality into a single boot sector without relaxing the original constraints on only minimal available memory (32 KB) and processor support (8088/8086).After system reset, the microcontroller begins to execute code programmed into its non-volatile memory, just like usual processors are using ROMs for booting.Matthew Garrett argued that booting security serves a legitimate goal but in doing so chooses defaults that are hostile to users.The defect detection process, so important for measuring and eventually achieving product quality, is typically one of the first to experience problems caused by the distributed nature of the project.The distribution of defect detection activities over several parties introduces risks like the inadequate review of work products, occurrence of "blind spots" with respect to test coverage or over-testing of components.(2004)[78]The system might exhibit its erroneous state in, for example, an explicit bootloop or a blue screen of death, before recovery is indicated.
A flow diagram of a computer booting
Switches and cables used to program ENIAC (1946)
Initial program load punched card for the IBM 1130 (1965)
IBM System/3 console from the 1970s. Program load selector switch is lower left; Program load switch is lower right.
PDP-8/E front panel showing the switches used to load the bootstrap program
An Intel 2708 EPROM "chip" on a circuit board
Windows To Go bootable flash drive, a Live USB example
A hex dump of FreeBSD 's boot0 MBR
Award Software BIOS from 2000 during booting
An unlocked bootloader of an Android device, showing additional available options
UART console of a TP-Link router with OpenWrt that is stuck in a bootloop
BootstrappingBoot (disambiguation)computingcomputerhardwaresoftwarecentral processing unitmain memoryfirmwarerebootingruntime systemoperating systemhibernationembedded systemsstate machinesbootstrapread-only memoryboot ROMstepping switchesDavid Wheelerpunched tapeUNIVAC IIBM 701punch cardmagnetic drummagnetic tapeIBM 7030 StretchSystem/360IBM 113036-bitcard readertape driveIBM 704IBM 7090IBM 7094IBM 1401IBM 650IBM 7040 and 7044CDC 6600GE 645PDP-10Burroughsfront panelIBM System/360z/Architecture7030 (Stretch)System/370IBM 2250IBM 3270AmdahlChannel Command WordsProgram Status WordMinicomputersDigital Equipment Corporationmagnetic-core memoryHP 2100Data General NovaPDP-11diode matrixUnibuspaper tapePDP-15checksumPseudocodeTeletype Model 33teleprinterAltair 8800circuit boardmask-programmed ROMsprogrammable ROMserasable programmable ROMsflash memoryAlberto CiaramellasuperminicomputersIntel 8085VAX-11/780LSI-11Intel x86MOS 6502Apple ComputerApple 1Apple IIcopy protectionMacintoshBeOS Personal Edition 5Atari STmicrocomputerSpectre GCRIBM Personal Computerpower-on self testIBM PC compatibleItaniumApple Macs using Intel processorsUnix workstationsSun MicrosystemsOpenBootPowerPCAdvanced RISC ComputingSGI Visual WorkstationComparison of boot loadersBootloadernon-volatile memoryrandom-access memoryEEPROMNOR flashexecute in placehard disk driveNAND flashsolid-state drivechain loadingIBM PCx86 seriesboot sectorentry pointMaster Boot RecordPartition Boot RecordcorebootLibrebootDas U-BootGNU GRUBrEFIndBOOTMGRSyslinuxdevice driversOpen Firmwaredual or multi-bootingsafe modememtest86+List of PC Booter gamesdigital televisionGPS navigation deviceNetwork bootingcomputer networkserverTrivial File Transfer ProtocolPreboot Execution EnvironmentSystem partition and boot partitionWindows To GoLive USBoptical disc driveEl Toritomass storageUSB flash drivememory card readerfloppy disk drivesZip drivesLS-120WindowsLive CDdual bootingPower-on self-testboot managerBIOS SetupSplashtopLatitude ONhex dumpFreeBSDAward Softwarereal modereset vectorOption ROMsnon-volatile storage devicessegmentoffsetactive partitionVolume Boot Recordlittle-endianMBR boot signaturefixed disksremovable drivespartition tableboot signaturedisk signaturedisk timestampAdvanced Active Partitionmulti-bootfloppysuperfloppyVolume Boot RecordsExtended BIOS Parameter BlockOS kernelBIOS interrupt callremote bootIntel MacsUSB diskEFI System Partitionunlocked bootloaderAndroiddigital signal processorsUSB flash drivesembedded systemAtmel AVRsecurityend usercryptographyunlocking the boot loaderMatthew GarrettdefaultsTP-LinkOpenWrtdebuggingsystem of systemsrestartblue screen of deathdistributed event store and stream-processing platformSecurity Assertion Markup LanguageSingle sign-onzero trust security modelWindows NT 4.0Windows 2000Windows ServerWindows 10Nexus 5XAndroid 10luminancerounding errorGoogle NestLG smartphone bootloop issuesCrowdStrike2024 CrowdStrike incidentMicrosoft Windowsrecovery modeMulti-bootingBoot diskBootkitLinux startup processMacintosh startupMicrorebootMulti bootRedBootSelf-booting diskWindows startup processboot loopRS/6000System/38IBM Power Systemsdaemons360/85370/165370/168Second-stage boot loaderbig-endianPC DOS 5.0IBMBIO.COMboot sectorsMS-DOSPC DOScode optimizationassembly languageLOADERself-modifying codeopcodemachine languageside effectsoverlappingfoldingbackwardchain loadDR-DOSrelocatedDR-DOS 7.07The Free DictionaryCampbell-Kelly, MartinWilkes, Maurice V.Wheeler, David J.Gill, StanleyAddison-WesleyBuchholz, WernerOxford UniversityControl Data CorporationGeneral ElectricBurroughs CorporationData GeneralCiaramella, AlbertoOsborne, AdamLarabel, MichaelPhoronixIntel CorporationZbikowski, MarkAllen, PaulBallmer, SteveGates, BillMcDonald, MarcO'Rear, BobPaterson, TimPetzold, CharlesReynolds, AaronLetwin, GordonMicrosoft PressAddison Wesley Publishing CompanyPC MagazineDR DOS 5.0DRBIOS.SYSIBMDOS.COMBOOT.LSTFORMATTexas InstrumentsBleepingComputerProQuestTom's GuideThe VergeProprietary firmwareOpen-source firmwareCustom firmwareVideo BIOSMultiProcessor SpecificationLegacy Plug and PlayAlphaBIOSSeaBIOSAward BIOSAmerican MegatrendsAMIBIOSAMI AptioInsydeH2OPhoenix SecureCore UEFITianoCore EDK IIOpenBIOSLinuxBootKickstartRun-Time Abstraction ServicesCommon Firmware EnvironmentBootloadersBootloader unlockingComparison of bootloadersAcronis OS SelectorBareboxBootManagerBootX (Apple)BootX (Linux)systemd-bootloadlinOpeniBootWindows Boot ManagerYabootPlop Boot ManagerGUID Partition TableApple Partition MapPartitionsBIOS boot partition/boot/flashromUEFIToolBus PirateRaspberry Pift2232Network bootNetBootRemote Initial Program LoadWake-on-LANWake-on-ringROM hackingROM imageDevicetreeFastbootInstant-onEDL mode