Innhold. 1 Operativsystemet Linux. Operativsystemet Linux. 1.1 Hva er Linux?



Like dokumenter
HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring

Introduksjon til dataanlegget ved Institutt for informatikk. Marc Bezem Institutt for informatikk Universitetet i Bergen

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring

En enkel lærerveiledning

Kurset består av to relativt uavhengige deler. Foreleser: Hårek Haugerud, rom PS431

1. Introduksjon til operativsystemer

Generelt om operativsystemer

1. Systemsikkerhet Innledning. Innhold

Resymé: I denne leksjonen vil du få en oversikt over hva et operativsystem er for noe, hvordan det er bygget opp og hvordan det virker.

Filer og kataloger, prosesser og jobber

HØGSKOLEN I SØR-TRØNDELAG

Fjerninnlogging over Internett

Installere programvare gjennom Datapennalet - Tilbud

HØGSKOLEN I SØR-TRØNDELAG

Kursdeltakere som ønsker å bruke leksjonene f.eks til undervisning eller kursformål må ta direkte kontakt med forfatter for nærmere avtale.

Skrivebordsflata. Opphavsrett: Forfatter og Stiftelsen TISIP

Operativsystemer: Litt IT-historie

Operativsystemer og grensesnitt

Installere JBuilder Foundation i Mandrake Linux 10.0

4. Installasjonsveiledning. Experior - rich test editor for FitNesse -

Operativsystemer og Filbehandling

Oversikt. Historie Struktur Moderne UNIX systemer Moderne UNIX kernel struktur 1 UNIX. 2 Linux. 3 Process. 4 Process models

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring

1. Introduksjon til operativsystemer

Oversikt. Beskrivelse Bash. 1 UNIX shell. 2 Kommandolinje som brukergrensesnitt. 3 Input og output. 4 Bash builtins. 5 Linux utilities.

Grunnkurs i. Windows Utforsker. Nordre Land kommune IKT-avdelingen

Generelt om operativsystemer

"How I hate this damned machine, I wish that I could sell it, It never does what I want it to, But only what I tell it".

1. Installasjon av Novell Netware 6 server

Innføring i Linux. Operativsystemer

Ny på nett. Operativsystemer

Installasjonsveiledning Oppgradering av tidligere versjon

Unix/Linux en annen måte å gjøre ting på

VMware Horizon View Client. Brukerveiledning for nedlasting, installasjon og pålogging for fjerntilgang

Definisjon av prosess

Introduksjon til kurset og dets innhold

1 Diverse linuxtips. Innhold

Brukerveiledning for programmet HHR Animalia

Operativsystemer: Litt IT- og Linux-historie

Gespage Utskrift fra nettsiden

Brukerveiledning Custodis Backup Basic Epost:

Hvordan å lage og publisere ditt personlige visittkort

Mangelen på Internett adresser.

Installere JBuilder Foundation i Windows XP

ONSCREENKEYS 5. Windows XP / Windows Vista / Windows 7 / Windows 8

Hvor og hvordan lagrer du mediafilene dine?

Brukerveiledning. Kom i gang. publiseringsverktøy. versjon 2 - revidert AESTON. Side 1

Skriv ordbøker og litteratur på Tegnspråk med en nett-tjener i lommeformat! For ivrige Tegnskrift (SignWriting )- brukere!

Tilgang til nytt skrivebord KONTOR, samt oppsett for Outlook 2010

Installasjon av Windows 7 og Office 2016

Generelt om permanent lagring og filsystemer

Labbene skal være oppsatt med dual boot. Disse labene er satt opp med dual boot, dvs. at vi må velge Linux eller Windows under oppstart av maskin.

Nedlasting og brenning av egne ISO-cd-er

som blanker skjermen (clear screen). Du får en oversikt over alle kommandoene ved å skrive,

Du har sikkert allerede startet noen programmer ved å trykke på kontrollknappen. VINDUER = WINDOWS

Brukerveiledning Privatisering av datamaskinen For avgangselever våren 2017

Brukerveiledning Webline Portal for E-post Bedrift/E-post Basis

Memoz brukerveiledning

Tilgang til nytt skrivebord «KONTOR»

Operativsystemer: Litt IT- og Linux-historie

Fjerninstallasjon av Windows 7

Humanware. Trekker Breeze versjon

Installere programmer, og filhåndtering

Filer i Linux og Bourne-again shell

Import av klientfiler er kun mulig fra Akelius Årsavslutning, Akelius Skatt og Akelius Revisjon.

1. MSI fra Group Policy

Del 1: Overgang fra gammel hjemmeside til ny hjemmeside

$ls -l $grep -i Olsen adresseliste.txt less #!/bin/sh $echo `ls` $chmod 755. Praktisk Linux. Grunnleggende skall kommandoer. Irene Ludvigsen Husa

PC-bok 1. Svein-Ivar Fors. Lær deg. og mye mer! Windows Tekstbehandling Regneark Mange nyttige PC-tips!

Nedlasting av apper på Apple

WordPress. Brukerveiledning. Kjære kunde. Innlogging:

Unix/Linux en annen måte å gjøre ting på

Installasjon av Nett-TV-meter Trinn for trinn

Brukerhåndbok CabinWeb Bruker

Litt info om Unix-nettet/maskinene. Hvorfor kjøre matlab på Unix. Overføring av filer mellom PC og Unix. Hvordan få tilgang/unix-bruker

Viktig informasjon om Microsoft lisenser og din PC

Mamut. Installasjonsveiledning. Oppdatering til versjon Detaljert steg-for-steg veiledning i hvordan oppdatere ditt datax-program fra Mamut

Oppgaver til forkurs i informatikk dag 1

Timer. Før du starter å bruke programmet må du gjøre følgende.

Næringsregner på PC n versjon 1.1.0

Humanware Companion.

INSTALLASJONSVEILEDNING FOR DATAX REISEREGNING BEDRIFT

SPSS Høgskolen i Innlandet

BRUKERMANUAL. Telsys Online Backup

INSTALLASJONSVEILEDNING

Hvis du gjenkjenner ett av disse to bildene over så er dere på vår ASP-server.

Bytte til OneNote 2010

og WWW. Erik Hjelmås, HiG. 22. juni 2000

Brukerdokumentasjon Citrix og Multiframe InnsIKT 2.0. Versjon 1.5. Innholdsfortegnelse

)DVW3ODQ,QVWDOOHULQJ $%% $6 'LYLVMRQ $XWRPDVMRQVSURGXNWHU ΑΒΒ 3RVWERNV 6NLHQ

Kjenner du alle funksjonene på tastaturet?

Oblig 5 Webutvikling. Av Thomas Gitlevaag

Kom i gang med VPN inn til skolens filserver. Innhold

Bruker- dokumentasjon. for. Norsk Kompetanseregister

Viktig informasjon til nye brukere av Mac-klient fra UiB

Steg for steg. Sånn tar du backup av Macen din

Bifrost 1.1 Brukerdokumentasjon. Redpill Linpro AS

Innhold. Epostprogrammer og webmail.

IMS Intelligent MediaServer Desktop Upload Tool

infotorg Enkel brukermanual

Transkript:

Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Geir Maribu 2.9.2014 Lærestoffet er utviklet for faget «IINI2008 Operativsystemer med Linux» Resymé: I denne leksjonen gis det en kort omtale av Linux, dvs historien bak Linux, hvorfor Linux er såkalt fri programvare etc. Videre gis det en kort oversikt over hvordan Linux er bygget opp. Innhold 1 1 1.1 Hva er Linux?............................... 1 1.2 Kort historikk............................... 3 1.3 Hvorfor er Linux fri?........................... 4 1.4 Innlogging og utlogging......................... 6 1.4.1 Innlogging............................ 6 1.4.2 Hjemmekatalog.......................... 6 1.4.3 Kommandobasert grensesnitt................... 8 1.4.4 Skallet.............................. 9 1.5 En tur inni Linux............................. 9 1.5.1 Utstyrsdrivere........................... 10 1.5.2 Linux-kjernen........................... 11 1.5.3 Systemkall............................ 12 1.5.4 Brukerprogrammer........................ 13 1 1.1 Hva er Linux? Linux er et operativsystem på lik linje med Windows, bare med den vesentlige forskjell at Linux er et fritt system med åpen kildekode fritt tilgjengelig for alle. Alle som ønsker

side 2 av 13 det, kan fritt laste ned Linux fra nettet og bruke det på så mange maskiner de bare måtte ønske. Her er det ikke snakk om antall lisenser og pris per lisens etc. Hvordan er så dette mulig? Hvordan kan et så populært og effektivt operativsystem være gratis tilgjengelig? Hemmeligheten bak dette er en organisasjon som oppstod i USA i 1984, som mente at basis programvare av typen operativsystemer må være gratis tilgjengelig for alle. GNU het denne organisasjonen og var svært sentral i utviklingen av mye av programverktøyene som brukes på Linux. Gratisprogrammene ble rett og slett utviklet som en global dugnad, der alle bidro enten som designere, utviklere eller testere. Internett gjorde et slikt samarbeid mulig. Du har sannsynligvis hørt og lest mye om Linux i det siste og har derfor valgt å finne ut mer. Fra før av er du vant med et PC-miljø av typen Windows 200X/XP/Vista/7 og vet derfor hva et operativsystem er for noe og hvilke tjenester du finner der. Linux er på mange måter svært forskjellig fra Windows. Fra Windows er du vant med et grafisk brukergrensesnitt basert på menyer og knapper, mens ditt første møte med Linux sannsynligvis vil gå via et kommandobasert brukergrensesnitt der oppgaver som skal utføres, gis som kommandoer du skriver inn ved hjelp av tastaturet. Et kommandobasert brukergrensesnitt gjør at du kommer mye «tettere» innpå maskinens ressurser, og dermed har mer kontroll over hva du ønsker å få utført på maskinen. Dette er egenskaper som gjør at Linux ofte er foretrukket som tjenermaskiner, f.eks. som webtjener, fordi et kommandobasert grensesnitt er et effektivt grensesnitt å jobbe i for systemansvarlig. Men Linux er ikke bare et kommandobasert grensesnitt. På Linux kan du velge å kjøre grafiske brukergrensesnitt på lik linje med det du finner på Windows. Ja, du kan faktisk velge ganske mange forskjellige slike brukergrensesnitt, og der gratis alle sammen. Dersom du velger å bruke Linux som din personlige arbeidsstasjon på samme måte som en Windowsmaskin, er det naturlig å velge seg et grafisk brukergrensesnitt på Linux.

Kort historikk side 3 av 13 1.2 Kort historikk Det var finnen Linus Torvalds som startet utviklingen av Linux. Tidlig på 90-tallet laget han kjernen til Linux og gjorde dette arbeidet tilgjengelig på Internett. Kjernen til Linux er de innerste delene av operativsystemet og står for de virkelige basistjenestene som minneadministrasjon, håndtering av inn/ut-enheter, prosessadministrasjon, etc. Andre programutviklere grep tak i dette og utviklet systemet videre, slik at et par år etter (i 1994) forelå det en versjon 1.0 av systemet fritt tilgjengelig på Internett. Men Linux var ikke noe helt nytt for folk, selv om kjernen til Linux er fullstendig nyskrevet. Linux er et UNIX-system, og UNIX er et operativsystem som har eksistert siden 1970. UNIX sin suksess skyldes bl.a. at systemet var fritt tilgjengelig for universitetsmiljøer og oppnådde på denne måten en solid spredning til mange fagmiljøer. UNIX har også stått meget sentralt i utviklingen av Internett. Det nye med Linux er at systemet «eies» av brukerne i den forstand at utviklingen av systemet er en gigantisk dugnad, der brukere over hele verden fortsatt deltar i utviklingen.

side 4 av 13 For disse bidragsyterne er det en politisk grunnholdning at basis programvare skal være gratis tilgjengelig for alle. Samtidig demmer det også kraftig opp for monopoltendenser som man ser i forbindelse med Microsoft sin satsning. Ja, faktisk er Linux blitt så populær og utbredt at etablerte systemleverandører (som f.eks. IBM) satser sterkt på Linux. Også Microsoft har innsett at man må regne med Linux i framtida. 1.3 Hvorfor er Linux fri? Begynnelsen var UNIX, et operativsystem som oppstod på slutten av 60-tallet og begynnelsen av 70-tallet. Det var Ken Thompson og Brian Kernighan, begge ansatt ved Bell Labs, som skrev den første versjonen av UNIX. Bakgrunnen var at de trengte et fleksibelt og dynamisk miljø for programutvikling, og ikke minst ble det lagt stor vekt på mulighetene for å utveksle data seg imellom. UNIX fikk etter hvert en stor utbredelse fordi universitetene fikk gratis tilgang til systemet. UNIX utviklet seg videre i disse miljøene, og sammen med utviklingen av Internett fikk UNIX etter hvert en stor betydning. Flere store organisasjoner i USA prøvde på 80-tallet å kommersialisere UNIX og dermed vinne et marked for UNIX. Alle de store var med, både IBM, Hewlett-Packard, DEC, AT&T etc. De etablerte etter hvert konkurrerende samarbeidsorganisasjoner som utviklet UNIX videre og prøvde å vinne herredømme over systemet. Det betydde også at et system som i utgangspunktet var gratis, nå kostet penger. På 80-tallet var det også flere andre strømninger som bidro i en helt annet retning, nemlig å tilby gratis basis programvare til brukerne, og spesielt var dette viktig for basis programvare som operativsystemer. Hele bevegelsen bygde på en filosofi der denne typen programvare skulle være gratis, og der folket sjøl skulle utvikle programvaren via en gigantisk dugnad. Det er først og fremst Richard Stallman som er opphavsmannen til denne bevegelsen. Han startet GNU-prosjektet med den hensikt å lage et fritt tilgjengelig UNIX-lignende operativsystem. På samme måte som med UNIX i de første årene, så skulle dette operativsystemet distribueres som kildekode, slik at programmerere kunne lese, endre og redistribuere systemet uten restriksjoner. I forlengelsen av GNU-prosjektet startet Stallmann og noen flere en organisasjon kalt Free Software Foundation (FSF) med formålet å lage fritt tilgjengelig programvare uten restriksjoner på kopiering, redistribusjon og endring av programvaren. De tre grunnreglene til FSF er: Du kan kopiere og gi bort GNU-programvare til hvem som helst.

Hvorfor er Linux fri? side 5 av 13 Dersom du er en programmerer, kan du endre på GNU-programmer så mye du bare måtte ønske. Dette er mulig siden du har full tilgang til kildekoden. En forutsetning for å kunne gjøre dette er at programvaren distribueres innenfor de samme reglene som gjelder for FSF. Du kan gjerne distribuere og ta deg betalt for egne versjoner av GNU-programvare. GNU kom fram med nye egne versjoner av en rekke programmer, f.eks. kompilatorer og programeditorer, som var mye brukt på UNIX-systemer. Men selve operativsystemet, dvs. kjernesystemet, manglet. Samtidig med dette arbeidet i GNU-prosjektet hadde Andrew S. Tanenbaum skrevet ei lærebok i operativsystem. I denne boka hadde han inkludert et UNIX-lignende operativsystem som han kalte for Minix. Dette var et system kun beregnet på øvingsopplegg i tilknytning til boka, og hele kildekoden var derfor lagt ved boka slik at studenter kunne endre på systemet og prøve ut forskjellige mekanismer. Minix var et moderne system i den forstand at det ikke var snakk om en monolittisk kjerne slik som UNIX, men en kjerne som bestod av mange kommuniserende prosesser. Altså et modularisert og meldingsbasert operativsystem. Andrew S. Tanenbaum fikk mange henvendelser om å bygge ut dette øvingssystemet til et fullstendig system, som kunne være basis for et nytt GNU operativsystem. Men Tanenbaum hadde verken tid eller ønske om noe slikt, da Minix først og fremst skulle være et enkelt øvingssystem til læreboka. Linux Torvalds heter en finsk student som hadde brukt læreboka til Tanenbaum, og som kjente Minix godt. Siden Tanenbaum ikke ønsket å bruke Minix som et utgangspunkt for en «ny UNIX», skrev Torvalds sitt eget UNIX-system. Han laget systemet ved hjelp av Minix, dvs. han brukte programeditor og kompilatoren som fulgte med Minix, og laget en helt ny «UNIX-kjerne». Dette systemet ble ønsket velkommen av GNU-folkene og sammen med den øvrige GNU-programvaren er det dette som i dag utgjør Linux. Altså et fritt tilgjengelig operativsystem med en mengde tilhørende programvare. Det Linus laget var en ny kjerne til et operativsystem. Sammen med alt det andre av systemprogramvare som inngår i et operativsystem, og som GNU-folkene allerede hadde utviklet, var nå et komplett system på plass, nemlig GNU/Linux. I dagligtale hører en ofte bare snakk om Linux, og Linus Torvalds får ofte æren for dette. Men det er ikke helt rett å gi Linus all æren. Linus laget kjernen, mens alt det andre fantes allerede under GNU-paraplyen. Derfor er også det rette navnet å bruke GNU/Linux. Merk også følgende sitert fra GNU s hjemmeside på www.gnu.org: Free software is a matter of liberty, not price. To understand the concept, you should think of free as in free speech, not as in free beer. Med fri menes altså ikke gratis, men at det er fritt fram å bruke systemet, og at kildekoden er åpen og fri i den forstand at du kan studere den, endre på den etc.

side 6 av 13 1.4 Innlogging og utlogging Etter at du har fått kontakt med Linux, enten via oppstart av egen maskin eller ved å kontakte en Linux-maskin via Internett, er du klar for innlogging. Innlogging kreves nemlig av alle brukere på en Linux-maskin. Det betyr at du på forhånd må være opprettet som bruker på systemet, eller sagt på en annen måte: Det må finnes en brukerkonto tilhørende deg på maskinen. Dersom du har egen maskin med automatisk oppstart av grafisk brukergrensesnitt får du et eget innloggingsvindu. Etter oppstart av det grafiske brukergrensesnittet må du finne fram til et menyvalg for oppstart av terminalvindu. Da vil du få fram et kommandobasert grensesnitt. 1.4.1 Innlogging Når maskinen er klar til bruk vises dette ved at maskinen skriver ut følgende: Login: Det betyr at du skal skrive inn navnet til brukerkontoen din og avslutte med Enter-tasten. Som oftest er dette navnet avledet av fornavnet og etternavnet ditt. F.eks vil kario være et naturlig brukernavn å gi til Kari Olsen. Det antas her at du kjenner brukernavnet ditt. Deretter blir du bedt om å skrive inn passordet ditt. Password: Skriv inn passordet og avslutt med Enter-tasten. Legg merke til at hvert tegn du skriver inn vises som en stjerne på skjermen. Grunnen er at ingen skal kunne lese passordet ditt over skulderen. 1.4.2 Hjemmekatalog Dersom brukernavn og passord er korrekt, er du nå innlogget på maskinen og har fått tilgang til ditt brukerområde. Dette kalles også din hjemmekatalog. Her kan du styre som du sjøl vil, dvs opprette filer og kataloger, kopiere filer, slette filer etc. Figuren nedenfor viser brukerkontoen kario til Kari Olsen etter første innlogging. Først ser du kommandoen ls -l som Kari utfører for å se hvilke filer som befinner seg på hjemmekatalogen. ls står for list og l står for lang utlisting, dvs mye informasjon om hver fil. Kommandoen gir som resultat null filer gitt av teksten «totalt 0». Det er jo helt naturlig siden brukerkontoen er nyopprettet.

Innlogging og utlogging side 7 av 13 Kari prøver derfor i stedet kommandoen ls -al for å få listet ut absolutt alle filer (a for alle), også filer som har punktum som første tegn, dvs filer som normalt holdes skjult. Resultatet er vist nederst i vinduet ovenfor. Merk at det kan variere fra system til system hvilke filer du finner ved denne utlistingen. På hjemmekatalogen kan Kari opprette nye filer og nye kataloger, og under der igjen nye kataloger. I figuren på neste side ser du et utsnitt av et katalogtre for Linux. Her ser du også katalogen /home, der hjemmekatalogene til alle brukerne havner. Som eksempel er bruker kario sin hjemmekatalog vist med både underkataloger og filer på underkatalogene. Tilsvarende vil det også være for de andre hjemmekatalogene.

side 8 av 13 Når en bruker logger seg inn blir hjemmekatalogen automatisk stående katalog, og all videre navigering i katalogtreet har denne katalogen som utgangspunkt. Toppnivået i en slik katalogstruktur kalles for rot-nivået, og noen av katalogene du finner på dette nivået er, /bin, /etc, /home, /lib og /tmp. En vei nedover i katalogstrukturen kalles en sti. Veien ned til katalogen brev hos bruker kario blir f.eks. stien /home/kario/brev. 1.4.3 Kommandobasert grensesnitt Figuren ovenfor der Kari gir kommandoen ls -l viser et såkalt kommandobasert brukergrensesnitt der alle oppgaver du ønsker å utføre, skrives inn som kommandosekvenser. Dette i motsetning til i grafiske brukergrensesnitt, der kommandoer gis som menyvalg og klikk på knapper. I denne sammenhengen skal vi bruke det kommandobaserte grensesnittet til Linux. Det gir oss en del fordeler når vi skal komme Linux nærmere «inn på livet». Dessuten hører

En tur inni Linux side 9 av 13 det hjemme i et grunnleggende operativsystemkurs å lære seg basis-kommandoene i Linux. Mer om Linux-kommandoer finner du i et annet dokument tilhørende denne leksjonen. 1.4.4 Skallet Etter innlogging kommer Kari til sin egen hjemmekatalog. Det er denne katalogen som er stående katalog (eller den åpne katalogen) i vinduet vist ovenfor. Figuren nedenfor viser at Kari rett etter innlogging ser et blinkende skrivemerke bak en tekststreng. Det er et program som står her og venter på at Kari skal skrive inn ei kommandolinje. Dette programmet kalles et skall (også kalt en kommandotolker). På Linux-systemer er det skallet bash som er standard skall. Skallet tar i mot kommandolinje fra bruker, sørger for at den aktuelle kommandoen blir kjørt, og skriver til slutt ut ledeteksten for å motta nye kommandoer. Denne ledeteksten kalles ofte også for kommando-prompten. Nedenfor er den gitt av teksten [kario@gm3 kario]. Den første teksten «kario» angir brukernavnet, «gm3» er navnet til Linux-maskinen, og den andre teksten «kario» angir katalogen som er åpen akkurat nå. I dette eksemplet er det katalogen kario som er åpen, altså hjemmekatalogen. Når andre kataloger er åpne vil denne teksten endre seg, f.eks hvis underkatalogen brev er åpen vil prompten se slik ut: [kario@gm3 kario/brev]. (OBS! Hvordan prompten skal se ut kan stilles inn, så derfor kan den se annerledes ut på ditt system). Vi kommer mer tilbake til skallet og dets egenskaper seinere. 1.5 En tur inni Linux Linux-systemer er bygd opp lagvis med brukeren og brukerkommandoer øverst og maskinvaren nederst. Figuren på neste side viser en skisse av lagdelingen i Linux.

side 10 av 13 1.5.1 Utstyrsdrivere Hensikten med nivået utstyrsdrivere er å kunne kommunisere direkte med maskinvaren. I dette nivået finner du ett program for hver utstyrsenhet, som f.eks for harddisk, mus, CD-ROM for bare å nevne noen få eksempler. Driverprogrammene kjører på vegne av Linux, f.eks når en brukerkommando eller brukerprogram krever bruk av maskinvare. Det kan for eksempel være en kommando for utskift av fil. Da kreves både tastaturdriver, diskdriver og skriverdriver. Disse programmene ligger skjult dypt nede i operativsystemet, og brukeren kommer aldri direkte i kontakt med disse. Det er produsenten av utstyret som kjenner utstyret best, og det er derfor også produsenten som lager driverprogram for utstyret. Dette er mulig siden det fra Linux sin side er definert et kall-grensesnitt mot driverprogrammer. Oppgaven til produsenten er å lage innhold i disse driverkallene.

En tur inni Linux side 11 av 13 1.5.2 Linux-kjernen Prosess-administrasjon Vi har tidligere sett at det er prosesser som er det sentrale når det gjelder kjøring av programmer. Prosessen er et program i aktivitet. Den delen av kjernen som har med prosess-administrasjon å gjøre lager nye prosesser, stopper prosesser midlertidig, avslutter prosesser og tar vare på statusinformasjon til prosessene. Her finner vi også diverse mekanismer for kommunikasjon mellom prosesser, deling av CPU mellom mange samtidige prosesser. Kommunikasjon mellom prosesser er grunnlaget for klient-tjener-teknologien. Linux tilbyr flere mekanismer for kommunikasjon mellom prosesser: Kanal (eng. pipe): Dette er nok den mest åpenbare kommunikasjonsformen mellom prosesser i Linux, siden den brukes så ofte i brukerkommandoer. Kommunikasjonen foregår mellom to prosesser (som må være i slekt med hverandre). Kommunikasjonen foregår via et midlertidig minneområde som opprettes for formålet. Navngitt kanal (eng. Named pipe): Nå foregår kommunikasjonen via ei navngitt fil på harddisken. Kommunikasjonen er nå av varig karakter, og den kan foregår mellom vilkårlige prosesser (trenger altså ikke være slektninger). Prosessene må befinne seg på samme maskin. BSD socket: Midlertidig kommunikasjonskanal som tillater to eller flere prosesser på forskjellige maskiner, å snakke sammen via Internett. Fil-administrasjon Denne delen av kjernen tar seg av all administrasjon i forbindelse med filer og kataloger. Her er det snakk om oppretting av filer, fjerne filer, kopiere filer etc. Tilsvarende for kataloger. Videre er det snakk om å holde orden på filene, gruppere disse i egne kataloger, sette tilgangsrettigheter, styre adgangen til filene ut fra satte tilgangsrettigheter etc. Hver bruker har sitt eget hjemmeområde på maskinen der filer og kataloger kan opprettes, fjernes, kopieres etc. Det er komponenten Filadministrasjon i kjernen som sørger for at alt dette skjer. Ingen brukere har direkte adgang til harddisken. Alt skjer gjennom kjernen og filadministrasjons-komponenten. Minneadministrasjon Operativsystemer kjører flere prosesser samtidig. Dette setter krav til administrasjon av minnet, da alle kjørende prosesser må ha tilstrekkelig plass i minnet. Hver prosess har

side 12 av 13 sitt eget adresse-rom, dvs det området av adresser som er satt av til data og programkode. Adressene i adresserommet starter på adresse 0 og går opp til en max-adresse. Det er innenfor dette området prosessen har sine data og sine instruksjoner. Minneadministratoren henter inn prosesser fra disk til minne slik at prosessens behov for minne (adresse-rom) er oppfylt. Minneadministrator holder også rede på hvor de forskjellige prosessene befinner seg i minnet, passer på at en prosess ikke aksesserer en annen prosess sitt minne, deallokerer (frigir) minne når en prosess avslutter, holder rede på ledig plass i minnet. Diskadministrasjon Denne delen av kjernen har ansvaret for å administrere ledig og brukt plass på disken. Når nye filer skal opprettes er det diskadministratoren som finner fram til ledig plass. I et flerbrukersystem vil det alltid være mange samtidige forespørsler til disken. Disse forespørslene må organiseres og settes i kø, og betjenes en etter en. Denne oppgaven utføres av disk-scheduleren, som er en del av diskadministratoren. Oppsummert Dette er noen av de mest sentrale oppgavene til kjernen. Vi har bare så vidt tangert innom hva disse forskjellige komponentene gjør, og hvordan de utførerer operasjonene. Seinere skal vi i detalj se mer om hvordan dette foregår. Den viktigste oppgaven til kjernen er å se til at alle de oppgavene som maskinen har, blir utført rettferdig, i en gitt rekkefølge og på en sikker måte. Det innebærer blant annet at ingen prosesser skal bli ignorert, du skal ikke risikere at andre prosesser leser dine data, utskriftene dine skal komme pent og pyntlige og ikke som tekst blandet sammen fra flere brukere. Videre skal ingen brukerprosess kunne ta over hele maskinen, og andre brukere skal ikke kunne fjerne dine prosesser. Mer om disse tingene, og andre ting, kommer seinere. 1.5.3 Systemkall Systemkallene er brukerprogrammets innfallsport til kjernen. Via disse kallene får brukerprogrammene utført operasjonene som involverer utstyrsenhetene som er koblet til maskinen, f.eks. skriver, harddisk, CD-ROM etc. Men ikke bare utstyrsenheter; systemkallene gjelder også til interne tjenester i kjernen, f.eks opprettelse av en pipe (rør), tilgang til felles dataområder, kommunikasjon med andre prosesser etc.

En tur inni Linux side 13 av 13 Det som skjer under et systemkall er at programmet skifter fra å utføre programinstruksjoner i brukermodus til programinstruksjoner i kjernemodus. Poengene med systemkallene er at de opererer mot utstyrsenheter og mot interne datastrukturer i kjernen. Dette er med andre ord ganske kritiske programinstruksjonen som kan føre til store konsekvenser dersom noe er feil skrevet. Men siden disse er skrevet av eksperter og er gjennomtestet over flere år, er det stort sett ingen fare. Systemkallene virker som de skal. Dette er også grunnen til at systemkall brukes; man kan nemlig ikke tillate at hver enkelt bruker eller brukerprogrammerer får lov å programmerere direkte mot utstyrsenheter. 1.5.4 Brukerprogrammer På dette nivået er det vi finner brukeren og hans/hennes programmer. Her finner vi typiske programmer som tekstbehandling, regneark, bildeprogrammer, nettleser, programeditor etc. Men her finner vi også alle kommandoene i Linux, f.eks kommandoer som ls, ps, cp etc. Et brukerprogram får tak i systemressurser, dvs interne datastrukturer i kjernen eller utstyrsenheter på to forskjellige måter. Det er via: Funksjoner i funksjonsbiblioteker som tilhører det aktuelle programmeringsspråket. Direkte kall til operativsystemets systemkall. Funksjonskall via funksjonsbiblioteket vil i neste omgang gjøre systemkall direkte til kjernen, så til slutt ender begge metodene opp på samme sted, nemlig som et systemkall. Kall via funksjonsbibliotek gir et mer høynivå og enklere grensesnitt mot systemressursene. I tillegg kan det være snakk om konvertering av formater, enkel bufring av data etc ved kall til biblioteksfunksjon i stedet for direkte kall til systemkall.