Pokretanje (računarstvo)

proces pokretanja računara
(Preusmjereno sa Boot loader)

U računarstvu, pokretanje (engleski: booting) jest proces pokretanja računara. Pokretanje je moguće započeti hardverski pomoću pritiskanja tipke za paljenje, ili softverski. Nakon paljenja, procesor u računaru nema softver u svojoj glavnoj memoriji, tako da neki proces mora učitati softver u memoriju prije nego što se može izvršiti. Ovu operaciju može obaviti hardver ili firmware u glavnom procesoru ili neki drugi procesor u računaru.

Award Software BIOS iz 2000.

Ponovno učitavanje računara također se naziva ponovno pokretanje (engleski: Rebooting)

Proces vraćanja računara iz stanja hibernacije ili spavanja ne uključuje učitavanje sistema. Svi računarski sistemi su konačni automati, tako da ponovno učitavanje sistema može biti jedini metod da se sistem vrati u početno stanje.

Rani računari koristili su različite metode kako bi ubacili neki mali program koji bi učitao sistem. Tek izumom ROM memorije riješen je taj paradoks da računar nije imao početni program za učitavanje sistema. Rast kapaciteta ROM-a omogućio je sve složenije programe za učitavanje.

Historija

uredi

Primjeri prije ROM memorije

uredi

Rani računari

uredi

Rani računari u četrdesetim i pedesetim godinama prošlog vijeka bili su jedinstveni inženjerski proizvodi koji su zahtijevali više sedmica za programiranje. Učitavanje programa bio je jedan od mnogih problema koji su morali riješiti. Rani računar, ENIAC, nije imao nijedan program pohranjen u memoriji.

EDSAC sistem je koristio uniselektor za prijenos fiksnog programa u memoriju kada se pritisne tipka za pokretanje. Program pohranjen na ovom uređaju, koji je David Wheeler dovršio krajem 1948. godine, učitavao je dalja uputstva pokretanja za računar sa bušenih traka.[1]

Prvi komercijalni računari

uredi

Prva programibilni računari za komercijalnu prodaju, poput UNIVAC I i IBM 701[2] imali su malo jednostavniji rad. Obično su uključivale upute za operacije unosa ili izlaza. Ista hardverska logika mogla se koristiti za učitavanje sadržaja bušenih kartica ili drugih ulaznih medija, poput magnetnog bubnja ili magnetne trake, koji su na sebi imali program za pokretanje.

 
Program za učitavanje na bušenoj kartici za IBM 1130 (1965)

Računar IBM 701 (1952–1956) imao je dugme „Učitaj“ koje je pokrenulo čitanje prve 36-bitne riječi u glavnu memoriju sa bušene kartice, magnetne trake ili jedinice magnetnog bubnja. Lijeva 18-bitna polovica riječi je imala uputstva za izvršenje, koja je obično učitavala dodatne riječi u memoriju.[3] Zatim se izvršavao početni program za učitavanje, koji je kasnije učitavao mnogo veći program sa istog medija u memoriju. Termin "boot" (učitavanje) se u tom smislu koristio od najmanje 1958.

 
IBM System/3 konzola iz 1970-ih. Prekidač za odabir u donjem lijevom čošku; Prekidač za učitavanje je u donjem desnom čošku.

IBM System/360 i nasljednici

uredi

Na IBM System/60 i njegovim nasljednicima, uključujući trenutne z/Architecture mašine, postupak pokretanja poznat je kao Početno učitavanje programa (Initial Program Load - IPL).

IBM je ovaj izraz koristio za 7030 (Stretch), i ponovo ga koristio za System/360 te ga nastavlja koristiti u tim okruženjima i danas.

Miniračunari

uredi
 
Prednja ploča PDP-8/E prikazuje prekidače koji se koriste za učitavanje programa za pokretanje

Miniračunari, počevši od PDP-5 i PDP-8 (1965) imali su još jednostavniji način za pokretanje. Miniračunari su imali način da spreme neki mali program u svoju memoriju koja nije gubila informacije nakon što je ugašena. Međutim, neka greška u programu je mogla da prebriše čitavu tu memoriju koja je bila bazirana na feritnom magnetnom jezgru i onemogući pokretanje sistema.

Ostali miniračunari koji su koristili sličan sistem pokretanja uključuju Hewlett-Packard-ovu seriju HP 2100 (sredina 1960-ih), originalni Data General Nova (1969) i DEC-ov PDP-11 (1970).

Najraniji mikroračunari, poput Altair 8800 (1975) nisu imali hardver za pokretanje sistema.[4]

Integrisana ROM memorija

uredi
 
Intel 2708 EPROM "čip" na elektroničkoj ploči.

Proces pokretanja miniračunara i mikroračunara je uvođenjem memorije koja se može samo čitati (i nekim drugim varijantama kao što su EPROM i PROM) postao dosta lakši. Time je omogućeno da računar već ima na sebi uključen program za pokretanje. Uvođenje prvog eksternog ROM-a je izvela italijanska telekomunikacijska firma "Gruppi Speciali", koji je 1975. patentirao Alberto Ciaramella, istraživač sa CSELT-a.[5] Gruppi Speciali je, počevši od 1975. mogla jednim pritiskom na tipku učitati operativni sistem sa ROM memorije sastavljene od poluvodiča, a ne iz feritnih jezgara.

Obično svaki procesor nakon ponovnog pokretanja ili paljenja, izvodi postupak pokretanja koji obično radi na principu "započni izvršavanje koda koji se nađe počev od određene adrese" ili "traži višebajtni kod na određenoj adresi i skoči na naznačenu lokaciju i započni sa izvršavanjem". Sistem ima u sebi ROM koji se ne mijenja i na kojem su isprogramirane ove posebne lokacije tako da sistem može da se sam učita bez pomoći operatera. Na primjer, Intel x86 procesori uvijek započinju izvršavanje uputa koje počinju od adrese F000: FFF0,

Prvi Apple 1 predstavljen 1976, sadržavao je PROM čipove koji su eliminirali potrebu za prednjim panelom za proces pokretanja (kao što je to bio slučaj s Altairom 8800)

IBM računari su imali firmware na ROM-u koji se zvao BIOS; jedna od funkcija tog firmvera bila je obavljanje samoprovjere pri uključivanju kad je uređaj pokrenut, a zatim učitavanje softvera sa uređaja za pokretanje i njegovo izvršavanje. Firmware kompatibilan sa BIOS-om na IBM računarima se koristio i na IBM PC kompatibilnim računarima. EFI kojeg je razvio Intel je bio sljedeći korak u evoluciji programa za pokretanje, prvobitno za mašine bazirane na Itanium-u, a kasnije i za x86, uključujući Apple Mac računare koji su koristili Intelove procesore .

Unix radne stanice izvorno su imale firmware na ROM-u. Sun Microsystems je kasnije razvio OpenBoot, kasnije poznat kao Open Firmware, koji je sadržavao interpreter Forth. Standardizirao ga je IEEE kao IEEE standard 1275-1994; i korišten je na PowerPC Mac računarima.

Moderni programi za pokretanje

uredi

Kada se računar isključi njegov operativni sistem i podaci ostaju na neizbrisivoj memoriji kao što je tvrdi disk. Kada je računar uključen, operativni sistem ili njegov program za pokretanje nisu u memoriji nasumičnog pristupa (RAM). Računar prvo izvršava relativno mali program pohranjen u memoriji samo za čitanje (ROM), zajedno s malom količinom potrebnih podataka, kako bi pristupio uređaju ili uređajima s kojih se programi i podaci operativnog sistema mogu učitati u RAM.

Mali program koji pokreće ovaj slijed poznat je kao bootstrap loader, bootstrap ili boot loader. Jedini zadatak ovog malog programa jest učitavanje drugih podataka i programa koji se tada izvode iz RAM-u.

Mrežno pokretanje

uredi

Većina računara ima ugrađenu podršku za pokretanje putem računarske mreže. U ovom se slučaju operativni sistem se nalazi na disku servera, a određeni dijelovi sistema se prenose klijentu pomoću jednostavnog protokola poput TFTP. Nakon što su ovi dijelovi preneseni, operativni sistem preuzima kontrolu nad procesom pokretanja.

Mrežno pokretanje započinje korištenjem općenitih metoda pristupa mreži koji pruža ROM mrežne kartice, koji obično sadrži PXE sliku.

Lični računari (PC)

uredi

Uređaji za pokretanje

uredi
 
Windows To Go pokretački flash uređaj

Uređaj za pokretanje je uređaj sa kojeg se učitava operativni sistem. Moderni UEFI ili BIOS računara podržava pokretanje s različitih uređaja, obično preko lokalnih uređaja za pohranjivanje, optičkih diskova, USB uređaja, i mrežnog učitavanja.

Slijed pokretanja

uredi

Nakon pokretanja, x86 procesor izvršava naredbe smještene na pretpostavljenoj adresi (adresa fizičke memorije FFFF0h na 16-bitnim x86 procesorima[6] i FFFFFFF0h za 32-bitne i 64-bitne x86 procesore[7] ) koji ga upućuje na početnu tačku firmvera (UEFI ili BIOS) unutar ROM-a. Ovaj program pokreće samotestiranje pri uključivanju (POST) radi provjere i inicijalizacije potrebnih uređaja poput DRAM-a.

Nakon inicijalizacije potrebnog hardvera, firmware (UEFI ili BIOS) prolazi kroz unaprijed postavljenu listu uređaja za pokretanje ("boot device sequence") dok ne nađe onaj sa kojeg može pokrenuti operativni sistem.

Također pogledajte

uredi

Reference

uredi
  1. ^ "Programming the EDSAC". IEEE Annals of the History of Computing. 2: 7–36. 1980. doi:10.1109/mahc.1980.10009.
  2. ^ "The System Design of the IBM Type 701 Computer" (PDF). Proceedings of the I.R.E. 41 (10): 1273. 1953.
  3. ^ From Gutenberg to the Internet, Jeremy M. Norman, 2005, page 436, ISBN 0-930405-87-0
  4. ^ "Oldcomputers: Altair 8800b". Arhivirano s originala, 3. 7. 2019. Pristupljeno 4. 11. 2019.
  5. ^ Ciaramella, Alberto. "Device for automatically loading the central memory of electronic processors." U.S. Patent No. 4,117,974. 1978-10-03. (submitted in 1975)
  6. ^ "iAPX 286 Programmer's Reference Manual" (PDF). Intel. 1983. Section 5.3 SYSTEM INITIALIZATION, p. 5-7. Pristupljeno 23. 8. 2019. Since the CS register contains F000 (thus specifying a code segment starting at physical address F0000) and the instruction pointer contains FFF0, the processor will execute its first instruction at physical address FFFF0H.
  7. ^ "Intel 64 and IA-32 Architectures Software Developer's Manual" (PDF). Intel Corporation. maj 2012. Section 9.1.4 First Instruction Executed, p. 2611. Pristupljeno 23. 8. 2012. The first instruction that is fetched and executed following a hardware reset is located at physical address FFFFFFF0h. This address is 16 bytes below the processor’s uppermost physical address. The EPROM containing the software-initialization code must be located at this address.