Bootstrap
Generelt betegner bootstrap en teknik til igangsætning af et system ved hjælp af dets egne virkemidler, typisk når der tændes for en computer (koldstart). Sprogligt kommer ordet fra engelsk i betydningen "at hale sig selv op ved hjælp af støvlestropperne". Dette udtryk siges at stamme fra Baron von Münchhausens historie fra felttoget mod tyrkerne, hvor han haler sig selv og sin hest op af en sump; i historien er det dog ved sin hårpisk.
Ordet ses i forbindelse med start af en computer ofte forkortet til formen boot. Når et edb-system tændes er arbejdslagerets indhold meningsløst og der er dermed intet program, som CPU'en kan udføre. Registre i de ydre enheder mv. har ligeledes ikke alle et passende indhold. Bootstrap er derfor måden systemet bringes i en veldefineret tilstand og herunder at der i arbejdslageret befinder sig et fornuftigt program, typisk styresystemet for computeren.
Bootstrap når der tændes for computeren, er en proces i flere trin. Først starter CPU'en med at udføre et lille program, som er placeret i ROM-lager. I nogle systemer kan dette lille program interaktivt starte et lidt større program, der befinder sig i et flash lager. Dette gør det mere bekvemt at udføre eventuelle opdateringer af opstartsproceduren.
Systemet laver derpå en selv-test (Power On Self Test, se POST), og lokaliserer det medie, hvorfra det resterende programmel skal indlæses. Der kan være tale om et baggrundslager eller et lokalnet. Fra mediet indlæses nu en boot-sektor, og udførelsen af denne startes. Dette giver fleksibilitet med hensyn til, hvilket program eller programversion der skal startes, og hvis der er fejl på bootmediet kan et alternativt vælges, f.eks. en boot-diskette i tilfælde af fejl på hard disken.
Programmet i boot-sektoren vil nu indlæse det egentlige programmel, typisk styresystemet. For computere med flere styresystemer (f.eks. Windows og LINUX), vil boot-sektoren indeholde en boot-loader, der spørger om, hvilket system der skal startes. Dette forudsætter, at mediet (typisk en hard disk) er opdelt i partitioner (se partition).
Visse virus virker ved at placere sig i boot-sektoren og dermed overtage kontrollen med hele systemet ved bootstrap.
Ordet bootstrap ses også anvendt i forbindelse med oversættere til højere programmerinssprog. Haves en oversætter O11 til sproget P, der genererer oversatte programmer, der kan køre på M1, kan man ved en bootstrap-proces få en oversætter O22 til arkitekturen M2. Oversætteren kan f.eks. selv være skrevet i P, og dens kildekode O1K modificeres nu, så den genererer kode til M2; denne oversætters kildekode kalder vi O2K. Nu oversættes O2K med O11, hvilket giver en oversætter O21 til M2, der kører på M1. Endelig oversættes O2K med O21, hvilket giver den ønskede oversætter O22.
Der er endnu et bootstrap-problem i dette, for hvorledes fik vi O11 ud fra O1K, der jo er skrevet i P? Dette problem kan løses ved at skrive en minimal fortolker, der kan afvikle programmer skrevet i P på arkitekturen M1; den behøver ikke at være særlig god eller hurtig, for den skal kun bruges én gang. Ved hjælp af fortolkeren køres O1K med sig selv som inddata, og derved fås O11.
