Operativ system - Operating system

Et operativsystem ( OS ) er systemsoftware, der administrerer computerhardware , softwareressourcer og leverer fælles tjenester til computerprogrammer .

Tidsdelende operativsystemer planlægger opgaver for effektiv brug af systemet og kan også omfatte regnskabssoftware til omkostningsfordeling af processortid , masselagring , udskrivning og andre ressourcer.

For hardwarefunktioner som input og output og hukommelsestildeling fungerer operativsystemet som en mellemmand mellem programmer og computerhardware, selvom applikationskoden normalt udføres direkte af hardwaren og ofte foretager systemopkald til en OS -funktion eller afbrydes af det. Operativsystemer findes på mange enheder, der indeholder en computer - fra mobiltelefoner og videospilkonsoller til webservere og supercomputere .

Det dominerende generelle personlige computer- operativsystem er Microsoft Windows med en markedsandel på omkring 76,45%. macOS af Apple Inc. er på andenpladsen (17,72%), og Linux -sorterne er samlet på tredjepladsen (1,73%). I den mobile sektor (herunder smartphones og tablets ), Androids andel er op til 72% i 2020. Ifølge tredje kvartal 2016 data, Androids andel på smartphones er dominerende med 87,5 procent med også en vækstrate på 10,3 procent om året, efterfulgt af Apples iOS med 12,1 procent med et årligt fald i markedsandele på 5,2 procent, mens andre operativsystemer udgør kun 0,3 procent. Linux -distributioner er dominerende i server- og supercomputingsektoren. Andre specialiserede klasser af operativsystemer (specielle operativsystemer), såsom integrerede og realtidssystemer, findes til mange applikationer. Sikkerhedsfokuserede operativsystemer findes også. Nogle operativsystemer har lave systemkrav (f.eks. Let Linux-distribution ). Andre kan have højere systemkrav.

Nogle operativsystemer kræver installation eller kan være forudinstalleret med købte computere ( OEM -installation), mens andre kan køre direkte fra medier (dvs. live -cd ) eller flash -hukommelse (dvs. USB -stick).

Typer af operativsystemer

Single-tasking og multi-tasking

Et enkelt-tasking-system kan kun køre et program ad gangen, mens et multi-tasking- operativsystem tillader mere end et program at køre samtidigt . Dette opnås ved tidsdeling , hvor den tilgængelige processortid deles mellem flere processer. Disse processer afbrydes hver gang gentagne gange i tidsskiver af et opgaveplanlægningsundersystem i operativsystemet. Multi-tasking kan karakteriseres i præventive og kooperative typer. Ved forebyggende multitasking skærer operativsystemet CPU -tiden ned og dedikerer en plads til hvert af programmerne. Unix-lignende operativsystemer, såsom Solaris og Linux- såvel som ikke-Unix-lignende, såsom AmigaOS- understøtter forebyggende multitasking. Kooperativ multitasking opnås ved at stole på, at hver proces giver tid til de andre processer på en defineret måde. 16-bit versioner af Microsoft Windows brugte kooperativ multi-tasking; 32-bit versioner af både Windows NT og Win9x brugte præventiv multi-tasking.

Enkelt- og flerbruger

Enkeltbruger-operativsystemer har ingen faciliteter til at skelne mellem brugere, men kan muligvis køre flere programmer samtidigt. Et flerbrugeroperativsystem udvider det grundlæggende koncept for multi-tasking med faciliteter, der identificerer processer og ressourcer, såsom diskplads, tilhørende flere brugere, og systemet tillader flere brugere at interagere med systemet på samme tid. Tidsdelende operativsystemer planlægger opgaver for effektiv brug af systemet og kan også omfatte regnskabssoftware til fordeling af processortid, masselagring, udskrivning og andre ressourcer til flere brugere.

Distribueret

Et distribueret operativsystem administrerer en gruppe adskilte computere på netværket og får dem til at se ud til at være en enkelt computer, da alle beregninger er distribueret (opdelt mellem de indbyggede computere).

Skabeloneret

I den distribuerede og cloud computing -kontekst af et operativsystem refererer skabelon til oprettelse af et enkelt virtuelt maskinbillede som et gæstebedriftssystem, hvorefter det gemmes som et værktøj til flere kørende virtuelle maskiner. Teknikken bruges både i virtualisering og cloud computing -styring og er almindelig i store serverlagre.

Indlejret

Indlejrede operativsystemer er designet til at blive brugt i integrerede computersystemer . De er designet til at fungere på små maskiner med mindre autonomi (f.eks. PDA'er). De er meget kompakte og yderst effektive i design og er i stand til at fungere med en begrænset mængde ressourcer. Windows CE og Minix 3 er nogle eksempler på integrerede operativsystemer.

Realtid

Et operativsystem i realtid er et operativsystem, der garanterer at behandle begivenheder eller data på et bestemt tidspunkt. Et realtidsoperativsystem kan være enkelt- eller multitasking, men ved multitasking bruger det specialiserede planlægningsalgoritmer, så en deterministisk karakter af adfærd opnås. Et sådant hændelsesdrevet system skifter mellem opgaver baseret på deres prioriteter eller eksterne begivenheder, hvorimod tidsdelende operativsystemer skifter opgaver baseret på urafbrydelser .

Bibliotek

Et biblioteksoperativsystem er et, hvor de tjenester, som et typisk operativsystem leverer, såsom netværk, leveres i form af biblioteker og sammensættes med applikations- og konfigurationskoden for at konstruere en unikernel : et specialiseret, enkelt adresserum , maskinbillede der kan implementeres i skyer eller integrerede miljøer.

Historie

Tidlige computere blev bygget til at udføre en række enkeltopgaver, f.eks. En lommeregner. Grundlæggende operativsystemfunktioner blev udviklet i 1950'erne, såsom residente monitorfunktioner , der automatisk kunne køre forskellige programmer efter hinanden for at fremskynde behandlingen. Operativsystemer eksisterede ikke i deres moderne og mere komplekse former før i begyndelsen af ​​1960'erne. Hardwarefunktioner blev tilføjet, der muliggjorde brug af runtime -biblioteker , afbrydelser og parallel behandling . Da personlige computere blev populære i 1980'erne, blev operativsystemer lavet til dem, der lignede konceptet dem, der blev brugt på større computere.

I 1940'erne havde de tidligste elektroniske digitale systemer ingen operativsystemer. Denne tids elektroniske systemer blev programmeret på rækker af mekaniske kontakter eller af jumperwires på stikplader . Det var systemer til specielle formål, der for eksempel genererede ballistiktabeller til militæret eller kontrollerede udskrivning af løncheck fra data på stansede papirkort. Efter at programmerbare generelle computere blev opfundet, blev maskinsprog (bestående af strenge med de binære cifre 0 og 1 på hullet papirbånd) introduceret, der fremskyndede programmeringsprocessen (Stern, 1981).

OS/360 blev brugt på de fleste IBM -mainframe -computere, der begyndte i 1966, herunder computere, der blev brugt af Apollo -programmet .

I begyndelsen af ​​1950'erne kunne en computer kun køre et program ad gangen. Hver bruger havde alene brug af computeren i en begrænset periode og ville ankomme til et planlagt tidspunkt med deres program og data om hullede papirkort eller hulbånd . Programmet ville blive indlæst i maskinen, og maskinen ville blive sat til at fungere, indtil programmet blev afsluttet eller gik ned . Programmer kunne generelt debugges via et frontpanel ved hjælp af vippekontakter og panellys. Det siges, at Alan Turing var en mester i dette på den tidlige Manchester Mark 1 -maskine, og han udledte allerede den primitive opfattelse af et operativsystem fra principperne for den universelle Turing -maskine .

Senere kom der maskiner med biblioteker med programmer, som ville blive knyttet til en brugers program for at hjælpe med operationer som input og output og kompilering (generering af maskinkode fra menneskelæselig symbolsk kode ). Dette var starten på det moderne operativsystem. Imidlertid kørte maskiner stadig et enkelt job ad gangen. På Cambridge University i England var jobkø på et tidspunkt en vaskelinje (tørresnor), hvorfra der blev hængt bånd med forskellige farvede tøjpinde for at angive jobprioritet.

En forbedring var Atlas Supervisor . Det blev introduceret med Manchester Atlas i 1962 og betragtes af mange som det første genkendelige moderne operativsystem. Brinch Hansen beskrev det som "det mest betydningsfulde gennembrud i operativsystemernes historie."

Mainframes

Gennem 1950'erne blev mange hovedfunktioner banebrydende inden for operativsystemer på mainframe-computere , herunder batchbehandling , input/output- afbrydelse , buffering , multitasking , spooling , runtime-biblioteker , link-loading og programmer til sortering af poster i filer. Disse funktioner blev inkluderet eller ikke inkluderet i applikationssoftware efter valg af programprogrammerere, snarere end i et separat operativsystem, der bruges af alle applikationer. I 1959 blev SHARE -operativsystemet udgivet som et integreret værktøj til IBM 704 og senere i 709 og 7090 mainframes, selvom det hurtigt blev fortrængt af IBSYS /IBJOB på 709, 7090 og 7094.

I løbet af 1960'erne introducerede IBM's OS/360 konceptet om et enkelt OS, der spænder over en hel produktlinje, hvilket var afgørende for System/360 -maskinernes succes. IBMs nuværende mainframe-operativsystemer er fjerne efterkommere af dette originale system, og moderne maskiner er bagudkompatible med applikationer skrevet til OS/360.

OS/360 var også banebrydende for konceptet om, at operativsystemet holder styr på alle de systemressourcer, der bruges, herunder allokering af programmer og data i hovedhukommelse og filplads i sekundær lagring og låsning af filer under opdateringer. Når en proces af en eller anden grund afsluttes, bliver alle disse ressourcer genkravet af operativsystemet.

Det alternative CP-67- system til S/360-67 startede en hel række IBM-operativsystemer med fokus på konceptet med virtuelle maskiner . Andre operativsystemer, der anvendes på IBM S/360 -seriens mainframes, omfattede systemer udviklet af IBM: DOS/360 (Disk Operating System), TSS/360 (Time Sharing System), TOS/360 (Tape Operating System), BOS/360 (Basic Operating System) og ACP (Airline Control Program) samt et par ikke-IBM-systemer: MTS (Michigan Terminal System), MUSIC (Multi-User System for Interactive Computing) og ORVYL (Stanford Timesharing System).

Control Data Corporation udviklede SCOPE -operativsystemet i 1960'erne til batchbehandling . I samarbejde med University of Minnesota blev Kronos og senere NOS -operativsystemerne udviklet i løbet af 1970'erne, som understøttede samtidig batch- og timeshare -brug. Ligesom mange kommercielle timesharing -systemer var dens grænseflade en forlængelse af Dartmouth BASIC -operativsystemerne, en af ​​de banebrydende indsatser inden for timesharing og programmeringssprog. I slutningen af ​​1970'erne udviklede Control Data og University of Illinois PLATO- operativsystemet, der brugte plasmaskærme og langdistansetidsdelingsnetværk. Platon var bemærkelsesværdigt innovativ for sin tid med chat i realtid og grafiske spil med flere brugere.

I 1961 introducerede Burroughs Corporation B5000 med styresystemet MCP (Master Control Program). Den B5000 var en stak maskine designet til udelukkende at støtte højt niveau sprog uden assembler; faktisk var MCP det første operativsystem, der udelukkende blev skrevet på et sprog på højt niveau ( ESPOL , en dialekt af ALGOL ). MCP introducerede også mange andre banebrydende innovationer, såsom at være den første kommercielle implementering af virtuel hukommelse . Under udviklingen af AS/400 foretog IBM en tilgang til Burroughs for at licensere MCP til at køre på AS/400 -hardware. Dette forslag blev afvist af Burroughs ledelse for at beskytte sin eksisterende hardwareproduktion. MCP er stadig i brug i dag i Unisys virksomhedens MCP / ClearPath linje af computere.

UNIVAC , den første kommercielle computerproducent, producerede en række EXEC -operativsystemer. Som alle tidlige hovedrammesystemer administrerede dette batchorienterede system magnetiske tromler, diske, kortlæsere og line-printere. I 1970'erne producerede UNIVAC Real-Time Basic (RTB) -systemet til at understøtte stor tidsdeling, også mønstret efter Dartmouth BC-systemet.

General Electric og MIT udviklede General Electric Comprehensive Operating Supervisor (GECOS), som introducerede begrebet ringede sikkerhedsrettighedsniveauer. Efter opkøb af Honeywell blev det omdøbt til General Comprehensive Operating System (GCOS).

Digital Equipment Corporation udviklede mange operativsystemer til sine forskellige computerlinjer, herunder TOPS-10 og TOPS-20 tidsdelingssystemer til 36-bit PDP-10-klassesystemerne. Før den udbredte brug af UNIX var TOPS-10 et særligt populært system på universiteter og i det tidlige ARPANET- samfund. RT-11 var et enkeltbruger-system i realtid til minicomputer i PDP-11- klassen, og RSX-11 var det tilsvarende multi-bruger-operativsystem.

Fra slutningen af ​​1960'erne til sidst i 1970'erne udviklede sig flere hardwarefunktioner, der tillod lignende eller overført software til at køre på mere end ét system. Tidlige systemer havde brugt mikroprogrammering til at implementere funktioner på deres systemer for at tillade forskellige underliggende computerarkitekturer at se ud til at være de samme som andre i en serie. Faktisk var de fleste 360’ere efter 360/40 (undtagen 360/44, 360/75, 360/91, 360/95 og 360/195) mikroprogrammerede implementeringer.

Den enorme investering i software til disse systemer, der er foretaget siden 1960'erne, fik de fleste af de originale computerproducenter til at fortsætte med at udvikle kompatible operativsystemer sammen med hardwaren. Bemærkelsesværdige understøttede mainframe -operativsystemer inkluderer:

Mikrocomputere

PC DOS var et tidligt pc -operativsystem, der havde en kommandolinjegrænseflade.
Mac OS af Apple Computer blev det første udbredte OS med en grafisk brugergrænseflade . Mange af dens funktioner, såsom vinduer og ikoner, ville senere blive almindelige i GUI'er.

De første mikrocomputere havde ikke kapacitet eller behov for de detaljerede operativsystemer, der var blevet udviklet til mainframes og mini; minimalistiske operativsystemer blev udviklet, ofte indlæst fra ROM og kendt som skærme . En bemærkelsesværdig tidlig disk operativsystem var CP / M , som blev støttet af mange tidlige mikrocomputere og var tæt efterlignet af Microsofts 's MS-DOS , som blev meget populær som styresystem er valgt til IBM PC (IBM version af det blev kaldt IBM DOS eller PC DOS ). I 1980'erne opgav Apple Computer Inc. (nu Apple Inc. ) sin populære Apple II -serie af mikrocomputere for at introducere Apple Macintosh -computeren med en innovativ grafisk brugergrænseflade (GUI) til Mac OS .

Introduktionen af Intel 80386 CPU-chippen i oktober 1985 med 32-bit arkitektur og personsøgningsfunktioner gav personlige computere mulighed for at køre multitasking- operativsystemer som tidligere minicomputere og mainframes . Microsoft reagerede på denne fremgang ved at ansætte Dave Cutler , der havde udviklet VMS -operativsystemet til Digital Equipment Corporation . Han ville lede udviklingen af Windows NT -operativsystemet, som fortsat fungerer som grundlaget for Microsofts operativsystemlinje. Steve Jobs , medstifter af Apple Inc. , startede NeXT Computer Inc., der udviklede NEXTSTEP- operativsystemet. NEXTSTEP ville senere blive erhvervet af Apple Inc. og bruges sammen med kode fra FreeBSD som kernen i Mac OS X (macOS efter seneste navneændring).

Den GNU-projektet blev startet af aktivist og programmøren Richard Stallman med det mål at skabe en komplet gratis software erstatning for de proprietære UNIX operativsystemet. Selvom projektet var meget vellykket med at kopiere funktionaliteten i forskellige dele af UNIX, viste det sig at være uproduktivt at udvikle GNU Hurd -kernen. I 1991 frigav den finske datalogistuderende Linus Torvalds , med samarbejde fra frivillige, der samarbejdede over internettet, den første version af Linux -kernen . Det blev hurtigt lagt sammen med GNU bruger plads komponenter og systemsoftware at danne et komplet operativsystem. Siden da er kombinationen af ​​de to hovedkomponenter normalt blevet omtalt som simpelthen "Linux" af softwareindustrien, en navngivningskonvention, som Stallman og Free Software Foundation fortsat er imod, og foretrækker navnet GNU/Linux. Berkeley Software Distribution, kendt som BSD , er UNIX -derivatet distribueret af University of California, Berkeley, begyndende i 1970'erne. Den blev frit distribueret og overført til mange minicomputere og fik til sidst også en følge til brug på pc'er, hovedsageligt som FreeBSD , NetBSD og OpenBSD .

Eksempler

Unix og Unix-lignende operativsystemer

Udvikling af Unix -systemer

Unix blev oprindeligt skrevet på samlingssprog . Ken Thompson skrev B , hovedsageligt baseret på BCPL , baseret på hans erfaring i MULTICS -projektet. B blev erstattet af C , og Unix, omskrevet i C, udviklede sig til en stor, kompleks familie af indbyrdes relaterede operativsystemer, som har haft indflydelse på alle moderne operativsystemer (se Historie ).

Den Unix-lignende familie er en forskelligartet gruppe af operativsystemer, med flere store underkategorier herunder System V , BSD , og Linux . Navnet " UNIX " er et varemærke tilhørende The Open Group, som licenserer det til brug med ethvert operativsystem, der har vist sig at være i overensstemmelse med deres definitioner. "UNIX-lignende" bruges almindeligvis til at referere til det store sæt operativsystemer, der ligner det originale UNIX.

Unix-lignende systemer kører på en lang række computerarkitekturer . De bruges stærkt til servere i erhvervslivet samt arbejdsstationer i akademiske og tekniske miljøer. Gratis UNIX -varianter, såsom Linux og BSD , er populære på disse områder.

Fire operativsystemer er af The Open Group (indehaver af Unix -varemærket) certificeret som Unix. HP's HP-UX og IBM's AIX er begge efterkommere af den originale System V Unix og er designet til kun at køre på deres respektive leverandørs hardware. I modsætning hertil kan Sun Microsystems ' Solaris køre på flere typer hardware, herunder x86- og Sparc -servere og pc'er. Apples macOS , en erstatning for Apples tidligere (ikke -Unix) Mac OS, er en hybrid kernelbaseret BSD -variant afledt af NeXTSTEP , Mach og FreeBSD .

Unix -interoperabilitet blev søgt ved at etablere POSIX -standarden. POSIX -standarden kan anvendes på ethvert operativsystem, selvom den oprindeligt blev oprettet til forskellige Unix -varianter.

BSD og dens efterkommere

Den første server til World Wide Web kørte på NeXTSTEP, baseret på BSD.

En undergruppe af Unix -familien er Berkeley Software Distribution -familien, som omfatter FreeBSD , NetBSD og OpenBSD . Disse operativsystemer findes oftest på webservere , selvom de også kan fungere som et pc -operativsystem. Internettet skylder meget af dets eksistens BSD, da mange af de protokoller, der nu almindeligvis bruges af computere til at forbinde, sende og modtage data over et netværk, blev bredt implementeret og forfinet i BSD. Den World Wide Web blev også først demonstreret på en række computere, der kører et operativsystem baseret på BSD kaldet NeXTStep .

I 1974, University of California, installerede Berkeley sit første Unix -system. Over tid begyndte studerende og ansatte i datalogisk afdeling der at tilføje nye programmer for at gøre tingene lettere, f.eks. Tekstredaktører. Da Berkeley modtog nye VAX -computere i 1978 med Unix installeret, ændrede skolens studerende Unix endnu mere for at drage fordel af computerens hardware muligheder. Den Defense Advanced Research Projects Agency af det amerikanske forsvarsministerium tog interesse, og besluttede at finansiere projektet. Mange skoler, virksomheder og regeringsorganisationer lagde mærke til det og begyndte at bruge Berkeleys version af Unix i stedet for den officielle distribueret af AT&T.

Steve Jobs , da han forlod Apple Inc. i 1985, dannede NeXT Inc. , et firma, der producerede high-end computere, der kører på en variation af BSD kaldet NeXTSTEP . En af disse computere blev brugt af Tim Berners-Lee som den første webserver til at oprette World Wide Web.

Udviklere som Keith Bostic opfordrede projektet til at erstatte enhver ikke-fri kode, der stammer fra Bell Labs. Når dette var gjort, sagsøgte AT&T imidlertid. Efter to års juridiske tvister affødte BSD -projektet en række gratis derivater, såsom NetBSD og FreeBSD (begge i 1993) og OpenBSD (fra NetBSD i 1995).

macOS

macOS (tidligere "Mac OS X" og senere "OS X") er en serie med åbne kerne grafiske operativsystemer udviklet, markedsført og solgt af Apple Inc. , hvoraf den seneste er forudindlæst på alle Macintosh- computere, der i øjeblikket sender . macOS er efterfølgeren til det originale klassiske Mac OS , der havde været Apples primære operativsystem siden 1984. I modsætning til forgængeren er macOS et UNIX -operativsystem bygget på teknologi, der var blevet udviklet på NeXT gennem anden halvdel af 1980'erne og frem til Apple købte virksomheden i begyndelsen af ​​1997. Operativsystemet blev først udgivet i 1999 som Mac OS X Server 1.0 , efterfulgt af marts 2001 af en klientversion ( Mac OS X v10.0 "Cheetah" ). Siden da er seks mere forskellige "klient" og " server " udgaver af macOS blevet frigivet, indtil de to blev fusioneret i OS X 10.7 "Lion" .

Forud for sin fusionere med MacOS, serveren udgave - MacOS Server  - var arkitektonisk identisk med sin desktop modstykke og normalt modtog Apples linje af Macintosh -server -hardware. macOS Server inkluderede værktøj til styring og administration af arbejdsgrupper, der giver forenklet adgang til vigtige netværkstjenester , herunder en mailoverførselsagent , en Samba -server , en LDAP -server, en domænenavneserver og andre. Med Mac OS X v10.7 Lion er alle serveraspekter af Mac OS X Server blevet integreret i klientversionen og produktet genmærket som "OS X" (dropper "Mac" fra navnet). Serverværktøjerne tilbydes nu som en applikation.

Linux

Linux , et unix-lignende operativsystem blev første gang udgivet den 17. september 1991 af Linus Torvalds . Billede af Tux den pingvin , maskot for Linux.

Linux -kernen opstod i 1991 som et projekt af Linus Torvalds , mens en universitetsstuderende i Finland. Han offentliggjorde oplysninger om sit projekt på en nyhedsgruppe for computerstuderende og programmører og modtog støtte og bistand fra frivillige, der lykkedes at skabe en komplet og funktionel kerne.

Linux er Unix-lignende , men blev udviklet uden Unix-kode, i modsætning til BSD og dens varianter. På grund af sin åbne licensmodel er Linux-kernekoden tilgængelig til undersøgelse og ændring, hvilket resulterede i, at den blev brugt på en lang række computermaskiner fra supercomputere til smart-ure. Selvom estimater tyder på, at Linux kun bruges på 1,82% af alle "desktop" (eller bærbare) pc'er, er det blevet bredt vedtaget til brug i servere og integrerede systemer som f.eks. Mobiltelefoner. Linux har erstattet Unix på mange platforme og bruges på de fleste supercomputere, herunder top 385. Mange af de samme computere er også på Green500 (men i forskellig rækkefølge), og Linux kører på top 10. Linux bruges også almindeligt på andre små energieffektive computere, såsom smartphones og smartwatches . Linux-kernen bruges i nogle populære distributioner, såsom Red Hat , Debian , Ubuntu , Linux Mint og Google 's Android , Chrome OS , og Chromium OS .

Microsoft Windows

Microsoft Windows er en familie af proprietære operativsystemer designet af Microsoft Corporation og primært målrettet mod Intel -arkitekturbaserede computere, med en anslået 88,9 procent total brugsandel på webforbundne computere. Den nyeste version er Windows 11 .

I 2011 overhalede Windows 7 Windows XP som den mest almindelige version i brug.

Microsoft Windows blev først udgivet i 1985, som et driftsmiljø, der kørte oven på MS-DOS , som var standardoperativsystemet, der blev leveret på de fleste Intel-arkitekturpersoner på det tidspunkt. I 1995 blev Windows 95 frigivet, som kun brugte MS-DOS som en bootstrap. For bagudkompatibilitet kunne Win9x køre real-mode MS-DOS og 16-bit Windows 3.x- drivere. Windows ME , udgivet i 2000, var den sidste version i Win9x -familien. Senere versioner har alle været baseret på Windows NT -kernen . Aktuelle klientversioner af Windows kører på IA-32 , x86-64 og ARM mikroprocessorer . Derudover understøttes Itanium stadig i ældre serverversion Windows Server 2008 R2 . Tidligere understøttede Windows NT yderligere arkitekturer.

Serverudgaver af Windows er meget udbredt. I de senere år har Microsoft brugt betydelig kapital i et forsøg på at fremme brugen af ​​Windows som et serveroperativsystem . Windows 'brug på servere er imidlertid ikke så udbredt som på personlige computere, da Windows konkurrerer mod Linux og BSD om servermarkedsandele.

ReactOS er et Windows-alternativt operativsystem, der udvikles efter Windows-principperne-uden at bruge nogen af ​​Microsofts kode.

Andet

Der har været mange operativsystemer, der var betydningsfulde i deres tid, men ikke længere er det, f.eks. AmigaOS ; OS/2 fra IBM og Microsoft; klassisk Mac OS , ikke-Unix-forløberen til Apples macOS; BeOS ; XTS-300 ; RISC OS ; MorphOS ; Haiku ; BareMetal og FreeMint . Nogle bruges stadig på nichemarkeder og bliver fortsat udviklet som minoritetsplatforme for entusiastiske fællesskaber og specialiserede applikationer. VMS , tidligere fra december , er stadig under aktiv udvikling af VMS software Inc . Alligevel bruges andre operativsystemer næsten udelukkende i den akademiske verden, til operativsystemundervisning eller til at undersøge operativsystemkoncepter. Et typisk eksempel på et system, der opfylder begge roller, er MINIX , mens f.eks. Singularity udelukkende bruges til forskning. Et andet eksempel er Oberon System designet på ETH Zürich af Niklaus Wirth , Jürg Gutknecht og en gruppe studerende på det tidligere Computer Systems Institute i 1980'erne. Det blev hovedsageligt brugt til forskning, undervisning og dagligt arbejde i Wirths gruppe.

Andre operativsystemer har ikke vundet en betydelig markedsandel, men har introduceret innovationer, der har påvirket mainstream -operativsystemer, ikke mindst Bell Labs ' Plan 9 .

Komponenter

Komponenterne i et operativsystem findes alle for at få de forskellige dele af en computer til at fungere sammen. Al brugersoftware skal igennem operativsystemet for at kunne bruge hardware, uanset om det er så simpelt som en mus eller et tastatur eller så komplekst som en internetkomponent.

Kerne

En kerne forbinder applikationssoftwaren med computerens hardware.

Ved hjælp af firmwaren og enhedsdrivere giver kernen det mest basale kontrolniveau over alle computerens hardwareenheder. Det administrerer hukommelsesadgang til programmer i RAM , det bestemmer hvilke programmer der får adgang til hvilke hardwarressourcer, det opsætter eller nulstiller CPU'ens driftstilstande til optimal drift på alle tidspunkter, og det organiserer data til langvarig ikke-flygtig lagring med filsystemer på sådanne medier som diske, bånd, flashhukommelse osv.

Programudførelse

Operativsystemet giver en grænseflade mellem et applikationsprogram og computerhardwaren, så et applikationsprogram kun kan interagere med hardwaren ved at adlyde regler og procedurer programmeret i operativsystemet. Operativsystemet er også et sæt tjenester, der forenkler udvikling og udførelse af applikationsprogrammer. Eksekvering af et applikationsprogram indebærer oprettelse af en proces af operativsystemets kerne, der tildeler hukommelsesplads og andre ressourcer, fastlægger en prioritet for processen i multi-tasking-systemer, indlæser programmets binære kode i hukommelsen og initierer udførelse af applikationsprogrammet, som interagerer derefter med brugeren og med hardwareenheder.

Afbryder

Afbrydelser er centrale for operativsystemer, da de giver en effektiv måde for operativsystemet at interagere med og reagere på dets miljø. Alternativet - at lade operativsystemet "se" de forskellige inputkilder til begivenheder (polling), der kræver handling - kan findes i ældre systemer med meget små stakke (50 eller 60 bytes), men er usædvanligt i moderne systemer med store stakke. Interrupt -baseret programmering understøttes direkte af de fleste moderne CPU'er. Afbrydelser giver en computer en måde at automatisk gemme lokale registerkontekster og køre specifik kode som reaktion på begivenheder. Selv meget grundlæggende computere understøtter hardwareafbrydelser og giver programmereren mulighed for at angive kode, der kan køres, når denne begivenhed finder sted.

Når der modtages en afbrydelse, suspenderer computerens hardware automatisk det program, der kører i øjeblikket, gemmer dens status og kører computerkode, der tidligere var knyttet til afbrydelsen; dette er analogt med at placere et bogmærke i en bog som svar på et telefonopkald. I moderne operativsystemer håndteres afbrydelser af operativsystemets kerne . Afbrydelser kan komme fra enten computerens hardware eller det kørende program.

Når en hardwareenhed udløser en afbrydelse, beslutter operativsystemets kerne, hvordan man skal håndtere denne hændelse, generelt ved at køre en behandlingskode. Mængden af ​​kode, der køres, afhænger af prioriteten for afbrydelsen (for eksempel: en person reagerer normalt på en røgdetektoralarm, før han tager telefonen). Behandlingen af ​​hardware -afbrydelser er en opgave, der normalt delegeres til software kaldet en enhedsdriver , som kan være en del af operativsystemets kerne, en del af et andet program eller begge dele. Enhedsdrivere kan derefter videresende oplysninger til et kørende program på forskellige måder.

Et program kan også udløse en afbrydelse af operativsystemet. Hvis et program f.eks. Ønsker at få adgang til hardware, kan det afbryde operativsystemets kerne, hvilket får kontrollen til at blive sendt tilbage til kernen. Kernen behandler derefter anmodningen. Hvis et program ønsker yderligere ressourcer (eller ønsker at kaste ressourcer) såsom hukommelse, udløser det en afbrydelse for at få kernen opmærksomhed.

Tilstande

Privilegeringsringe til x86 -mikroprocessorarkitekturen er tilgængelig i beskyttet tilstand . Operativsystemer bestemmer, hvilke processer der køres i hver tilstand.

Moderne computere understøtter flere driftsmåder. CPU'er med denne mulighed tilbyder mindst to tilstande: brugertilstand og supervisor -tilstand . Generelt tillader drift af supervisor -tilstand ubegrænset adgang til alle maskinressourcer, herunder alle MPU -instruktioner. Brugerfunktionsdrift sætter grænser for brug af instruktioner og giver typisk ikke direkte adgang til maskinressourcer. CPU'er kan også have andre tilstande, der ligner brugertilstand, f.eks. De virtuelle tilstande for at efterligne ældre processortyper, såsom 16-bit processorer på en 32-bit eller 32-bit processorer på en 64-bit .

Ved opstart eller nulstilling starter systemet i supervisor-tilstand. Når et operativsystem kerne er indlæst og startet, kan etableres grænsen mellem supervisor-tilstand (også kendt som kernel-mode) bruger- og.

Supervisor -tilstand bruges af kernen til opgaver på lavt niveau, der har brug for ubegrænset adgang til hardware, f.eks. Styring af, hvordan hukommelse tilgås, og kommunikation med enheder som f.eks. Diskdrev og video -displayenheder. Brugerfunktion bruges derimod til næsten alt andet. Applikationsprogrammer, såsom tekstbehandlere og databaseadministratorer, fungerer inden for brugertilstand og kan kun få adgang til maskinressourcer ved at vende kontrollen over til kernen, en proces, der skifter til supervisor -tilstand. Typisk opnås overførsel af kontrol til kernen ved at udføre en softwareafbrydelsesinstruktion , såsom Motorola 68000 TRAP-instruktionen. Softwareafbrydelsen får processoren til at skifte fra brugertilstand til supervisor -tilstand og begynde at eksekvere kode, der gør det muligt for kernen at tage kontrol.

I brugertilstand har programmer normalt adgang til et begrænset sæt processorinstruktioner og kan generelt ikke udføre nogen instruktioner, der potentielt kan forårsage afbrydelse af systemets drift. I supervisor -tilstand fjernes typiske begrænsninger for instruktionsudførelse, hvilket tillader kernen ubegrænset adgang til alle maskinressourcer.

Udtrykket "brugerfunktionsressource" refererer generelt til et eller flere CPU -registre, som indeholder oplysninger, som det kørende program ikke må ændre. Forsøg på at ændre disse ressourcer forårsager generelt et skifte til supervisor -tilstand, hvor operativsystemet kan håndtere den ulovlige drift, programmet forsøgte, for eksempel ved tvang at afslutte ("dræbe") programmet.

Hukommelsesstyring

Blandt andet et multiprogrammering operativsystem kerne skal være ansvarlig for forvaltningen alle systemets hukommelse, som i øjeblikket er i brug af programmer. Dette sikrer, at et program ikke forstyrrer hukommelsen, der allerede er i brug af et andet program. Da programmer tid deler, skal hvert program have uafhængig adgang til hukommelse.

Kooperativ hukommelsesstyring, der bruges af mange tidlige operativsystemer, forudsætter at alle programmer frivilligt bruger kernelens hukommelsesstyring og ikke overskrider deres tildelte hukommelse. Dette system til hukommelsesstyring ses næsten aldrig mere, da programmer ofte indeholder fejl, der kan få dem til at overskride deres tildelte hukommelse. Hvis et program mislykkes, kan det forårsage, at hukommelse, der bruges af et eller flere andre programmer, påvirkes eller overskrives. Ondsindede programmer eller vira kan målrettet ændre et andet programs hukommelse eller påvirke selve operativsystemet. Med kooperativ hukommelsesstyring tager det kun ét fejlbehæftet program at crashe systemet.

Hukommelsesbeskyttelse gør det muligt for kernen at begrænse en proces 'adgang til computerens hukommelse. Der findes forskellige metoder til hukommelsesbeskyttelse, herunder hukommelsessegmentering og personsøgning . Alle metoder kræver et vist niveau af hardware support (f.eks. 80286 MMU), som ikke findes på alle computere.

I både segmentering og personsøgning angiver visse beskyttede tilstandsregistre til CPU'en, hvilken hukommelsesadresse det skal give et kørende program adgang til. Forsøg på at få adgang til andre adresser udløser en afbrydelse, som får CPU'en til at genindtaste supervisor-tilstand , hvilket sætter kernen i ansvar. Dette kaldes en segmenteringsfejl eller Seg-V for kort, og da det både er svært at tildele et meningsfuldt resultat til en sådan operation, og fordi det normalt er et tegn på et fejlbehæftet program, tager kernen generelt til at afslutte det krænkende program , og rapporterer fejlen.

Windows version 3.1 til og med ME havde et vist niveau af hukommelsesbeskyttelse, men programmer kunne let omgå behovet for at bruge det. En generel beskyttelsesfejl ville blive frembragt, hvilket indikerer, at der var sket en overtrædelse af segmenteringen; Imidlertid ville systemet ofte gå ned alligevel.

Virtuel hukommelse

Mange operativsystemer kan "narre" programmer til at bruge hukommelse spredt rundt på harddisken og RAM, som om det er en kontinuerlig del af hukommelsen, kaldet virtuel hukommelse.

Brugen af ​​virtuel hukommelsesadressering (såsom personsøgning eller segmentering) betyder, at kernen kan vælge, hvilken hukommelse hvert program kan bruge på et givet tidspunkt, hvilket gør det muligt for operativsystemet at bruge de samme hukommelsessteder til flere opgaver.

Hvis et program forsøger at få adgang til hukommelse, der ikke er i sit nuværende område af tilgængelig hukommelse, men ikke desto mindre er blevet allokeret til det, afbrydes kernen på samme måde, som det ville gøre, hvis programmet skulle overskride den tildelte hukommelse. (Se afsnittet om hukommelsesstyring.) Under UNIX omtales denne form for afbrydelse som en sidefejl .

Når kernen opdager en sidefejl, justerer den generelt det virtuelle hukommelsesområde for det program, der udløste det, og giver det adgang til den ønskede hukommelse. Dette giver kernen skønsmæssig magt over, hvor en bestemt applikations hukommelse er gemt, eller endda om den faktisk er blevet allokeret endnu.

I moderne operativsystemer kan hukommelse, der fås sjældnere adgang, midlertidigt gemmes på disk eller andre medier for at gøre denne plads tilgængelig for brug af andre programmer. Dette kaldes swapping , da et hukommelsesområde kan bruges af flere programmer, og hvad hukommelsesområdet indeholder, kan byttes eller udveksles efter behov.

"Virtuel hukommelse" giver programmereren eller brugeren opfattelsen af, at der er en meget større mængde RAM i computeren, end der virkelig er der.

Multitasking

Multitasking refererer til kørsel af flere uafhængige computerprogrammer på den samme computer; giver det udseende, at den udfører opgaverne på samme tid. Da de fleste computere højst kan en eller to ting ad gangen, sker dette generelt via tidsdeling, hvilket betyder, at hvert program bruger en andel af computerens tid til at udføre.

Et operativsystem kerne indeholder en planlægning program, der bestemmer, hvor meget tid hver proces bruger udfører, og i hvilken rækkefølge udførelse kontrol bør videregives til programmer. Kontrol overføres til en proces af kernen, som giver programmet adgang til CPU og hukommelse. Senere returneres kontrollen til kernen gennem en eller anden mekanisme, så et andet program kan få lov til at bruge CPU'en. Denne såkaldte overførsel af kontrol mellem kernen og applikationer kaldes en kontekst switch .

En tidlig model, der styrede fordelingen af ​​tid til programmer, blev kaldt kooperativ multitasking . I denne model, når kontrollen overføres til et program af kernen, kan den udføres så længe den vil, før den eksplicit returnerer kontrollen til kernen. Det betyder, at et ondsindet eller fejlfindende program muligvis ikke kun forhindrer andre programmer i at bruge CPU'en, men det kan hænge hele systemet, hvis det kommer ind i en uendelig loop .

Moderne operativsystemer udvider begreberne forudgående applikation til enhedsdrivere og kernekode, så operativsystemet også har præventiv kontrol over interne driftstider.

Filosofien om forebyggende multitasking er at sikre, at alle programmer får regelmæssig tid på CPU'en. Dette indebærer, at alle programmer skal begrænses i, hvor meget tid de må bruge på CPU'en uden at blive afbrudt. For at opnå dette gør moderne operativsystemkerner brug af en tidsbestemt afbrydelse. En beskyttet tilstandstimer indstilles af kernen, der udløser en tilbagevenden til supervisor -tilstand, efter at den angivne tid er gået. (Se ovenstående afsnit om afbrydelser og dobbeltfunktion.)

På mange enkeltbruger -operativsystemer er kooperativ multitasking helt tilstrækkelig, da hjemmecomputere generelt kører et lille antal velafprøvede programmer. Den AmigaOS er en undtagelse, at have multitasking fra sin første udgave. Windows NT var den første version af Microsoft Windows, der håndhævede præventiv multitasking, men den nåede ikke hjemmebrugermarkedet før Windows XP (da Windows NT var målrettet fagfolk).

Diskadgang og filsystemer

Filsystemer gør det muligt for brugere og programmer at organisere og sortere filer på en computer, ofte ved hjælp af mapper (eller "mapper").

Adgang til data, der er gemt på diske, er en central funktion i alle operativsystemer. Computere gemmer data på diske ved hjælp af filer , der er struktureret på bestemte måder for at muliggøre hurtigere adgang, højere pålidelighed og bedre udnytte drevets ledige plads. Den specifikke måde, hvorpå filer gemmes på en disk, kaldes et filsystem , og gør det muligt for filer at have navne og attributter. Det giver dem også mulighed for at blive gemt i et hierarki af mapper eller mapper arrangeret i et bibliotekstræ .

Tidlige operativsystemer understøttede generelt en enkelt type diskdrev og kun en slags filsystem. Tidlige filsystemer var begrænset i deres kapacitet, hastighed og i den slags filnavne og biblioteksstrukturer, de kunne bruge. Disse begrænsninger afspejlede ofte begrænsninger i de operativsystemer, de var designet til, hvilket gør det meget svært for et operativsystem at understøtte mere end ét filsystem.

Mens mange enklere operativsystemer understøtter en begrænset række muligheder for adgang til lagringssystemer, understøtter operativsystemer som UNIX og Linux en teknologi kendt som et virtuelt filsystem eller VFS. Et operativsystem som UNIX understøtter en lang række lagerenheder, uanset deres design eller filsystemer , hvilket gør det muligt at få adgang til dem via en fælles applikationsprogrammeringsgrænseflade (API). Dette gør det unødvendigt for programmer at have viden om den enhed, de får adgang til. En VFS giver operativsystemet mulighed for at give programmer adgang til et ubegrænset antal enheder med et uendeligt antal filsystemer installeret på dem ved hjælp af specifikke enhedsdrivere og filsystemdrivere.

Der er adgang til en tilsluttet lagerenhed , f.eks. En harddisk , via en enhedsdriver . Enhedsdriveren forstår drevets specifikke sprog og kan oversætte dette sprog til et standardsprog, der bruges af operativsystemet til at få adgang til alle diskdrev. På UNIX er dette sproget på blokkenheder .

Når kernen har en passende enhedsdriver på plads, kan den derefter få adgang til diskdrevets indhold i råformat, som kan indeholde et eller flere filsystemer. En filsystemdriver bruges til at oversætte de kommandoer, der bruges til at få adgang til hvert specifikt filsystem, til et standardsæt med kommandoer, som operativsystemet kan bruge til at tale med alle filsystemer. Programmer kan derefter håndtere disse filsystemer på grundlag af filnavne og mapper/mapper indeholdt i en hierarkisk struktur. De kan oprette, slette, åbne og lukke filer samt indsamle forskellige oplysninger om dem, herunder adgangstilladelser, størrelse, ledig plads og oprettelses- og ændringsdatoer.

Forskellige forskelle mellem filsystemer gør det svært at understøtte alle filsystemer. Tilladte tegn i filnavne, sagsfølsomhed og tilstedeværelsen af ​​forskellige slags filattributter gør implementering af en enkelt grænseflade for hvert filsystem til en skræmmende opgave. Operativsystemer har en tendens til at anbefale at bruge (og dermed understøtte indbygget) filsystemer, der er specielt designet til dem; for eksempel NTFS i Windows og ext3 og ReiserFS i Linux. Men i praksis er tredjepartsdrivere normalt tilgængelige for at understøtte de mest udbredte filsystemer i de fleste generelle operativsystemer (f.eks. Er NTFS tilgængelig i Linux via NTFS-3g , og ext2/3 og ReiserFS er tilgængelige i Windows via tredjepartssoftware).

Understøttelse af filsystemer er meget varieret blandt moderne operativsystemer, selvom der er flere almindelige filsystemer, som næsten alle operativsystemer inkluderer support og drivere til. Operativsystemer varierer afhængigt af filsystemunderstøttelse og diskformater, de kan installeres på. Under Windows er hvert filsystem normalt begrænset i anvendelsen til bestemte medier; f.eks. skal cd'er bruge ISO 9660 eller UDF , og fra Windows Vista er NTFS det eneste filsystem, som operativsystemet kan installeres på. Det er muligt at installere Linux på mange typer filsystemer. I modsætning til andre operativsystemer tillader Linux og UNIX, at ethvert filsystem kan bruges uanset det medie, det er gemt i, uanset om det er en harddisk, en disk (CD, DVD ...), et USB -flashdrev eller endda indeholdt i en fil placeret på et andet filsystem.

Enhedsdrivere

En enhedsdriver er en bestemt type computersoftware udviklet til at tillade interaktion med hardwareenheder. Typisk udgør dette en grænseflade til kommunikation med enheden gennem den specifikke computerbus eller kommunikationsundersystem, som hardwaren er forbundet til, giver kommandoer til og/eller modtager data fra enheden, og i den anden ende de nødvendige grænseflader til driften system- og softwareapplikationer. Det er et specialiseret hardware-afhængigt computerprogram, som også er operativsystemspecifikt, der gør det muligt for et andet program, typisk et operativsystem eller applikationssoftwarepakke eller computerprogram, der kører under operativsystemets kerne, at interagere gennemsigtigt med en hardwareenhed og normalt leverer nødvendig afbrydelse af håndtering nødvendig for alle nødvendige asynkrone tidsafhængige hardware-grænsefladebehov.

Det centrale designmål for enhedsdrivere er abstraktion . Alle hardwaremodeller (selv inden for samme enhedsklasse) er forskellige. Nyere modeller frigives også af producenter, der giver mere pålidelig eller bedre ydeevne, og disse nyere modeller styres ofte forskelligt. Computere og deres operativsystemer kan ikke forventes at vide, hvordan de skal styre alle enheder, både nu og i fremtiden. For at løse dette problem dikterer operativsystemer i det væsentlige, hvordan enhver type enhed skal kontrolleres. Enhedsdriverens funktion er derefter at oversætte disse operativsystemmandatfunktionsopkald til enhedsspecifikke opkald. I teorien skal en ny enhed, der styres på en ny måde, fungere korrekt, hvis en passende driver er tilgængelig. Denne nye driver sikrer, at enheden ser ud til at fungere som normalt fra operativsystemets synspunkt.

Under versioner af Windows før Vista og versioner af Linux før 2.6 var al driverudførelse kooperativ, hvilket betyder, at hvis en driver kom ind i en uendelig loop, ville det fryse systemet. Nyere revisioner af disse operativsystemer inkorporerer forberedelse af kerner, hvor kernen afbryder driveren til at give den opgaver og derefter adskiller sig fra processen, indtil den modtager et svar fra enhedsdriveren eller giver den flere opgaver at udføre.

Netværk

I øjeblikket understøtter de fleste operativsystemer en række netværksprotokoller, hardware og applikationer til brug af dem. Det betyder, at computere, der kører forskellige operativsystemer, kan deltage i et fælles netværk til deling af ressourcer såsom computing , filer, printere og scannere ved hjælp af enten kablede eller trådløse forbindelser. Netværk kan i det væsentlige give en computers operativsystem adgang til ressourcerne på en fjerncomputer for at understøtte de samme funktioner, som de kunne, hvis disse ressourcer blev forbundet direkte til den lokale computer. Dette omfatter alt fra simpel kommunikation, til brug af netværksfilsystemer eller endda deling af en anden computers grafik eller lydhardware. Nogle netværkstjenester gør det muligt at få adgang til en computers ressourcer gennemsigtigt, f.eks. SSH, som giver netværksbrugere direkte adgang til en computers kommandolinjegrænseflade.

Klient/server -netværk tillader et program på en computer, kaldet en klient, at oprette forbindelse via et netværk til en anden computer, kaldet en server. Servere tilbyder (eller hoster) forskellige tjenester til andre netværkscomputere og brugere. Disse tjenester leveres normalt via porte eller nummererede adgangspunkter ud over serverens IP -adresse . Hvert portnummer er normalt forbundet med maksimalt et kørende program, som er ansvarligt for håndtering af anmodninger til den pågældende port. En dæmon, der er et brugerprogram, kan igen få adgang til computerens lokale hardware -ressourcer ved at sende anmodninger til operativsystemets kerne.

Mange operativsystemer understøtter også en eller flere leverandørspecifikke eller åbne netværksprotokoller, f.eks. SNAIBM- systemer, DECnet på systemer fra Digital Equipment Corporation og Microsoft-specifikke protokoller ( SMB ) på Windows. Specifikke protokoller til specifikke opgaver understøttes muligvis også, f.eks. NFS til filadgang. Protokoller som ESound eller esd kan let udvides over netværket for at levere lyd fra lokale applikationer på et fjernsystems lydhardware.

Sikkerhed

En computer, der er sikker, afhænger af, at en række teknologier fungerer korrekt. Et moderne operativsystem giver adgang til en række ressourcer, der er tilgængelige for software, der kører på systemet, og til eksterne enheder som netværk via kernen.

Operativsystemet skal være i stand til at skelne mellem anmodninger, der skal have lov til at blive behandlet, og andre, der ikke bør behandles. Mens nogle systemer simpelthen kan skelne mellem "privilegeret" og "ikke-privilegerede", systemer almindeligvis have en form for requester identitet , såsom et brugernavn. For at etablere identitet kan der være en proces med godkendelse . Ofte skal et brugernavn citeres, og hvert brugernavn kan have en adgangskode. Andre godkendelsesmetoder, såsom magnetkort eller biometriske data, kan muligvis bruges i stedet. I nogle tilfælde, især forbindelser fra netværket, er der muligvis adgang til ressourcer uden overhovedet godkendelse (f.eks. Læsning af filer via en netværksdeling). Også omfattet af begrebet rekvirenten identitet er tilladelse ; de særlige tjenester og ressourcer, som rekvirenten har adgang til, når de først er logget ind på et system, er knyttet til enten rekvirentens brugerkonto eller til de forskellige konfigurerede brugergrupper, som rekvirenten tilhører.

Ud over den tilladte eller ikke tilladte sikkerhedsmodel tilbyder et system med et højt sikkerhedsniveau også revisionsmuligheder. Disse ville tillade sporing af anmodninger om adgang til ressourcer (f.eks. "Hvem har læst denne fil?"). Intern sikkerhed eller sikkerhed fra et allerede kørende program er kun mulig, hvis alle muligvis skadelige anmodninger skal udføres gennem afbrydelser til operativsystemets kerne. Hvis programmer direkte kan få adgang til hardware og ressourcer, kan de ikke sikres.

Ekstern sikkerhed indebærer en anmodning udefra computeren, f.eks. Et login på en tilsluttet konsol eller en form for netværksforbindelse. Eksterne anmodninger sendes ofte gennem enhedsdrivere til operativsystemets kerne, hvor de kan sendes til applikationer eller udføres direkte. Sikkerhed i operativsystemer har længe været en bekymring på grund af meget følsomme data, der opbevares på computere, både af kommerciel og militær karakter. Den amerikanske regerings forsvarsministerium (DoD) oprettede Trusted Computer System Evaluation Criteria (TCSEC), som er en standard, der stiller grundlæggende krav til vurdering af effektiviteten af ​​sikkerhed. Dette blev af vital betydning for operativsystemproducenter, fordi TCSEC blev brugt til at evaluere, klassificere og vælge betroede operativsystemer, der overvejes til behandling, lagring og hentning af følsomme eller klassificerede oplysninger .

Netværksservices omfatter tilbud såsom fildeling, udskrivningstjenester, e -mail, websteder og filoverførselsprotokoller (FTP), hvoraf de fleste kan have kompromitteret sikkerheden. I frontlinjen af ​​sikkerhed er hardwareenheder kendt som firewalls eller indtrængningsdetekterings-/forebyggelsessystemer. På operativsystemniveau er der en række softwarefirewalls til rådighed samt indtrængningsdetekterings-/forebyggelsessystemer. De fleste moderne operativsystemer inkluderer en softwarefirewall, som er aktiveret som standard. En softwarefirewall kan konfigureres til at tillade eller afvise netværkstrafik til eller fra en tjeneste eller et program, der kører på operativsystemet. Derfor kan man installere og køre en usikker service, f.eks. Telnet eller FTP, og behøver ikke at blive truet af et sikkerhedsbrud, fordi firewallen ville nægte al trafik, der prøver at oprette forbindelse til tjenesten på den port.

En alternativ strategi og den eneste sandkassestrategi , der er tilgængelig i systemer, der ikke opfylder Popek- og Goldberg -virtualiseringskravene , er, hvor operativsystemet ikke kører brugerprogrammer som native kode, men i stedet enten emulerer en processor eller giver en vært til en p -kode baseret system som Java.

Intern sikkerhed er især relevant for systemer med flere brugere; det giver hver bruger af systemet mulighed for at have private filer, som de andre brugere ikke kan manipulere med eller læse. Intern sikkerhed er også afgørende, hvis revision skal være til nogen nytte, da et program potentielt kan omgå operativsystemet, herunder bypass -revision.

brugergrænseflade

Et skærmbillede af kommandolinjen Bash . Hver kommando skrives ud efter 'prompten', og derefter vises dens output nedenfor og arbejder sig ned ad skærmen. Den aktuelle kommandoprompt er nederst.

Hver computer, der skal betjenes af en person, kræver en brugergrænseflade . Brugergrænsefladen kaldes normalt en skal og er afgørende, hvis menneskelig interaktion skal understøttes. Brugergrænsefladen ser biblioteksstrukturen og anmoder om tjenester fra operativsystemet, der vil hente data fra inputhardwarenheder , f.eks. Et tastatur , en mus eller en kreditkortlæser , og anmoder operativsystemets tjenester om at vise prompts , statusmeddelelser og lignende på outputhardware enheder , f.eks. en videomonitor eller printer . De to mest almindelige former for en brugergrænseflade har historisk været kommandolinjegrænsefladen , hvor computerkommandoer skrives ud linje for linje, og den grafiske brugergrænseflade , hvor et visuelt miljø (oftest en WIMP ) er til stede.

Grafiske brugergrænseflader

Et skærmbillede af KDE Plasma 5 grafisk brugergrænseflade. Programmer har form af billeder på skærmen, og filer, mapper (mapper) og applikationer har form af ikoner og symboler. En mus bruges til at navigere i computeren.

De fleste af de moderne computersystemer understøtter grafiske brugergrænseflader (GUI), og inkluderer dem ofte. I nogle computersystemer, f.eks. Den oprindelige implementering af det klassiske Mac OS , er GUI integreret i kernen .

Selvom en grafisk brugergrænseflade teknisk set ikke er en operativsystemtjeneste, kan inkorporering af understøttelse af en i operativsystemets kerne gøre det muligt for GUI at være mere lydhør ved at reducere antallet af kontekstkontakter, der kræves for at GUI'en kan udføre sine outputfunktioner. Andre operativsystemer er modulære og adskiller det grafiske undersystem fra kernen og operativsystemet. I 1980'erne havde UNIX, VMS og mange andre operativsystemer, der blev bygget på denne måde. Linux og macOS er også bygget på denne måde. Moderne udgivelser af Microsoft Windows, f.eks. Windows Vista, implementerer et grafisk undersystem, der for det meste er i brugerplads; grafiktegningsrutinerne for versioner mellem Windows NT 4.0 og Windows Server 2003 eksisterer imidlertid mest i kernerum. Windows 9x havde meget lidt forskel mellem grænsefladen og kernen.

Mange computeroperativsystemer giver brugeren mulighed for at installere eller oprette enhver brugergrænseflade, de ønsker. Den X Window System sammen med GNOME eller KDE Plasma-5 er en almindeligt forekommende setup på de fleste Unix og Unix-lignende (BSD, Linux, Solaris) systemer. Der er frigivet en række Windows -shelludskiftninger til Microsoft Windows, der tilbyder alternativer til den medfølgende Windows -shell , men selve skallen kan ikke adskilles fra Windows.

Talrige Unix-baserede GUI'er har eksisteret over tid, de fleste stammer fra X11. Konkurrence mellem de forskellige leverandører af Unix (HP, IBM, Sun) førte til meget fragmentering, selvom et forsøg på at standardisere i 1990'erne til COSE og CDE mislykkedes af forskellige årsager og blev til sidst formørket af den udbredte vedtagelse af GNOME og K Desktop Environment . Inden gratis software -baserede værktøjssæt og desktop -miljøer var Motif den fremherskende kombination af værktøjskasse/desktop (og var grundlaget, som CDE blev udviklet på).

Grafiske brugergrænseflader udvikler sig over tid. For eksempel har Windows ændret sin brugergrænseflade næsten hver gang en ny større version af Windows udgives, og Mac OS GUI ændrede sig dramatisk med introduktionen af ​​Mac OS X i 1999.

Realtids operativsystemer

Et real-time operativsystem (RTOS) er et operativsystem beregnet til applikationer med faste deadlines ( real-time computing ). Sådanne applikationer omfatter nogle små indlejrede systemer , automotorkontrollere, industrirobotter, rumfartøjer, industriel kontrol og nogle store computersystemer.

Et tidligt eksempel på et storstilet realtidsoperativsystem var Transaction Processing Facility udviklet af American Airlines og IBM til Sabre Airline Reservations System .

Indlejrede systemer, der har faste deadlines, bruger et real-time operativsystem som VxWorks , PikeOS , eCos , QNX , MontaVista Linux og RTLinux . Windows CE er et operativsystem i realtid, der deler API'er , der ligner desktop Windows, men ikke deler noget af desktop Windows 'kodebase. Symbian OS har også en RTOS -kerne (EKA2), der starter med version 8.0b.

Nogle integrerede systemer bruger operativsystemer som Palm OS , BSD og Linux , selvom sådanne operativsystemer ikke understøtter computing i realtid.

Udvikling af operativsystem som en hobby

Et hobby -operativsystem kan klassificeres som et, hvis kode ikke er direkte afledt af et eksisterende operativsystem, og har få brugere og aktive udviklere.

I nogle tilfælde understøtter hobbyudvikling en " homebrew " computerenhed, for eksempel en simpel enkelt-board computer, der drives af en 6502 mikroprocessor . Eller, udvikling kan være til en arkitektur, der allerede er i udbredt brug. Operativsystemudvikling kan komme fra helt nye koncepter eller kan begynde med at modellere et eksisterende operativsystem. I begge tilfælde er hobbyisten hans/hendes egen udvikler eller kan interagere med en lille og til tider ustruktureret gruppe af personer, der har lignende interesser.

Eksempler på et hobbyoperativsystem inkluderer Syllable og TempleOS .

Mangfoldighed af operativsystemer og bærbarhed

Applikationssoftware er generelt skrevet til brug på et specifikt operativsystem og nogle gange endda til specifik hardware. Når porten sendes til at køre på et andet operativsystem, kan den funktionalitet, der kræves af denne applikation, muligvis implementeres anderledes af det operativsystem (navnene på funktioner, betydningen af ​​argumenter osv.), Der kræver, at applikationen skal tilpasses, ændres eller på anden måde vedligeholdes .

Unix var det første operativsystem, der ikke var skrevet i samlingssprog, hvilket gjorde det meget bærbart til andre systemer end det oprindelige PDP-11 .

Denne omkostning ved at understøtte mangfoldighed i operativsystemer kan undgås ved i stedet at skrive applikationer mod softwareplatforme som Java eller Qt . Disse abstraktioner har allerede båret omkostningerne ved tilpasning til specifikke operativsystemer og deres systembiblioteker .

En anden tilgang er, at leverandører af operativsystemer vedtager standarder. Eksempelvis giver POSIX- og OS -abstraktionslag fællestræk, der reducerer portionsomkostninger.

Markedsandel

Se også

Noter

Referencer

Yderligere læsning

eksterne links