Operativsystem , forkortet. OS ( engelsk operativsystem, OS ) er et kompleks af indbyrdes relaterede programmer designet til at styre computerressourcer og organisere brugerinteraktion.
I den logiske struktur af et typisk computersystem indtager operativsystemet en position mellem enheder med deres mikroarkitektur, maskinsprog og muligvis deres egne (indlejrede) mikroprogrammer (drivere) på den ene side og applikationsprogrammer på den anden side.
For softwareudviklere giver operativsystemet dig mulighed for at abstrahere fra detaljerne om implementering og drift af enheder, hvilket giver det mindst nødvendige sæt funktioner (se: applikationsprogrammeringsgrænseflade ).
I de fleste computersystemer er operativsystemet det vigtigste, vigtigste (og nogle gange det eneste) stykke systemsoftware . Siden 1990'erne har de mest almindelige operativsystemer været Windows , Unix og UNIX-lignende systemer .
Forløberen for operativsystemer bør betragtes som hjælpeprogrammer (indlæsere og skærme) såvel som biblioteker af ofte anvendte underrutiner , der begyndte at blive udviklet med fremkomsten af 1. generation af mainframe-computere (slutningen af 1940'erne ). Hjælpeprogrammer minimerer operatørens fysiske manipulationer med udstyret, og biblioteker gjorde det muligt at undgå gentagen programmering af de samme handlinger (udførelse af I/O- operationer , beregning af matematiske funktioner osv.).
I 1950'erne og 1960'erne blev de vigtigste ideer, der bestemte funktionaliteten af operativsystemet, dannet og implementeret: batch-tilstand , tidsdeling og multitasking, magtadskillelse, realtid, filstrukturer og filsystemer .
Behovet for optimal udnyttelse af dyre computerressourcer har ført til fremkomsten af konceptet "batch mode" for programafvikling. Batch-tilstanden forudsætter eksistensen af en kø af programmer til afvikling, og systemet kan sikre indlæsning af et program fra eksterne databærere til RAM uden at vente på afslutningen af eksekveringen af det forrige program, hvilket undgår processorens inaktive tid.
Selv batch-tilstanden i sin avancerede version kræver opdeling af processortid mellem udførelsen af flere programmer.
Behovet for tidsdeling (multitasking, multiprogrammering) blev endnu stærkere med udbredelsen af teletyper (og senere terminaler med katodestråleskærme) som input-output- enheder ( 1960'erne ). Da hastigheden på tastaturinput (og endda skærmlæsning) af data fra en operatør er meget lavere end hastigheden for behandling af disse data på en computer, kan brug af computeren i "eksklusiv" tilstand (med én operatør) føre til nedetid på dyre computerressourcer.
Time-sharing tillod oprettelsen af "multi-user" systemer, hvor en (normalt) central behandlingsenhed og en blok RAM var forbundet til adskillige terminaler. Samtidig kunne nogle opgaver (såsom indtastning eller redigering af data af en operatør) udføres i dialogtilstand, mens andre opgaver (såsom massive beregninger) kunne udføres i batch-tilstand.
Udbredelsen af flerbrugersystemer krævede løsningen af problemet med magtadskillelse, hvilket gør det muligt at undgå muligheden for at ændre det eksekverbare program eller dataene fra et program i computerens hukommelse med et andet program (med vilje eller ved en fejltagelse) , samt ændring af selve systemet af applikationsprogrammet .
Implementeringen af magtadskillelse i operativsystemer blev understøttet af processorudviklere, der foreslog arkitekturer med to processordriftstilstande - "rigtig" (hvor hele computerens adresserum er tilgængelig for det eksekverbare program) og "beskyttet" (hvori tilgængeligheden af adresserummet er begrænset til det område, der er tildelt, når programmet starter til afvikling).
Brugen af universelle computere til at styre produktionsprocesser krævede implementering af en "realtidsskala" ("realtid") - synkronisering af programudførelse med eksterne fysiske processer.
Inkluderingen af realtidsskaleringsfunktionen gjorde det muligt at skabe løsninger, der samtidig betjener produktionsprocesser og løser andre opgaver (i batch-tilstand og/eller i tidsdelingstilstand).
Gradvis udskiftning af sekventiel adgangsmedier ( hulletape , hulkort og magnetbånd ) med random access-drev ( magnetiske diske ).
Et filsystem er en måde at gemme data på eksterne lagerenheder.
Hovedfunktioner:
Yderligere funktioner:
Der er to grupper af operativsystemdefinitioner: "et sæt programmer, der styrer hardware" og "et sæt programmer, der styrer andre programmer". Begge har deres nøjagtige tekniske betydning, som er relateret til spørgsmålet, i hvilke tilfælde et operativsystem er påkrævet.
Der er computerapplikationer, for hvilke operativsystemer er overflødige. For eksempel udfører indbyggede mikrocomputere , indeholdt i mange husholdningsapparater, biler (nogle gange et dusin i hver), de enkleste mobiltelefoner, konstant kun et program, der starter, når de tændes. Mange simple spillekonsoller - også specialiserede mikrocomputere - kan undvære et operativsystem, og kører et program gemt på en indsat "patron" eller cd , når de er tændt .
Nødvendige operativsystemer:
Således kan moderne universelle operativsystemer primært karakteriseres som:
Multitasking og fordeling af beføjelser kræver et vist hierarki af komponentrettigheder i selve operativsystemet. Operativsystemet består af tre grupper af komponenter:
De fleste programmer, både system (inkluderet i operativsystemet) og applikationsprogrammer, udføres i en uprivilegeret ("bruger") tilstand af processoren og får adgang til hardwaren (og om nødvendigt til andre kerneressourcer, samt ressourcer fra andre programmer) kun gennem systemkald . Kernen kører i privilegeret tilstand: det er i denne forstand, at systemet (mere præcist, dets kerne) siges at styre hardwaren.
Ved bestemmelse af sammensætningen af operativsystemet er kriteriet om operationel integritet (lukning) vigtigt: Systemet skal tillade fuld brug (inklusive modifikation) af dets komponenter. Derfor inkluderer den fulde sammensætning af operativsystemet et sæt værktøjer (fra teksteditorer til oversættere, debuggere og linkere).
Kernen er den centrale del af operativsystemet, der styrer udførelsen af processer , ressourcerne i computersystemet og giver processer koordineret adgang til disse ressourcer. De vigtigste ressourcer er processortid , hukommelse og I/O-enheder . Filsystemadgang og netværk kan også implementeres på kerneniveau.
Som et grundlæggende element i operativsystemet repræsenterer kernen det laveste abstraktionsniveau for applikationer for at få adgang til de computersystemressourcer, der er nødvendige for deres drift. Som regel giver kernen sådan adgang til de eksekverbare processer i de tilsvarende applikationer gennem brug af interproceskommunikationsmekanismer og applikationskald til OS-systemkald.
Den beskrevne opgave kan variere afhængigt af typen af kernearkitektur og hvordan den implementeres.
OS-kerneobjekter:
I slutningen af 1960'erne havde industrien og det videnskabelige og uddannelsesmæssige samfund skabt en række operativsystemer, der implementerer alle eller dele af de funktioner, der er skitseret ovenfor. Disse omfatter Atlas ( University of Manchester ), CTTSog ITS( Massachusetts Institute of Technology , MIT), THE ( Eindhoven University of Technology ), RS4000 ( Aarhus Universitet ) og andre (mere end hundrede forskellige OS'er var i drift).
De mest avancerede operativsystemer, såsom OS/360 ( IBM ), SCOPE ( CDC ) og Multics (MIT og Bell Labs ), som blev færdiggjort i 1970'erne , gav mulighed for at køre på multiprocessorcomputere.
Den eklektiske karakter af udviklingen af operativsystemer har ført til en stigning i krisefænomener, primært relateret til den overdrevne kompleksitet og størrelse af de systemer, der skabes. Systemerne var dårligt skalerbare (enklere kunne ikke bruge alle mulighederne i store computersystemer; mere udviklede blev ikke udført optimalt på små eller kunne slet ikke udføres på dem) og fuldstændig inkompatible med hinanden, deres udvikling og forbedring blev forsinket.
Udtænkt og implementeret i 1969 af Ken Thompson med hjælp fra flere kolleger (herunder Dennis Ritchie og Brian Kernighan ), optog UNIX -operativsystemet (oprindeligt UNICS, som spillede på navnet Multics) mange funktioner fra tidligere systemer, men havde en række funktioner, der adskilte den fra de fleste forgængere:
UNIX vandt, på grund af dets bekvemmelighed primært som et værktøjsmiljø (udviklingsmiljø), popularitet først på universiteter og derefter i industrien, som modtog en prototype af et enkelt operativsystem, der kunne bruges på en række forskellige computersystemer og desuden , kunne hurtigt og porteres til enhver nyudviklet hardwarearkitektur med minimal indsats.
I slutningen af 1970'erne foretog personalet ved University of California i Berkeley en række forbedringer af UNIX-kildekoden, herunder håndtering af TCP/IP-protokollerne . Deres udvikling blev kendt som BSD (Berkeley Software Distribution).
Richard Stallman , grundlæggeren af GNU-projektet , satte også opgaven med at udvikle en uafhængig (fra Bell Labs copyright) implementering af den samme arkitektur .
På grund af implementeringernes konkurrenceevne blev UNIX-arkitekturen først en de facto industristandard og fik derefter status som en juridisk standard - ISO / IEC 9945 [1] (POSIX).
Kun systemer, der er i overensstemmelse med Single UNIX-specifikationen , er berettiget til at bruge UNIX-navnet. Disse systemer omfatter AIX , HP-UX , IRIX , Mac OS X , SCO OpenServer , Solaris , Tru64 og z/OS .
Operativsystemer, der følger eller er afhængige af POSIX -standarden , omtales som "POSIX-kompatible" (udtrykket " UNIX-lignende " eller "UNIX-familie" er mere almindeligt, men det er i konflikt med status for "UNIX"-varemærket, der ejes af Open Group- konsortiet og forbeholdt betegnelser kun for operativsystemer, der nøje følger standarden). Overholdelse af standarden er certificeret mod et gebyr, hvilket medfører, at nogle systemer ikke går igennem processen, men betragtes som POSIX-kompatible i sig selv.
UNIX-lignende operativsystemer inkluderer operativsystemer baseret på den seneste version af UNIX udgivet af Bell Labs ( System V ), på udviklingen af University of Berkeley ( FreeBSD , OpenBSD , NetBSD ), baseret på Solaris ( OpenSolaris , BeleniX , Nexenta OS ), såvel som Linux . udviklet i form af hjælpeprogrammer og biblioteker af GNU-projektet og i form af kernen af et fællesskab ledet af Linus Torvalds .
Standardiseringen af operativsystemer har til formål at forenkle udskiftningen af selve systemet eller udstyret med udviklingen af et computersystem eller netværk og forenkle overførslen af applikationssoftware (streng overholdelse af standarden indebærer fuld kompatibilitet af programmer på kildekodeniveau; pga. til profileringen af standarden og dens udvikling er nogle ændringer stadig nødvendige, men portering af et program mellem POSIX-kompatible systemer er størrelsesordener billigere end mellem alternative), samt kontinuiteten i brugeroplevelsen.
Den mest bemærkelsesværdige effekt af denne standards eksistens var den effektive udrulning af internettet i 1990'erne .
Holdet, der skabte UNIX, udviklede konceptet med at forene operativsystemobjekter ved at inkludere processer og alle andre system-, netværks- og applikationstjenester i det originale UNIX-koncept om "en enhed er også en fil", og skabte et nyt koncept: "alt er en fil". ". Dette koncept blev et af kerneprincipperne i Plan 9 -systemet (titlen blev taget fra science fiction-thrilleren Plan 9 from Outer Space af Edward Wood Jr. ), som var designet til at overvinde grundlæggende UNIX-designfejl og erstattede UNIX System V "arbejdshest" på computere på Bell Labs netværk i 1992 .
Ud over implementeringen af alle systemobjekter i form af filer og placeringen af dem i et enkelt og personligt rum (navneområde) for hver computernetværksterminal, blev andre UNIX-arkitektoniske løsninger revideret. For eksempel er der i Plan 9 ikke noget begreb om "superbruger", og derfor er enhver overtrædelse af sikkerhedsregimet forbundet med ulovlig erhvervelse af superbrugerrettigheder i systemet udelukket. For at repræsentere (lagring, udveksling) information udviklede Rob Pike og Ken Thompson den universelle UTF-8- kodning , som er blevet de facto-standarden i dag. For at få adgang til filer bruges en enkelt universel 9P-protokol, som fungerer over en netværksprotokol (TCP eller UDP) over et netværk. Der er således ikke noget netværk til applikationssoftware - adgang til lokale og eksterne filer er den samme. 9P er en byte-orienteret protokol, i modsætning til andre lignende protokoller, der er blokorienterede. Dette er også resultatet af konceptet: byte-for-byte-adgang til forenede filer, og ikke blok-for-blok-adgang til en række forskellige enheder, der ændrer sig meget i takt med teknologiens udvikling. For at kontrollere adgangen til objekter kræves ingen anden løsning, bortset fra den filadgangskontrol, der allerede findes i operativsystemet. Det nye lagringssystemkoncept frigjorde systemadministratoren fra det banebrydende arbejde med at vedligeholde arkiver og forventede moderne filversionssystemer.
Operativsystemer baseret på eller inspireret af UNIX, såsom hele BSD-familien og Linux-systemer, adopterer gradvist nye ideer fra Bell Labs. Måske har disse nye ideer en stor fremtid og anerkendelse af it-udviklere.
De nye koncepter blev brugt af Rob Pike i Inferno .
På grundlag af Plan 9 i Spanien udvikles Off ++ og Plan B- systemerne , som er eksperimenterende i sin natur.
Bestræbelser på at skabe en post-UNIX-arkitektur kan også omfatte udvikling af Oberon programmeringssprog og driftsmiljø på ETH Zürich under ledelse af professor Niklaus Wirth .
Operativsystemer | |||||
---|---|---|---|---|---|
Til servere eller arbejdsstationer |
| ||||
Indlejret | |||||
Andet |
af operativsystemer | Aspekter|||||
---|---|---|---|---|---|
| |||||
Typer |
| ||||
Nucleus |
| ||||
Procesledelse _ |
| ||||
Hukommelseshåndtering og adressering | |||||
Indlæsnings- og initialiseringsværktøjer | |||||
skal | |||||
Andet | |||||
Kategori Wikimedia Commons Wikibooks Wiktionary |