Sāknēšanas programma
Sāknēšanas programma (angļu: Boot loader, krievu: программа самозагрузки) ir īsa programma, kas pastāvīgi glabājas datora energoneatkarīgajā atmiņā un kas vajadzības gadījumā no lasāmatmiņas operatīvajā atmiņā izsauc uzdevumu risināšanas vadības sistēmu (piemēram, operētājsistēmu) vai tās ielādes programmu.
Lielākā daļa datoru paši par sevi spēj izpildīt tikai kodu, kas glabājas lasāmatmiņā vai operatīvajā atmiņā, savukārt lielākā daļa mūsdienu operacionālo sistēmu glabājas citos datu nesējos, visbiežāk cietajos diskos. Ieslēdzot datoru, tās operatīvajā atmiņā nav operacionālās sistēmas koda, līdz ar to tas nespēj veikt sarežģītākas operācijas, piemēram, nolasīt failu no diska.
Lai atrisināt šo problēmu, tiek rakstīta neliela programma, ko sauc par sāknēšanas programmu. Tās uzdevums nav nodrošināt plašu operacionālās sistēmas funkcionalitāti, bet tikai ielasīt operacionālās sistēmas kodu operatīvajā atmiņā un nodot vadību operacionālās sistēmas rīcībā. Dažkārt arī tiek lietotas vairāku pakāpju sāknēšanas programmas - viena līmeņa sāknēšanas programma ielādē nākamī līmeņa sāknēšanas programmu, līdz pēdējā no tām ielādē arī pašu operacionālo sistēmu.
OS ielādes process personālajos datoros
Sākumā pieejamajiem personālajiem datoriem bija ļoti maz atmiņas. Liela daļa programmatūras bieži vien jau no sākuma bija sistēmas lasāmatmiņā. Šīm sistēmām bieži vien nemaz nebija operētājsistēmas (vai arī to bieži nelietoja), jo tā aizņemtu pārāk daudz sistēmas resursu.
IBM PC savietojamajos datoros, pēc ieslēgšanas notiek šādi procesi:
- POST (power on self test) - lasāmatmiņā esoša programma, kas pārbauda visu sistēmas ierīču stāvokli (eksistē/neeksistē, dažām ierīcēm, ja eksistē, tad kurā vietā (PCI adrese). Šī ir tā programma, kas ja datoram ir izrauta klaviatūra, izmet paziņojumu, ka klaviatūra nav atrasta. POST ir BIOSa daļa.
- BIOS meklē ielādes ierīci. BIOS konfigurācijā var norādīt kādā secībā pārbaudīt kādas ierīces. Dažiem BIOSiem kādu brīdi pēc ieslēgšanas (tomēr ne uzreiz), nospiežot noteiktu pogu, var dabūt sarakstu ar potenciāli pieejamajām ielādes ierīcēm un izvēloties ierīci no tā saraksta var apiet BIOSa konfigurācijā norādīto ierīču meklēšanas secību. Parasti pirmā ielādes ierīce ir diskešu ierīce vai optisko disku nolasītājs, pēc tam mēģina cieto disku un pašās beigās mēģina ielādēties no tīkla (PXE). OS ielādes ierīces var būt:
- Diskešu ierīce - šī iekārta bija pieejama visiem pirmajiem PC datoriem (pašā sākumā nemaz nebija citu variantu). Mūsdienās šo lieto arvien mazāk.
- Cietais disks - Mūsdienās operētājsistēmu parasti ielādē no cietajiem diskiem, citas ierīces lieto tikai ārkārtējos gadījumos. Cietais disks var būt pieslēgts pie sistēmas disku adaptera vai arī pie atsevišķa disku adaptera (karte, kas iesprausta PCI slotā). Parasti sākumā mēģina lādēties no sistēmas disku adaptera pieslēgtā diska.
- Optisko disku nolasītājs - Mūsdienās otra plašāk lietotā ielādes ierīce. Pamatā lieto lai ieinstalētu operētājsistēmu cietajā diskā, vai arī ja kādu citu iemeslu dēļ negrib lietot cietajā diskā esošo operētājsistēmu.
- USB mass storage - USB flašatmiņa - BIOS šo emulē kā ierīci, kas līdzīga cietajam diskam vai disketei.
- PXE tīklakarte - ielāde no lokālajā tīklā esoša PXE servera.
- Tālākais ir atkarīgs no izvēlētās ielādes ierīces veida:
- Parasti tā ir lokāla, bloku segmentēta ārējā atmiņas ierīce (cietais disks, kompaktdisks, utt). Šajā gadījumā BIOS nolasa pirmo ierīces sektoru (MBR) (magnētiskajiem datu nesējiem (disketēm un cietajiem diskiem) sektoru izmēri (vismaz līdz 2008. gadam) bija 512 baiti), palaiž tur esošo programmu un nodod vadību tai. Parasti šī programma ir sāknēšanas programma, kas turpina sistēmas ielādi.
- Ja ielādes ierīce ir PXE tīklakarte, tad process ir sarežģītāks. Vienkāršotā variantā: BIOSa ielādes programma satur DHCP un TFTP klientus. Sākumā DHCP klients dabū IP adresi un TFTP servera adresi no kurienes ielādēt OS. Pēc tam TFTP klients ielādē atmiņā no servera sāknēšanas programmas failu un palaiž tur esošo programmu un nodod tai vadību. Šis fails var būt ievērojami lielāks (vairāki megabaiti) kā diska sektors, taču tam ir jānodrošina visai augsta līmeņa operētājsistēmas funkcionalitāti, lai varētu turpināt operētājsistēmas ielādi.
- Tālākais operētājsistēmas ielādes process ir atkarīgs no operētājsistēmas. Vienkāršākām sistēmām tas ir vienkāršāks, sarežģītākām - sarežģītāks. Piemēram, DOSam, diska pirmajā sektorā esošā sāknēšanas programma ielādē divus tajā pašā diskā esošos failus: io.sys un msdos.sys, pēc tam nolasa tajā pašā diskā esošo config.sys un ielādē tur norādīto lietotāja interfeisu (parasti command.com). Config.sys var būt norādīti arī citi ielādējamie faili (pamatā ierīču draiveri). Ja config.sys neatrodas, tad vienkārši ielādē command.com. Vēl, command.com palaižoties pirmo reizi var palaist failu autoexec.bat, pēc kura izpildes pabeigšanas DOS ielāde ir pabeigta. Citām OS šis process ir sarežģītāks, piemēram windows NT un linux parasti lieto otrā līmeņa boot loaderi, kas patas par sevi ir primitīva operētājsistēma un, ja ir vairākas operētājsistēmas (vai vienas operētājsistēmas vairākas konfigurācijas), ļauj izvēlēties, kuru tieši ielādēt.