Et operativsystem, forkortet som OS, er et programvare som kontrollerer maskinvarekomponentene i et system, det være seg en telefon, bærbar PC eller et stasjonært. Det er ansvarlig for kommunikasjonen mellom programvaren og maskinvaren. Windows XP, Windows 8, Linux og Mac OS X er alle eksempler på operativsystemer. Operativsystemet består av:
Kjerneplass og brukerområde
Kjerneplass: Kjernen finnes i en forhøyet systemtilstand, som inkluderer et beskyttet minneplass og full tilgang til enhetens maskinvare. Denne systemtilstanden og minneområdet blir helt referert til som kjerne-rom. Innen kjerneområdet administreres kjernes tilgang til maskinvare og systemtjenester og leveres som en tjeneste for resten av systemet.
Brukerplass: Brukerens applikasjoner utføres i brukerområdet, hvor de kan nå en delmengde av maskinens tilgjengelige ressurser via kjernesystemanrop. Ved å bruke kjernetjenestene som følger med kjernen, kan en brukernivåapplikasjon opprettes som et spill- eller kontorproduktivitetsprogramvare for eksempel.
Linux
Linux har fått i popularitet gjennom årene på grunn av at det er åpen kildekode, basert på en UNIX -lignende design, og portert til flere plattformer sammenlignet med andre konkurrerende operativsystemer. Det er et operativsystem, som indikert, som ligner et UNIX OS-et stabilt multi-u-tasking-operativsystem, og som har blitt samlet som en gratis og åpen kildekode-programvare for utvikling og distribusjon. Noe som betyr at ethvert individ eller selskap har tillatelse til å bruke, etterligne, studere og endre Linux -operativsystemet på noen måte de ønsker.
Linux -kjernen
Fra sin første utgivelse 17. september 1991 har Linux -kjernen trosset alle odds for å være Linuxs definerende komponent. Den ble utgitt av Linus Torvalds og benytter seg av GNU/Linux for å beskrive operativsystemet. Linux Kernel-baserte Android OS på smarttelefoner har fått Linux til å slå sin konkurranse for å være den største installerte OS-basen for alle generelle operativsystemer. Historien til Linux -kjernen finner du her.
En kjerne kan enten være monolitisk, mikrokernel eller hybrid (som OS X og Windows 7). Linux -kjernen er en monolitisk datamaskinoperativsystemkjerne som ligner UNIX -systemet. Linux -linjen med operativsystemer som vanligvis refereres til som Linux -distribusjoner er basert på denne kjernen. Den monolitiske kjernen, i motsetning til mikrokernelen, omfatter ikke bare den sentrale prosesseringsenheten, minne og IPC, men har også enhetsdrivere, systemserveranrop og filsystemadministrasjon. De er best til å kommunisere med maskinvare og utføre flere oppgaver samtidig. Det er av denne grunn at prosesser her reagerer med rask hastighet.
Imidlertid er de få tilbakeslagene det enorme installasjonen og hukommelsesavtrykket som trengs og utilstrekkelig sikkerhet ettersom alt fungerer i en veiledermodus. Derimot kan en mikrokernel reagere sakte på applikasjonssamtaler som brukertjenester og kjernen blir skilt separert. De er dermed mindre i størrelse sammenlignet med den monolitiske kjernen. Mikrokerneller er lett utvidbare, men mer kode er nødvendig for å skrive en mikrokernel. Linux -kjernen er skrevet på programmeringsspråk for C og montering.
Linux -kjerneforholdet til maskinvaren
Kjernen kan administrere systemets maskinvare gjennom det som blir referert til som avbrudd. Når maskinvaren ønsker å grensesnitt mot systemet, blir det utstedt et avbrudd som avbryter prosessoren som igjen gjør det samme med kjernen. For å gi synkronisering kan kjernen deaktivere avbrytelser, det være seg en eller alle av dem. I Linux kjører imidlertid ikke avbruddshåndtererne i en prosesskontekst, de kjører i stedet i en avbrytende kontekst som ikke er assosiert med noen prosess.Denne spesielle avbruddskonteksten eksisterer utelukkende for å la en avbryterbehandler raskt svare på et individuelt avbrudd og deretter til slutt avslutte.
Hva gjør Linux -kjernen forskjellig fra andre klassiske UNIX -kjerner?
Det eksisterer betydelige forskjeller mellom Linux -kjernen og de klassiske UNIX -kjernene; Som oppført nedenfor:
Komponenter i Linux -kjernen
En kjerne er ganske enkelt en ressurssjef; Ressursen som administreres kan være en prosess, minne eller maskinvareenhet. Det administrerer og voldgift tilgang til ressursen mellom flere konkurrerende brukere. Linux -kjernen eksisterer i kjerneområdet, under brukerområdet, og det er her brukerens applikasjoner blir utført. For at brukerområdet skal kommunisere med kjerneområdet, er et GNU C -bibliotek integrert som gir et forum for systemanropgrensesnittet for å koble seg til kjerneområdet og tillate overgang tilbake til brukerområdet.
Linux -kjernen kan kategoriseres i tre primærnivåer:
Det arkitektoniske perspektivet til Linux -kjernen består av: System Call Interface, Process Management, The Virtual File System, Memory Management, Network Stack, Architecture and the Device Drivers.
Systemanrop og avbryter
Programmer gir informasjon til kjernen gjennom systemanrop. Et bibliotek inneholder funksjoner som applikasjonene fungerer med. Bibliotekene, gjennom systemanropgrensesnittet, instruerer kjernen til å utføre en oppgave som applikasjonen ønsker. Hva er en Linux -systemanrop?
Avbrudd tilbyr en måte som Linux -kjernen administrerer systemenes maskinvare. Hvis maskinvare må kommunisere med et system, gjør et avbrudd på prosessoren susen, og dette blir gitt videre til Linux -kjernen.
Linux -kjernegrensesnitt
Linux -kjernen tilbyr forskjellige grensesnitt til brukerplassapplikasjonene som utfører en rekke oppgaver og har forskjellige egenskaper. To distinkte applikasjonsprogrammeringsgrensesnitt (API) eksisterer; de Kjerne-brukerplass og kjerne intern. Linux API er Kernel-Brukerspace Api; Det gir tilgang til programmer i brukerområdet i systemets ressurser og tjenester til kjernen. Det består av systemanropsgrensesnittet og underrutinene fra GNU C -biblioteket.
Linux Abi
Dette refererer til kjerne-brukerens rom ABI (applikasjons binærgrensesnitt). Dette forklares som grensesnittet som eksisterer mellom programmoduler. Når man sammenligner API og ABI, er forskjellen at ABI brukes til å få tilgang til eksterne koder som allerede er samlet mens API er strukturer for å administrere programvare. Definere en viktig ABI er hovedsakelig arbeidet med Linux -distribusjoner enn det er for Linux -kjernen. En spesifikk ABI bør defineres for hvert instruksjonssett, for eksempel x86-64. Sluttbrukere av Linux-produkter er interessert i ABIS i stedet for API.
System Call Interface
Som tidligere diskutert, spiller dette en mer fremtredende rolle i kjernen. Det er et kirkesamfunn av hele delen av alle eksisterende systemanrop.
C Standard Library
Alle systemanropene til kjernen er innenfor GNU C -biblioteket, mens Linux API består av systemanropsgrensesnittet og GNU C -biblioteket, også kalt GLIBC.
Bærbart operativsystemgrensesnitt (POSIX)
POSIX er et kollektivt begrep for standarder for å opprettholde kompatibilitet blant operativsystemene. Den erklærer API sammen med verktøygrensesnitt og kommandolinjeskall. Linux API har ikke bare de brukbare funksjonene definert av POSIX, men har også flere funksjoner i sin kjerne:
Mer informasjon om POSIX Standard er her.
Tidligere versjoner av Linux -kjernen var på en slik måte at alle delene deres var statisk fikset til en, monolitisk. Moderne Linux -kjerner har imidlertid mesteparten av sin funksjonalitet i moduler som legges inn i kjernen dynamisk. Dette i motsetning til monolitiske typer, blir referert til som modulære kjerner. Et slikt oppsett lar en bruker laste eller erstatte moduler i en kjørekjerne uten behov for å starte på nytt.
Linux Lastable Kernel Module (LKM)
Den grunnleggende måten å legge til kode i Linux -kjernen er gjennom introduksjonen av kildefiler til kjernekildetreet. Imidlertid kan det være lurt å legge til en kode mens kjernen kjører. Koden lagt til på denne måten blir referert til som en lastbar kjernemodul. Disse spesielle modulene utfører forskjellige oppgaver, men er spesifisert i tre: enhetsdrivere, filsystemdrivere og systemanrop.
Den lastbare kjernemodulen kan sammenlignes med kjerneforlengelsene i andre operativsystemer. Du kan legge en modul i kjernen ved å enten laste den som en LKM eller binde den inn i basekjernen.
Fordelene med LKMs over binding i basekjernen:
Bruk av LKMS
I motsetning til hva de fleste sier, er det en enkel oppgave å sammenstille Linux -kjernen. Følgende er en trinn-for-trinns illustrasjon av prosessen ved hjelp av en av Linux-distribusjonene: Fedora 13 KDE. (Det anbefales å ta sikkerhetskopi av dataene og gruben.Konf bare i tilfelle noe går galt)
TAR XVJF Linux-2.6.37.tjære.BZ2 |
Det er mulig å oppgradere en Linux -kjerne fra en eldre versjon til en nyere, mens du beholder alle konfigurasjonsalternativene fra den tidligere versjonen. For å oppnå dette, må man først sikkerhetskopiere .konfigurasjon fil i Kernel Source Directory; Dette er i tilfelle noe går galt når du prøver å oppgradere kjernen din. Trinnene er:
Last ned den nye kilden; Linux -kjerneutviklerne forstår at noen brukere kanskje ikke vil laste ned hele kildekoden for kjerneoppdateringene, da dette vil kaste bort tid og båndbredde. Derfor gjøres en oppdatering tilgjengelig som kan oppgradere en eldre kjerneutgivelse. Brukere trenger bare å vite hvilken oppdatering som gjelder en bestemt versjon, siden en kjerneoppdateringsfil bare vil oppdatere kildekoden fra en spesifikk utgivelse. De forskjellige oppdateringsfilene kan brukes på følgende måter;
Her er mer detaljerte trinn for prosessen for å oppdatere kjernen din fra Source on Debian, og fra forhåndsbygde binærfiler på Centos og Ubuntu.
Linux -kjernen fungerer hovedsakelig som en ressurssjef som fungerer som et abstrakt lag for applikasjonene. Applikasjonene har en forbindelse med kjernen som igjen samhandler med maskinvaren og tjenesten applikasjonene. Linux er et multitasking -system som lar flere prosesser utføre samtidig. Linux -kjernen er populær på grunn av sin open source -natur som lar brukere endre kjernen til det som passer for dem og deres maskinvare. Derfor kan det brukes på en rekke enheter, i motsetning til andre operativsystemer.
Den modulære egenskapen til Linux -kjernen gir mer spenning til sine brukere. Dette er på grunn av det store utvalget av modifikasjoner som kan gjøres her uten å starte systemet på nytt. Fleksibiliteten gir brukerne et stort rom for å aktualisere fantasiene sine.
Dessuten er den monolitiske naturen til kjernen en stor fordel ettersom den har en høy prosesseringsevne enn mikrokernelen. Det viktigste tilbakeslaget med Linux -typen kjerne er at hvis noen av tjenestene mislykkes, så går hele systemet ned med det. Siste versjoner er designet på en måte som hvis en ny tjeneste legges til, det er ikke behov for å endre hele operativsystemet. Dette er en forbedring sammenlignet med tidligere versjoner.