1 Beskriv hovedtrinnene i utviklingen av operativsystemer. Utviklingen av operativsystemene til datamaskiner av forskjellige typer. Liste over brukt litteratur

Introduksjon

1. OS-evolusjon

1.1 Den første perioden (1945 -1955)

1.2 Andre periode (1955–1965)

1.3 Tredje periode (1965–1980)

1.4 Fjerde periode (1980 – i dag)

2. OS-klassifisering

2.1 Funksjoner ved ressursstyringsalgoritmer

2.2 Funksjoner for maskinvareplattformer

2.3 Funksjoner ved bruksområder

2.4 Funksjoner ved byggemetoder

3. Moderne konsepter og designteknologier operativsystemer, krav til OS fra XXI århundre

Konklusjon

Liste over brukt litteratur

Introduksjon

Historien til enhver gren av vitenskap eller teknologi gjør det ikke bare mulig å tilfredsstille naturlig nysgjerrighet, men også å bedre forstå essensen av hovedprestasjonene til denne industrien, forstå eksisterende trender og vurdere utsiktene til visse utviklingsretninger riktig. I nesten et halvt århundre av sin eksistens har operativsystemer passert en vanskelig vei fylt med mange viktige hendelser. En stor innflytelse på utviklingen av operativsystemer ble gjort av suksessene med å forbedre elementbasen og datautstyret, derfor er mange stadier av utviklingen av OS nært knyttet til fremveksten av nye typer maskinvareplattformer, for eksempel mini- datamaskiner eller personlige datamaskiner. Operativsystemer har gjennomgått en stor utvikling ifm ny rolle datamaskiner i lokale og globale nettverk. Den viktigste faktoren i utviklingen av OS har blitt Internett. Ettersom dette nettverket får funksjonene til et universelt middel for massekommunikasjon, blir operativsystemene mer og mer enkle og praktiske å bruke, de inkluderer avanserte midler for å støtte multimedieinformasjon og er utstyrt med pålitelige beskyttelsesmidler.

Formålet med dette kursarbeidet er - å beskrive og analysere utviklingen av operativsystemer.

Målet nås gjennom følgende oppgaver:

Vurder det historiske aspektet ved fremveksten av operativsystemer;

Fremhev og vurder stadiene i utviklingen av operativsystemer.

Det skal bemerkes at det faktum at det ikke ble tilstrekkelig fremhevet i litteraturen, gjorde det vanskelig å studere det.

I løpet av undersøkelsen ble det utført en kort analyse av kilder som materiale fra nettstedet http://www.microsoft.com/rus, materiale fra Windows NT Magazine og andre.

Arbeidet består av tre kapitler med innledning, konklusjon og litteraturliste.

1 ... OS evolusjon

1.1 Første periode (1945 -1955)

Det er kjent at datamaskinen ble oppfunnet av den engelske matematikeren Charles Babidge på slutten av det attende århundre. Hans "analytiske maskin" var aldri i stand til å virkelig fungere, fordi teknologiene på den tiden ikke oppfylte kravene til produksjon av presisjonsmekaniske deler, som var nødvendig for datateknologi... Det er også kjent at denne datamaskinen ikke hadde et operativsystem.

Noen fremskritt i etableringen av digitale datamaskiner fant sted etter andre verdenskrig. På midten av 40-tallet ble de første rørdatabehandlingsenhetene laget. På den tiden deltok en og samme gruppe mennesker i utformingen, og i driften, og i programmeringen av datamaskinen. Det var mer et vitenskapelig forskningsarbeid innen databehandling, snarere enn bruk av datamaskiner som et verktøy for å løse eventuelle praktiske problemer fra andre anvendte områder. Programmeringen ble utført utelukkende på maskinspråk. Det var ikke snakk om operativsystemer, alle oppgavene til organisasjonen databehandlingsprosess ble løst manuelt av hver programmerer fra kontrollpanelet. Det var ingen annen systemprogramvare enn matematikk- og verktøybiblioteker.

1.2 Andre periode (1955–1965)

Fra midten av 50-tallet begynte en ny periode i utviklingen av datateknologi, assosiert med fremveksten av en ny teknisk base - halvlederelementer. Andre generasjons datamaskiner har blitt mer pålitelige, nå har de vært i stand til å jobbe kontinuerlig lenge nok til å bli betrodd utførelsen av virkelig praktiske oppgaver. Det var i denne perioden at personellet ble delt inn i programmerere og operatører, operatører og utviklere av datamaskiner.

I løpet av disse årene dukket de første algoritmiske språkene opp, og derfor de første systemprogrammene - kompilatorer. Kostnaden for prosessortid har økt, noe som krever mindre overhead mellom programlanseringer. De første systemene dukket opp batchbehandling, som ganske enkelt automatiserte lanseringen av det ene programmet etter det andre og dermed økte prosessorens belastningsfaktor. Batchbehandlingssystemer var prototypen på moderne operativsystemer, de var de første systemprogrammer designet for å kontrollere dataprosessen. Under implementeringen av batchbehandlingssystemer ble det utviklet et formalisert oppgavekontrollspråk, ved hjelp av hvilket programmereren fortalte systemet og operatøren hvilket arbeid han ønsker å gjøre på datamaskinen. En samling av flere oppgaver, vanligvis i form av en kortstokk med hullkort, kalles en oppgavepakke.

1.3 Tredje periode (1965–1980)

Den neste viktige perioden i utviklingen av datamaskiner går tilbake til 1965-1980. På dette tidspunktet, i den tekniske basen, var det en overgang fra individuelle halvlederelementer som transistorer til integrerte mikrokretser, noe som ga mye større muligheter til den nye, tredje generasjonen datamaskiner.

Denne perioden var også preget av opprettelsen av familier av programvarekompatible maskiner. Den første familien av programvarekompatible maskiner bygget på integrerte kretser var IBM / 360-serien med maskiner. Denne familien ble bygget på begynnelsen av 1960-tallet og klarte seg betydelig bedre enn andre generasjons maskiner når det gjelder pris/ytelse. Snart ble ideen om programvarekompatible maskiner generelt akseptert.

Programvarekompatibilitet krevde også operativsystemkompatibilitet. Slike operativsystemer må fungere på både store og små datasystemer ah, med et stort og et lite antall mangfoldige periferi, i det kommersielle området og i området Vitenskapelig forskning... Operativsystemer bygget med den hensikt å møte alle disse motstridende kravene har vist seg å være ekstremt komplekse "monstre". De besto av mange millioner monteringslinjer, skrevet av tusenvis av programmerere, og inneholdt tusenvis av feil, noe som forårsaket en endeløs strøm av rettelser. I hver nye versjon av operativsystemet ble noen feil fikset og andre ble introdusert.

Til tross for sin enorme størrelse og mange problemer, tilfredsstilte OS / 360 og andre lignende operativsystemer til tredjegenerasjonsmaskiner de fleste forbrukernes behov. Den viktigste prestasjonen til denne generasjonen av operativsystemer var implementeringen av multiprogrammering. Multiprogrammering er en metode for å organisere en beregningsprosess der flere programmer vekselvis kjøres på én prosessor. Mens ett program utfører en I/O-operasjon, går ikke prosessoren på tomgang, slik den gjorde i sekvensiell programkjøring (enkeltprogrammodus), men kjører et annet program (flerprogrammodus). I dette tilfellet blir hvert program lastet inn i sin egen del av RAM, kalt en seksjon.

En annen innovasjon er spooling. På den tiden ble spooling definert som en måte å organisere databehandlingsprosessen på, i samsvar med hvilke oppgaver ble lest fra hullkort til disk med den hastigheten de dukket opp i datasenteret, og deretter, når neste oppgave ble fullført, en ny oppgave fra disk ble lastet inn i den frigjorte partisjonen. ...

Sammen med multiprogramimplementeringen av batchbehandlingssystemer har en ny type OS dukket opp - tidsdelingssystemer. En variant av multiprogrammering brukt i tidsdelingssystemer er rettet mot å skape en illusjon for hver enkelt bruker av enestående bruk av en datamaskin.

1.4 Fjerde periode (1980 – nåtid)

Den neste perioden i utviklingen av operativsystemer er forbundet med fremveksten av store integrerte kretser(BIS). I løpet av disse årene var det en kraftig økning i graden av integrasjon og en reduksjon i kostnadene for mikrokretser. Datamaskinen ble tilgjengelig for den enkelte, og epoken kom personlige datamaskiner... Fra et arkitektursynspunkt skilte ikke personlige datamaskiner seg på noen måte fra klassen av minidatamaskiner som PDP-11, men prisen deres var betydelig forskjellig. Hvis en minidatamaskin gjorde det mulig for en avdeling i en bedrift eller et universitet å ha sin egen datamaskin, så gjorde en personlig datamaskin det mulig for en enkeltperson.

Datamaskiner ble mye brukt av ikke-spesialister, noe som krevde utvikling av "vennlig" programvare, dette satte en stopper for kasteprogrammererne.

Operativsystemmarkedet ble dominert av to systemer: MS-DOS og UNIX. MS-DOS-operativsystemet med ett program for én bruker ble mye brukt for datamaskiner basert på Intel 8088-mikroprosessoren, etterfulgt av 80286, 80386 og 80486. Multi-program multi-user UNIX-operativsystemet dominerte ikke-Intel datamiljø, spesielt de som er basert på høyytelses RISC-prosessorer.

På midten av 80-tallet begynte personlige datanettverk å utvikle seg raskt, og kjørte under nettverk eller distribuerte operativsystemer.

I et nettverksoperativsystem må brukere være klar over tilstedeværelsen av andre datamaskiner og må logge på en annen datamaskin for å bruke ressursene, hovedsakelig filer. Hver maskin på nettverket kjører sitt eget lokale operativsystem, som skiller seg fra operativsystemet til en frittstående datamaskin i nærvær av tilleggsverktøy som gjør at datamaskinen kan operere på nettverket. Nettverksoperativsystemet er ikke fundamentalt forskjellig fra operativsystemet til en datamaskin med én prosessor. Den inneholder nødvendigvis programvarestøtte for nettverksgrensesnittenheter (driver nettverksadapter), samt verktøy for ekstern tilgang til andre datamaskiner på nettverket og verktøy for tilgang til eksterne filer, men disse tilleggene endrer ikke strukturen til selve operativsystemet vesentlig.

2. OS-klassifisering

Operativsystemer kan variere i funksjonene til implementeringen av interne algoritmer for å administrere hovedressursene til datamaskinen (prosessorer, minne, enheter), funksjonene til designmetodene som brukes, typer maskinvareplattformer, bruksområder og mange andre egenskaper .

Nedenfor er klassifiseringen av OS i henhold til flere av de mest grunnleggende egenskapene.

2.1 Funksjoner av ressursstyringsalgoritmer

Effektiviteten til nettverksoperativsystemet som helhet avhenger i stor grad av effektiviteten til algoritmene for å administrere de lokale ressursene til en datamaskin. Derfor, når man karakteriserer et nettverksoperativsystem, siterer man ofte essensielle funksjoner implementering av OS-funksjoner for å administrere prosessorer, minne, eksterne enheter på en autonom datamaskin. Så, for eksempel, avhengig av funksjonene til prosessorkontrollalgoritmen som brukes, er operativsystemer delt inn i multitasking og single-tasking, multi-user og single-user, systemer som støtter flertrådsbehandling og ikke støtter det, i multiprosessor og enprosessorsystemer.

Multitasking-støtte. Operativsystemer kan deles inn i to klasser basert på antall samtidig utførte oppgaver:

enkeltoppgave (f.eks. MS-DOS, MSX) og

multitasking (OC EC, OS / 2, UNIX, Windows 95).

Enkeltoppgaveoperativsystemer utfører hovedsakelig funksjonen å gi brukeren en virtuell maskin, noe som gjør det enklere og mer praktisk for brukeren å samhandle med datamaskinen. Enkeltoppgaveoperativsystemer inkluderer verktøy for å kontrollere eksterne enheter, verktøy for å administrere filer, verktøy for å kommunisere med brukeren.

Et multitasking-operativsystem, i tillegg til funksjonene ovenfor, administrerer deling av delte ressurser som prosessor, RAM, filer og eksterne enheter.

Støtte for flerspillermodus. Etter antall samtidige brukere er operativsystemet delt inn i:

enkeltbruker (MS-DOS, Windows 3.x, tidligere versjoner av OS / 2);

flerbruker (UNIX, Windows NT).

Hovedforskjellen mellom flerbrukersystemer og enkeltbrukersystemer er tilgjengeligheten av midler for å beskytte informasjonen til hver bruker mot uautorisert tilgang fra andre brukere. Det bør bemerkes at ikke alle multi-tasking-systemer er multi-user, og ikke alle enkelt-bruker-operativsystemer er single-tasking.

Forebyggende og ikke-forebyggende multitasking. Den viktigste delte ressursen er CPU-tid. Måten CPU-tid er fordelt på flere prosesser (eller tråder) som eksisterer samtidig i systemet, bestemmer i stor grad spesifikasjonene til operativsystemet. Blant de mange eksisterende alternativene for implementering av multitasking, kan to grupper av algoritmer skilles:

ikke-forebyggende multitasking (NetWare, Windows 3.x);

forebyggende multitasking (Windows NT, OS / 2, UNIX).

Hovedforskjellen mellom forebyggende og ikke-forebyggende multitasking er graden av sentralisering av prosessplanleggingsmotoren. I det første tilfellet er prosessplanleggingsmekanismen helt konsentrert i operativsystemet, og i det andre er den fordelt mellom systemet og applikasjonsprogrammene. Ved ikke-forebyggende multitasking kjører den aktive prosessen til den på eget initiativ overgir kontrollen til operativsystemet for at den skal velge en annen prosess klar til å kjøre fra køen. Ved forebyggende multitasking tas beslutningen om å bytte prosessor fra én prosess til en annen av operativsystemet, ikke av selve den aktive prosessen.

Flertrådsstøtte. En viktig funksjon ved operativsystemer er muligheten til å parallellisere beregninger innenfor en enkelt oppgave. Et flertråds OS deler ikke prosessortid mellom oppgaver, men mellom deres separate grener (tråder).

Multiprosessering. En annen viktig funksjon ved operativsystemet er fraværet eller tilstedeværelsen av støtte for multiprosessering - multiprosessering. Multiprosessering fører til komplikasjonen av alle ressursstyringsalgoritmer.

I dag er det i ferd med å bli generelt akseptert å introdusere støttefunksjoner for multiprosessering i operativsystemet. Disse funksjonene er tilgjengelige på Suns Solaris 2.x-operativsystemer. Åpne server 3.x fra Santa Crus Operations, OS / 2 fra IBM, Windows NT fra Microsoft og NetWare 4.1 fra Novell.

Multiprosessor OS kan klassifiseres i henhold til måten databehandlingsprosessen er organisert i et system med en multiprosessorarkitektur: asymmetrisk OS og symmetrisk OS. Et asymmetrisk OS kjøres fullstendig på bare én av prosessorene i systemet, og fordeler applikasjonsoppgaver mellom resten av prosessorene. Et symmetrisk OS er fullstendig desentralisert og bruker hele utvalget av prosessorer, og deler dem mellom system- og applikasjonsoppgaver.

Ovenfor vurderte vi egenskapene til operativsystemet knyttet til administrasjonen av bare én type ressurs - prosessoren. En viktig innflytelse på utseendet til operativsystemet som helhet, på muligheten for bruk i et eller annet område, utøves også av funksjonene til andre undersystemer for å administrere lokale ressurser - undersystemer for å administrere minne, filer og input- utgangsenheter.

Operativsystemets spesifisitet manifesteres også i måten det implementerer nettverksfunksjoner på: gjenkjennelse og omdirigering av forespørsler til nettverket til nettverket. eksterne ressurser, overføring av meldinger over nettverket, utførelse av eksterne forespørsler. Når du implementerer nettverksfunksjoner, oppstår et sett med oppgaver knyttet til den distribuerte naturen til lagring og behandling av data i nettverket: vedlikehold av referanseinformasjon om alle ressurser og servere som er tilgjengelige på nettverket, adressering av interaksjonsprosesser, sikre tilgangsgjennomsiktighet, replikering av data, avstemming av kopier , opprettholde datasikkerhet.

2. 2 Funksjoner av maskinvareplattformer

Egenskapene til operativsystemet påvirkes direkte av maskinvaren det er orientert mot. Etter type maskinvare skilles operativsystemene til personlige datamaskiner, minidatamaskiner, stormaskiner, klynger og datanettverk. Blant de listede typene datamaskiner kan det finnes både uniprosessor-versjoner og multiprosessorer. I alle fall gjenspeiles spesifikasjonene til maskinvare vanligvis i spesifikasjonene til operativsystemer.

Selvfølgelig, OS stor bil er mer kompleks og funksjonell enn operativsystemet til en personlig datamaskin. Så i operativsystemet til store maskiner er funksjonene for å planlegge flyten av oppgaver som utføres åpenbart implementert ved å bruke komplekse prioriterte disipliner og krever mer datakraft enn i operativsystemet til personlige datamaskiner. Situasjonen er lik med andre funksjoner.

Nettverksoperativsystemet inkluderer midler for å overføre meldinger mellom datamaskiner over kommunikasjonslinjer, noe som er helt unødvendig i et frittstående operativsystem. Basert på disse meldingene opprettholder nettverksoperativsystemet deling av datamaskinressurser mellom eksterne brukere som er koblet til nettverket. For å støtte meldingsfunksjoner inneholder nettverksoperativsystemer spesielle programvarekomponenter som implementerer populære kommunikasjonsprotokoller som IP, IPX, Ethernet og andre.

Multiprosessorsystemer krever en spesiell organisasjon fra operativsystemet, ved hjelp av hvilken selve operativsystemet, så vel som applikasjonene det støtter, kan kjøres parallelt av de individuelle prosessorene i systemet. Parallell drift av separate deler av OS skaper ekstra problemer for OS-utviklere, siden det i dette tilfellet er mye vanskeligere å sikre konsekvent tilgang individuelle prosesser til vanlige systemtabeller, eliminere effekten av løp og andre uønskede konsekvenser av asynkron utførelse av arbeid.

Andre krav gjelder for klyngeoperativsystemer. En klynge er en løst koblet samling av flere datasystemer som jobber sammen for å utføre vanlige applikasjoner, og presentert for brukeren av et enkelt system. Sammen med spesialutstyr for funksjon klyngesystemer programvarestøtte fra operativsystemet kreves også, som i bunn og grunn koker ned til å synkronisere tilgang til delte ressurser, oppdage feil og dynamisk rekonfigurere systemet. En av de første utviklingene innen klyngeteknologi var løsningene til Digital Equipment-selskapet basert på VAX-datamaskiner. Selskapet inngikk nylig en avtale med Microsoft om å utvikle klyngeteknologi ved bruk av Windows NT. Flere selskaper tilbyr klynger basert på UNIX-maskiner.

Sammen med operativsystemer som retter seg mot en helt spesifikk type maskinvareplattform, finnes det operativsystemer spesialdesignet slik at de enkelt kan overføres fra en type datamaskin til en annen type datamaskin, det såkalte mobile OS. Det mest fremtredende eksemplet på et slikt operativsystem er det populære UNIX-systemet. I disse systemene er de maskinvareavhengige stedene nøye lokalisert, slik at når systemet overføres til en ny plattform er det kun de som overskrives. Verktøyet som gjør det lettere å portere resten av operativsystemet er å skrive det på et maskinuavhengig språk, som for eksempel C, som ble utviklet for programmering av operativsystemer.

2. 3 Funksjoner ved bruksområder

Multitasking-operativsystemer er delt inn i tre typer i samsvar med ytelseskriteriene som brukes i utviklingen:

batchbehandlingssystemer (f.eks. OC EC),

tidsdelingssystemer (UNIX, VMS),

sanntidssystemer (QNX, RT / 11).

Batchbehandlingssystemer ble designet for å løse hovedsakelig beregningsproblemer som ikke krever raske resultater. Hovedmålet og effektivitetskriteriet for batchbehandlingssystemer er å maksimere gjennomstrømning, det vil si å løse det maksimale antallet problemer per tidsenhet. For å oppnå dette målet brukes følgende operasjonsskjema i batchbehandlingssystemer: i begynnelsen av arbeidet dannes en gruppe oppgaver, hver oppgave inneholder et krav til systemressurser; fra denne pakken med oppgaver dannes en multiprogramblanding, det vil si en mengde oppgaver som utføres samtidig. For samtidig utførelse velges oppgaver som presenterer ulike ressurskrav, slik at det sikres en balansert belastning av alle enheter på datamaskinen; for eksempel i en flerprogramblanding er det ønskelig å ha både beregnings- og I/O-intensive oppgaver samtidig. Dermed avhenger valget av en ny oppgave fra en gruppe oppgaver av den interne situasjonen i systemet, det vil si at en "lønnsom" oppgave velges. Følgelig er det i slike operativsystemer umulig å garantere utførelsen av denne eller den oppgaven under en viss periode tid. I batchbehandlingssystemer bytter prosessoren fra en oppgave til en annen bare hvis den aktive oppgaven selv gir fra seg prosessoren, for eksempel på grunn av behovet for å utføre en I/O-operasjon. Derfor kan én oppgave oppta prosessoren i lang tid, noe som gjør det umulig å utføre interaktive oppgaver. Dermed blir brukerens interaksjon med datamaskinen som batchbehandlingssystemet er installert på, redusert til det faktum at han tar med oppgaven, gir den til ekspeditøren-operatøren, og på slutten av dagen, etter å ha fullført hele batchen med oppgaver , får han resultatet. Åpenbart reduserer denne ordren brukerens effektivitet.

Tidsdelingssystemer er designet for å korrigere hovedulempen med batchbehandlingssystemer - isolasjonen av brukerprogrammereren fra prosessen med å utføre oppgavene sine. Hver bruker av tidsdelingssystemet er utstyrt med en terminal hvorfra han kan føre en dialog med programmet sitt. Siden i tidsdelingssystemer tildeles hver oppgave kun et kvantum av prosessortid, tar ingen oppgave prosessoren lenge, og responstiden er akseptabel. Hvis kvantumet er valgt lite nok, har alle brukere som samtidig jobber på samme maskin inntrykk av at hver av dem bruker maskinen alene. Det er klart at tidsdelingssystemer har mindre båndbredde enn batchbehandlingssystemer, siden hver oppgave som lanseres av brukeren er akseptert for utførelse, og ikke den som er "gunstig" for systemet, og i tillegg er det en overhead på datakraft for hyppigere bytting av prosessor fra oppgave til oppgave. Kriteriet for effektiviteten til tidsdelingssystemer er ikke maksimal gjennomstrømning, men brukervennligheten og effektiviteten til brukeren.

Sanntidssystemer brukes til å kontrollere ulike tekniske anlegg, som for eksempel en maskinverktøy, satellitt, vitenskapelig eksperimentell installasjon eller teknologiske prosesser, slik som galvanisk linje, masovnsprosess, etc. I alle disse tilfellene er det en maksimal tillatt tid hvor et eller annet program som kontrollerer objektet må utføres, ellers kan det oppstå en ulykke: satellitten vil forlate synlighetssonen, eksperimentelle data fra sensorene vil gå tapt, tykkelsen galvanisering vil ikke samsvare med normen. Dermed er effektivitetskriteriet for sanntidssystemer deres evne til å tåle på forhånd angitte intervaller tiden mellom starten av programmet og mottak av resultatet (kontrollhandling). Denne tiden kalles reaksjonstiden til systemet, og den tilsvarende egenskapen til systemet kalles reaktivitet. For disse systemene er en multiprogramblanding et fast sett med forhåndsutviklede programmer, og valget av et program for utførelse er basert på den nåværende tilstanden til objektet eller i samsvar med tidsplanen for planlagte arbeider.

Noen operativsystemer kan kombinere egenskapene til systemer av forskjellige typer, for eksempel kan noen oppgaver utføres i batch-modus, og noen - i sanntid eller i tidsdelingsmodus. I slike tilfeller blir batchbehandling ofte referert til som bakgrunnsbehandling.

2. 4 Funksjoner av byggemetoder

Når man beskriver et operativsystem, indikeres ofte egenskapene til dets strukturelle organisasjon og de grunnleggende konseptene som ligger til grunn for det.

Disse grunnleggende konseptene inkluderer:

Måten å bygge systemkjernen på er en monolitisk kjerne eller en mikrokjernetilnærming. De fleste operativsystemer bruker en monolitisk kjerne, som er koblet som ett program som kjører i privilegert modus og bruker raske overganger fra en prosedyre til en annen, og krever ikke bytte fra privilegert modus til brukermodus og omvendt. Et alternativ er å bygge et OS basert på en mikrokjerne, som også opererer i en privilegert modus og kun utfører et minimum avner, mens funksjonene til et høyere OS utføres av spesialiserte OS-komponenter - servere som kjører i brukermodus. Med denne designen fungerer operativsystemet saktere, siden overganger ofte gjøres mellom privilegert modus og brukermodus, men systemet viser seg å være mer fleksibelt - funksjonene kan økes, modifiseres eller begrenses ved å legge til, modifisere eller ekskludere brukermodus servere. I tillegg er servere godt beskyttet mot hverandre, akkurat som alle brukerprosesser.

Å bygge et OS basert på en objektorientert tilnærming gjør det mulig å bruke alle dets fordeler, som har vist seg godt på applikasjonsnivå, i operativsystemet, nemlig: akkumulering av vellykkede løsninger i form av standardobjekter, evnen å lage nye objekter basert på eksisterende ved å bruke arvemekanismen, god beskyttelse data på grunn av deres innkapsling i de interne strukturene til objektet, noe som gjør dataene utilgjengelige for uautorisert bruk fra utsiden, strukturen til systemet, bestående av et sett med veldefinerte objekter.

Tilstedeværelsen av flere applikasjonsmiljøer gjør det mulig å kjøre applikasjoner utviklet for flere OS samtidig innenfor ett OS. Mange moderne operativsystemer støtter samtidig applikasjonsmiljøene MS-DOS, Windows, UNIX (POSIX), OS / 2, eller i det minste en del av dette populære settet. Konseptet med flere applikasjonsmiljøer implementeres enklest i et OS basert på mikrokjernen det jobbes med. ulike servere noen av dem implementerer applikasjonsmiljøet til et bestemt operativsystem.

Den distribuerte organiseringen av operativsystemet forenkler arbeidet til brukere og programmerere i nettverksmiljøer. Det distribuerte operativsystemet implementerer mekanismer som gjør det mulig for brukeren å forestille seg og oppfatte nettverket som en tradisjonell datamaskin med én prosessor. De karakteristiske trekkene distribuert organisasjon av operativsystemet er: tilstedeværelsen av en enkelt hjelpetjeneste for delte ressurser, en enkelttidstjeneste, bruken av RPC-mekanismen for gjennomsiktig distribusjon av programprosedyrer mellom maskiner, flertrådsbehandling, som tillater parallellisere beregninger innenfor en enkelt oppgave og utføre denne oppgaven på flere datamaskiner samtidig nettverk, samt tilgjengeligheten av andre distribuerte tjenester.

3. Moderne konsepter og teknologier for utforming av operativsystemer, krav til operativsystemetXXIårhundre

Operativsystemet er hjertet i nettverksprogramvare, det skaper miljøet for applikasjoner å kjøre og bestemmer i stor grad hvilke egenskaper disse applikasjonene vil ha nyttige for brukeren. I denne forbindelse vil vi vurdere kravene som et moderne OS må tilfredsstille.

Åpenbart er hovedkravet for et operativsystem muligheten til å utføre grunnleggende funksjoner: effektiv ledelse ressurser og gi et brukervennlig grensesnitt for brukeren og applikasjonsprogrammene. Et moderne operativsystem må som regel implementere multiprogrammering, virtuelt minne, bytte, støtte et multi-vindusgrensesnitt og også utføre mange andre absolutt nødvendige funksjoner. I tillegg til disse funksjonskravene er det like viktige markedskrav til operativsystemer. Disse kravene inkluderer:

· Utvidbarhet. Koden bør skrives på en slik måte at det er enkelt å gjøre tillegg og endringer om nødvendig, og ikke krenke systemets integritet.

· Bærbarhet. Kode bør lett kunne flyttes fra én type prosessor til en annen type prosessor, og fra en maskinvareplattform (som inkluderer, sammen med typen prosessor og måten all maskinvare er organisert) av én type til en annen type maskinvareplattform.

· Pålitelighet og robusthet. Systemet skal være beskyttet mot både interne og eksterne feil, feil og feil. Handlingene skal alltid være forutsigbare, og applikasjoner skal ikke kunne skade OS.

· Kompatibilitet. OS må ha midler til å kjøre applikasjoner skrevet for andre operativsystemer. I tillegg må brukergrensesnittet være kompatibelt med eksisterende systemer og standarder.

· Sikkerhet. OS må ha midler til å beskytte ressursene til noen brukere fra andre.

· Opptreden. Systemet skal være så raskt og responsivt som maskinvareplattformen tillater.

La oss se nærmere på noen av disse kravene.

Utvidbarhet Mens maskinvaren blir foreldet over flere år, nyttig liv operativsystemer kan måles i flere tiår. Et eksempel er UNIX OS. Derfor endres operativsystemer alltid evolusjonært over tid, og disse endringene er mer betydningsfulle enn maskinvareendringer. Endringer i operativsystemet representerer vanligvis anskaffelse av nye eiendommer av det. For eksempel støtte for nye enheter som CD-ROM, muligheten til å kommunisere med nye typer nettverk, støtte for lovende teknologier som et grafisk brukergrensesnitt eller objektorientert programvaremiljø, bruk av mer enn én prosessor. Å opprettholde integriteten til koden, uansett hvilke endringer som gjøres i operativsystemet, er hovedmålet med utviklingen.

Utvidbarhet kan oppnås på grunn av den modulære strukturen til operativsystemet, der programmer er bygget fra et sett med separate moduler som bare samhandler gjennom et funksjonelt grensesnitt. Nye komponenter kan legges til operativsystemet på en modulær måte, de gjør jobben sin ved å bruke grensesnittene som støttes av de eksisterende komponentene.

Å bruke objekter til å representere systemressurser forbedrer også systemutvidbarheten. Objekter er abstrakte datatyper som bare kan manipuleres av et spesielt sett med objektfunksjoner. Objekter lar deg administrere systemressurser konsekvent. Å legge til nye objekter ødelegger ikke eksisterende objekter og krever ikke endringer i eksisterende kode.

Klient-server-tilnærmingen til å strukturere operativsystemet ved hjelp av mikrokjerneteknologi gir utmerkede muligheter for utvidbarhet. I samsvar med denne tilnærmingen er operativsystemet bygget som en kombinasjon av et privilegert kontrollprogram og et sett med uprivilegerte servertjenester. Hoveddelen av operativsystemet kan forbli uendret mens nye servere kan legges til eller gamle forbedres.

Remote Procedure Call (RPC)-fasiliteter gir også muligheten til å utvide funksjonaliteten til operativsystemet. Ny programprosedyrer kan legges til en hvilken som helst maskin på nettverket og umiddelbart tilgjengelig for applikasjonsprogrammer på andre maskiner på nettverket.

Noen operativsystemer støtter nedlastbare drivere for å forbedre utvidbarheten, som kan legges til systemet mens det kjører. Nye filsystemer, enheter og nettverk kan støttes ved å skrive en enhetsdriver, driver filsystem eller en transportsjåfør og last den inn i systemet.

Bærbarhet Kravet om kodeportabilitet er nært knyttet til utvidbarhet. Utvidbarhet lar deg forbedre operativsystemet, mens portabilitet lar deg flytte hele systemet til en maskin basert på en annen prosessor eller maskinvareplattform, samtidig som du gjør så få kodeendringer som mulig. Mens OS-er ofte beskrives som enten bærbare eller ikke-bærbare, er ikke portabilitet en binær tilstand. Spørsmålet er ikke om systemet kan migreres, men hvor enkelt det kan gjøres. Å skrive et bærbart operativsystem er som å skrive hvilken som helst bærbar kode - det er noen regler å følge.

For det første må det meste av koden skrives på et språk som er tilgjengelig på alle maskinene du ønsker å portere systemet til. Dette betyr vanligvis at koden må skrives på et høynivåspråk, fortrinnsvis et standardisert språk, slik som C. Et program skrevet i assembly er ikke portabelt, med mindre du har tenkt å portere det til en maskin som har kommandokompatibilitet med din.

For det andre bør man vurdere i hvilke fysiske omgivelser programmet skal overføres. Ulik maskinvare krever ulike løsninger når du bygger et OS. For eksempel kan et OS bygget på 32-biters adresser ikke porteres til en maskin med 16-biters adresser (med mindre det er vanskelig).

For det tredje er det viktig å minimere eller, hvis mulig, ekskludere de delene av koden som direkte samhandler med maskinvaren. Maskinvareavhengighet kan ha mange former. Noen åpenbare former for avhengighet inkluderer direkte manipulering av registre og annen maskinvare.

For det fjerde, hvis den maskinvareavhengige koden ikke kan utelukkes fullstendig, bør den isoleres i flere godt lokaliserte moduler. Maskinvareavhengig kode trenger ikke distribueres i hele systemet. For eksempel kan du skjule en maskinvareavhengig struktur i programvaredefinerte data av en abstrakt type. Andre moduler i systemet vil fungere med disse dataene, og ikke med maskinvaren, ved å bruke et sett med noen funksjoner. Når operativsystemet migreres, endres bare disse dataene og funksjonene som manipulerer dem.

For enkel portabilitet av operativsystemet, må følgende krav oppfylles under utviklingen:

· Bærbart språk på høyt nivå. De fleste bærbare operativsystemer er skrevet i C (ANSI X3.159-1989 standard). Utviklere velger C fordi det er standardisert og fordi C-kompilatorer er allment tilgjengelige. Samleren brukes bare for de delene av systemet som trenger å samhandle direkte med maskinvaren (for eksempel en avbruddsbehandler) eller for deler som krever maksimal hastighet (for eksempel heltallsaritmetikk økt nøyaktighet). Ikke-bærbar kode må imidlertid isoleres nøye i komponentene der den brukes.

· Prosessorisolasjon. Noen lavnivådeler av OS må ha tilgang til prosessoravhengige datastrukturer og registre. Koden som gjør dette må imidlertid finnes i små moduler som kan erstattes med lignende moduler for andre prosessorer.

· Isolering av plattformen. Plattformavhengighet er forskjellen mellom arbeidsstasjoner fra forskjellige produsenter, bygget på samme prosessor (for eksempel MIPS R4000). Bør legges inn programvarenivå som abstraherer maskinvare (cacher, I/O avbruddskontrollere, etc.) sammen med et lag med lavnivåprogrammer slik at høynivåkoden ikke trenger å endres ved portering fra en plattform til en annen.

Kompatibilitet Et aspekt ved kompatibilitet er muligheten til et OS til å kjøre programmer skrevet for et annet OS eller tidligere versjoner av et gitt operativsystem, så vel som for en annen maskinvareplattform.

Det er nødvendig å skille problemene med binær kompatibilitet og kompatibilitet på applikasjonskildenivå. Binær kompatibilitet oppnås når du kan ta et kjørbart program og kjøre det på et annet operativsystem. Dette krever: kompatibilitet på nivået av prosessorinstruksjoner, kompatibilitet på nivået systemanrop og til og med på nivå med bibliotekanrop, hvis de er dynamisk koblet.

Kildekompatibilitet krever en passende kompilator i programvaren, samt kompatibilitet med bibliotek og systemanrop. I dette tilfellet er det nødvendig å rekompilere de eksisterende kildene til en ny kjørbar modul.

Kildekompatibilitet er viktig først og fremst for applikasjonsutviklere som alltid har kildekode til rådighet. Men for sluttbrukere bare binær kompatibilitet er av praktisk betydning, siden de bare i dette tilfellet kan bruke det samme kommersielle produktet, levert som binær kjørbar kode, i forskjellige driftsmiljøer og på forskjellige maskiner.

Hvorvidt et nytt operativsystem er binært eller kildekompatibelt med eksisterende systemer, avhenger av mange faktorer. Den viktigste av disse er arkitekturen til prosessoren som det nye operativsystemet kjører på. Hvis prosessoren som operativsystemet er portert til bruker samme instruksjonssett (muligens med noen tillegg) og samme adresseområde, kan binær kompatibilitet oppnås ganske enkelt.

Det er mye vanskeligere å oppnå binær kompatibilitet mellom prosessorer basert på forskjellige arkitekturer. For at en datamaskin skal kjøre programmene til en annen (for eksempel et DOS-program på en Mac), må datamaskinen operere med maskininstruksjoner som den ikke forstår i utgangspunktet. For eksempel må en 680x0-prosessor på en Mac kjøre binærfiler designet for en 80x86-prosessor på en PC. 80x86-prosessoren har sin egen instruksjonsdekoder, registre og intern arkitektur. 680x0-prosessoren forstår ikke 80x86-binæren, så den må velge hver instruksjon, dekode den for å finne ut hva den er for, og deretter utføre den tilsvarende subrutinen skrevet for 680x0. Siden 680x0 i tillegg ikke har nøyaktig de samme registre, flagg og interne aritmetiske logiske enheter som i 80x86, må den simulere alle disse elementene ved hjelp av registrene eller minnet. Og den må nøye gjengi resultatene av hver kommando, noe som krever spesialskrevne rutiner for 680x0 for å sikre at tilstanden til de emulerte registrene og flaggene etter at hver kommando er utført er nøyaktig den samme som på en ekte 80x86.

Dette er enkelt, men veldig tregt arbeid, siden mikrokoden inne i 80x86-prosessoren kjører med en betydelig høyere hastighet enn de eksterne 680x0-instruksjonene som emulerer den. Under utførelsen av en 80x86-kommando på 680x0, kan en ekte 80x86 utføre dusinvis av kommandoer. Derfor, hvis prosessoren som utfører emuleringen ikke er rask nok til å kompensere for alle emuleringstapene, vil programmene som kjøres under emuleringen være veldig trege.

Veien ut i slike tilfeller er å bruke de såkalte applikasjonsmiljøene. Tatt i betraktning at hoveddelen av programmet som regel består av kall til bibliotekfunksjoner, simulerer applikasjonsmiljøet hele bibliotekfunksjonene ved å bruke et tidligere skrevet bibliotek med funksjoner med lignende formål, og emulerer resten av kommandoene hver for seg.

POSIX-samsvar er også et middel for å sikre kompatibilitet mellom programvare og brukergrensesnitt... I andre halvdel av 80-tallet begynte amerikanske offentlige etater å utvikle POSIX som standarder for utstyr levert ved inngåelse av offentlige kontrakter i datafelt... POSIX er et "UNIX-basert bærbart OS-grensesnitt". POSIX er en samling internasjonale OS-grensesnittstandarder i UNIX-stil. Bruken av POSIX-standarden (IEEE-standard 1003.1 - 1988) gjør det mulig å lage programmer i UNIX-stil som enkelt kan overføres fra ett system til et annet.

Sikkerhet I tillegg til POSIX-standarden har den amerikanske regjeringen også definert datasikkerhetskrav for offentlige applikasjoner. Mange av disse kravene er ønskelige egenskaper for ethvert flerbrukersystem. Sikkerhetsregler definerer egenskaper som å beskytte én brukers ressurser fra andre og sette ressurskvoter for å hindre én bruker fra å beslaglegge alle systemressurser (som minne).

Å sikre beskyttelse av informasjon mot uautorisert tilgang er en obligatorisk funksjon for nettverksoperativsystemer. De fleste populære systemene garanterer et datasikkerhetsnivå på C2 i det amerikanske standardsystemet.

Grunnlaget for sikkerhetsstandarder ble lagt av kriteriene for evaluering av pålitelige datasystemer. Dette dokumentet ble publisert i USA i 1983 nasjonalt senter datasikkerhet (NCSC - National Computer Sikkerhetssenter) blir ofte referert til som Orange Book.

I samsvar med kravene i Orange Book anses et system som trygt hvis det "gjennom spesielle sikkerhetsmekanismer kontrollerer tilgangen til informasjon på en slik måte at bare personer med passende tillatelser eller prosesser som kjører på deres vegne kan få tilgang til å lese, skrive, opprette eller slette informasjon. ".

Sikkerhetsnivåhierarkiet gitt i Orange Book-merkene lavere nivå sikkerhet som D, og ​​den høyeste som A.

· Klasse D inkluderer systemer hvis vurdering har avslørt at de ikke er i samsvar med kravene til alle andre klasser.

· Hovedegenskapene som er typiske for C-systemer er: tilstedeværelsen av et delsystem for registrering av hendelser knyttet til sikkerhet og selektiv tilgangskontroll. Nivå C er delt inn i 2 undernivåer: nivå C1, som beskytter data mot brukerfeil, men ikke fra handlinger fra inntrengere, og et strengere nivå C2. På C2-nivå må det være et middel for hemmelig pålogging, som sikrer identifikasjon av brukere ved å gå inn unikt navn og et passord før de får tilgang til systemet. Den selektive tilgangskontrollen som kreves på dette nivået lar ressurseieren bestemme hvem som har tilgang til ressursen og hva han kan gjøre med den. Eieren gjør dette ved å gi tilgangsrettigheter til en bruker eller gruppe brukere. Revisjon – Gir muligheten til å oppdage og registrere viktige sikkerhetshendelser eller ethvert forsøk på å opprette, få tilgang til eller slette systemressurser. Minnebeskyttelse - er at minnet initialiseres før det gjenbrukes. På dette nivået er ikke systemet beskyttet mot brukerfeil, men dets oppførsel kan overvåkes fra loggoppføringene som er igjen av overvåkings- og revisjonsverktøy.

· Nivå B-systemer er basert på merkede data og kategorisering av brukere, det vil si at de implementerer obligatorisk tilgangskontroll. Hver bruker er tildelt en beskyttelsesvurdering og kan bare få tilgang til data i henhold til den vurderingen. Dette nivået, i motsetning til nivå C, beskytter systemet mot feilaktig brukeratferd.

· Nivå A er det høyeste sikkerhetsnivået, det krever, i tillegg til alle kravene i nivå B, et formelt, matematisk forsvarlig bevis på at systemet er i samsvar med sikkerhetskravene.

Ulike kommersielle strukturer (for eksempel banker) understreker behovet for en regnskapstjeneste tilsvarende den som tilbys av regjeringens anbefaling C2. Enhver aktivitet knyttet til sikkerhet kan spores og dermed redegjøres for. Dette er akkurat det C2 krever og hva bankene vanligvis trenger. Kommersielle brukere ønsker imidlertid generelt ikke å betale med ytelse for økt sikkerhet. A-nivå sikkerhet tar opptil 90 % av prosessortiden med sine kontrollmekanismer. Mer sikre systemer ikke bare redusere effektiviteten, men også betydelig begrense antallet tilgjengelige applikasjonspakker som kan kjøres riktig på et slikt system. For eksempel har Solaris OS (UNIX-versjon) flere tusen applikasjoner, mens motparten på B-nivå bare har hundre.

Konklusjon

Historien til OS går tilbake rundt et halvt århundre. Det ble i stor grad bestemt og bestemt av utviklingen av elementbasen og datautstyr. De første digitale datamaskinene, som dukket opp på begynnelsen av 40-tallet, fungerte uten operativsystemer, alle oppgaver med å organisere dataprosessen ble løst manuelt av hver programmerer fra kontrollpanelet

Prototypen til moderne operativsystemer var monitorsystemene på midten av 50-tallet, som automatiserte operatørens handlinger for å utføre en rekke oppgaver.

I perioden 1965-1975. nesten alle de grunnleggende konseptene som er iboende i moderne operativsystemer ble implementert: multiprogrammering, multiprosessering, multiterminalmodus, virtuelt minne, filsystemer, tilgangskontroll og nettverksdrift

Siden midten av 70-tallet begynte den massive bruken av UNIX, et unikt operativsystem for den tiden, som var relativt enkelt å portere til ulike typer datamaskiner.

Begynnelsen av 80-tallet er assosiert med fremveksten av personlige datamaskiner. Dette krevde utvikling av et «brukervennlig grensesnitt».Personlige datamaskiner bidro til eksplosiv vekst. lokale nettverk, som et resultat har støtte for nettverksfunksjoner blitt en forutsetning for operativsystemet til personlige datamaskiner.

På 90-tallet ble nesten alle operativsystemer som inntar en fremtredende plass i markedet nettverk. OS mottok verktøy for å jobbe med alle viktige teknologier i lokale (Ethernet, Fast Ethernet, Token Ring, FDDI) og globale (ISDN, ATM) nettverk. Et spesielt fokus det siste tiåret har vært pår. De utmerker seg ved sin evne til å jobbe godt og jevnt i store nettverk, som er typisk for store bedrifter, muligheten til å jobbe sømløst på ulike maskinvareplattformer.

Den første perioden (1945 -1955). På midten av 40-tallet ble de første rørdatamaskinen opprettet (i USA og Storbritannia), i USSR dukket den første rørdatamaskinen opp i 1951. Programmeringen ble utført utelukkende på maskinspråk. Elementbase - elektroniske lamper og kommunikasjonspaneler. Det var ingen operativsystemer, alle oppgavene med å organisere dataprosessen ble løst manuelt av en programmerer fra kontrollpanelet. Systemprogramvare - biblioteker av matematiske og verktøyrutiner.

Andre periode (1955 - 1965). På midten av 1950-tallet begynte en ny periode i utviklingen av datateknologi, assosiert med fremveksten av en ny teknisk base - halvlederelementer (transistorer). I løpet av disse årene dukket de første algoritmiske språkene opp, og derfor de første systemprogrammene - kompilatorer. Kostnaden for prosessortid har økt, noe som krever mindre overhead mellom programlanseringer. De første batchbehandlingssystemene så ut til å øke prosessorutnyttelsen. Batchbehandlingssystemer var prototypen til moderne operativsystemer, de var de første systemprogrammene designet for å kontrollere dataprosessen. Et formelt jobblederspråk ble utviklet. Den virtuelle minnemekanismen har dukket opp.

Tredje periode (1965 - 1975). Overgangen til integrerte kretser. Opprettelse av familier av programvarekompatible maskiner (serie med maskiner IBM System / 360, sovjetisk motstykke - maskiner i EU-serien). I løpet av denne perioden ble nesten alle de grunnleggende konseptene som er iboende i moderne operativsystemer implementert: multiprogrammering, multiprosessering, multiterminalmodus, virtuelt minne, filsystem, tilgangskontroll og nettverksdrift. Prosessorene har nå en privilegert og brukermodus, spesielle registre for å bytte kontekster, midler for å beskytte minneområder og et avbruddssystem. En annen innovasjon er spooling. På den tiden ble spooling definert som en måte å organisere databehandlingsprosessen på, i samsvar med hvilke oppgaver ble lest fra hullkort til disk med den hastigheten de dukket opp i datasenteret, og deretter, når neste oppgave ble fullført, en ny oppgave fra disk ble lastet inn i den frigjorte partisjonen. ... En ny type OS har dukket opp - et tidsdelingssystem. På slutten av 60-tallet begynte arbeidet med etableringen av det globale ARPANET-nettverket, som ble utgangspunktet for Internett. På midten av 70-tallet bred bruk fikk mini-datamaskiner. Arkitekturen deres har blitt kraftig forenklet sammenlignet med stormaskiner, noe som gjenspeiles i operativsystemet deres. Økonomien og tilgjengeligheten til minidatamaskiner fungerte som et kraftig insentiv for etableringen av de første lokale nettverkene. Siden midten av 70-tallet begynte den massive bruken av UNIX-operativsystemet. På slutten av 70-tallet ble en fungerende versjon av TCP / IP-protokollen opprettet, i 1983 ble den standardisert.


Fjerde periode (1980 - nåtid). Den neste perioden i utviklingen av operativsystemer er assosiert med fremveksten av store integrerte kretser (LSI). I løpet av disse årene var det en kraftig økning i graden av integrasjon og en reduksjon i kostnadene for mikrokretser. Tiden med personlige datamaskiner har kommet. Datamaskiner har blitt mye brukt av ikke-spesialister. Implementerte et grafisk brukergrensesnitt (GUI - Graphical Brukergrensesnitt), teorien som ble utviklet tilbake på 60-tallet. Siden 1985 begynte Windows å bli utgitt, det var det grafisk skall MS-DOS frem til 1995, da det fullverdige operativsystemet Windows 95 ble utgitt. IBM og Microsoft utviklet sammen operativsystemet OS / 2. Den støttet forebyggende multitasking, virtuelt minne, grafisk brukergrensesnitt, virtuell maskin for å kjøre DOS-applikasjoner. Den første versjonen ble utgitt i 1987. I fremtiden forlot Microsoft OS / 2 og startet Windows utvikling NT. Den første versjonen ble utgitt i 1993.

I 1987. operativsystemet MINIX (LINUX prototype) ble utgitt, det ble bygget på prinsippet om mikrokjernearkitektur.

På 80-tallet ble hovedstandardene for kommunikasjonsutstyr for lokale nettverk tatt i bruk: i 1980 - Ethernet, i 1985 - Token Ring, på slutten av 80-tallet - FDDI. Dette gjorde det mulig å sikre kompatibiliteten til nettverksoperativsystemer på lavere nivåer og standardiser også OS-grensesnittet med nettverkskortdrivere.

På 90-tallet ble nesten alle operativsystemer koblet til nettverk. Det finnes spesialiserte operativsystemer designet eksklusivt for å løse kommunikasjonsproblemer (IOS fra Cisco Systems). Service fremvekst Verdensomspennende Internett (WWW) i 1991 ga en kraftig drivkraft til utviklingen av populariteten til Internett. Utviklingen av bkommer i forgrunnen. Mainframe OS-utviklingen fortsetter. I 1991. LINUX ble utgitt. FreeBSD kom ut litt senere (basert på BSD UNIX).

KAPITTEL 1


Evolusjon av operativsystemer

Historien til enhver gren av vitenskap eller teknologi gjør det ikke bare mulig å tilfredsstille naturlig nysgjerrighet, men også å bedre forstå essensen av hovedprestasjonene til denne industrien, forstå eksisterende trender og vurdere utsiktene til visse utviklingsretninger riktig. I nesten et halvt århundre av sin eksistens har operativsystemer passert en vanskelig vei fylt med mange viktige hendelser. En stor innflytelse på utviklingen av operativsystemer ble gjort av suksessene med å forbedre elementbasen og datautstyret, derfor er mange stadier av utviklingen av OS nært knyttet til fremveksten av nye typer maskinvareplattformer, for eksempel mini- datamaskiner eller personlige datamaskiner. Operativsystemer har gjennomgått en alvorlig utvikling i forbindelse med den nye rollen til datamaskiner i lokale og globale nettverk. Den viktigste faktoren i utviklingen av OS har blitt Internett. Ettersom dette nettverket får funksjonene til et universelt middel for massekommunikasjon, blir operativsystemene mer og mer enkle og praktiske å bruke, de inkluderer avanserte midler for å støtte multimedieinformasjon og er utstyrt med pålitelige beskyttelsesmidler.

Utseendet til de første operativsystemene

Ideen om en datamaskin ble foreslått av den engelske matematikeren Charles Babage på midten av det nittende århundre. Hans mekaniske "analytiske motor" var aldri i stand til å virkelig fungere, fordi teknologiene på den tiden ikke oppfylte kravene som var nødvendige for produksjon de nødvendige delene presis mekanikk. Det var selvsagt ikke snakk om et operativsystem for denne «datamaskinen».

Den virkelige fødselen til digital databehandling kom kort tid etter slutten av andre verdenskrig. På midten av 40-tallet ble de første rørdatabehandlingsenhetene laget. På den tiden deltok den samme gruppen mennesker i utformingen, og i driften, og i programmeringen av datamaskinen. Det var mer et vitenskapelig forskningsarbeid innen databehandling, snarere enn bruk av datamaskiner som et verktøy for å løse eventuelle praktiske problemer fra andre anvendte områder. Programmeringen ble utført utelukkende på maskinspråk. Det fantes ingen annen systemprogramvare enn biblioteker med matematikk og verktøyrutiner som en programmerer kunne bruke for å unngå å måtte skrive koder hver gang for å beregne en verdi. matematisk funksjon eller ledere standard enhet input-output. Operativsystemer har ennå ikke dukket opp, alle oppgavene med å organisere databehandlingsprosessen ble løst manuelt av hver programmerer fra kontrollpanelet, som var en primitiv inngangs-utgangsenhet bestående av knapper, brytere og indikatorer. Fra midten av 50-tallet begynte en ny periode i utviklingen av datateknologi, assosiert med fremveksten av en ny teknisk base - halvlederelementer. Hastigheten på prosessorer har økt, volumene av RAM og eksternt minne har økt. Datamaskiner har blitt mer pålitelige, nå kan de kontinuerlig jobbe lenge nok til å bli betrodd utførelsen av virkelig praktiske oppgaver.

Sammen med forbedringen av utstyret ble det også observert merkbar fremgang innen programmeringsautomatisering og organisering av beregningsarbeid. I løpet av disse årene dukket de første algoritmiske språkene opp, og dermed ble en ny type systemprogramvare - oversettere - lagt til bibliotekene med matematiske og verktøyrutiner.

Utførelsen av hvert program begynte å inkludere et stort antall hjelpeverk: lasting av den nødvendige oversetteren (ALGOL, FORTRAN, COBOL, etc.), start av oversetteren og skaffe det resulterende programmet i maskinkoder, kobling av programmet med bibliotekunderrutiner, lasting programmet inn i RAM, starter programmet, utdata av resultater til en perifer enhet. For å organisere effektiv deling av oversettere, bibliotekprogrammer og lastere, ble ansatte ved mange datasentre introdusert til stillingene til operatører som profesjonelt utførte arbeid med å organisere databehandlingsprosessen for alle brukere av dette senteret.

Men uansett hvor raskt og pålitelig operatørene jobbet, kunne de ikke konkurrere i ytelse med arbeidet til dataenheter. Mesteparten av tiden var prosessoren inaktiv og ventet på at operatøren skulle starte neste oppgave. Og siden prosessoren var en veldig kostbar enhet, betydde lav effektivitet i bruken lav effektivitet i bruken av datamaskinen som helhet. For å løse dette problemet ble de første batchbehandlingssystemene utviklet, som automatiserte hele sekvensen av operatørhandlinger for å organisere databehandlingsprosessen. Tidlige batchbehandlingssystemer var prototypen til moderne operativsystemer, de var de første systemprogrammene designet ikke for databehandling, men for å kontrollere beregningsprosessen.

I løpet av implementeringen av batchbehandlingssystemer ble det utviklet et formalisert oppgavekontrollspråk, ved hjelp av hvilket programmereren fortalte systemet og operatøren hvilke handlinger og i hvilken rekkefølge han vil utføre på datamaskinen. Et typisk sett med direktiver inkluderte vanligvis et tegn på begynnelsen av et separat arbeid, et kall til en oversetter, et kall til en laster, tegn på begynnelsen og slutten av de første dataene.

Operatøren kompilerte en gruppe oppgaver, som deretter ble sekvensielt lansert for utførelse av kontrollprogrammet, monitoren, uten hans deltakelse. I tillegg var skjermen i stand til uavhengig å håndtere de vanligste tilpassede programmer nødsituasjoner, som fravær av startdata, overløp av registre, deling med null, tilgang til et ikke-eksisterende minneområde osv. Pakken var vanligvis et sett med hullkort, men for å få fart på arbeidet kunne det være overføres til et mer praktisk og romslig medium, for eksempel til et magnetbånd eller en magnetisk disk. Selve monitorprogrammet i de første implementeringene ble også lagret på hullkort eller hullbånd, og i senere implementeringer - på magnetbånd og magnetiske disker.

Tidlige batchbehandlingssystemer reduserte tiden brukt på å støtte organiseringen av beregningsprosessen betydelig, noe som betyr at enda et skritt ble tatt for å forbedre effektiviteten til datamaskinbruk. Men samtidig mistet brukerprogrammerere direkte tilgang til datamaskinen, noe som reduserte effektiviteten deres - noe som gjorde at enhver korrigering krevde mye mer tid enn når de arbeidet interaktivt på maskinens kontrollpanel.

Fremveksten av multi-programvare operativsystemer for stormaskiner

Den neste viktige perioden i utviklingen av operativsystemer refererer til årene.

På dette tidspunktet, i den tekniske basen til datamaskiner, var det en overgang fra individuelle halvlederelementer som transistorer til integrerte kretser, noe som åpnet veien for fremveksten av neste generasjon datamaskiner. Den store funksjonaliteten til integrerte kretser gjorde det mulig å implementere komplekst i praksis datamaskinarkitekturer som IBM / 360.

I løpet av denne perioden ble nesten alle de grunnleggende mekanismene som er iboende i moderne operativsystemer implementert: multiprogrammering, multiprosessering, støtte for multi-terminal flerbrukermodus, virtuelt minne, filsystemer, tilgangskontroll og nettverksdrift. I løpet av disse årene begynner storhetstiden for systemprogrammering. Fra retning av anvendt matematikk av interesse til smal sirkel spesialister, er systemprogrammering i ferd med å bli en industri som har en direkte innvirkning på de praktiske aktivitetene til millioner av mennesker. En revolusjonerende begivenhet dette stadiet det var en industriell implementering av multiprogrammering. (Merk at i form av et konsept og eksperimentelle systemer har denne metoden for å organisere beregninger eksistert i omtrent ti år.) I forholdene med de kraftig økte mulighetene til en datamaskin for å behandle og lagre data, kjører kun ett program om gangen viste seg å være ekstremt ineffektiv. Løsningen var multiprogrammering - en metode for å organisere en beregningsprosess der flere programmer var samtidig i datamaskinens minne, vekselvis utført på én prosessor. Disse forbedringene forbedret effektiviteten til datasystemet betydelig: datamaskinen kunne nå brukes nesten konstant, og ikke mindre enn halvparten av datamaskinens driftstid, slik den var før.

Multiprogrammering ble implementert i to versjoner - i batchbehandling og tidsdelingssystemer.

Multiprogrammerte batchbehandlingssystemer, som deres enkeltprogramforgjengere, hadde som mål å maksimere maskinvareutnyttelsen, men de løste dette problemet mer effektivt. I multiprogrammert batch-modus gikk ikke prosessoren på tomgang mens ett program utførte I/O (slik den gjorde ved sekvensiell utførelse av programmer i tidlige batchbehandlingssystemer), men byttet til et annet klar-til-kjøre-program. Som et resultat ble det oppnådd en balansert belastning av alle dataenheter, og følgelig økte antallet oppgaver som ble løst per tidsenhet. I multiprogrammerte batchbehandlingssystemer ble brukeren fortsatt fratatt muligheten til interaktivt å samhandle med programmene sine. For i det minste delvis å gi brukerne følelsen av direkte interaksjon med en datamaskin, ble det utviklet en annen versjon av multiprogrammeringssystemer - et tidsdelingssystem. Dette alternativet er designet for multiterminalsystemer, når hver bruker jobber på sin egen terminal. De første tidsdelingsoperativsystemene utviklet på midten av 1960-tallet var TSS / 360 (IBM), CTSS og MULTICS (Massachusetts Institute of Technology med Bell Labs og General Electric). Varianten av multiprogrammering brukt i tidsdelingssystemer var rettet mot å skape for hver enkelt bruker en illusjon av eneeierskap til en datamaskin ved å periodisk tildele hvert program sin egen andel av prosessortiden. I tidsdelingssystemer er utstyrsutnyttelsen lavere enn i batchbehandlingssystemer, på bekostning av brukeropplevelsen.

Multiterminal-modus har blitt brukt ikke bare i tidsdelingssystemer, men også i batchbehandlingssystemer. Samtidig kunne ikke bare operatøren, men også alle brukere danne sine oppgaver og kontrollere utførelsen fra terminalen. Slike operativsystemer kalles eksterne jobbregistreringssystemer. Terminalkomplekser kan ligge på stor avstand fra prosessorrack, koble til dem ved hjelp av ulike globale tilkoblinger - modemtilkoblinger til telefonnettverk eller dedikerte kanaler. For å støtte fjernbetjening av terminaler dukket det opp spesielle programvaremoduler i operativsystemer som implementerte forskjellige (på den tiden, vanligvis ikke-standard) kommunikasjonsprotokoller. Slike datasystemer med eksterne terminaler, mens de beholdt den sentraliserte karakteren til databehandling, var for noen omfang en prototype av moderne nettverk, og den tilsvarende systemprogramvaren er prototypen av nettverksoperativsystemer.

På dette tidspunktet kan man si en betydelig endring i funksjonsfordelingen mellom maskinvaren og programvaren til datamaskinen. Operativsystemer ble integrerte deler av datamaskiner, og spilte rollen som "fortsettelse" av maskinvare. I de første datamaskinene kunne en programmerer, som samhandlet direkte med utstyret, laste programkoder ved hjelp av fjernbrytere og indikatorlamper, og deretter manuelt starte programmet for utførelse ved å trykke på "start"-knappen. I datamaskiner på 60-tallet overtok operativsystemet de fleste aktivitetene for å organisere dataprosessen. (Mest moderne datamaskiner det er ikke engang en teoretisk mulighet for å utføre noen dataarbeid uten involvering av operativsystemet. Etter at strømmen er slått på, blir operativsystemet automatisk søkt etter, lastet og startet, og hvis det ikke er der, stopper datamaskinen ganske enkelt.)

Implementeringen av multiprogrammering krevde innføring av svært viktige endringer i maskinvaren, direkte rettet mot å støtte en ny måte å organisere beregningsprosessen på. Når du deler datamaskinressurser mellom programmer, er det nødvendig å sikre rask veksling av prosessoren fra ett program til et annet, samt å pålitelig beskytte kodene og dataene til ett program mot utilsiktet eller bevisst skade av et annet program. Prosessorene har nå privilegerte og brukermoduser, spesialregistre for raskt bytte fra ett program til et annet, midler for å beskytte minneområder, samt et avansert avbruddssystem.

I privilegert modus designet for å fungere programvaremoduler operativsystem, kunne prosessoren utføre alle kommandoer, inkludert de som gjorde det mulig å allokere og beskytte datamaskinressurser. Noen prosessorkommandoer var ikke tilgjengelige for programmer som kjører i brukermodus. Dermed kunne bare operativsystemet kontrollere maskinvaren og fungere som en monitor og dommer for brukerprogrammer som kjørte i uprivilegert brukermodus.

Avbruddssystemet gjorde det mulig å synkronisere arbeidet ulike enheter datamaskiner som opererer parallelt og asynkront, slik som I/O-kanaler, disker, skrivere osv. Maskinvarestøtte for operativsystemer har siden blitt en integrert funksjon i nesten alle datasystemer, inkludert personlige datamaskiner.

En annen viktig trend i denne perioden er opprettelsen av familier av programvarekompatible maskiner og operativsystemer for dem. Eksempler på familier av programvarekompatible maskiner bygget på integrerte kretser er IBM / 360 og IBM / 370-seriene av maskiner (analoger av disse sovjetproduserte familiene - maskiner i EU-serien), PDP-11 (sovjetiske analoger - CM-3 CM-4, CM -1420). Snart ble ideen om programvarekompatible maskiner generelt akseptert.

Programvarekompatibilitet krevde også operativsystemkompatibilitet. Denne kompatibiliteten innebærer imidlertid evnen til å jobbe med store og små datasystemer, med et stort og lite utvalg av periferiutstyr, i det kommersielle feltet og innen vitenskapelig forskning. Operativsystemer bygget med den hensikt å møte alle disse motstridende kravene har vist seg å være ekstremt komplekse. De besto av mange millioner monteringslinjer, skrevet av tusenvis av programmerere, og inneholdt tusenvis av feil, noe som forårsaket en endeløs strøm av rettelser. Operativsystemer av denne generasjonen var veldig dyre. For eksempel kostet utviklingen av OS / 360, hvor kodemengden var 8 MB, IBM 80 millioner dollar.

Til tross for sin enorme størrelse og mange problemer, tilfredsstilte OS / 360 og andre lignende operativsystemer av denne generasjonen virkelig de fleste forbrukernes behov. I løpet av dette tiåret har det blitt tatt et stort skritt fremover og et solid grunnlag er lagt for å lage moderne operativsystemer.

Operativsystemer og globale nettverk

På begynnelsen av 70-tallet dukket de første nettverksoperativsystemene opp, som, i motsetning til multiterminaloperativsystemer, gjorde det mulig ikke bare å spre brukere, men også å organisere distribuert lagring og behandling av data mellom flere datamaskiner koblet sammen med elektriske tilkoblinger. Ethvert nettverksoperativsystem, på den ene siden, utfører alle funksjonene til et lokalt operativsystem, og på den annen side har noen ekstra verktøy som lar det samhandle over nettverket med operativsystemene til andre datamaskiner. Programvaremoduler som implementerer nettverksfunksjoner dukket opp i operativsystemer gradvis, med utviklingen av nettverksteknologier, maskinvarebasen til datamaskiner og fremveksten av nye oppgaver som krever nettverksbehandling.

Selv om teoretisk arbeid med å lage konsepter for nettverksinteraksjon har blitt utført nesten siden selve fremkomsten av datamaskiner, er betydelige praktiske resultater om sammenkobling av datamaskiner i et nettverk ble oppnådd på slutten av 60-tallet, da det ved hjelp av globale tilkoblinger og pakkesvitsjteknologi var mulig å implementere samspillet mellom maskiner i stormaskinklassen og superdatamaskiner. Disse dyre datamaskinene lagret ofte unike data og programmer, som måtte nås av et bredt spekter av brukere lokalisert i forskjellige byer i betydelig avstand fra datasentre.

I 1969 satte det amerikanske forsvarsdepartementet i gang arbeidet med å kombinere superdatamaskinene til forsvars- og forskningssentre til ett enkelt nettverk. Dette nettverket ble kalt ARPANET og var utgangspunktet for etableringen av det mest kjente globale nettverket i dag - Internett. ARPANET nettverk forente datamaskiner av forskjellige typer, kjører under forskjellige operativsystemer med ekstra moduler som implementerer kommunikasjonsprotokoller som er felles for alle datamaskiner på nettverket.

I 1974 kunngjorde IBM etableringen av sin egen nettverksarkitektur for stormaskinen deres, kalt SNA ( Systemnettverk Arkitektur). Denne lagdelte arkitekturen, omtrent som standard OSI-modellen som dukket opp noe senere, ga terminal-til-terminal, terminal-til-datamaskin og datamaskin-til-datamaskin interoperabilitet over global kommunikasjon. De nedre lagene av arkitekturen ble implementert med spesialisert maskinvare, hvorav den viktigste er fjernbehandlingsprosessoren. Funksjonene til de øvre lagene av SNA ble utført av programvaremoduler. En av dem dannet grunnlaget forvaren. Andre moduler kjørte på en sentral prosesseringsenhet som en del av en standard operasjonsstue. IBM-systemer for stormaskiner.

Samtidig pågikk et aktivt arbeid i Europa for å skape og standardisere X.25-nettverk. Disse pakkesvitsjede nettverkene var ikke knyttet til noe bestemt operativsystem. Siden de ble en internasjonal standard i 1974, har X.25-protokoller blitt støttet av mange operativsystemer. Siden 1980 har IBM inkorporert X.25-støtte i SNA-arkitekturen og i operativsystemene.

Mini-datamaskinoperativsystemer og de første lokale nettverkene

På midten av 70-tallet, sammen med stormaskiner, ble minidatamaskiner som PDP-11, Nova, HP mye brukt. Minidatamaskiner var de første som utnyttet fordelene ved storskala integrerte kretser, som gjorde det mulig å implementere tilstrekkelig kraftige funksjoner med en relativt lav kostnad datamaskin.

Arkitekturen til minidatamaskiner har blitt kraftig forenklet sammenlignet med stormaskiner, noe som gjenspeiles i deres operativsystemer. Mange funksjoner i stormaskinens multiprogrammerende flerbrukeroperativsystemer har blitt fjernet gitt de begrensede ressursene til minidatamaskiner. Operativsystemene til minidatamaskiner begynte ofte å bli spesialisert, for eksempel bare for sanntidskontroll (RT-11 OS for PDP-11 minidatamaskiner) eller bare for å støtte tidsdelingsmodus (RSX-11M for de samme datamaskinene). Disse operativsystemene var ikke alltid flerbruker, noe som i mange tilfeller var begrunnet med de lave kostnadene til datamaskiner.

En viktig milepæl i historien til mini-datamaskiner og i historien til operativsystemer generelt var etableringen av UNIX OS. Dette operativsystemet var opprinnelig ment å støtte tidsdelingsmodusen i PDP-7 minidatamaskinen. Siden midten av 70-tallet begynte den massive bruken av UNIX-operativsystemet. På dette tidspunktet var programkoden for UNIX 90 % skrevet på høynivå-språket C. Den utbredte bruken av effektive C-kompilatorer gjorde UNIX til et unikt operativsystem for den tiden, med evnen til å være relativt enkel å portere til ulike typer datamaskiner. Siden dette OS kom med kildekoder, så ble det det første åpne operativsystemet som vanlige entusiastiske brukere kunne forbedre. Selv om UNIX opprinnelig ble designet for minidatamaskiner, har dens fleksibilitet, eleganse, kraftige funksjonalitet og åpenhet plassert den godt i alle klasser av datamaskiner: superdatamaskiner, stormaskiner, minidatamaskiner, RISC-baserte servere og arbeidsstasjoner og personlige datamaskiner.

Tilgjengeligheten av minidatamaskiner og, som et resultat, deres utbredelse i bedrifter, fungerte som et kraftig insentiv for å opprette lokale nettverk. Selskapet hadde råd til å ha flere minidatamaskiner plassert i samme bygning eller til og med i samme rom. Naturligvis var det behov for utveksling av informasjon mellom dem og for felles bruk av kostbart perifert utstyr.

De første lokale nettverkene ble bygget ved hjelp av ikke-standard kommunikasjonsutstyr, i det enkleste tilfellet, ved direkte å koble serieportene til datamaskiner. Programvaren var også ikke-standard og implementert som tilpassede applikasjoner. Den første nettverksapplikasjonen for UNIX OS - UUCP (UNIX-til-UNIX Copy-programmet) -. dukket opp i 1976 og begynte distribusjon med versjon 7 av AT&T UNIX i 1978. Dette programmet gjorde det mulig å kopiere filer fra en datamaskin til en annen innenfor det lokale nettverket gjennom ulike maskinvaregrensesnitt - RS-232, strømsløyfe, etc., og i tillegg kunne det fungere gjennom globale forbindelser, for eksempel modem.

Utvikling av operativsystemer på 80-tallet

De viktigste hendelsene i dette tiåret inkluderer utviklingen av TCP / IP-stakken, fremveksten av Internett, standardisering av lokalnettverksteknologier, fremveksten av personlige datamaskiner og operativsystemer for dem.

En fungerende versjon av TCP / IP-protokollstabelen ble opprettet på slutten av 70-tallet. Denne stabelen var et sett med vanlige protokoller for et heterogent datamiljø og var ment å koble det eksperimentelle ARPANET med andre "satellitt"-nettverk. I 1983 ble TCP / IP-protokollstabelen tatt i bruk av det amerikanske forsvarsdepartementet som en militær standard. Overgangen av ARPANET-datamaskiner til TCP / IP-stakken akselererte implementeringen for operasjonsrommet. BSD-systemer UNIX. Siden den gang begynte sameksistensen av UNIX og TCP / IP-protokollene, og nesten alle tallrike versjoner av Unix har blitt koblet til nettverk.

Implementeringen av TCP / IP-protokollene i ARPANET har gitt dette nettverket alle de grunnleggende funksjonene som skiller moderne internett... I 1983 ble ARPANET delt i to deler: MILNET, som støtter det amerikanske militæret, og det nye ARPANET. For å betegne det sammensatte nettverket ARPANET og MILNET begynte man å bruke navnet Internett, som på russisk over tid (og fra lett hånd Microsoft localizers) har blitt Internett. Internett har blitt et utmerket testområde for mange nettverksoperativsystemer, noe som gjorde det mulig å teste deres interoperabilitet, graden av skalerbarhet og evnen til å jobbe under ekstreme belastninger skapt av hundrevis og tusenvis av brukere under reelle forhold. TCP / IP-protokollstabelen hadde også en misunnelsesverdig skjebne. Leverandøruavhengighet, fleksibilitet og effektivitet bevist av suksessen til Internett, samt åpenhet og tilgjengelighet av standarder har gjort TCP / IP-protokoller ikke bare til hovedtransportmekanismen til Internett, men også til hovedstabelen i de fleste nettverksoperativsystemer.

Hele tiåret har vært preget av den stadige fremveksten av nye, mer og mer avanserte versjoner av UNIX-operativsystemet. Blant dem var merkeversjoner av UNIX: SunOS, HP-UX, Irix, AIX og mange andre, der datamaskinprodusenter tilpasset kjerne- og systemverktøykoden for maskinvaren deres. Variasjonen av versjoner ga opphav til problemet med deres kompatibilitet, som forskjellige organisasjoner med jevne mellomrom prøvde å løse. Som et resultat ble POSIX- og XPG-standardene tatt i bruk for å definere OS-grensesnittene for applikasjoner, og en spesiell avdeling av AT&T ga ut flere versjoner av UNIX System III og UNIX System V, designet for å konsolidere utviklere på kjernekodenivå.

Begynnelsen av 80-tallet er assosiert med en annen viktig begivenhet for operativsystemets historie - fremveksten av personlige datamaskiner. Når det gjelder arkitektur, skilte ikke personlige datamaskiner seg på noen måte fra klassen av minidatamaskiner som PDP-11, men kostnadene deres var betydelig lavere. Hvis en minidatamaskin tillot en avdeling i et foretak eller et universitet å ha sin egen datamaskin, ga en personlig datamaskin en slik mulighet til en person. Datamaskiner ble mye brukt av ikke-spesialister, og krevde utvikling av "vennlig" programvare, og leveringen av disse "vennlige" funksjonene ble det direkte ansvaret til operativsystemene. Personlige datamaskiner fungerte også som en kraftig katalysator for den raske veksten av lokale nettverk, og skapte et utmerket materiell grunnlag for dette i form av titalls og hundrevis av datamaskiner som tilhører en bedrift og plassert i samme bygning. Som et resultat har støtte for nettverksfunksjoner blitt en forutsetning for operativsystemet til personlige datamaskiner.

Både et brukervennlig grensesnitt og nettverksfunksjoner dukket imidlertid ikke opp umiddelbart i operativsystemene til personlige datamaskiner. Den første versjonen av det mest populære tidlige personlige datamaskinoperativsystemet, Microsofts MS-DOS, manglet disse egenskapene. Det var et enkelt-program OS med et kommandolinjegrensesnitt, i stand til å starte fra en diskett. Hovedoppgavene for henne var å administrere filer som ligger på disketter og harddisker i et UNIX-lignende hierarkisk filsystem, samt å kjøre programmer én etter én. MS-DOS ble ikke beskyttet mot brukerprogrammer fordi Intel 8088-prosessoren ikke støttet privilegert modus. Utviklerne av de første personlige datamaskinene mente at med den individuelle bruken av datamaskinen og de begrensede egenskapene til maskinvaren, var det ingen vits i å støtte multiprogrammering; derfor sørget ikke prosessoren for privilegert modus og andre mekanismer for å støtte multiprogrammeringssystemer.

De manglende funksjonene for MS-DOS og lignende operativsystemer ble kompensert for av eksterne programmer som ga brukeren et praktisk grafisk grensesnitt (f.eks. Norton-sjef) eller verktøy for findiskadministrasjon (for eksempel PC-verktøy). Driftsmiljøet hadde størst innflytelse på utviklingen av programvare for personlige datamaskiner. Windows-selskap Microsoft, som var et tillegg for MS-DOS.

Nettverksfunksjoner ble også implementert hovedsakelig av nettverksskall som kjørte på toppen av operativsystemet. Når du arbeider på et nettverk, er det alltid nødvendig å opprettholde en flerbrukermodus, der én bruker er interaktiv, og resten får tilgang til dataressurser over nettverket. I dette tilfellet krever operativsystemet minst et minimum av funksjonell støtte for flerbrukermodus. Historien til MS-DOS-nettverk begynte med versjon 3.1. Denne versjonen av MS-DOS la til de nødvendige filene og skrivelåsene til filsystemet for å tillate mer enn én bruker å få tilgang til filen. Ved å dra nytte av disse funksjonene, kan nettverksskall gi fildeling mellom nettverksbrukere.

Sammen med utgivelsen av MS-DOS 3.1 i 1984, ga Microsoft også ut et produkt kalt Microsoft Networks, ofte referert til uformelt som MS-NET. Noen konsepter innebygd i MS-NET, for eksempel en introduksjon til strukturen til de grunnleggende nettverkskomponentene - redirector og nettverksserver har byttet til et senere nettverk Microsoft-produkter: LAN Manager, Windows for Workgroups og senere i Windows NT.

Nettverksskall for personlige datamaskiner ble også produsert av andre selskaper: IBM, Artisoft, Performance Technology og andre.

Novell valgte en annen vei. Hun fokuserte først på å utvikle et operativsystem med innebygde nettverksfunksjoner og har tatt bemerkelsesverdige fremskritt på veien. NetWare-nettverksoperativsystemene har lenge vært målestokken for ytelse, pålitelighet og sikkerhet for lokale nettverk.

Novells første nettverksoperativsystem kom på markedet i 1983 og ble kalt OS-Net. Dette operativsystemet var beregnet på nettverk med en stjernetopologi, hvor det sentrale elementet var en spesialisert datamaskin basert på en Motorola 68000 mikroprosessor. Litt senere, da IBM ga ut PC XT personlige datamaskiner, utviklet Novell et nytt produkt - NetWare 86, designet for mikroprosessorarkitektur Intel-familien 8088.

Fra den aller første versjonen av NetWare OS ble det distribuert som et operativsystem for en sentral server i et lokalt nettverk, som, på grunn av spesialisering i å utføre funksjonene til en filserver, gir høyest mulig hastighet for en gitt klasse av datamaskiner. fjerntilgang til filer og økt datasikkerhet. Per høy produktivitet brukere av Novell NetWare-nettverk betaler med kostnaden - en dedikert filserver kan ikke brukes som en arbeidsstasjon, og dens spesialiserte OS har en veldig spesifikk applikasjon programvaregrensesnitt(API), som krever applikasjonsutviklere spesiell kunnskap, spesiell erfaring og betydelig innsats.

I motsetning til Novell har de fleste andre selskaper utviklet seg nettverksfasiliteter for personlige datamaskiner innenfor rammen av operativsystemer med en universell API, det vil si generelle operativsystemer. Med utviklingen av maskinvareplattformer for personlige datamaskiner har slike systemer i økende grad fått funksjonene til mini-datamaskinoperativsystemer.

I 1987 samarbeidet Microsoft og IBM for å lage det første multitasking-operativsystemet for personlige datamaskiner med Intel-prosessor 80286, som drar full nytte av beskyttet modus - OS / 2. Dette systemet var godt gjennomtenkt. Den støttet forebyggende multitasking, virtuelt minne, et grafisk brukergrensesnitt (ikke fra den første versjonen), og en virtuell maskin for å kjøre DOS-applikasjoner. Faktisk gikk det utover enkel multitasking med konseptet med å parallellisere individuelle prosesser, kalt multithreading.

OS / 2, med avansert multitasking og fil HPFS-system med innebygde midler for flerbrukerbeskyttelse viste seg å være en god plattform for å bygge lokale nettverk av personlige datamaskiner. De mest brukte nettverksskallene er LAN Manager fra Microsoft og LAN Server fra IBM, utviklet av disse selskapene på grunnlag av en enkelt basekode. Disse skjellene var dårligere i ytelse filserver NetWare og forbrukte mer maskinvareressurser, men hadde viktige fordeler - de tillot for det første å kjøre alle programmer utviklet for OS / 2, MS-DOS og Windows på serveren, og for det andre å bruke datamaskinen de jobbet på, som en arbeidsstasjon.

Nettverksutviklinger fra Microsoft og IBM har ført til fremveksten av NetBIOS, en veldig populær transportprotokoll og samtidig et applifor lokale nettverk, som har blitt brukt i nesten alle nettverksoperativsystemer for personlige datamaskiner. Denne protokollen brukes fortsatt i dag for å lage små lokale nettverk.

Den ikke særlig vellykkede markedsskjebnen til OS / 2 tillot ikke LAN Manager og LAN Server-systemer å ta en betydelig markedsandel, men prinsippene for drift av disse nettverkssystemene ble i stor grad nedfelt i det mer vellykkede operativsystemet på 90-tallet - Microsoft Windows NT, som inneholder innebygde nettverkskomponenter, hvorav noen har et LM-prefiks fra LAN Manager.

På 80-tallet ble hovedstandardene for kommunikasjonsteknologi for lokale nettverk tatt i bruk: i 1980 - Ethernet, i 1985 - Token Ring, på slutten av 80-tallet - FDDI. Dette gjorde det mulig å sikre kompatibilitet av nettverksoperativsystemer på lavere nivåer, samt å standardisere OS-grensesnittet med nettverksadapterdrivere.

For personlige datamaskiner ble ikke bare operativsystemer spesielt utviklet for dem brukt, som MS-DOS, NetWare og OS / 2, men allerede eksisterende operativsystemer ble tilpasset. Fremkomsten av Intel 80286 og spesielt 80386-prosessorene med støtte for multiprogrammering gjorde det mulig å overføre UNIX OS til den personlige datamaskinplattformen. Det mest kjente systemet av denne typen var Santa Cruz Operation (SCO UNIX) versjonen av UNIX.

Funksjoner i det nåværende utviklingsstadiet av operativsystemer

På 90-tallet ble nesten alle operativsystemer som inntar en fremtredende plass i markedet nettverk. Nettverksfunksjoner er nå innebygd i kjernen til operativsystemet, og er en integrert del av det. Operativsystemer mottok verktøy for å jobbe med alle viktige teknologier lokalt (Ethernet, Fast Ethernet, Gigabit Ethernet, Token Ring, FDDI, ATM) og globalt (X.25, rammerelé, ISDN, ATM) nettverk, samt verktøy for å lage sammenkoblede nettverk (IP, IPX, AppleTalk, RIP, OSPF, NLSP). Operativsystemer bruker midler til å multiplekse flere protokollstabler slik at datamaskiner kan støtte samtidig nettverk med forskjellige klienter og servere. Det har dukket opp spesialiserte operativsystemer som er designet utelukkende for å utføre kommunikasjonsoppgaver. For eksempel organiserer nettverksoperativsystemet IOS til Cisco Systems, som kjører i rutere, i multiprogrammeringsmodus utførelsen av et sett med programmer, som hver implementerer en av kommunikasjonsprotokollene.

I andre halvdel av 1990-tallet økte alle operativsystemleverandører dramatisk støtten for Internett (bortsett fra UNIX-systemleverandører, der denne støtten alltid har vært betydelig). I tillegg til selve TCP / IP-stakken begynte pakken å inkludere verktøy som implementerer så populære Internett-tjenester som telnet, ftp, DNS og web. Internetts innflytelse manifesterte seg også i det faktum at datamaskinen ble fra en ren dataenhet til et kommunikasjonsverktøy med avanserte datafunksjoner.

Operativsystemer for bedriftsnettverk har fått spesiell oppmerksomhet det siste tiåret. Deres videre utvikling er en av de viktigste oppgavene i overskuelig fremtid. Bedriftsoperativsystemet kjennetegnes ved evnen til å fungere godt og konsekvent i store nettverk, som er typiske for store bedrifter med filialer i dusinvis av byer og muligens i forskjellige land. Slike nettverk er organisk iboende i en høy grad av heterogenitet av programvare og maskinvare, så bedriftens OS bør sømløst samhandle med operativsystemer av forskjellige typer og kjøre på forskjellige maskinvareplattformer. Nå har de tre lederne i klassen for bedriftsoperativsystemer blitt ganske klare - de er Novell NetWare 4.x og 5.0, Microsoft Windows NT 4.0 og Windows 2000, samt UNIX-systemer fra ulike produsenter av maskinvareplattformer.

For et bedrifts OS er det svært viktig å ha sentraliserte administrasjons- og administrasjonsverktøy som tillater lagring av kontoer til titusenvis av brukere, datamaskiner, kommunikasjonsenheter og programvaremoduler tilgjengelig i bedriftsnettverket i en enkelt database. I moderne operativsystemer er sentraliserte administrasjonsverktøy vanligvis basert på en enkelt helpdesk. Den første vellykkede implementeringen av en bedriftsstøtte var Banyans StreetTalk-system. Til dags dato har Novells NDS vært mest anerkjent, først utgitt i 1993 for den første bedriftsversjon NetWare 4.O. Rollen til en sentralisert helpdesk er så stor at det er kvaliteten på helpdesken som vurderer egnetheten til et operativsystem for et bedriftsmiljø. Den lange forsinkelsen i utgivelsen av Windows NT 2000 skyldtes i stor grad opprettelsen av en skalerbar helpdesk for dette operativsystemet. Active Directory, uten hvilken det var vanskelig for denne OS-familien å gjøre krav på tittelen som et virkelig bedrifts-OS.

Opprettelsen av en funksjonsrik skalerbar helpdesk er en strategisk retning i utviklingen av operativsystemet. Den videre utviklingen av Internett avhenger i stor grad av suksessen til dette området. En slik tjeneste er nødvendig for å gjøre Internett til et forutsigbart og håndterbart system, for eksempel for å gi den nødvendige kvaliteten på tjenesten for brukertrafikk, støtte store distribuerte applikasjoner, bygge en effektiv postsystemet etc.

På det nåværende stadiet av utviklingen av operativsystemer har sikkerhetsverktøy kommet i forgrunnen. Dette skyldes den økte verdien av informasjon som behandles av datamaskiner, samt det økte nivået av trusler som eksisterer ved overføring av data over nettverk, spesielt offentlige, slik som Internett. Mange operativsystemer har i dag avanserte informasjonssikkerhetsverktøy basert på datakryptering, autentisering og autorisasjon.

Moderne operativsystemer er iboende multiplattformer, det vil si muligheten til å jobbe på helt forskjellige typer datamaskiner. Mange operativsystemer er spesifikt revidert for å støtte grupperte arkitekturer for høy ytelse og feiltoleranse. Det eneste unntaket så langt er NetWare OS, som alle versjoner er utviklet for Intel-plattformen, og implementering av NetWare-funksjoner i form av et skall for andre OS, for eksempel NetWare for AIX, har ikke vært vellykket.

De siste årene har den langsiktige trenden med å forbedre bekvemmeligheten til en person med en datamaskin blitt videreutviklet. Effektiviteten til en persons arbeid blir hovedfaktoren som bestemmer effektiviteten til et datasystem som helhet. Menneskelig innsats bør ikke brukes på å justere parametrene for beregningsprosessen, slik tilfellet var i tidligere generasjoners OS. For eksempel, i batchbehandlingssystemer for stormaskiner, måtte hver bruker bruke et jobbkontrollspråk for å definere et stort antall parametere knyttet til organiseringen av databehandlingsprosesser i datamaskinen. Så for OS / 360-systemet ga JCL jobbkontrollspråket brukeren til å definere mer enn 40 parametere, blant annet var jobbens prioritet, kravene til hovedminnet, tidsbegrensningen for jobben, listen av I/O-enheter som brukes og deres driftsmoduser.

Et moderne operativsystem tar på seg oppgaven med å velge parametrene til driftsmiljøet, ved å bruke forskjellige adaptive algoritmer for dette formålet. For eksempel bestemmes ofte tidsavbrudd i kommunikasjonsprotokoller basert på nettverksforhold. Fordelingen av RAM mellom prosesser utføres automatisk ved hjelp av virtuelle minnemekanismer, avhengig av aktiviteten til disse prosessene og informasjon om hyppigheten av deres bruk av en bestemt side. Øyeblikkelige prosessprioriteter bestemmes dynamisk basert på historikk, inkludert for eksempel tiden en prosess har vært i køen, prosentandelen av den tildelte tidsdelen, I/O-rate, etc. Selv under installasjonsprosessen tilbyr de fleste operativsystemer en standard valgmodus som garanterer om enn ikke optimal, men alltid akseptabel kvalitet på systemene.

Bekvemmeligheten med interaktivt arbeid med en datamaskin øker stadig ved inkludering av avanserte grafiske grensesnitt i operativsystemet, som bruker lyd og video sammen med grafikk. Dette er spesielt viktig for å gjøre en datamaskin om til en terminal for et nytt offentlig nettverk, som gradvis blir Internett, siden for en massebruker bør terminalen være nesten like oversiktlig og praktisk som telefonapparat... Brukergrensesnittet til operativsystemet blir mer og mer intelligent, styrer menneskelige handlinger i typiske situasjoner og tar rutinemessige beslutninger for ham.

Nivået av brukervennlighet av ressurser som frittstående operativsystemer gir til brukere, administratorer og applikasjonsutviklere i dag er bare et fristende perspektiv for nettverksoperativsystemer. Mens brukere og nettverksadministratorer bruker mye tid på å finne ut hvor denne eller den ressursen er, er utviklerne nettverksapplikasjoner legge mye arbeid i å finne data og programvaremoduler på nettverket. Fremtidens operativsystemer må gi et høyt nivå av åpenhet for nettverksressurser ved å ta på seg oppgaven med å organisere distribuert databehandling, og gjøre nettverket om til en virtuell datamaskin. Dette er meningen Sun-spesialister legger inn i det lakoniske slagordet "Nettverket er en datamaskin", men utviklerne av operativsystemer har fortsatt en lang vei å gå for å gjøre slagordet til virkelighet.

§ Historien til OS går tilbake rundt et halvt århundre. Det ble i stor grad bestemt og bestemt av utviklingen av elementbasen og datautstyr.

§ De første digitale datamaskinene, som dukket opp på begynnelsen av 40-tallet, fungerte uten operativsystemer, alle oppgaver med å organisere dataprosessen ble løst manuelt av hver programmerer fra kontrollpanelet.

§ Prototypen til moderne operativsystemer var monitorsystemene på midten av 50-tallet, som automatiserte operatørens handlinger for å utføre en rekke oppgaver.

§ I årene banet overgangen til integrerte kretser vei for fremveksten av neste generasjon datamaskiner, en fremtredende representant for denne er IBM / 360. I løpet av denne perioden ble nesten alle de grunnleggende konseptene som er iboende i moderne operativsystemer implementert: multiprogrammering, multiprosessering, multiterminalmodus, virtuelt minne, filsystemer, tilgangskontroll og nettverk.

§ Implementeringen av multiprogrammering krevde svært viktige endringer i maskinvaren. Prosessorene har nå privilegerte og brukermoduser, spesielle registre for rask veksling fra en oppgave til en annen, midler for å beskytte minneområder, samt et avansert avbruddssystem.

§ På slutten av 60-tallet startet arbeidet med opprettelsen av det globale ARPANET-nettverket, som var utgangspunktet for Internett - et globalt offentlig nettverk, som ble en testplass for mange nettverksoperativsystemer som gjorde det mulig å teste i reelle forhold mulighetene for deres interaksjon, graden av skalerbarhet, evnen til å jobbe med ekstrem belastning.

§ På midten av 70-tallet ble minidatamaskiner utbredt. Arkitekturen til minidatamaskiner har blitt betydelig forenklet sammenlignet med stormaskiner, noe som gjenspeiles i deres OS. Økonomien og rimeligheten til minidatamaskiner har fungert som et kraftig insentiv for etableringen av lokale nettverk. Bedriften, som nå hadde råd til å ha flere minidatamaskiner, trengte datadeling og dyrt periferutstyr. De første lokale nettverkene ble bygget ved hjelp av ikke-standard kommunikasjonsutstyr og ikke-standard programvare.

§ Siden midten av 70-tallet begynte den massive bruken av UNIX, et unikt operativsystem for den tiden, som var relativt enkelt å portere til ulike typer datamaskiner. Selv om UNIX opprinnelig ble designet for minidatamaskiner, har dens fleksibilitet, eleganse, kraftige funksjonalitet og åpenhet satt det fast i alle klasser av datamaskiner.

§ På slutten av 70-tallet ble det opprettet en fungerende versjon av TCP / IP-protokollstabelen. I 1983 ble TCP / IP-protokollstabelen standardisert. Leverandøruavhengighet, fleksibilitet og effektivitet, bevist av suksessen til Internett, har gjort TCP/IP-protokoller ikke bare til hovedtransportmekanismen på Internett, men også til hovedstabelen i de fleste nettverksoperativsystemer.

§ Begynnelsen av 80-tallet er assosiert med en betydelig begivenhet for operativsystemets historie - utseendet til personlige datamaskiner, som fungerte som en kraftig katalysator for den raske veksten av lokale nettverk, og skapte et utmerket materiell grunnlag for dette i form av titalls og hundrevis av datamaskiner plassert i én bygning. Som et resultat har støtte for nettverksfunksjoner blitt en forutsetning for operativsystemet til personlige datamaskiner.

§ På 80-tallet ble hovedstandardene for kommunikasjonsteknologi for lokale nettverk tatt i bruk: i 1980 - Ethernet, i 1985 - Token Ring, på slutten av 80-tallet - FDDI. Dette gjorde det mulig å sikre kompatibilitet av nettverksoperativsystemer på lavere nivåer, samt å standardisere OS-grensesnittet med nettverksadapterdrivere.

§ På begynnelsen av 90-tallet hadde nesten alle operativsystemer blitt nettverksbaserte, i stand til å støtte heterogene klienter og servere. Det finnes spesialiserte nettverksoperativsystemer designet utelukkende for å utføre kommunikasjonsoppgaver, for eksempel IOS-systemet fra Cisco Systems som kjører i rutere.

§ I løpet av det siste tiåret har det vært spesielt fokus pår, som er preget av høy grad av skalerbarhet, støtte for nettverk, avanserte sikkerhetsverktøy, evnen til å arbeide i et heterogent miljø og tilgjengeligheten av sentralisert administrasjon og styringsverktøy.

Oppgaver og øvelser

1. Hvilke hendelser i utviklingen av den tekniske basen til datamaskiner ble milepæler i operativsystemets historie?

2. Hva var den grunnleggende forskjellen mellom de første batchbehandlingsmonitorene og systembehandlingsprogrammene som allerede eksisterte på den tiden - oversettere, lastere, linkere, prosedyrebiblioteker?

3. Kan datamaskinen fungere uten et operativsystem?

4. Hvordan utviklet holdningen til konseptet multiprogrammering seg gjennom OS-historien?

5. Hvilken innvirkning har Internett hatt på utviklingen av OS?

6. Hva forklarer den spesielle plassen til UNIX OS i operativsystemets historie?

7. Beskriv historien til nettverksoperativsystemer.

8. Hva er dagens trender innen OS-utvikling?


Den russiske føderasjonens departement for utdanning og vitenskap

Statens utdanningsinstitusjon

høyere profesjonsutdanning

"Magnitogorsk State Technical University

dem. G.I. Nosov"

Institutt for informatikk og informasjonssikkerhet

Test

i faget "Informatikk"

Sammendrag om emnet "Evolusjon av operativsystemer til datamaskiner av forskjellige typer"

Fullført av: elevgruppe 1304006-11-1

Alternativ nummer 13

Sagdetdinov D.F.

Sjekket av: Universitetslektor

Korinchenko G.M.

Magnitogorsk 2014

  • 1. Utvikling av operativsystemer til datamaskiner av ulike typer
    • 1.2 Fremveksten av multi-programvare stormaskinoperativsystemer
  • 2. Oppgave om MathCAD №1 "Konstruksjon av todimensjonale grafer i MathCAD"
    • 2.1 Redegjørelse for oppgaven
    • 2.2Resultat - resulterende graf
  • 3. Oppgave om MathCAD nr. 2 "Solution of SLAE"
    • 3.1 Redegjørelse for oppdraget
  • 4. MathCAD-oppgave №3 "Løse systemer for ikke-lineære ligninger"
    • 4.1 Redegjørelse for oppdraget
  • 5. Oppgave om MathCAD nr. 4 "Løse ikke-lineære ligninger"
    • 5.1 Redegjørelse for oppdraget

1. Utvikling av operativsystemer til datamaskiner av ulike typer

I nesten et halvt århundre av sin eksistens har operativsystemer (OS) gått en vanskelig vei, full av mange viktige hendelser. En stor innflytelse på utviklingen av operativsystemer ble utøvd av suksessene med å forbedre elementbasen og datautstyret, derfor er mange stadier av utviklingen deres nært knyttet til fremveksten av nye typer maskinvareplattformer, for eksempel minidatamaskiner eller personlige datamaskiner. datamaskiner.

Operativsystemer har gjennomgått en alvorlig utvikling i forbindelse med den nye rollen til datamaskiner i lokale og globale nettverk. Den viktigste faktoren i deres utvikling var Internett.

1.1 Utseendet til de første operativsystemene

Fødselen av digitale datamaskiner kom kort tid etter slutten av andre verdenskrig. På midten av 40-tallet ble de første rørdatabehandlingsenhetene laget.

Programmering på den tiden ble utført utelukkende på maskinspråk. Det var ingen systemprogramvare annet enn biblioteker med matematikk og verktøyrutiner som en programmerer kunne bruke for å unngå å måtte skrive koder hver gang han beregner verdien av en matematisk funksjon eller kontrollerer en standard inn-/utdataenhet.

Operativsystemer har ennå ikke dukket opp, alle oppgavene med å organisere databehandlingsprosessen ble løst manuelt av hver programmerer fra kontrollpanelet, som var en primitiv inngangs-utgangsenhet bestående av knapper, brytere og indikatorer.

Fra midten av 50-tallet begynte en ny periode i utviklingen av datateknologi, assosiert med fremveksten av en ny teknisk base - halvlederelementer. Hastigheten på prosessorer har økt, volumene av RAM og eksternt minne har økt. Datamaskiner har blitt mer pålitelige, nå kan de kontinuerlig jobbe lenge nok til å bli betrodd utførelsen av virkelig praktiske oppgaver.

Samtidig ble de første batchbehandlingssystemene utviklet, som automatiserte hele sekvensen av operatørhandlinger for å organisere databehandlingsprosessen. Tidlige batchbehandlingssystemer var prototypen til moderne operativsystemer, de var de første systemprogrammene designet ikke for databehandling, men for å kontrollere beregningsprosessen.

Batchbehandlingssystemer har betydelig redusert tiden brukt på hjelpehandlinger for å organisere dataprosessen, noe som betyr at enda et skritt er tatt for å forbedre effektiviteten ved bruk av datamaskiner.

Men samtidig mistet brukerprogrammerere direkte tilgang til datamaskinen, noe som reduserte effektiviteten deres - noe som gjorde at enhver korrigering krevde mye mer tid enn når de arbeidet interaktivt på maskinens kontrollpanel.

1.2 Fremveksten av mulfor stormaskiner

Den neste viktige perioden i utviklingen av operativsystemer går tilbake til 1965-1975.

På dette tidspunktet, i den tekniske basen til datamaskiner, var det en overgang fra individuelle halvlederelementer som transistorer til integrerte kretser, noe som åpnet veien for fremveksten av neste generasjon datamaskiner.

I løpet av denne perioden ble nesten alle hovedmekanismene som er iboende i moderne operativsystemer implementert:

Multiprogrammering,

Multiprosessering,

Støtte for multi-terminal multi-user mode,

Virtuell hukommelse,

filsystemer,

Adgangskontroll,

Nettverksarbeid.

Den revolusjonerende begivenheten på dette stadiet var den industrielle implementeringen av multiprogrammering. Under forholdene med de dramatisk økte egenskapene til datamaskinen for behandling og lagring av data, viste det seg å utføre bare ett program om gangen å være ekstremt ineffektiv. Løsningen var multiprogrammering - en metode for å organisere en beregningsprosess der flere programmer var samtidig i datamaskinens minne, vekselvis utført på én prosessor.

Disse forbedringene forbedret effektiviteten til datasystemet betydelig: datamaskinen kunne nå brukes nesten konstant, og ikke mindre enn halvparten av datamaskinens driftstid, slik den var før.

Multiprogrammering ble implementert i to versjoner - i batchbehandling og tidsdelingssystemer.

1.3 Operativsystemer og globale nettverk

På begynnelsen av 70-tallet av forrige århundre dukket de første nettverksoperativsystemene opp, som, i motsetning til multiterminale, tillot ikke bare å spre brukere, men også å organisere distribuert lagring og behandling av data mellom flere datamaskiner koblet sammen med elektriske tilkoblinger.

Ethvert nettverksoperativsystem, på den ene siden, utfører alle funksjonene til et lokalt operativsystem, og på den annen side har noen ekstra verktøy som lar det samhandle over nettverket med operativsystemene til andre datamaskiner.

Programvaremoduler som implementerer nettverksfunksjoner dukket opp i operativsystemer gradvis, med utviklingen av nettverksteknologier, maskinvarebasen til datamaskiner og fremveksten av nye oppgaver som krever nettverksbehandling.

I 1969 satte det amerikanske forsvarsdepartementet i gang arbeidet med å kombinere superdatamaskinene til forsvars- og forskningssentre til ett enkelt nettverk. Dette nettverket ble kalt ARPANET og var utgangspunktet for etableringen av det mest kjente globale nettverket - Internett.

I 1974 kunngjorde IBM sin egen nettverksarkitektur for sine stormaskiner, kalt SNA (System Network Architecture).

Denne lagdelte arkitekturen, omtrent som standard OSI-modellen som dukket opp noe senere, ga terminal-til-terminal, terminal-til-datamaskin og datamaskin-til-datamaskin interoperabilitet over global kommunikasjon.

1.4 Operativsystemer for minidatamaskiner. De første lokale nettverkene

På midten av 70-tallet, sammen med stormaskiner, ble minidatamaskiner mye brukt. De var de første som utnyttet storskala integrerte kretser, som gjorde det mulig å implementere kraftige nok funksjoner til en relativt lav kostnad for en datamaskin.

Arkitekturen til minidatamaskiner har blitt kraftig forenklet sammenlignet med stormaskiner, noe som gjenspeiles i deres operativsystemer. Mange funksjoner i stormaskinens multiprogrammerende flerbrukeroperativsystemer har blitt fjernet gitt de begrensede ressursene til minidatamaskiner.

Operativsystemene til minidatamaskiner har ofte blitt spesialiserte, for eksempel kun for sanntidskontroll eller kun for å opprettholde en tidsdelingsmodus.

En viktig milepæl i historien til mini-datamaskiner og i historien til operativsystemer generelt var etableringen av UNIX OS. Massebruken begynte på midten av 70-tallet. På dette tidspunktet var 90 % av UNIX-koden skrevet på høyt nivå C-språk.

Tilgjengeligheten av minidatamaskiner og, som et resultat, deres utbredelse i bedrifter, fungerte som et kraftig insentiv for å opprette lokale nettverk. Selskapet hadde råd til å ha flere minidatamaskiner plassert i samme bygning eller til og med i samme rom. Naturligvis var det behov for utveksling av informasjon mellom dem og for felles bruk av kostbart perifert utstyr.

De første lokale nettverkene ble bygget ved hjelp av ikke-standard kommunikasjonsutstyr, i det enkleste tilfellet, ved direkte å koble serieportene til datamaskiner. Programvaren var også ikke-standard og implementert som tilpassede applikasjoner.

1.5 Utvikling av operativsystemer på 80-tallet

De viktigste begivenhetene i dette tiåret inkluderer:

TCP / IP stack utvikling,

Fremveksten av Internett,

LAN-teknologi standardisering,

Fremveksten av personlige datamaskiner,

Og operativsystemer for dem.

En fungerende versjon av TCP / IP-protokollstabelen ble opprettet på slutten av 70-tallet.

I 1983 ble TCP / IP-protokollstabelen tatt i bruk av det amerikanske forsvarsdepartementet som en militær standard.

Innføringen av TCP / IP-protokollene i ARPANET ga dette nettverket alle de grunnleggende funksjonene som skiller det moderne Internett.

Hele tiåret har vært preget av den stadige fremveksten av nye, mer og mer avanserte versjoner av UNIX-operativsystemet. Blant dem var merkeversjoner av UNIX: SunOS, HP-UX, Irix, AIX og mange andre, der datamaskinprodusenter tilpasset kjerne- og systemverktøykoden for maskinvaren deres.

Begynnelsen av 80-tallet er assosiert med en annen viktig begivenhet for operativsystemets historie - fremveksten av personlige datamaskiner.

De fungerte som en kraftig katalysator for den raske veksten av lokale nettverk, og skapte et utmerket materiell grunnlag for dette i form av titalls og hundrevis av datamaskiner som tilhører en bedrift og plassert i en bygning. Som et resultat har støtte for nettverksfunksjoner blitt en forutsetning for operativsystemet til personlige datamaskiner.

Nettverksfunksjoner ble implementert hovedsakelig av nettverksskall som kjørte på toppen av operativsystemet. Når du arbeider på et nettverk, er det alltid nødvendig å opprettholde en flerbrukermodus, der én bruker er interaktiv, og resten får tilgang til dataressurser over nettverket. I dette tilfellet krever operativsystemet minst et minimum av funksjonell støtte for flerbrukermodus.

I 1987 samarbeidet Microsoft og IBM for å lage det første multitasking-operativsystemet for personlige datamaskiner med en Intel 80286-prosessor, og dra full nytte av beskyttet modus - OS / 2. Dette systemet var godt gjennomtenkt. Den støttet forebyggende multitasking, virtuelt minne, et grafisk brukergrensesnitt og en virtuell maskin for å kjøre DOS-applikasjoner.

På 80-tallet ble hovedstandardene for kommunikasjonsteknologi for lokale nettverk tatt i bruk: i 1980 - Ethernet, i 1985 - Token Ring, på slutten av 80-tallet - FDDI. Dette gjorde det mulig å sikre kompatibilitet av nettverksoperativsystemer på lavere nivåer, samt å standardisere OS-grensesnittet med nettverksadapterdrivere.

1.6 Funksjoner i det nåværende utviklingsstadiet av operativsystemer

På 90-tallet ble nesten alle operativsystemer som inntar en fremtredende plass i markedet nettverk. Nettverksfunksjoner er nå innebygd i kjernen til operativsystemet, og er en integrert del av det. Operativsystemer mottok verktøy for å jobbe med alle større LAN-teknologier, samt verktøy for å lage sammensatte nettverk.

Operativsystemer bruker flere protokollstabler for å multiplekse slik at datamaskiner kan nettverk samtidig med forskjellige klienter og servere.

I andre halvdel av 1990-tallet økte alle operativsystemprodusenter dramatisk støtten til Internett. I tillegg til selve TCP / IP-stakken begynte pakken å inkludere verktøy som implementerer så populære Internett-tjenester som telnet, ftp, DNS og web.

Internetts innflytelse manifesterte seg også i det faktum at datamaskinen ble fra en ren dataenhet til et kommunikasjonsverktøy med avanserte datafunksjoner.

Operativsystemer for bedriftsnettverk har fått spesiell oppmerksomhet det siste tiåret. Deres videre utvikling er en av de viktigste oppgavene i overskuelig fremtid.

Bedriftsoperativsystemet kjennetegnes ved evnen til å fungere godt og konsekvent i store nettverk, som er typiske for store bedrifter med filialer i dusinvis av byer og muligens i forskjellige land. Slike nettverk er organisk iboende i en høy grad av heterogenitet av programvare og maskinvare, så bedriftens OS bør sømløst samhandle med operativsystemer av forskjellige typer og kjøre på forskjellige maskinvareplattformer.

Opprettelsen av en funksjonsrik skalerbar helpdesk er en strategisk retning i utviklingen av operativsystemet. En slik tjeneste er nødvendig for å gjøre Internett til et forutsigbart og håndterbart system, for eksempel for å gi den nødvendige kvaliteten på tjenesten for brukertrafikk, støtte store distribuerte applikasjoner og bygge et effektivt postsystem.

På det nåværende stadiet av utviklingen av operativsystemer har sikkerhetsverktøy kommet i forgrunnen. Dette skyldes den økte verdien av informasjon som behandles av datamaskiner, samt det økte nivået av trusler som eksisterer ved overføring av data over nettverk, spesielt offentlige, slik som Internett. Mange operativsystemer har i dag avanserte informasjonssikkerhetsverktøy basert på datakryptering, autentisering og autorisasjon.

Moderne operativsystemer er iboende multiplattformer, det vil si muligheten til å jobbe på helt forskjellige typer datamaskiner. Mange operativsystemer er spesifikt revidert for å støtte grupperte arkitekturer for høy ytelse og feiltoleranse.

De siste årene har den langsiktige trenden med å forbedre bekvemmeligheten til en person med en datamaskin blitt videreutviklet. Effektiviteten til en persons arbeid blir hovedfaktoren som bestemmer effektiviteten til et datasystem som helhet.

Bekvemmeligheten med interaktivt arbeid med en datamaskin blir stadig forbedret ved å inkludere avanserte grafiske grensesnitt i operativsystemet, som bruker lyd og video sammen med grafikk. Brukergrensesnittet til operativsystemet blir mer og mer intelligent, styrer menneskelige handlinger i typiske situasjoner og tar rutinemessige beslutninger for ham.

2. Oppgave om MathCAD №1 "Konstruksjon av todimensjonale grafer i MathCAD"

2.1 Redegjørelse for oppgaven

Lag to grafer. Skriv ut en verditabell for funksjonen spesifisert i det parametriske skjemaet.

Tabell 1

Innledende data

2.2 Resultat - den resulterende grafen

Figur 1 - Oppgave 1

3. Oppgave om MathCAD nr. 2 "Solution of SLAE"

3.1 Redegjørelse for oppdraget

Finn løsningen på SLAE:

1. bruke den inverse matrisen;

2. bruke den innebygde lsolve-funksjonen;

3. ved å bruke dataenheten Given-Find.

3.2 Resultat - Utført løsning

Figur 2 - Oppgave 2

4. MathCAD-oppgave №3 "Løse systemer for ikke-lineære ligninger"

4.1 Redegjørelse for oppdraget

Løs et system med ikke-lineære ligninger.

Bygg grafer over funksjoner som definerer likningene til systemet.

Kontroller grafisk riktigheten av løsningen.

operativsystem nettverk mathcad

4.2 Resultat - Utført løsning

Figur 3 - Oppgave 3

5. Oppgave om MathCAD nr. 4 "Løse ikke-lineære ligninger"

5.1 Redegjørelse for oppdraget

Finn en løsning på en ikke-lineær ligning:

1.med den innebygde rotfunksjonen;

2. bruke den innebygde funksjonen polyroots;

5.2 Resultat - Utført løsning

Figur 4 - Oppgave 4

Lignende dokumenter

    Funksjoner i det nåværende utviklingsstadiet av operativsystemer. Formål med operativsystemer, deres hovedtyper. Operativsystemer til minidatamaskiner. Prinsippet for drift av en matriseskriver, design og reproduksjon av vilkårlige tegn for dem.

    semesteroppgave lagt til 23.06.2011

    Grunnleggende konsepter om operativsystemer. Typer moderne operativsystemer. Historien om utviklingen av operativsystemer Windows-familien... Kjennetegn på Windows-operativsystemer. Ny funksjonalitet til Windows 7-operativsystemet.

    semesteroppgave lagt til 18.02.2012

    Evolusjon og klassifisering av OS. Nettverksoperativsystemer. Minnehåndtering. Moderne konsepter og teknologier for utforming av operativsystemer. En familie av UNIX-operativsystemer. Nettverksprodukter fra Novell. Microsofts nettverksoperativsystemer.

    kreativt arbeid, lagt til 11.07.2007

    Beskrivelse av essensen, formålet, funksjonene til operativsystemer. Karakteristiske trekk ved deres utvikling. Funksjoner av ressursstyringsalgoritmer. Moderne konsepter og teknologier for utforming av operativsystemer, krav til OS fra XXI århundre.

    semesteroppgave, lagt til 01.08.2011

    Historien om utvikling og forbedring av Microsoft-operativsystemer, deres egenskaper og særtrekk fra systemer av andre merker, fordeler og ulemper. Nåværende tilstand og muligheter for Microsofts operativsystemer og prospekter.

    sammendrag, lagt til 22.11.2009

    Formål og grunnleggende funksjoner til operativsystemer. Laster programmene som skal kjøres inn i det operative minnet. Betjener alle I/O-operasjoner. Evolusjon, klassifisering av operativsystemer. Dannelse av lønnslisten, sortering på avdeling.

    semesteroppgave, lagt til 17.03.2009

    Formål, klassifisering, sammensetning og formål med operativsystemkomponenter. Utvikling av kompleks informasjonssystemer, programvarekomplekser og individuelle applikasjoner. Kjennetegn på operativsystemene Windows, Linux, Android, Solaris, Symbian OS og Mac OS.

    semesteroppgave lagt til 19.11.2014

    Konseptet og grunnleggende funksjoner til operativsystemer, deres typiske struktur og operasjonsprinsipp. En kort historie om dannelsen og utviklingen av Windows-operativsystemer, deres varianter og generelle egenskaper, hovedkravene til maskinvare.

    presentasjon lagt til 07/12/2011

    Grunnleggende konsepter for operativsystemer. Synkronisering og kritiske områder. Signaler og interaksjoner mellom prosesser. Minnehåndtering. Enhetsdrivere. Funksjoner av moderne operativsystemer. prosessor, mikrokretser av klokker og tidtakere.

    opplæring, lagt til 24.01.2014

    Konseptet med operativsystemer, deres klassifisering og varianter, særtrekk og grunnleggende egenskaper. Innholdet i operativsystemene, rekkefølgen av interaksjon og formålet med deres komponenter. Organisasjon diskplass... Beskrivelse av moderne operativsystemer.

Beskrivelse av essensen, formålet, funksjonene til operativsystemer. Karakteristiske trekk ved deres utvikling. Funksjoner av ressursstyringsalgoritmer. Moderne konsepter og teknologier for utforming av operativsystemer, krav til OS fra XXI århundre.

INTRODUKSJON

1. OS-evolusjon

1.1 Den første perioden (1945 -1955)

1.2 Andre periode (1955–1965)

1.3 Tredje periode (1965–1980)

1.4 Fjerde periode (1980 – i dag)

2. OS-klassifisering

2.1 Funksjoner ved ressursstyringsalgoritmer

2.2 Funksjoner for maskinvareplattformer

2.3 Funksjoner ved bruksområder

2.4 Funksjoner ved byggemetoder

3. Moderne konsepter og teknologier for utforming av operativsystemer, krav til OS av XXI århundre

Konklusjon

Liste over brukt litteratur

INTRODUKSJON

Historien til enhver gren av vitenskap eller teknologi gjør det ikke bare mulig å tilfredsstille naturlig nysgjerrighet, men også å bedre forstå essensen av hovedprestasjonene til denne industrien, forstå eksisterende trender og vurdere utsiktene til visse utviklingsretninger riktig. I nesten et halvt århundre av sin eksistens har operativsystemer passert en vanskelig vei fylt med mange viktige hendelser. En stor innflytelse på utviklingen av operativsystemer ble gjort av suksessene med å forbedre elementbasen og datautstyret, derfor er mange stadier av utviklingen av OS nært knyttet til fremveksten av nye typer maskinvareplattformer, for eksempel mini- datamaskiner eller personlige datamaskiner. Operativsystemer har gjennomgått en alvorlig utvikling i forbindelse med den nye rollen til datamaskiner i lokale og globale nettverk. Den viktigste faktoren i utviklingen av OS har blitt Internett. Ettersom dette nettverket får funksjonene til et universelt middel for massekommunikasjon, blir operativsystemene mer og mer enkle og praktiske å bruke, de inkluderer avanserte midler for å støtte multimedieinformasjon og er utstyrt med pålitelige beskyttelsesmidler.

Formålet med dette kursarbeidet er - å beskrive og analysere utviklingen av operativsystemer.

Målet nås gjennom følgende oppgaver:

Vurder det historiske aspektet ved fremveksten av operativsystemer;

Fremhev og vurder stadiene i utviklingen av operativsystemer.

Det skal bemerkes at det faktum at det ikke ble tilstrekkelig fremhevet i litteraturen, gjorde det vanskelig å studere det.

I løpet av undersøkelsen ble det utført en kort analyse av kilder som materiale fra nettstedet http://www.microsoft.com/rus, materiale fra Windows NT Magazine og andre.

Arbeidet består av tre kapitler med innledning, konklusjon og litteraturliste.

1 ... OS evolusjon

1.1 Første periode (1945 -1955)

Det er kjent at datamaskinen ble oppfunnet av den engelske matematikeren Charles Babidge på slutten av det attende århundre. Hans "analytiske maskin" kunne egentlig ikke fungere, fordi datidens teknologier ikke oppfylte kravene til fremstilling av deler av presisjonsmekanikk, som var nødvendige for databehandling. Det er også kjent at denne datamaskinen ikke hadde et operativsystem.

Noen fremskritt i etableringen av digitale datamaskiner fant sted etter andre verdenskrig. På midten av 40-tallet ble de første rørdatabehandlingsenhetene laget. På den tiden deltok en og samme gruppe mennesker i utformingen, og i driften, og i programmeringen av datamaskinen. Det var mer et vitenskapelig forskningsarbeid innen databehandling, snarere enn bruk av datamaskiner som et verktøy for å løse eventuelle praktiske problemer fra andre anvendte områder. Programmeringen ble utført utelukkende på maskinspråk. Det var ikke snakk om operativsystemer, alle oppgavene med å organisere dataprosessen ble løst manuelt av hver programmerer fra kontrollpanelet. Det var ingen annen systemprogramvare enn matematikk- og verktøybiblioteker.

1.2 Andre periode (1955–1965)

Fra midten av 50-tallet begynte en ny periode i utviklingen av datateknologi, assosiert med fremveksten av en ny teknisk base - halvlederelementer. Andre generasjons datamaskiner har blitt mer pålitelige, nå har de vært i stand til å jobbe kontinuerlig lenge nok til å bli betrodd utførelsen av virkelig praktiske oppgaver. Det var i denne perioden at personellet ble delt inn i programmerere og operatører, operatører og utviklere av datamaskiner.

I løpet av disse årene dukket de første algoritmiske språkene opp, og derfor de første systemprogrammene - kompilatorer. Kostnaden for prosessortid har økt, noe som krever mindre overhead mellom programlanseringer. De første batchbehandlingssystemene dukket opp som ganske enkelt automatiserte lanseringen av det ene programmet etter det andre og dermed økte prosessorens belastningsfaktor. Batchbehandlingssystemer var prototypen til moderne operativsystemer, de var de første systemprogrammene designet for å kontrollere dataprosessen. Under implementeringen av batchbehandlingssystemer ble det utviklet et formalisert oppgavekontrollspråk, ved hjelp av hvilket programmereren fortalte systemet og operatøren hvilket arbeid han ønsker å gjøre på datamaskinen. En samling av flere oppgaver, vanligvis i form av en kortstokk med hullkort, kalles en oppgavepakke.

1.3 Tredje periode (1965–1980)

Den neste viktige perioden i utviklingen av datamaskiner går tilbake til 1965-1980. På dette tidspunktet, i den tekniske basen, var det en overgang fra individuelle halvlederelementer som transistorer til integrerte mikrokretser, noe som ga mye større muligheter til den nye, tredje generasjonen datamaskiner.

Denne perioden var også preget av opprettelsen av familier av programvarekompatible maskiner. Den første familien av programvarekompatible maskiner bygget på integrerte kretser var IBM / 360-serien med maskiner. Denne familien ble bygget på begynnelsen av 1960-tallet og klarte seg betydelig bedre enn andre generasjons maskiner når det gjelder pris/ytelse. Snart ble ideen om programvarekompatible maskiner generelt akseptert.

Programvarekompatibilitet krevde også operativsystemkompatibilitet. Slike operativsystemer vil måtte fungere på både store og små datasystemer, med et stort og lite utvalg av periferiutstyr, i det kommersielle feltet og innen vitenskapelig forskning. Operativsystemer bygget med den hensikt å møte alle disse motstridende kravene har vist seg å være ekstremt komplekse "monstre". De besto av mange millioner monteringslinjer, skrevet av tusenvis av programmerere, og inneholdt tusenvis av feil, noe som forårsaket en endeløs strøm av rettelser. I hver nye versjon av operativsystemet ble noen feil fikset og andre ble introdusert.

På samme tid, til tross for den enorme størrelsen og mange problemer, tilfredsstilte OS / 360 og andre lignende operativsystemer til tredje generasjons maskiner virkelig de fleste av forbrukernes krav. Den viktigste prestasjonen til denne generasjonen av operativsystemer var implementeringen av multiprogrammering. Multiprogrammering er en metode for å organisere en beregningsprosess der flere programmer vekselvis kjøres på én prosessor. Mens ett program utfører en I/O-operasjon, går ikke prosessoren på tomgang, slik den gjorde i sekvensiell programkjøring (enkeltprogrammodus), men kjører et annet program (flerprogrammodus). I dette tilfellet blir hvert program lastet inn i sin egen del av RAM, kalt en seksjon.

En annen innovasjon er spooling. På den tiden ble spooling definert som en måte å organisere databehandlingsprosessen på, i samsvar med hvilke oppgaver ble lest fra hullkort til disk med den hastigheten de dukket opp i datasenteret, og deretter, når neste oppgave ble fullført, en ny oppgave fra disk ble lastet inn i den frigjorte partisjonen. ...

Sammen med multiprogramimplementeringen av batchbehandlingssystemer har en ny type OS dukket opp - tidsdelingssystemer. En variant av multiprogrammering brukt i tidsdelingssystemer er rettet mot å skape en illusjon for hver enkelt bruker av enestående bruk av en datamaskin.

1.4 Fjerde periode (1980 – nåtid)

Den neste perioden i utviklingen av operativsystemer er assosiert med fremveksten av store integrerte kretser (LSI). I løpet av disse årene var det en kraftig økning i graden av integrasjon og en reduksjon i kostnadene for mikrokretser. Datamaskinen ble tilgjengelig for den enkelte, og æraen med personlige datamaskiner begynte. Fra et arkitektursynspunkt skilte ikke personlige datamaskiner seg på noen måte fra klassen av minidatamaskiner som PDP-11, men prisen deres var betydelig forskjellig. Hvis en minidatamaskin gjorde det mulig for en avdeling i en bedrift eller et universitet å ha sin egen datamaskin, så gjorde en personlig datamaskin det mulig for en enkeltperson.

Datamaskiner ble mye brukt av ikke-spesialister, noe som krevde utvikling av "vennlig" programvare, dette satte en stopper for kasteprogrammererne.

Operativsystemmarkedet ble dominert av to systemer: MS-DOS og UNIX. MS-DOS-operativsystemet med ett program for én bruker ble mye brukt for datamaskiner basert på Intel 8088-mikroprosessoren, etterfulgt av 80286, 80386 og 80486. Multi-program multi-user UNIX-operativsystemet dominerte ikke-Intel datamiljø, spesielt de som er basert på høyytelses RISC-prosessorer.

På midten av 80-tallet begynte personlige datanettverk å utvikle seg raskt, og kjørte under nettverk eller distribuerte operativsystemer.

I et nettverksoperativsystem må brukere være klar over tilstedeværelsen av andre datamaskiner og må logge på en annen datamaskin for å bruke ressursene, hovedsakelig filer. Hver maskin på nettverket kjører sitt eget lokale operativsystem, som skiller seg fra operativsystemet til en frittstående datamaskin i nærvær av tilleggsverktøy som gjør at datamaskinen kan operere på nettverket. Nettverksoperativsystemet er ikke fundamentalt forskjellig fra operativsystemet til en datamaskin med én prosessor. Den inneholder nødvendigvis programvarestøtte for nettverksgrensesnittenheter (nettverksadapterdriver), samt verktøy for ekstern tilgang til andre datamaskiner på nettverket og verktøy for tilgang til eksterne filer, men disse tilleggene endrer ikke strukturen til selve operativsystemet vesentlig.

2. OS-klassifisering

Operativsystemer kan variere i funksjonene til implementeringen av interne algoritmer for å administrere hovedressursene til datamaskinen (prosessorer, minne, enheter), funksjonene til designmetodene som brukes, typer maskinvareplattformer, bruksområder og mange andre egenskaper .

Nedenfor er klassifiseringen av OS i henhold til flere av de mest grunnleggende egenskapene.

2.1 Funksjoner av ressursstyringsalgoritmer

Effektiviteten til nettverksoperativsystemet som helhet avhenger i stor grad av effektiviteten til algoritmene for å administrere de lokale ressursene til en datamaskin. Derfor, når du karakteriserer et nettverksoperativsystem, blir de viktigste funksjonene ved implementeringen av operativsystemfunksjoner for å administrere prosessorer, minne og eksterne enheter til en autonom datamaskin ofte sitert. Så, for eksempel, avhengig av funksjonene til prosessorkontrollalgoritmen som brukes, er operativsystemer delt inn i multitasking og single-tasking, multi-user og single-user, systemer som støtter flertrådsbehandling og ikke støtter det, i multiprosessor og enprosessorsystemer.

Multitasking-støtte. Operativsystemer kan deles inn i to klasser basert på antall samtidig utførte oppgaver:

enkeltoppgave (f.eks. MS-DOS, MSX) og

multitasking (OC EC, OS / 2, UNIX, Windows 95).

Enkeltoppgaveoperativsystemer utfører hovedsakelig funksjonen å gi brukeren en virtuell maskin, noe som gjør det enklere og mer praktisk for brukeren å samhandle med datamaskinen. Enkeltoppgaveoperativsystemer inkluderer verktøy for å kontrollere eksterne enheter, verktøy for å administrere filer, verktøy for å kommunisere med brukeren.

Et multitasking-operativsystem, i tillegg til funksjonene ovenfor, administrerer deling av delte ressurser som prosessor, RAM, filer og eksterne enheter.

Støtte for flerspillermodus. Etter antall samtidige brukere er operativsystemet delt inn i:

enkeltbruker (MS-DOS, Windows 3.x, tidligere versjoner av OS / 2);

flerbruker (UNIX, Windows NT).

Hovedforskjellen mellom flerbrukersystemer og enkeltbrukersystemer er tilgjengeligheten av midler for å beskytte informasjonen til hver bruker mot uautorisert tilgang fra andre brukere. Det bør bemerkes at ikke alle multi-tasking-systemer er multi-user, og ikke alle enkelt-bruker-operativsystemer er single-tasking.

Forebyggende og ikke-forebyggende multitasking. Den viktigste delte ressursen er CPU-tid. Måten CPU-tid er fordelt på flere prosesser (eller tråder) som eksisterer samtidig i systemet, bestemmer i stor grad spesifikasjonene til operativsystemet. Blant de mange eksisterende alternativene for implementering av multitasking, kan to grupper av algoritmer skilles:

ikke-forebyggende multitasking (NetWare, Windows 3.x);

forebyggende multitasking (Windows NT, OS / 2, UNIX).

Hovedforskjellen mellom forebyggende og ikke-forebyggende multitasking er graden av sentralisering av prosessplanleggingsmotoren. I det første tilfellet er prosessplanleggingsmekanismen helt konsentrert i operativsystemet, og i det andre er den fordelt mellom systemet og applikasjonsprogrammene. Ved ikke-forebyggende multitasking kjører den aktive prosessen til den på eget initiativ overgir kontrollen til operativsystemet for at den skal velge en annen prosess klar til å kjøre fra køen. Ved forebyggende multitasking tas beslutningen om å bytte prosessor fra én prosess til en annen av operativsystemet, ikke av selve den aktive prosessen.

Flertrådsstøtte. En viktig funksjon ved operativsystemer er muligheten til å parallellisere beregninger innenfor en enkelt oppgave. Et flertråds OS deler ikke prosessortid mellom oppgaver, men mellom deres separate grener (tråder).

Multiprosessering. En annen viktig funksjon ved operativsystemet er fraværet eller tilstedeværelsen av støtte for multiprosessering - multiprosessering. Multiprosessering fører til komplikasjonen av alle ressursstyringsalgoritmer.

I dag er det i ferd med å bli generelt akseptert å introdusere støttefunksjoner for multiprosessering i operativsystemet. Disse funksjonene er tilgjengelige på Suns Solaris 2.x, Santa Crus Operations' Open Server 3.x, IBMs OS / 2, Microsofts Windows NT og Novells NetWare 4.1.

Multiprosessor OS kan klassifiseres i henhold til måten databehandlingsprosessen er organisert i et system med en multiprosessorarkitektur: asymmetrisk OS og symmetrisk OS. Et asymmetrisk OS kjøres fullstendig på bare én av prosessorene i systemet, og fordeler applikasjonsoppgaver mellom resten av prosessorene. Et symmetrisk OS er fullstendig desentralisert og bruker hele utvalget av prosessorer, og deler dem mellom system- og applikasjonsoppgaver.

Ovenfor vurderte vi egenskapene til operativsystemet knyttet til administrasjonen av bare én type ressurs - prosessoren. En viktig innflytelse på utseendet til operativsystemet som helhet, på muligheten for bruk i et eller annet område, utøves også av funksjonene til andre undersystemer for å administrere lokale ressurser - undersystemer for å administrere minne, filer og input- utgangsenheter.

Operativsystemets spesifisitet manifesteres også i måten det implementerer nettverksfunksjoner på: gjenkjennelse og omdirigering av forespørsler til eksterne ressurser inn i nettverket, overføring av meldinger over nettverket og utførelse av eksterne forespørsler. Når du implementerer nettverksfunksjoner, oppstår et sett med oppgaver knyttet til den distribuerte naturen til lagring og behandling av data i nettverket: vedlikehold av referanseinformasjon om alle ressurser og servere som er tilgjengelige på nettverket, adressering av interaksjonsprosesser, sikre tilgangsgjennomsiktighet, replikering av data, avstemming av kopier , opprettholde datasikkerhet.

2. 2 Funksjoner av maskinvareplattformer

Egenskapene til operativsystemet påvirkes direkte av maskinvaren det er orientert mot. Etter type maskinvare skilles operativsystemene til personlige datamaskiner, minidatamaskiner, stormaskiner, klynger og datanettverk. Blant de listede typene datamaskiner kan det finnes både uniprosessor-versjoner og multiprosessorer. I alle fall gjenspeiles spesifikasjonene til maskinvare vanligvis i spesifikasjonene til operativsystemer.

Det er klart at operativsystemet til en stor maskin er mer komplekst og funksjonelt enn det til en personlig datamaskin. Så i operativsystemet til store maskiner er funksjonene for å planlegge flyten av oppgaver som utføres åpenbart implementert ved å bruke komplekse prioriterte disipliner og krever mer datakraft enn i operativsystemet til personlige datamaskiner. Situasjonen er lik med andre funksjoner.

Nettverksoperativsystemet inkluderer midler for å overføre meldinger mellom datamaskiner over kommunikasjonslinjer, noe som er helt unødvendig i et frittstående operativsystem. Basert på disse meldingene opprettholder nettverksoperativsystemet deling av datamaskinressurser mellom eksterne brukere som er koblet til nettverket. For å støtte meldingsfunksjoner inneholder nettverksoperativsystemer spesielle programvarekomponenter som implementerer populære kommunikasjonsprotokoller som IP, IPX, Ethernet og andre.

Multiprosessorsystemer krever en spesiell organisasjon fra operativsystemet, ved hjelp av hvilken selve operativsystemet, så vel som applikasjonene det støtter, kan kjøres parallelt av de individuelle prosessorene i systemet. Parallell drift av separate deler av OS skaper ytterligere problemer for OS-utviklere, siden det i dette tilfellet er mye vanskeligere å sikre konsistent tilgang til individuelle prosesser til vanlige systemtabeller, for å eliminere effekten av løp og andre uønskede konsekvenser av asynkron utførelse av arbeid.

Andre krav gjelder for klyngeoperativsystemer. En klynge er en løst koblet samling av flere datasystemer som jobber sammen for å kjøre vanlige applikasjoner og fremstår for brukeren som et enkelt system. Sammen med spesiell maskinvare for funksjonen til klyngesystemer kreves det også programvarestøtte fra operativsystemet, som i utgangspunktet koker ned til å synkronisere tilgang til delte ressurser, oppdage feil og dynamisk rekonfigurere systemet. En av de første utviklingene innen klyngeteknologi var løsningene til Digital Equipment-selskapet basert på VAX-datamaskiner. Selskapet inngikk nylig en avtale med Microsoft om å utvikle klyngeteknologi ved bruk av Windows NT. Flere selskaper tilbyr klynger basert på UNIX-maskiner.

Sammen med operativsystemer som retter seg mot en helt spesifikk type maskinvareplattform, finnes det operativsystemer spesialdesignet slik at de enkelt kan overføres fra en type datamaskin til en annen type datamaskin, det såkalte mobile OS. Det mest fremtredende eksemplet på et slikt operativsystem er det populære UNIX-systemet. I disse systemene er de maskinvareavhengige stedene nøye lokalisert, slik at når systemet overføres til en ny plattform er det kun de som overskrives. Verktøyet som gjør det lettere å portere resten av operativsystemet er å skrive det på et maskinuavhengig språk, som for eksempel C, som ble utviklet for programmering av operativsystemer.

2. 3 Funksjoner ved bruksområder

Multitasking-operativsystemer er delt inn i tre typer i samsvar med ytelseskriteriene som brukes i utviklingen:

batchbehandlingssystemer (f.eks. OC EC),

tidsdelingssystemer (UNIX, VMS),

sanntidssystemer (QNX, RT / 11).

Batchbehandlingssystemer ble designet for å løse hovedsakelig beregningsproblemer som ikke krever raske resultater. Hovedmålet og effektivitetskriteriet for batchbehandlingssystemer er maksimal gjennomstrømning, det vil si løsningen av maksimalt antall oppgaver per tidsenhet. For å oppnå dette målet brukes følgende operasjonsskjema i batchbehandlingssystemer: i begynnelsen av arbeidet dannes en gruppe oppgaver, hver oppgave inneholder et krav til systemressurser; fra denne pakken med oppgaver dannes en multiprogramblanding, det vil si en mengde oppgaver som utføres samtidig. For samtidig utførelse velges oppgaver som presenterer ulike ressurskrav, slik at det sikres en balansert belastning av alle enheter på datamaskinen; for eksempel i en flerprogramblanding er det ønskelig å ha både beregnings- og I/O-intensive oppgaver samtidig. Dermed avhenger valget av en ny oppgave fra en gruppe oppgaver av den interne situasjonen i systemet, det vil si at en "lønnsom" oppgave velges. Følgelig, i slike operativsystemer, er det umulig å garantere utførelse av en bestemt oppgave innen en viss tidsperiode. I batchbehandlingssystemer bytter prosessoren fra en oppgave til en annen bare hvis den aktive oppgaven selv gir fra seg prosessoren, for eksempel på grunn av behovet for å utføre en I/O-operasjon. Derfor kan én oppgave oppta prosessoren i lang tid, noe som gjør det umulig å utføre interaktive oppgaver. Dermed blir brukerens interaksjon med datamaskinen som batchbehandlingssystemet er installert på, redusert til det faktum at han tar med oppgaven, gir den til ekspeditøren-operatøren, og på slutten av dagen, etter å ha fullført hele batchen med oppgaver , får han resultatet. Åpenbart reduserer denne ordren brukerens effektivitet.

Tidsdelingssystemer er designet for å korrigere hovedulempen med batchbehandlingssystemer - isolasjonen av brukerprogrammereren fra prosessen med å utføre oppgavene sine. Hver bruker av tidsdelingssystemet er utstyrt med en terminal hvorfra han kan føre en dialog med programmet sitt. Siden i tidsdelingssystemer tildeles hver oppgave kun et kvantum av prosessortid, tar ingen oppgave prosessoren lenge, og responstiden er akseptabel. Hvis kvantumet er valgt lite nok, har alle brukere som samtidig jobber på samme maskin inntrykk av at hver av dem bruker maskinen alene. Det er klart at tidsdelingssystemer har mindre båndbredde enn batchbehandlingssystemer, siden hver oppgave som lanseres av brukeren er akseptert for utførelse, og ikke den som er "gunstig" for systemet, og i tillegg er det en overhead på datakraft for hyppigere bytting av prosessor fra oppgave til oppgave. Kriteriet for effektiviteten til tidsdelingssystemer er ikke maksimal gjennomstrømning, men brukervennligheten og effektiviteten til brukeren.

Sanntidssystemer brukes til å kontrollere ulike tekniske objekter, som en maskinverktøy, en satellitt, en vitenskapelig eksperimentell installasjon eller teknologiske prosesser, som en galvanisk linje, en masovnsprosess, etc. I alle disse tilfellene er det en maksimal tillatt tid hvor et eller annet program som kontrollerer objektet må utføres, ellers kan det oppstå en ulykke: satellitten vil forlate siktsonen, eksperimentelle data mottatt fra sensorene vil gå tapt, tykkelsen på det galvaniske belegget vil ikke være riktig. Således er effektivitetskriteriet for sanntidssystemer deres evne til å opprettholde forhåndsbestemte tidsintervaller mellom lanseringen av programmet og mottak av resultatet (kontrollhandling). Denne tiden kalles reaksjonstiden til systemet, og den tilsvarende egenskapen til systemet kalles reaktivitet. For disse systemene er en multiprogramblanding et fast sett med forhåndsutviklede programmer, og valget av et program for utførelse er basert på den nåværende tilstanden til objektet eller i samsvar med tidsplanen for planlagte arbeider.

Noen operativsystemer kan kombinere egenskapene til systemer av forskjellige typer, for eksempel kan noen oppgaver utføres i batch-modus, og noen - i sanntid eller i tidsdelingsmodus. I slike tilfeller blir batchbehandling ofte referert til som bakgrunnsbehandling.

2. 4 Funksjoner av byggemetoder

Når man beskriver et operativsystem, indikeres ofte egenskapene til dets strukturelle organisasjon og de grunnleggende konseptene som ligger til grunn for det.

Disse grunnleggende konseptene inkluderer:

Måten å bygge systemkjernen på er en monolitisk kjerne eller en mikrokjernetilnærming. De fleste operativsystemer bruker en monolitisk kjerne, som er koblet som ett program som kjører i privilegert modus og bruker raske overganger fra en prosedyre til en annen, og krever ikke bytte fra privilegert modus til brukermodus og omvendt. Et alternativ er å bygge et OS basert på en mikrokjerne, som også opererer i en privilegert modus og kun utfører et minimum avner, mens funksjonene til et høyere OS utføres av spesialiserte OS-komponenter - servere som kjører i brukermodus. Med denne designen fungerer operativsystemet saktere, siden overganger ofte gjøres mellom privilegert modus og brukermodus, men systemet viser seg å være mer fleksibelt - funksjonene kan økes, modifiseres eller begrenses ved å legge til, modifisere eller ekskludere brukermodus servere. I tillegg er servere godt beskyttet mot hverandre, akkurat som alle brukerprosesser.

Å bygge et OS basert på en objektorientert tilnærming gjør det mulig å bruke alle dets fordeler, som har vist seg godt på applikasjonsnivå, i operativsystemet, nemlig: akkumulering av vellykkede løsninger i form av standardobjekter, evnen å lage nye objekter basert på eksisterende ved hjelp av arvemekanismen, god databeskyttelse på grunn av deres innkapsling i de interne strukturene til objektet, noe som gjør dataene utilgjengelige for uautorisert bruk fra utsiden, strukturen til systemet, bestående av et sett av veldefinerte objekter.

Tilstedeværelsen av flere applikasjonsmiljøer gjør det mulig å kjøre applikasjoner utviklet for flere OS samtidig innenfor ett OS. Mange moderne operativsystemer støtter samtidig applikasjonsmiljøene MS-DOS, Windows, UNIX (POSIX), OS / 2, eller i det minste en del av dette populære settet. Konseptet med flere applikasjonsmiljøer er enklest implementert i et OS basert på en mikrokjerne, som ulike servere fungerer på, hvorav noen implementerer applikasjonsmiljøet til et bestemt operativsystem.

Den distribuerte organiseringen av operativsystemet forenkler arbeidet til brukere og programmerere i nettverksmiljøer. Det distribuerte operativsystemet implementerer mekanismer som gjør det mulig for brukeren å forestille seg og oppfatte nettverket som en tradisjonell datamaskin med én prosessor. De karakteristiske egenskapene til den distribuerte organisasjonen av operativsystemet er: tilstedeværelsen av en enkelt hjelpetjeneste for delte ressurser, en enkelttidstjeneste, bruken av en ekstern prosedyrekall (RPC) mekanisme for transparent distribusjon av programprosedyrer mellom maskiner, multi- trådet prosessering, som gjør det mulig å parallellisere beregninger innenfor en enkelt oppgave og utføre denne oppgaven umiddelbart på flere datamaskiner på nettverket, samt tilstedeværelsen av andre distribuerte tjenester.

3. Moderne konsepter og teknologier for utforming av operativsystemer, krav til operativsystemetXXIårhundre

Operativsystemet er hjertet i nettverksprogramvare, det skaper miljøet for applikasjoner å kjøre og bestemmer i stor grad hvilke egenskaper disse applikasjonene vil ha nyttige for brukeren. I denne forbindelse vil vi vurdere kravene som et moderne OS må tilfredsstille.

Åpenbart er hovedkravet for et operativsystem evnen til å utføre grunnleggende funksjoner: effektiv ressursstyring og å tilby et brukervennlig grensesnitt for brukeren og applikasjonsprogrammene. Et moderne operativsystem må som regel implementere multiprogrammering, virtuelt minne, bytte, støtte et multi-vindusgrensesnitt og også utføre mange andre absolutt nødvendige funksjoner. I tillegg til disse funksjonskravene er det like viktige markedskrav til operativsystemer. Disse kravene inkluderer:

· Utvidbarhet. Koden bør skrives på en slik måte at det er enkelt å gjøre tillegg og endringer om nødvendig, og ikke krenke systemets integritet.

· Bærbarhet. Kode bør lett kunne flyttes fra én type prosessor til en annen type prosessor, og fra en maskinvareplattform (som inkluderer, sammen med typen prosessor og måten all maskinvare er organisert) av én type til en annen type maskinvareplattform.

· Pålitelighet og robusthet. Systemet skal være beskyttet mot både interne og eksterne feil, feil og feil. Handlingene skal alltid være forutsigbare, og applikasjoner skal ikke kunne skade OS.

· Kompatibilitet. OS må ha midler til å kjøre applikasjoner skrevet for andre operativsystemer. I tillegg må brukergrensesnittet være kompatibelt med eksisterende systemer og standarder.

· Sikkerhet. OS må ha midler til å beskytte ressursene til noen brukere fra andre.

· Opptreden. Systemet skal være så raskt og responsivt som maskinvareplattformen tillater.

La oss se nærmere på noen av disse kravene.

Utvidbarhet Mens en datamaskins maskinvare blir foreldet i løpet av få år, kan levetiden til et operativsystem måles i flere tiår. Et eksempel er UNIX OS. Derfor endres operativsystemer alltid evolusjonært over tid, og disse endringene er mer betydningsfulle enn maskinvareendringer. Endringer i operativsystemet representerer vanligvis anskaffelse av nye eiendommer av det. For eksempel støtte for nye enheter som CD-ROM, muligheten til å kommunisere med nye typer nettverk, støtte for lovende teknologier som et grafisk brukergrensesnitt eller objektorientert programvaremiljø, bruk av mer enn én prosessor. Å opprettholde integriteten til koden, uansett hvilke endringer som gjøres i operativsystemet, er hovedmålet med utviklingen.

Utvidbarhet kan oppnås på grunn av den modulære strukturen til operativsystemet, der programmer er bygget fra et sett med separate moduler som bare samhandler gjennom et funksjonelt grensesnitt. Nye komponenter kan legges til operativsystemet på en modulær måte, de gjør jobben sin ved å bruke grensesnittene som støttes av de eksisterende komponentene.

Å bruke objekter til å representere systemressurser forbedrer også systemutvidbarheten. Objekter er abstrakte datatyper som bare kan manipuleres av et spesielt sett med objektfunksjoner. Objekter lar deg administrere systemressurser konsekvent. Å legge til nye objekter ødelegger ikke eksisterende objekter og krever ikke endringer i eksisterende kode.

Klient-server-tilnærmingen til å strukturere operativsystemet ved hjelp av mikrokjerneteknologi gir utmerkede muligheter for utvidbarhet. I samsvar med denne tilnærmingen er operativsystemet bygget som en kombinasjon av et privilegert kontrollprogram og et sett med uprivilegerte servertjenester. Hoveddelen av operativsystemet kan forbli uendret mens nye servere kan legges til eller gamle forbedres.

Remote Procedure Call (RPC)-fasiliteter gir også muligheten til å utvide funksjonaliteten til operativsystemet. Nye programvarerutiner kan legges til enhver maskin på nettverket og umiddelbart tilgjengelig for applikasjonsprogrammer på andre maskiner på nettverket.

Noen operativsystemer støtter nedlastbare drivere for å forbedre utvidbarheten, som kan legges til systemet mens det kjører. Nye filsystemer, enheter og nettverk kan støttes ved å skrive en enhetsdriver, filsystemdriver eller transportdriver og laste den inn i systemet.

Bærbarhet Kravet om kodeportabilitet er nært knyttet til utvidbarhet. Utvidbarhet lar deg forbedre operativsystemet, mens portabilitet lar deg flytte hele systemet til en maskin basert på en annen prosessor eller maskinvareplattform, samtidig som du gjør så få kodeendringer som mulig. Mens OS-er ofte beskrives som enten bærbare eller ikke-bærbare, er ikke portabilitet en binær tilstand. Spørsmålet er ikke om systemet kan migreres, men hvor enkelt det kan gjøres. Å skrive et bærbart operativsystem er som å skrive hvilken som helst bærbar kode - det er noen regler å følge.

For det første må det meste av koden skrives på et språk som er tilgjengelig på alle maskinene du ønsker å portere systemet til. Dette betyr vanligvis at koden må skrives på et høynivåspråk, fortrinnsvis et standardisert språk, slik som C. Et program skrevet i assembly er ikke portabelt, med mindre du har tenkt å portere det til en maskin som har kommandokompatibilitet med din.

For det andre bør man vurdere i hvilke fysiske omgivelser programmet skal overføres. Ulik maskinvare krever ulike løsninger når du bygger et OS. For eksempel kan et OS bygget på 32-biters adresser ikke porteres til en maskin med 16-biters adresser (med mindre det er vanskelig).

For det tredje er det viktig å minimere eller, hvis mulig, ekskludere de delene av koden som direkte samhandler med maskinvaren. Maskinvareavhengighet kan ha mange former. Noen åpenbare former for avhengighet inkluderer direkte manipulering av registre og annen maskinvare.

For det fjerde, hvis den maskinvareavhengige koden ikke kan utelukkes fullstendig, bør den isoleres i flere godt lokaliserte moduler. Maskinvareavhengig kode trenger ikke distribueres i hele systemet. For eksempel kan du skjule en maskinvareavhengig struktur i programvaredefinerte data av en abstrakt type. Andre moduler i systemet vil fungere med disse dataene, og ikke med maskinvaren, ved å bruke et sett med noen funksjoner. Når operativsystemet migreres, endres bare disse dataene og funksjonene som manipulerer dem.

For enkel portabilitet av operativsystemet, må følgende krav oppfylles under utviklingen:

· Bærbart språk på høyt nivå. De fleste bærbare operativsystemer er skrevet i C (ANSI X3.159-1989 standard). Utviklere velger C fordi det er standardisert og fordi C-kompilatorer er allment tilgjengelige. Assembler brukes bare for de delene av systemet som trenger å samhandle direkte med maskinvaren (for eksempel en avbruddsbehandler) eller for deler som krever maksimal hastighet (for eksempel høypresisjon heltallsaritmetikk). Ikke-bærbar kode må imidlertid isoleres nøye i komponentene der den brukes.

· Prosessorisolasjon. Noen lavnivådeler av OS må ha tilgang til prosessoravhengige datastrukturer og registre. Koden som gjør dette må imidlertid finnes i små moduler som kan erstattes med lignende moduler for andre prosessorer.

· Isolering av plattformen. Plattformavhengighet er forskjellen mellom arbeidsstasjoner fra forskjellige produsenter, bygget på samme prosessor (for eksempel MIPS R4000). Det bør introduseres et programvarelag som abstraherer maskinvare (cacher, I/O-avbruddskontrollere, etc.) sammen med et lag med lavnivåprogrammer slik at høynivåkoden ikke trenger å endres ved portering fra en plattform til en annen.

Kompatibilitet Et aspekt ved kompatibilitet er muligheten til et OS til å kjøre programmer skrevet for et annet OS eller tidligere versjoner av et gitt operativsystem, så vel som for en annen maskinvareplattform.

Det er nødvendig å skille problemene med binær kompatibilitet og kompatibilitet på applikasjonskildenivå. Binær kompatibilitet oppnås når du kan ta et kjørbart program og kjøre det på et annet operativsystem. Dette krever: kompatibilitet på nivå med prosessorinstruksjoner, kompatibilitet på nivå med systemanrop og til og med på nivå med bibliotekanrop, hvis de er dynamisk koblet.

Kildekompatibilitet krever en passende kompilator i programvaren, samt kompatibilitet med bibliotek og systemanrop. I dette tilfellet er det nødvendig å rekompilere de eksisterende kildene til en ny kjørbar modul.

Kildekompatibilitet er viktig først og fremst for applikasjonsutviklere som alltid har kildekode til rådighet. Men for sluttbrukere er bare binær kompatibilitet av praktisk betydning, siden de først da kan bruke det samme kommersielle produktet, levert i form av binær kjørbar kode, i forskjellige driftsmiljøer og på forskjellige maskiner.

Hvorvidt et nytt operativsystem er binært eller kildekompatibelt med eksisterende systemer, avhenger av mange faktorer. Den viktigste av disse er arkitekturen til prosessoren som det nye operativsystemet kjører på. Hvis prosessoren som operativsystemet er portert til bruker samme instruksjonssett (muligens med noen tillegg) og samme adresseområde, kan binær kompatibilitet oppnås ganske enkelt.

Det er mye vanskeligere å oppnå binær kompatibilitet mellom prosessorer basert på forskjellige arkitekturer. For at en datamaskin skal kjøre programmene til en annen (for eksempel et DOS-program på en Mac), må datamaskinen operere med maskininstruksjoner som den ikke forstår i utgangspunktet. For eksempel må en 680x0-prosessor på en Mac kjøre binærfiler designet for en 80x86-prosessor på en PC. 80x86-prosessoren har sin egen instruksjonsdekoder, registre og intern arkitektur. 680x0-prosessoren forstår ikke 80x86-binæren, så den må velge hver instruksjon, dekode den for å finne ut hva den er for, og deretter utføre den tilsvarende subrutinen skrevet for 680x0. Siden 680x0 i tillegg ikke har nøyaktig de samme registre, flagg og interne aritmetiske logiske enheter som i 80x86, må den simulere alle disse elementene ved hjelp av registrene eller minnet. Og den må nøye gjengi resultatene av hver kommando, noe som krever spesialskrevne rutiner for 680x0 for å sikre at tilstanden til de emulerte registrene og flaggene etter at hver kommando er utført er nøyaktig den samme som på en ekte 80x86.

Dette er enkelt, men veldig tregt arbeid, siden mikrokoden inne i 80x86-prosessoren kjører med en betydelig høyere hastighet enn de eksterne 680x0-instruksjonene som emulerer den. Under utførelsen av en 80x86-kommando på 680x0, kan en ekte 80x86 utføre dusinvis av kommandoer. Derfor, hvis prosessoren som utfører emuleringen ikke er rask nok til å kompensere for alle emuleringstapene, vil programmene som kjøres under emuleringen være veldig trege.

Veien ut i slike tilfeller er å bruke de såkalte applikasjonsmiljøene. Tatt i betraktning at hoveddelen av programmet som regel består av kall til bibliotekfunksjoner, simulerer applikasjonsmiljøet hele bibliotekfunksjonene ved å bruke et tidligere skrevet bibliotek med funksjoner med lignende formål, og emulerer resten av kommandoene hver for seg.

POSIX-samsvar er også et middel for å sikre kompatibilitet mellom programmering og brukergrensesnitt. I andre halvdel av 1980-tallet begynte amerikanske offentlige etater å utvikle POSIX som en standard for maskinvare levert til offentlige kontrakter på dataområdet. POSIX er et "UNIX-basert bærbart OS-grensesnitt". POSIX er en samling internasjonale OS-grensesnittstandarder i UNIX-stil. Bruken av POSIX-standarden (IEEE-standard 1003.1 - 1988) gjør det mulig å lage programmer i UNIX-stil som enkelt kan overføres fra ett system til et annet.

Sikkerhet I tillegg til POSIX-standarden har den amerikanske regjeringen også definert datasikkerhetskrav for offentlige applikasjoner. Mange av disse kravene er ønskelige egenskaper for ethvert flerbrukersystem. Sikkerhetsregler definerer egenskaper som å beskytte én brukers ressurser fra andre og sette ressurskvoter for å hindre én bruker fra å beslaglegge alle systemressurser (som minne).

Å sikre beskyttelse av informasjon mot uautorisert tilgang er en obligatorisk funksjon for nettverksoperativsystemer. De fleste populære systemene garanterer et datasikkerhetsnivå på C2 i det amerikanske standardsystemet.

Grunnlaget for sikkerhetsstandarder ble lagt av kriteriene for evaluering av pålitelige datasystemer. Publisert i USA i 1983 av National Computer Security Center (NCSC), blir dette dokumentet ofte referert til som Orange Book.

I samsvar med kravene i Orange Book anses et system som trygt hvis det "gjennom spesielle sikkerhetsmekanismer kontrollerer tilgangen til informasjon på en slik måte at bare personer med passende tillatelser eller prosesser som kjører på deres vegne kan få tilgang til å lese, skrive, opprette eller slette informasjon. ".

Sikkerhetsnivåhierarkiet vist i Orange Book markerer det laveste sikkerhetsnivået som D og det høyeste som A.

· Klasse D inkluderer systemer hvis vurdering har avslørt at de ikke er i samsvar med kravene til alle andre klasser.

· Hovedegenskapene som er typiske for C-systemer er: tilstedeværelsen av et delsystem for registrering av hendelser knyttet til sikkerhet og selektiv tilgangskontroll. Nivå C er delt inn i 2 undernivåer: nivå C1, som beskytter data mot brukerfeil, men ikke fra handlinger fra inntrengere, og et strengere nivå C2. På C2-nivå skal det være et middel for hemmelig pålogging, som sikrer identifikasjon av brukere ved å taste inn et unikt navn og passord før de får tilgang til systemet. Den selektive tilgangskontrollen som kreves på dette nivået lar ressurseieren bestemme hvem som har tilgang til ressursen og hva han kan gjøre med den. Eieren gjør dette ved å gi tilgangsrettigheter til en bruker eller gruppe brukere. Revisjon – Gir muligheten til å oppdage og registrere viktige sikkerhetshendelser eller ethvert forsøk på å opprette, få tilgang til eller slette systemressurser. Minnebeskyttelse - er at minnet initialiseres før det gjenbrukes. På dette nivået er ikke systemet beskyttet mot brukerfeil, men dets oppførsel kan overvåkes fra loggoppføringene som er igjen av overvåkings- og revisjonsverktøy.