Mach | |
---|---|
Tyyppi | mikroydin |
Tekijä | Carnegie Mellon University (CMU) |
Sisään kirjoitettu | C ja assembly-kieli |
Ensimmäinen painos | 1985 [1] |
uusin versio | 3.0 |
Verkkosivusto | cs.cmu.edu/afs/cs/project… |
Mach on käyttöjärjestelmän mikroydin , joka on kehitetty Carnegie Mellonin yliopistossa käyttöjärjestelmien, pääasiassa hajautetun ja rinnakkaislaskennan, tutkimustyön aikana. Tämä on yksi ensimmäisistä esimerkeistä mikroytimestä, mutta se on edelleen standardi muissa vastaavissa projekteissa.
Projekti oli olemassa vuosina 1985–1994 ja päättyi Mach 3.0:n julkaisuun. Useat tutkimusryhmät jatkoivat Machin kehittämistä; esimerkiksi Utahin yliopisto johti Mach 4 -projektia [2] jonkin aikaa . Mach suunniteltiin korvaamaan BSD UNIX -ytimen, joten uutta käyttöympäristöä ei tarvinnut kehittää. Mach-projektia koskeva lisätutkimus näyttää saaneen päätökseen; tästä huolimatta Machia ja sen johdannaisia käytetään useissa kaupallisissa käyttöjärjestelmissä, kuten NeXTSTEPissä , joista merkittävin on Mac OS X , joka käyttää XNU-ydintä , joka sisältää Mach 2.5:n. CSRG:n BSD-kehittäjät ottivat Mach-virtuaalimuistin hallintajärjestelmän haltuunsa, ja sitä käytetään nykyaikaisissa BSD-pohjaisissa UNIX-järjestelmissä, kuten FreeBSD. Mac OS X ja FreeBSD eivät säilyttäneet Machin käyttämää mikroydinarkkitehtuuria, vaikka Mac OS X tarjoaakin mikroytimen prosessien välisen viestinnän ja ohjausprimitiivit sovelluksissa käytettäväksi.
Mach on looginen jatko Accent -ytimelle , joka on myös kehitetty Carnegie Mellonin yliopistossa . Vuodesta 1991 lähtien projektin johtava kehittäjä Richard Rashid on työskennellyt Microsoftilla Microsoftin tutkimusdivisioonassa. Toinen tärkeimmistä kehittäjistä, Avetis Tevanyan , työskenteli ohjelmistokehityksen johtajana NeXT :ssä ja sitten maaliskuuhun 2006 asti Applen edistyneiden ohjelmistotekniikoiden johtajana .
Koska Mach on suunniteltu korvaamaan nopeasti perinteinen Unix -ydin , keskitymme Machin ja Unixin välisiin eroihin . On käynyt selväksi, että "kaikki on tiedostoa" Unix-konsepti ei enää toimi nykyaikaisissa järjestelmissä, mutta Bell Labsin Plan 9 kaltaiset järjestelmät yrittävät edelleen seurata tätä polkua. Machin kehittäjät huomasivat tämän lähestymistavan joustamattomuuden ja ehdottivat, että toinen virtualisointikerros voisi saada järjestelmän "toimimaan" uudelleen.
Yksi Unixin tärkeimmistä abstraktioista on putket . Mikä on samankaltaista kuin putkistot ja mahdollistaa yleisemmällä tasolla eri tiedonsiirrot ohjelmien välillä? Tällainen järjestelmä voi olla olemassa käyttämällä prosessien välistä viestintää (IPC), joka on liukuhihnan kaltainen periaate prosessien välisen viestinnän järjestämiseksi, mikä mahdollistaa minkä tahansa tiedostomaisen tiedon siirtämisen kahden ohjelman välillä. Vaikka erilaisia IPC-toteutuksia on ollut monissa järjestelmissä, mukaan lukien eri Unixeissa, useita vuosia, ne on suunniteltu erityistarkoituksiin, eivätkä ne pystyneet tarjoamaan sitä, mitä Machin luojat odottivat niiltä.
Carnegie Mellon University aloitti Accent -ytimen kehittämisen jaetun muistiin perustuvan IPC:n avulla . Accent oli kokeellinen järjestelmä, jossa oli paljon ominaisuuksia ja joka kehitettiin muotitrendien mukaan koko kehityksen ajan. Lisäksi Accentin käyttökelpoisuus tutkimuksessa oli rajallinen, koska se ei ollut Unix-yhteensopiva, ja Unix oli jo de facto standardi kaikissa tutkimuskäyttöjärjestelmissä. Lisäksi Accent oli tiukasti sidottu alustaan, jolle se kehitettiin. Mutta 1980-luvun alussa näytti siltä, että pian ilmaantuisi monia uusia alustoja, joista monet tukisivat massiivista rinnakkaisuutta.
Alussa Machin kehitys nähtiin lähinnä yrityksenä luoda käsitteellisesti "puhdas", Unix-pohjainen, helposti kannettava Accent. Seuraavat pääkäsitteet muotoiltiin:
Mach perustuu IPC Accent -konsepteihin, mutta se on tehty enemmän Unix-järjestelmäksi, jonka avulla voit ajaa Unix-ohjelmia vähällä tai ilman muutoksia. Tämän tavoitteen saavuttamiseksi Mach esitteli "portin" käsitteen, joka edustaa loppua kaksisuuntaisessa IPC:ssä. Portit olivat suojattuja ja niillä oli samanlaiset tiedostooikeudet kuin Unix-tiedostooikeudet, ja niissä käytettiin hyvin samanlaista suojausmallia kuin Unix . Lisäksi Mach salli minkä tahansa ohjelman omistaa oikeuksia, jotka on yleensä varattu vain ytimelle, mikä salli laitteiston pääsyn etuoikeutetulle tasolle (user-space).
Machissa, kuten Unixissa , käyttöjärjestelmästä on jälleen tullut ensisijaisesti apuohjelmia. Kuten Unix , Machilla on "ohjaimen" käsite välittäjänä ytimen ja laitteiston välillä. Mikroytimeen on kuitenkin sisällytettävä kaikki olemassa olevan laitteiston ajurit. Muut arkkitehtuurit, jotka perustuvat laitteiston abstraktiokerroksiin tai exokerneleihin , voivat erottaa ajurit mikroytimestä.
Suurin ero Unixista oli se, että apuohjelmien ei tarvinnut työskennellä tiedostojen, vaan tehtävien kanssa. Lisää koodia on siirretty pois ytimestä ei-etuoikeutettuun tilaan. Tästä johtuen ydin on pienentynyt huomattavasti, mistä johtuu termi mikroydin Mach-ytimelle. Toisin kuin perinteiset järjestelmät, Machin alla prosessi (tai "tehtävä") voi koostua joukosta säikeitä. Mach oli ensimmäinen käyttöjärjestelmä, joka määritteli "langan" tässä mielessä. Ytimen tehtävät supistettiin työskentelyyn laitteiston ja tukiohjelmien kanssa.
Porttien olemassaolo ja IPC:n käyttö määrittelevät suurimman osan eroista Machin ja perinteisten ytimien välillä. Unixissa " järjestelmäkutsuja " tai " signaaleja " käytetään ytimen käyttämiseen . Ohjelma käyttää kirjastoa sijoittamaan tiedot tunnettuun paikkaan muistissa ja herättää sitten erityisen ohjelmistokeskeytyksen . Kun järjestelmä käynnistää ytimen ensimmäisen kerran, se asettaa keskeytyskäsittelijän , joten keskeytyksen heittävä ohjelma kutsuu ytimen, joka tutkii saapuvan tiedon ja ryhtyy toimiin.
Mach käyttää IPC:tä tähän tarkoitukseen. Ohjelma pyytää ytimeltä pääsyä porttiin ja käyttää sitten IPC-mekanismia viestien lähettämiseen porttiin. Muissa ytimissä nämä viestit käsitellään järjestelmäkutsuilla; Machissa lähes kaikki pyynnöt käsittelee toinen ohjelma.
IPC:n käyttö viestien välittämiseen tukee säikeitä ja kiistaa. Koska tehtävät koostuvat useista säikeistä ja niiden ketjutettu koodi käyttää IPC-mekanismia, Mach voi pysäyttää tai vapauttaa säikeen viestiä käsiteltäessä. Tämä mahdollistaa järjestelmän hajautuksen useille prosessoreille käyttämällä jaettua muistia suoraan useimmissa Mach-viesteissä tai lisäämällä koodia viestin kopioimiseksi toiselle prosessorille tarvittaessa. Perinteisessä ytimessä tämä on vaikea toteuttaa, koska järjestelmän on oltava varma, että eri ohjelmat eivät yritä kirjoittaa samaan muistiin eri prosessoreilla. Machissa tämä on hyvin määritelty ja helppo toteuttaa; prosessista, joka käyttää muistia, portteja, tulee järjestelmän "kansalainen".
IPC-järjestelmässä on suorituskykyongelmia, joiden ratkaisemiseksi on kehitetty useita strategioita. Erityisesti Mach käyttää yhtä muistinjakomekanismia viestien fyysiseen välittämiseen ohjelmasta toiseen. Viestin fyysinen kopioiminen on hidasta, joten Mach etsii muistinhallintayksikköä (MMU) kartoittaakseen tiedot nopeasti ohjelmasta toiseen. Vain jos tiedot on kirjoitettu, se kopioidaan fyysisesti, prosessi, jota kutsutaan " kopioi -kirjoitettavaksi" (copy-on-write; lehmä).
Ydin tarkistaa myös viestien eheyden välttääkseen huonot tiedot, jotka rikkovat yhden järjestelmän muodostavista ohjelmista. Portit kehitettiin Unix-tiedostojärjestelmän pohjalta. Tämä antoi porteille mahdollisuuden käyttää olemassa olevia tiedostojärjestelmän navigoinnin käsitteitä sekä käyttöoikeuksia.
Perinteisempiin käyttöjärjestelmiin verrattuna tällaisen järjestelmän kehittäminen on helpompaa. Suurin osa järjestelmästä voidaan käynnistää, tehdä virheenkorjaus ja rakentaa käyttämällä samoja apuohjelmia kuin perinteisen järjestelmän ohjelmat. Monoliittinen ydin , koodivirhe vaatii koko koneen sammuttamisen ja uudelleenkäynnistyksen, kun taas Machissa se vaatii vain ohjelman uudelleenkäynnistyksen. Lisäksi käyttäjä voi käskeä järjestelmää ottamaan ominaisuudet käyttöön tai poistamaan ne käytöstä haluamallaan tavalla. Koska käyttöjärjestelmä on kokoelma ohjelmia, kehittäjät voivat lisätä tai poistaa osia siitä yksinkertaisesti käynnistämällä tai pysäyttämällä ne kuten mikä tahansa muu ohjelma.
Mach sijaitsi alun perin olemassa olevaan 4.2BSD-ytimeen kirjoitettuna lisäkoodina, joka salli komennon suorittamisen järjestelmässä kauan ennen sen valmistumista. Työ aloitettiin valmiilla Accent IPC / porttijärjestelmällä ja siirrettiin muihin keskeisiin käyttöjärjestelmän osiin, tehtäviin, säikeisiin ja virtuaalimuistiin. Nämä osat on kirjoitettu uudelleen kutsufunktioiksi Machissa; rinnakkain tämän kanssa työstettiin 4.3BSD:tä.
Vuonna 1986 järjestelmä valmistui ja se voi toimia DEC VAX : lla . Vaikka sillä oli vähän käytännön merkitystä, tavoite mikroytimen luomisesta elätettiin. IBM PC/RT- ja Sun Microsystems 68030 -työasemien versiot seurasivat pian , mikä tarjosi järjestelmän siirrettävyyden. Vuoteen 1987 mennessä listaan kuuluivat Encore Multimax ja Sequent Balance . Julkaisu 1 ilmestyi tänä vuonna ja julkaisu 2 ensi vuonna.
Koko tämän ajan luvattua "oikeaa" mikroydintä ei luotu. Nämä Machin varhaiset versiot sisälsivät suurimman osan 4.3BSD-ytimestä, joka tunnetaan nimellä POE , minkä seurauksena ydin oli itse asiassa suurempi kuin Unix, johon se perustui. Kuitenkin tavoite siirtää Unix-kerros pois ytimestä, jossa se oli helpompi kehittää ja korvata, saavutettiin. Suorituskyky jätti paljon toivomisen varaa, ja tämän ongelman ratkaisemiseksi tehtiin useita arkkitehtonisia muutoksia.
Tämän seurauksena Mach 3 ilmestyi vuonna 1990 ja herätti paljon kiinnostusta. Machin valmistanut pieni tiimi siirsi sen useille alustoille, mukaan lukien monimutkaisille moniprosessorijärjestelmille, jotka aiheuttivat vakavia ongelmia vanhanaikaisille ytimille. Kiinnostus aktivoitui myös markkinoiden kaupallista segmenttiä kohtaan, jossa oli yrityksiä, jotka halusivat vaihtaa alustaa, ja jos ne siirtäisivät käyttöjärjestelmänsä Machiin, he voisivat vaihtaa alustaa kivuttomasti.
Mach sai näkyvän sysäyksen, kun Open Source Foundation ilmoitti rakentavansa tulevaa OSF/1 -versiota Mach 2.5:lle ja käyttäisivät mielellään Mach 3:a. Mach 2.5 valittiin myös NeXTSTEP - järjestelmiin ja useisiin kaupallisiin moniprosessoreihin valmistajat. Mach 3:lla on yritetty siirtää muita käyttöjärjestelmiä tähän ytimeen, mukaan lukien IBM Workplace OS ja Apple Computerin useita yrityksiä luoda monialustainen versio Mac OS :stä .
Jonkin aikaa näytti siltä, että jokainen 1990-luvun lopulla rakennettu käyttöjärjestelmä perustuisi Machiin.
Mach asetettiin alun perin korvaamaan klassista Unixia, ja tästä syystä sisältää monia Unix-ideoita. Esimerkiksi Mach käyttää Unix-tiedostojärjestelmään perustuvaa oikeus- ja turvajärjestelmää. Koska ydin toimii etuoikeutetussa tilassa (kernel-mode) ja on mahdollista, että jokin ohjelma lähettää komennon, joka vahingoittaa järjestelmää, ytimen on tarkistettava jokainen viesti. Lisäksi suurin osa toiminnoista sijaitsi ohjelmissa, jotka toimivat ei-etuoikeutetussa tilassa (user-space), mikä tarkoittaa, että tarvitaan jonkinlainen tapa sallia tällaisille ohjelmille lisätoimintoja, kuten työskentely laitteiston kanssa.
Jotkut Machin ominaisuudet perustuivat samoihin IPC-mekanismeihin. Esimerkiksi Mach tukee helposti moniprosessoritietokoneita. Perinteisessä ytimessä tehdään laajaa työtä sen varmistamiseksi, että eri prosessoreilla toimivat ohjelmat, jotka voivat kutsua ytimen toimintoja samanaikaisesti, ovat palaavia tai epäjatkuvia. Machissa käyttöjärjestelmän osat on eristetty palvelimilla, jotka voivat toimia kuten muutkin ohjelmat - millä tahansa prosessorilla. Joten teoriassa Mach-ytimen pitäisi olla myös palaava, mutta käytännössä tämä ei ole ongelma, koska Machin tarvitsee vain ohjata pyyntö johonkin etuoikeutettuun ohjelmaan. Mach sisälsi myös palvelimen, joka pystyi välittämään viestejä paitsi ohjelmien välillä myös verkon yli. Työtä tällä alueella tehtiin 1980-luvun lopulla ja 1990-luvun alussa.
IPC:n käyttö useimpiin tehtäviin heikentää suorituskykyä [3] . Vuonna 1997 tehdyt vertailut osoittivat, että Mach 3.0:lle rakennettu Unix oli 50 % hitaampi kuin perinteinen Unix [4] .
Tutkimukset ovat osoittaneet, että suorituskyky laskee IPC:n takia, ja on mahdotonta saavuttaa kiihtyvyyttä jakamalla käyttöjärjestelmä pieniin palvelimiin. Machin suorituskykyä yritettiin parantaa monia, mutta 1990-luvun puoliväliin mennessä kiinnostus oli hiipunut.
Itse asiassa suorituskykyongelmien luonteen tutkimus on paljastanut useita mielenkiintoisia faktoja: yksi on se, että IPC itsessään ei ole ongelma, ongelmana on, että sen tukemiseen vaaditaan muistikartoitus, mikä lisää hieman ylimääräistä työtä. Suurin osa ajasta (noin 80 %) käytetään ytimen lisätehtäviin - viestin käsittelyyn, ensisijaisesti porttioikeuksien ja viestin eheyden tarkistamiseen. Intel 80486DX-50 -testeissä Unix-standardipuhelu kestää noin 21 mikrosekuntia, vastaava puhelu Machissa 114 mikrosekuntia, josta 18 mikrosekuntia liittyy laitteistoon, loput liittyvät Mach-ytimen eri toimintoihin.
Kun Machia käytettiin ensimmäisen kerran vakavassa kehityksessä (versio 2.x), suorituskyky oli noin 25 % hitaampi kuin perinteisissä ytimissä. Tämä hinta ei ollut huolenaihe, koska järjestelmä siirrettiin hyvin ja toimi useilla prosessoreilla. Itse asiassa järjestelmä piilotti vakavia suorituskykyongelmia Mach 3:n julkaisuun asti, jolloin monet kehittäjät yrittivät luoda järjestelmiä, jotka toimivat etuoikeutetussa tilassa.
Kun Mach 3 yritti siirtää käyttöjärjestelmän ei-etuoikeutettuun tilaan, suorituskyvyn heikkeneminen tuli havaittavaksi. Tarkastellaan yksinkertaista esimerkkiä: tehtävä oppii nykyisen ajan. Mach-ytimeen lähetetään viesti, joka aiheuttaa kontekstin vaihdon, muistikartoituksen, sitten ydin tarkistaa viestin ja oikeudet, jos kaikki on hyvin, kontekstikytkin kutsutaan palvelimelle, sitten palvelin suorittaa toiminnot ja lähettää viesti takaisin, ydin varaa enemmän muistia ja vaihtaa kontekstia kahdesti.
Mutta tässä on ongelma. Se sijaitsee virtuaalimuistin hakujärjestelmässä. Perinteiset monoliittiset ytimet tietävät missä ydin ja sen moduulit ovat ja missä on sivuiltava muisti, kun taas Machilla ei ole aavistustakaan, mistä järjestelmä on tehty. Sen sijaan se käyttää yhtä ratkaisua, joka lisää suorituskykyongelmia. Mach 3 tarjoaa yksinkertaisen muistinhallinnan, joka käyttää muita ei-etuoikeutetussa tilassa toimivia hallintaohjelmia, mikä saa järjestelmän tekemään kalliita IPC-kutsuja.
Monet näistä ongelmista ovat olemassa kaikissa järjestelmissä, joiden on toimittava moniprosessorikoneella, ja 1980-luvun puolivälissä näytti siltä, että tulevaisuuden markkinat olisivat täynnä niitä. Itse asiassa evoluutio ei toimi odotetusti. Moniprosessorikoneita käytettiin palvelinsovelluksissa 1990-luvun alussa, mutta ne katosivat sitten. Samaan aikaan suorittimen suorituskyky on kasvanut 60 % vuodessa, mikä moninkertaistaa koodin tehottomuuden. Harmi vaan, että muistin käyttönopeus kasvaa vain 7 % vuodessa, mikä tarkoittaa, että muistin käyttökustannukset eivät ole laskeneet ja Machin välimuistiin tallentamattomat IPC-kutsut ovat erittäin hitaita.
Machin ominaisuuksista huolimatta tällaiset suorituskyvyn heikkeneminen todellisessa maailmassa ei ole hyväksyttävissä, joten suuri osa käyttöjärjestelmän kehitysyhteisöstä katsoi, että IPC:n käyttäminen käyttöjärjestelmän perustana oli alun perin epäonnistunut.
Kuten edellä totesimme, suurin osa Mach 3:n suorituskyvystä menee hukkaan IPC-kutsuihin. Käsite "monipalvelinjärjestelmä" on kuitenkin edelleen lupaava, joten se vaatii tutkimusta. Kehittäjien on eristettävä koodi huolellisesti moduuleiksi, jotka eivät soita palvelimelta toiselle. Esimerkiksi useimmat verkkokoodit tulisi sijoittaa erilliseen palvelimeen. Unixissa tämä ei ole niin helppoa, koska järjestelmä luottaa tiedostojärjestelmän käyttöön kaikessa verkkotoiminnasta turvallisuuteen.
Useimmat kehittäjät ovat juuttuneet alkuperäiseen ideaan yhdestä suuresta palvelimesta, joka tarjoaa käyttöjärjestelmän toimintoja. Kehityksen helpottamiseksi he antoivat käyttöjärjestelmän toimia etuoikeutetuissa ja etuoikeutetuissa tiloissa. Tämän ansiosta ne voivat kehittyä etuoikeutetussa tilassa ja niillä on kaikki Mach-idean ominaisuudet ja siirtää virheenkorjattu palvelin etuoikeutettuun tilaan paremman suorituskyvyn saavuttamiseksi. Useita käyttöjärjestelmiä on kehitetty samalla tavalla, joka tunnetaan nimellä "co-location" (co-location), jota käytetään Litesissä (portti 4.4BSD Lite), MkLinux , OSF/1 ja NeXTSTEP / OpenStep / Mac OS X. ChorusOS teki tästä ominaisuudesta osan ydinjärjestelmää, jolloin palvelimet voivat siirtyä etuoikeutettuun tilaan sisäänrakennettujen mekanismien avulla.
Mach 4 yritti ratkaista tämän ongelman radikaaleilla parannuksilla. Erityisesti hän löysi ohjelmakoodin, jota ei yleensä kirjoiteta muistiin, ja siksi kopiointi-kirjoitus tapahtuu harvoin. Tämä mahdollisti IPC:n prosessien välisen muistin (karttamuistin) yhdistämisen, vaan ohjelmamuistin paikallisten alueiden käyttämisen. Tämä loi "sukkuloiden" käsitteen ja lisäsi suorituskykyä, mutta kehittäjät saivat tilojen hallinnan monimutkaisuuden. Mach 4 sisälsi myös sisäänrakennetut paikannusmekanismit.
Kaikissa IPC-testeissä ongelman lähteenä mainittiin suorituskyky, joka vastasi 73 % menetetyistä sykleistä.
90-luvun puolivälissä työ mikroydinjärjestelmissä lopetettiin. Vaikka markkinat uskoivat, että kaikki uudet järjestelmät olisivat mikroytimiä 90-luvulla, nykyään vain yksi laajalti käytetty Mac OS X -järjestelmä käyttää paikannuspalvelinta voimakkaasti muokatun Mach 3 -ytimen päällä.
Tutkimukset ovat osoittaneet, että IPC:n suorituskykyongelma ei ole niin paha kuin ihmiset ajattelevat. Muistutuksena, yksisuuntainen puhelu kestää BSD:llä 20 mikrosekuntia, kun taas Machilla 114 mikrosekuntia, joista 11 on identtinen kontekstikytkin BSD:n kanssa. Lisäksi muistinhallinta käyttää numeroa 18 viestien näyttämiseen etuoikeutetun ajonajan ja etuoikeutetun ajonajan (user-space ja kernel-space) välillä. Tämä lisää 31 mikrosekuntia, mikä on pidempi kuin perinteinen puhelu, mutta ei paljon.
Loput ongelmasta on viestiportin käyttöoikeuksien tarkistaminen. Vaikka tämä näyttää erittäin tärkeältä, sitä vaaditaan itse asiassa vain Unix-järjestelmissä. Esimerkiksi matkapuhelimessa toimiva yhden käyttäjän järjestelmä ei välttämättä tarvitse näitä ominaisuuksia, ja tämä on järjestelmä, jossa Machia voidaan käyttää. Mach kuitenkin aiheuttaa ongelmia: kun muistia siirretään käyttöjärjestelmään, muut tehtävät eivät välttämättä tarvitse sitä. DOS: ssa ja varhaisessa Mac OS :ssä oli yksi osoitetila, joka jaettiin kaikille prosesseille, joten muistikartoitus on ajanhukkaa tällaisissa järjestelmissä.
Nämä toteutukset ohjasivat toisen sukupolven mikroytimet , mikä vähentää järjestelmän monimutkaisuutta sijoittamalla suurimman osan toiminnoista ei-etuoikeutettuun suoritustilaan. Esimerkiksi L4 - ydin sisältää vain 7 toimintoa ja käyttää 12 kilotavua muistia, kun taas Mach 3 sisältää noin 140 funktiota ja käyttää 330 kilotavua muistia. IPC-puhelu L4:ään 486DX-50:llä kestää vain 5 mikrosekuntia - nopeammin kuin Unix-puhelu samassa järjestelmässä ja 20 kertaa nopeampi kuin Mach. Tässä ei tietenkään oteta huomioon sitä tosiasiaa, että L4 ei toimi käyttöoikeuksilla ja suojauksella, mikä jättää ne etuoikeutetuille ohjelmille.
"Mahdolliset" L4-nopeutukset perustuvat siihen tosiasiaan, että etuoikeutetut sovellukset tarjoavat usein monia ominaisuuksia, joita ydin tukee muodollisesti. Voit verrata MkLinuxin suorituskykyä colocation-tilassa ja L4-portin, joka toimii ei-etuoikeutetussa tilassa. L4 lisää vain noin 5-10% yleiskustannuksia, kun taas Mach lisää 15%, mikä on varsin mielenkiintoista ottaen huomioon kaksoiskontekstikytkimet.
Tämän seurauksena uudet mikroytimet ovat muuttaneet alaa kokonaisuutena, ja monet kerran kuolleet projektit, kuten GNU Hurd, ovat saaneet jälleen huomiota.
Mach ja Machin kaltaiset käyttöjärjestelmät | |
---|---|