Oppstart av Linux

Fra IT2
Hopp til: navigasjon, søk
Init.jpg

Denne artikkelen omfatter oppstarten av en typisk Linux-maskin.

Det første som skjer når noen slår på maskinen, er at noen enkle programsetninger fra maskinvaren i ROM sørger for at et såkalt boot-program hentes inn fra disken og legges i minnet. Den første jobben til operativsystemet er å lage et miljø for prosesser og resurser, og fr oppretting av nye prosesser. Straks etter at operativsystemet er lastet inn i minnet, tar det kontrollen over alle maskinvareenhetene, initialiserer diverse datastrukturer og setter status på i/o-enheter. Etter at disse operasjonene er utført har operativsystemet opprettet et abstrakt ressursmiljø som prosessene kan benytte seg av.


Den første prosessen som lages er en init-prosess. Dette er alle prosessers mor, siden alle de andre prosessene blir laget ut fra denne. Da blir fork-systemskallet tatt i bruk, som enkelt lager en kopi av en eksisterende prosess ved behov. Denne prosessen lager en ny prosess for hver terminal som er koblet opp til maskinen. Det betyr at alle prosessene er lik den første som ble laget, men alle har sitt eget pid-nummer (pid = prosess-indifikator).

Hver av init-prosessene utfører et exec-systemkall for å skifte ut sin eksisterende init-programkode med getty-programkode (getty gjør en del operasjoner på terminal og terminal-driver). Det betyr altså at hver prosess koblet opp mot terminalene nå har skiftet ut programkoden sin med en ny programkode som er mer tilpasset den jobben de skal utføre.

Etter at login-navn er skrevet inn er det ikke lenger bruk for getty-prosessen. Den skifter derfor ut programkoden sin med mogin-programkode. Prosessen er fortsatt den samme. Login-prosessen slår opp i passord-fila og sjekker om brukernavn og passord er registrert på maskinen samtidig som de stemmer overens. Dersom login-operasjonen går greit så vet operativsystemet hvem du er og gir deg tilgang til katalogene dine.