Linux:Beskrivelse av Linux
Tilbake til Linux
Beskrivelse av Linux, viktige forskjeller mellom Linux og andre operativsystemer
redigerLinux er bygget opp på en svært annerledes måte en de fleste andre operativsystemer – det viktigste trekket er at ting er delt opp i underkomponenter. Dette medfører igjen at ting er lett å tilpasse til et spesielt behov – noe som har gjort at det i dag kjører overalt fra noen av de kraftigste dataklyngene i verden, til vanlige kontormaskiner, til vevtjenere, til PDA-er, og helt ned til å være innebygget i diverse nettverksutstyr. Dersom du skal være 100% korrekt kjører du ikke operativsystemet «Linux» på datamaskinen din, men «GNU/Linux». Dette skyldes at Linux egentlig kun er en kjerne – en samling drivere som programmer kan kjøre oppå. Direkte oppå denne kjerna kjører «GNU», som er en samling verktøy som skall, kompilatorer, programmer for å kopiere filer rundt på harddisken, grafiske miljøer etc. Alle disse komponentene er fri programvare, og kan derfor modifiseres fritt – eller byttes ut. Likevel brukes ofte kun «Linux» selv om man mener det komplette operativsystemet. Når f.eks. Nokia lager en dings for å surfe på nettet som bruker Linux, lager de spesial-maskinvare selv, tilpasser Linux (kjerna) til denne, og bruker deler av GNU (verktøyene) sammen med egen programvare for å lage grensesnittet. Et litt mindre drastisk eksempel er distribusjoner – her har forskjellige personer eller grupper tatt et relativt standard GNU/Linux-system, lagt til diverse nyttig programvare som nettlesere, administrasjonsverktøy og installasjonsverktøy, pakket og testet dette, og kanskje tilbudt det til andre.
I Unix er oppdelingen i forskjellige brukere svært sentral. Normalt sett logger du inn med din normale bruker, som kun har rettigheter til din egen hjemmekatalog – du kan ikke gjøre endringer direkte på selve systemet, eller på andre brukeres hjemmekataloger, med mindre de har tillatt dette. Dersom du trenger å gjøre et administrativt grep, som for eksempel å installere ett program, vil du bli spurt om passordet til en spesiell bruker ved navnet «root» – og dersom du kan oppgi dette, tillates du å installere programmet. Når du er logget inn som root har du tilgang til hele systemet, og kan derfor også ødelegge om du ikke er forsiktig. Det er derfor ikke anbefalt å logge inn som root for å f.eks. surfe på nettet.
Pakker og pakkesystemer
redigerSom tidligere nevnt, er Linux oppdelt i mange deler, som kalles pakker. En pakke kan for eksempel være et program, et bibliotek, en samling fonter, eller noe helt annet. Ofte har en person/organisasjon ansvaret for en eller et par pakker. Pakker har den egenskapen at de kan være avhengige av hverandre for å fungere – typisk er et program avhengig av ett eller flere biblioteker for å fungere, som igjen kan være avhengig av andre biblioteker. Flere pakker kan også være avhengige av samme bibliotek. Et bibliotek er en samling ferdiglagde funksjoner som programmer kan benytte – slik at en programmerer for eksempel kan be biblioteket spille en lydfil og ikke bekymre seg om detaljene. Biblioteket tar seg da av å åpne lydfilen, finne hvilket format det er, dekomprimere dataene, kanskje legge på noen effekter, og til slutt sende den ferdigprosesserte lyden til lyddriverene. Lyddriverene – som i seg selv er et bibliotek – tar seg så av å snakke med lydkortet, slik at lyden blir spilt ut av høyttalerne.
Slik sparer utvikleren(e) av programmet mye tid – han eller hun behøver ikke å lære hvordan man gjør dette, skrive kode som gjør det, passe på at den fungerer, og oppdatere den når det kommer et nytt lydkort eller lydformat. Ved hjelp av dette legoaktige systemet kan utvikleren konsentrere seg om å skrive kode for det programmet hans eller hennes egentlig skal gjøre – kanskje er det et cd-brenningsprogram som sier «pling» når det er ferdig med å brenne en cd – og gjøre dette godt.
Men når man tenker over det, er det opplagt at dette systemet med en rekke pakker som er innbyrdes avhengig av hverandre fort blir komplisert å holde rede på ettersom antallet øker til tusenvis. Derfor har de fleste distribusjonene et program for å holde rede dette for brukeren. Disse programmene krever som regel at programmene og bibliotekene (pakkene) kommer zippet ned sammen med informasjon om hvilke andre pakker (i praksis filer, iom at de faktisk er avhengig av filer inne i andre pakker – og flere pakker kan levere samme fil. Burde stå i en ramme på siden!) de er avhengige av. Dermed kan man beordre dette spesielle programmet (de kalles «avhengighetshåndtere») til å installere en slik spesialzipfil.
Da vil avhengighetshåndtereren sjekke at du har alt du trenger, og om den finner dette, installere programmet, samt lagre informasjon om hvor det er installert, og hvordan det av installeres. Dersom det ikke finner alt den trenger, forteller den om hva den mangler, og nekter å installere programmet. Noe som kan bety en lang jakt etter de filene den trenger, som igjen trenger andre filer osv. - dependency hell.
Heldigvis har man funnet opp en programtype som passer på at dette ikke skjer. Disse programmene («pakkebehandlere») henter ned spesialzipfilen du trenger fra nett, cd, eller disken din, sjekker hva den trenger som du ikke har – og laster ned det den trenger men ikke har. Dermed kan hele programmet installeres. Dette programmet tar seg typisk også av oppdateringer, ved at det kan beordres til å sjekke om det finnes nyere versjoner på nett enn de som er installert, og i dette tilfelle, oppdatere.
Linux sin måte å passe på avhengigheter skiller seg slik fra Windows og Mac OS X sine måter – ingen av disse gjør noe alvorlig forsøk på å gjøre det: Under Windows er alt opp til det enkelte programs installasjonsrutine. Disse legger alle bibliotekene (.dll-filer) i en mappe som heter system32 – og lite blir gjort for å hindre konflikter. Dette medfører at enhver installasjonscd etc. må inneholde alle biblioteker som er nødvendig for å kjøre programmet, og det er heller ingen måte å holde ting oppdatert fra et sentralt sted – alt som har med oppdateringer utenfor windows, explorer, og mediaplayer, er opp til det enkelte program å håndtere.
I Mac OS X kommer programmene med alle bibliotekene de trenger i en stor mappe. Denne metoden unngår konflikter da det ikke finnes noen felles mappe hvor filer kan overskrive hverandre, men det er her også opp til hvert enkelt program å holde seg selv og «sine» biblioteker oppdatert. Denne metoden sløser også unødvendig med RAM, da store deler av de fleste programmer er biblioteker, og selv om man egentlig kun behøver å laste inn en kopi av biblioteket når to programmer bruker det samtidig, kan ikke OS X være sikker på om dette er tilfelle (er det virkelig samme bibliotek?), og må derfor laste det inn to ganger.
Distribusjoner
redigerEn distribusjon er kort forklart et utvalg programmer sammen med administrasjonsverktøy og installasjonsrutine. I tillegg har de fleste distribusjoner diskusjonsforumer, epostlister, og tjenere hvor pakkebehandlerene kan hente ned nye programmer og oppdateringer.
Mer må skrives her - eller er denne redurant i forhold til neste kapittel? bruker:kyrsjo