Käyttöjärjestelmä , lyhenne OS ( englanniksi käyttöjärjestelmä, OS ) on joukko toisiinsa liittyviä ohjelmia, jotka on suunniteltu hallitsemaan tietokoneen resursseja ja järjestämään käyttäjien vuorovaikutusta.
Tyypillisen laskentajärjestelmän loogisessa rakenteessa käyttöjärjestelmä sijaitsee laitteiden välillä mikroarkkitehtuurillaan, konekielellään ja mahdollisesti omilla (sulautetuilla) mikroohjelmillaan (ajureillaan) ja toisaalta sovellusohjelmillaan .
Ohjelmistokehittäjille käyttöjärjestelmä antaa mahdollisuuden irtautua laitteiden toteutuksen ja toiminnan yksityiskohdista tarjoamalla tarvittavat vähimmäistoiminnot (katso: sovellusohjelmointirajapinta ).
Useimmissa tietokonejärjestelmissä käyttöjärjestelmä on tärkein, tärkein (ja joskus ainoa) järjestelmäohjelmiston osa . 1990-luvulta lähtien yleisimmät käyttöjärjestelmät ovat olleet Windows , Unix ja UNIXin kaltaiset järjestelmät .
Käyttöjärjestelmien edelläkävijöitä tulisi pitää apuohjelmia (lataajia ja näyttöjä) sekä usein käytettyjen aliohjelmien kirjastoja, joita alettiin kehittää ensimmäisen sukupolven keskustietokoneiden tultua (1940-luvun lopulla ). Apuohjelmat minimoivat käyttäjän fyysiset manipulaatiot laitteiston kanssa, ja kirjastot mahdollistivat samojen toimintojen toistuvan ohjelmoinnin ( I/O -toimintojen suorittaminen , matemaattisten funktioiden laskeminen jne.).
1950- ja 1960 - luvuilla muodostettiin ja otettiin käyttöön tärkeimmät käyttöjärjestelmän toimivuutta määrittäneet ideat: erätila , ajanjako ja moniajo, vallanjako, reaaliaika, tiedostorakenteet ja tiedostojärjestelmät .
Tarve käyttää kalliita laskentaresursseja optimaalisesti on johtanut ohjelman suorittamisen "eräajotilan" käsitteen syntymiseen. Erätila olettaa ohjelmien jonon olemassaolon suorittamista varten, ja järjestelmä voi varmistaa ohjelman lataamisen ulkoisilta tietovälineiltä RAM-muistiin odottamatta edellisen ohjelman suorittamisen päättymistä, mikä välttää prosessorin joutoajan.
Jopa erätila edistyneessä versiossaan vaatii prosessoriajan jakamista useiden ohjelmien suorittamiseen.
Ajanjaon tarve (monitehtävä, moniohjelmointi) vahvistui entisestään teletyyppien ( ja myöhemmin katodisädenäytöillä varustettujen päätteiden) leviämisen myötä ( 1960 -luku ). Koska käyttäjä syöttää tietoja näppäimistöllä (ja jopa näytön lukemalla) on paljon pienempi kuin tietokoneen suorittaman tietojen käsittelyn nopeus, tietokoneen käyttäminen "yksinomaisessa" tilassa (yhden käyttäjän kanssa) voi johtaa käyttökatkoihin. kalliita laskentaresursseja.
Aikajako mahdollisti "monen käyttäjän" järjestelmien luomisen, joissa yksi (yleensä) keskusyksikkö ja RAM-lohko oli kytketty useisiin päätteisiin. Samanaikaisesti jotkin tehtävät (kuten tietojen syöttäminen tai muokkaaminen operaattorin toimesta) voitaisiin suorittaa dialogitilassa, kun taas toiset tehtävät (kuten massiiviset laskutoimitukset) voitaisiin suorittaa erätilassa.
Monikäyttäjäjärjestelmien leviäminen edellytti vallanjako-ongelman ratkaisua, mikä mahdollistaa sen, että voidaan välttää mahdollisuus muuttaa suoritettavaa ohjelmaa tai yhden ohjelman tietoja tietokoneen muistissa toisella ohjelmalla (tahallisesti tai vahingossa) sekä itse järjestelmän muuttaminen sovellusohjelman toimesta .
Käyttöjärjestelmien vallanjaon toteuttamista tukivat prosessorikehittäjät, jotka ehdottivat arkkitehtuuria kahdella prosessorin toimintatilalla - "todellisella" (jossa koko tietokoneen osoitetila on suoritettavan ohjelman käytettävissä) ja "suojattu" (jossa osoiteavaruuden saatavuus on rajoitettu alueelle, joka on varattu ohjelman käynnistyessä).
Universaalien tietokoneiden käyttö tuotantoprosessien ohjaamiseen edellytti "reaaliaikaisen mittakaavan" ("reaaliaikaisen") toteuttamista - ohjelman suorittamisen synkronointia ulkoisten fyysisten prosessien kanssa.
Reaaliaikaisen skaalaustoiminnon sisällyttäminen mahdollisti ratkaisujen luomisen, jotka palvelevat samanaikaisesti tuotantoprosesseja ja ratkaisevat muita tehtäviä (erätilassa ja/tai aikajakotilassa).
Jaksottaisten tietovälineiden ( rei'iteippi , rei'ityskortit ja magneettinauhat ) asteittainen korvaaminen hajakäyttöasemilla ( magneettilevyillä ) .
Tiedostojärjestelmä on tapa tallentaa tietoja ulkoisille tallennuslaitteille.
Päätoiminnot:
Lisätoiminnot:
Käyttöjärjestelmämääritelmiä on kaksi ryhmää: "ohjelmasarja, joka ohjaa laitteistoa" ja "joukko ohjelmia, jotka ohjaavat muita ohjelmia". Molemmilla on tarkka tekninen merkityksensä, joka liittyy kysymykseen, missä tapauksissa käyttöjärjestelmää tarvitaan.
On laskentasovelluksia, joiden käyttöjärjestelmät ovat redundantteja. Esimerkiksi sisäänrakennetut mikrotietokoneet , jotka sisältyvät moniin kodinkoneisiin, autoihin (joskus kymmenkunta jokaiseen), yksinkertaisimpiin matkapuhelimiin, suorittavat jatkuvasti vain yhtä ohjelmaa, joka käynnistyy, kun se käynnistetään. Monet yksinkertaiset pelikonsolit - myös erikoistuneet mikrotietokoneet - pärjäävät ilman käyttöjärjestelmää, ja ne suorittavat käynnistettäessä asetettuun "kasettiin" tai CD -levyyn tallennettua ohjelmaa .
Tarvittavat käyttöjärjestelmät:
Siten nykyaikaiset universaalit käyttöjärjestelmät voidaan luonnehtia ensisijaisesti seuraavasti:
Moniajo ja valtuuksien jakaminen edellyttävät tiettyä komponenttioikeuksien hierarkiaa itse käyttöjärjestelmässä. Käyttöjärjestelmä koostuu kolmesta komponenttiryhmästä:
Useimmat ohjelmat, sekä järjestelmä (sisältyy käyttöjärjestelmään) että sovellusohjelmat, suoritetaan prosessorin etuoikeutetussa ("käyttäjä") tilassa ja saavat pääsyn laitteistoon (ja tarvittaessa muihin ydinresursseihin sekä muiden ohjelmien resurssit) vain järjestelmäkutsujen kautta . Ydin toimii etuoikeutetussa tilassa: tässä mielessä järjestelmän (tarkemmin sanoen sen ytimen) sanotaan ohjaavan laitteistoa.
Käyttöjärjestelmän kokoonpanoa määritettäessä toiminnan eheyden (sulkemisen) kriteeri on tärkeä: järjestelmän tulee mahdollistaa komponenttien täysi käyttö (mukaan lukien muuntaminen). Siksi käyttöjärjestelmän koko kokoonpano sisältää joukon työkaluja (tekstieditoreista kääntäjiin, virheenkorjajiin ja linkittäjiin).
Ydin on käyttöjärjestelmän keskeinen osa, joka hallitsee prosessien suorittamista, laskentajärjestelmän resursseja ja tarjoaa prosesseille koordinoidun pääsyn näihin resursseihin. Tärkeimmät resurssit ovat prosessoriaika , muisti ja I/O-laitteet . Tiedostojärjestelmän käyttö ja verkko voidaan toteuttaa myös ytimen tasolla.
Käyttöjärjestelmän perustavanlaatuisena elementtinä ydin edustaa alhaisinta abstraktiotasoa sovelluksille päästäkseen käyttöönsä toimintansa edellyttämiin laskentajärjestelmän resursseihin. Yleensä ydin tarjoaa tällaisen pääsyn vastaavien sovellusten suoritettaviin prosesseihin käyttämällä prosessien välisiä viestintämekanismeja ja sovelluskutsuja käyttöjärjestelmän järjestelmäkutsuille.
Kuvattu tehtävä voi vaihdella ytimen arkkitehtuurin tyypin ja sen toteutustavan mukaan.
OS-ytimen objektit:
1960-luvun loppuun mennessä teollisuus sekä tiede- ja koulutusyhteisö olivat luoneet useita käyttöjärjestelmiä, jotka toteuttavat kaikki tai osan edellä kuvatuista toiminnoista. Näitä ovat Atlas ( Manchesterin yliopisto ), CTTSja ITS( Massachusetts Institute of Technology , MIT), THE ( Eindhoven University of Technology ), RS4000 ( Aarhusin yliopisto ) ja muut (yli sata erilaista käyttöjärjestelmää oli käytössä).
Edistyksellisimmät käyttöjärjestelmät, kuten OS/360 ( IBM ), SCOPE ( CDC ) ja Multics (MIT ja Bell Labs ), jotka valmistuivat 1970- luvulla , tarjosivat mahdollisuuden toimia moniprosessoritietokoneissa.
Käyttöjärjestelmien kehityksen eklektisyys on johtanut kriisiilmiöiden lisääntymiseen, jotka liittyvät ensisijaisesti syntyvien järjestelmien liialliseen monimutkaisuuteen ja kokoon. Järjestelmät olivat huonosti skaalautuvia (yksinkertaisemmat eivät pystyneet hyödyntämään kaikkia suurten laskentajärjestelmien ominaisuuksia; kehittyneempiä ei toteutettu optimaalisesti pienissä tai niitä ei voitu suorittaa ollenkaan) ja täysin yhteensopimattomia keskenään, niiden kehittämisen ja parantamisen kanssa. viivästyi.
Ken Thompsonin vuonna 1969 suunnittelema ja toteuttama useiden kollegoiden (mukaan lukien Dennis Ritchie ja Brian Kernighan ) avulla UNIX - käyttöjärjestelmä (alun perin UNICS, joka soitti nimellä Multics) sisälsi monia aikaisempien järjestelmien ominaisuuksia, mutta siinä oli useita ominaisuuksia. ominaisuuksia, jotka erottivat sen useimmista edeltäjistä:
UNIX saavutti käyttömukavuutensa vuoksi ensisijaisesti työkaluympäristönä (kehitysympäristönä) suosiota ensin yliopistoissa ja sitten teollisuudessa, joka sai prototyypin yhdestä käyttöjärjestelmästä, jota voitiin käyttää erilaisissa tietokonejärjestelmissä ja lisäksi. , voidaan nopeasti siirtää mihin tahansa äskettäin kehitettyyn laitteistoarkkitehtuuriin vähällä vaivalla.
1970-luvun lopulla Kalifornian yliopiston Berkeleyssä henkilökunta teki useita parannuksia UNIX-lähdekoodiin, mukaan lukien TCP/IP-protokollien käsittely . Niiden kehitys tuli tunnetuksi nimellä BSD (Berkeley Software Distribution).
Richard Stallman , GNU Projectin perustaja , asetti myös tehtäväksi kehittää itsenäinen (Bell Labsin tekijänoikeuksista) toteutus samalle arkkitehtuurille .
Toteutusten kilpailukyvyn ansiosta UNIX-arkkitehtuurista tuli ensin de facto teollisuusstandardi, jonka jälkeen se sai laillisen standardin - ISO / IEC 9945 [1] (POSIX) - statuksen.
Vain järjestelmät, jotka ovat yhden UNIX-määrityksen mukaisia, voivat käyttää UNIX-nimeä. Näitä järjestelmiä ovat AIX , HP-UX , IRIX , Mac OS X , SCO OpenServer , Solaris , Tru64 ja z/OS .
Käyttöjärjestelmiä, jotka noudattavat POSIX -standardia tai luottavat siihen, kutsutaan "POSIX-yhteensopiviksi" (termi " UNIX-like " tai "UNIX-perhe" on yleisempi, mutta se on ristiriidassa "UNIX"-tavaramerkin tilan kanssa, jonka omistaa Open Group -konsortio ja varattu vain standardin tiukasti noudattaville käyttöjärjestelmille). Standardin noudattaminen sertifioidaan maksua vastaan, minkä vuoksi jotkin järjestelmät eivät käy läpi prosessia, mutta niitä pidetään sinänsä POSIX-yhteensopivina.
UNIXin kaltaisiin käyttöjärjestelmiin kuuluvat käyttöjärjestelmät, jotka perustuvat Bell Labsin ( System V ) julkaisemaan uusimpaan UNIX-versioon, Berkeleyn yliopiston kehitykseen ( FreeBSD , OpenBSD , NetBSD ), Solarikseen ( OpenSolaris , BeleniX , Nexenta OS ) ), sekä Linux . , jonka GNU-projekti on kehittänyt apuohjelmien ja kirjastojen osalta ja Linus Torvaldsin johtaman yhteisön ytimen suhteen .
Käyttöjärjestelmien standardoinnin tavoitteena on yksinkertaistaa itse järjestelmän tai laitteiden korvaamista tietokonejärjestelmän tai verkon kehittämisellä ja yksinkertaistaa sovellusohjelmistojen siirtoa (standardin tiukka noudattaminen edellyttää ohjelmien täydellistä yhteensopivuutta lähdekooditasolla; standardin profilointiin ja sen kehittämiseen tarvitaan vielä joitain muutoksia, mutta ohjelman siirtäminen POSIX-yhteensopivien järjestelmien välillä on suuruusluokkaa halvempaa kuin vaihtoehtoisten välillä), sekä käyttökokemuksen jatkuvuus.
Tämän standardin olemassaolon merkittävin vaikutus oli Internetin tehokas käyttöönotto 1990 -luvulla .
UNIXin luonut tiimi kehitti käyttöjärjestelmäobjektien yhdistämisen käsitteen sisällyttämällä prosessit ja muut järjestelmä-, verkko- ja sovelluspalvelut alkuperäiseen UNIX-konseptiin "laite on myös tiedosto", luoden uuden käsitteen: "kaikki on tiedostoa ”. Tästä konseptista tuli yksi Plan 9 -järjestelmän ydinperiaatteista (nimi on otettu Edward Wood Jr.:n tieteistrilleristä Plan 9 from Outer Space ), joka oli suunniteltu poistamaan UNIXin perustavanlaatuiset suunnitteluvirheet ja korvannut UNIX System V:n. "työhevonen" Bell Labs -verkon tietokoneissa vuonna 1992 .
Sen lisäksi, että kaikki järjestelmäobjektit toteutettiin tiedostoina ja asetettiin yhteen ja henkilökohtaiseen tilaan (nimiavaruuteen) jokaiselle tietokoneverkkopäätteelle, myös muita UNIX-arkkitehtuuriratkaisuja tarkistettiin. Esimerkiksi suunnitelmassa 9 ei ole "superkäyttäjän" käsitettä, ja vastaavasti kaikki turvallisuusjärjestelmän loukkaukset, jotka liittyvät pääkäyttäjän oikeuksien laittomaan hankkimiseen järjestelmässä, on suljettu pois. Rob Pike ja Ken Thompson kehittivät tiedon edustamiseksi (tallennus, vaihto) yleisen UTF-8- koodauksen , josta on tullut nykyään de facto standardi. Tiedostojen käyttämiseen käytetään yhtä yleistä 9P-protokollaa, joka toimii verkkoprotokollan (TCP tai UDP) yli verkon yli. Näin ollen sovellusohjelmistoille ei ole verkkoa - pääsy paikallisiin ja etätiedostoihin on sama. 9P on tavusuuntautunut protokolla, toisin kuin muut vastaavat protokollat, jotka ovat lohkosuuntautuneita. Tämä on myös seurausta konseptista: tavu-tavulta pääsy yhdistettyihin tiedostoihin, ei lohko-lohkolta pääsy erilaisiin laitteisiin, jotka muuttuvat suuresti tekniikan kehityksen myötä. Objektien pääsyn hallintaan ei tarvita muuta ratkaisua kuin käyttöjärjestelmässä jo olemassa oleva tiedostopääsyn valvonta. Uusi tallennusjärjestelmäkonsepti vapautti järjestelmänvalvojan arkistojen ylläpidon ja odotettujen nykyaikaisten tiedostojen versiointijärjestelmien taka-alalta.
UNIX-pohjaiset tai sen inspiroimat käyttöjärjestelmät, kuten koko BSD-perhe ja Linux-järjestelmät, ottavat vähitellen käyttöön uusia ideoita Bell Labsilta. Ehkä näillä uusilla ideoilla on suuri tulevaisuus ja IT-kehittäjien tunnustus.
Rob Pike käytti uusia konsepteja Infernossa .
Espanjassa Plan 9:n pohjalta kehitetään Off++- ja Plan B -järjestelmiä , jotka ovat luonteeltaan kokeellisia.
Ponnisteluihin UNIXin jälkeisen arkkitehtuurin luomiseksi voi kuulua myös Oberon - ohjelmointikielen ja käyttöympäristön kehittäminen ETH Zürichissä professori Niklaus Wirthin johdolla .
Käyttöjärjestelmät | |||||
---|---|---|---|---|---|
Palvelimille tai työasemille |
| ||||
Upotettu | |||||
muu |
Käyttöjärjestelmien näkökohdat | |||||
---|---|---|---|---|---|
| |||||
Tyypit |
| ||||
Nucleus |
| ||||
Prosessien hallinta |
| ||||
Muistinhallinta ja osoitus |
| ||||
Lataus- ja alustustyökalut | |||||
kuori | |||||
muu | |||||
Luokka Wikimedia Commons Wikikirjat Wikisanakirja |