Mach (ydin)
| Mach | ||
|---|---|---|
| ydinosa _ | ||
| Yleistä tietoa | ||
| ohjelmatyyppi | Ydin (tietokonetiede) | |
| Tekijä | Carnegie Mellonin yliopisto | |
| ensimmäinen julkaisu | 1985 | |
| Tekninen informaatio | ||
| Aikataulutettu sisään | ||
| Versiot | ||
| Uusin vakaa versio | 3.0 () | |
| Linkit | ||
Mach on Carnegie Mellon -yliopistossa aloitettu käyttöjärjestelmän suunnitteluprojekti , jonka tavoitteena on kehittää mikroydin .
Tavoite
Mach on Carnegie Mellon Universityssä ( CMU ) kehitetty käyttöjärjestelmäydin tukemaan käyttöjärjestelmätutkimusta , pääasiassa hajautettua ja rinnakkaislaskentaa. CMU :n projekti kesti vuosina 1985-1994 .
Mach kehitettiin sillä oletuksella, että kaikilla nykyaikaisilla käyttöjärjestelmillä on useita yhteisiä ominaisuuksia tai niitä halutaan, jos niitä ei vielä ole. Nämä sisältävät:
- Tuki useille sovelluksille, jotka käyttävät moniajoa .
- Säikeet , joita voidaan pitää sovelluksen osina, tai minisovelluksia, kun tehdään moniajoja.
- Usean prosessorin tuki , yhdellä koneella tai verkon kautta.
- Prosessien välinen viestintä, viestien lähettäminen suoraan sovellusten välillä.
- Muistin suojaus ja turvallisuus.
Historia
Tuohon aikaan 80-luvun alussa tai puolivälissä useat projektit yrittivät ratkaista yhtä näistä ongelmista. Tämä tarkoitti tyypillisesti olemassa olevan käyttöjärjestelmän ottamista - usein BSD :tä ( UNIX ) - muokkaamalla sen osia. Jokaisen muutoksen jälkeen käyttöjärjestelmä käännettiin , kone käynnistettiin uudelleen ja uusi muutos testattiin. Tässä lähestymistavassa oli useita ongelmia, jopa pienimmät virheet saisivat koko koneen kaatumaan.
Mach tutkii käsitettä, jota nyt kutsumme mikroytimeksi . Sen sijaan, että kaikki käyttöjärjestelmän koodi olisi yhdessä suuressa ohjelmassa (kutsutaan ytimeksi), suurin osa koodista sijaitsisi pienemmissä ohjelmissa, joita kutsutaan palvelimiksi ja jotka toimisivat kuten mikä tahansa muu ohjelma. Ytimen tehtävänä on pohjimmiltaan "olla" käyttöjärjestelmä, ylläpitää palvelimia ja ohjelmoida niiden pääsy laitteistoon .
Teoriassa tämä tarkoittaa, että käyttöjärjestelmän muutokset vaatisivat vain yhden palvelinohjelman uudelleenlataamista , toisin kuin käyttöjärjestelmän uudelleenrakentamista ja koneen uudelleenkäynnistämistä. Pelkkä Mach-ytimen työstäminen vaatisi uudelleenkäynnistyksen, ja teoriassa sen pitäisi olla harvinainen tapahtuma.
Mach ei ole itse käyttöjärjestelmä, ja se on melko hyödytön ilman palvelimia (näitä palvelimia ei ole olemassa). Joten saadakseen toimivan järjestelmän käyttöön, Machin kirjoittajat siirsivät Unix BSD:n Machin ytimeen nopeasti ja helposti: sen sijaan, että he olisivat hajottaneet BSD :n eri osiin ja rakentaneet jokaisen palvelimeksi, he yksinkertaisesti käänsivät ytimen kokonaisuudessaan palvelimelle. ja juoksi sitä. Tulos tunnettiin nimellä POE .
Kun POE oli käynnissä (tehokkaasti) muiden sovellusten välillä, suorituskyky oli surkea. Jokainen puhelu käyttäjäsovelluksesta vaatisi ajan saamiseksi, että viesti lähetetään ytimelle (yksinkertainen toimenpide, joka tunnetaan nimellä kontekstikytkin ), joka lähettää pyynnön Unix - kirjastoon toisella kontekstikytkimellä ja toistaa sitten kaikki jälleen vastaukseksi... Machia pidettiin kuitenkin erittäin voimakkaana, mutta uskomattoman hitaana, vaikka se ei ollutkaan hänen oma vikansa.
Seuraavan vuosikymmenen aikana työ suuntautui näiden viestien suorituskyvyn parantamiseen useita kertoja siihen pisteeseen, että näiden Mach-pohjaisten käyttöjärjestelmien suorituskyky oli usein parempi kuin ne BSD:t, joihin ne perustuivat. Siihen mennessä akateeminen maailma oli kuitenkin suurelta osin menettänyt kiinnostuksensa SSOO-tutkimukseen, ja Machin lupaus jäi toteutumatta.
Tällä hetkellä
1900- luvun lopulla ajateltiin , että Mach valtaisi hitaasti koko käyttöjärjestelmien universumin, mutta näin ei ole tapahtunut. Ehkä suurin syy Machin epäonnistumiseen voi olla "laiskuutta": kaikille tuntui, että käyttöjärjestelmäpohjaisen kirjaston toimittaminen oli jonkun muun tehtävä, eikä kukaan tehnyt sitä. Suurin yritys tähän mennessä on GNU Hurd , mutta GNU Hurd on nyt noin vuosikymmenen jäljessä. Useat patentoidut käyttöjärjestelmät ovat menestyneet paremmin, mukaan lukien QNX , joka näyttää täyttävän kaikki Machin lupaukset.
Machin parissa työskentely kesti useita vuosia CMU:ssa, ja lopulta se jäi lepotilaan, kun monet kehittäjät jättivät akateemisen alan työskennelläkseen teollisuudessa. Mach elvytettiin lyhyesti Utahin yliopistossa 1990-luvun puolivälissä ja tuotti Mach 4:n ( http://www.cs.utah.edu/flux/mach4/html/Mach4-proj.html ), jossa oli merkittäviä parannuksia, ennen kuin taas muuttumassa epäaktiiviseksi.
Sillä välin useat toimittajat omaksuivat käytännöllisiä lähestymistapoja Machin käyttöön. BSD - kerros (ja muut) suoritettiin suoraan ytimessä (täten vältyttiin kontekstin vaihtamiselta), mikä johti kohtuulliseen suorituskykyyn säilyttäen silti moniprosessoinnin ja helppokäyttöisen ketjutusmallin edut. Kuitenkin jopa nämä edut ovat heikentyneet, samoin kuin se, että useat Unix -toimittajat ovat pyrkineet tarjoamaan niitä omissa tuotteissaan.
Suhteet muihin käyttöjärjestelmiin
Tähän Mach-konseptiin perustuvia käyttöjärjestelmiä olivat OSF/1 , NeXTSTEP ja IBM OS/2 RS /6000 -pohjaisille koneille – joista yhtäkään ei enää käytetä laajalti. Myös muut käyttöjärjestelmät halusivat siirtyä tähän järjestelmäluokkaan, kuten Applen Pink, IBM :n Workplace OS ja monet muut.
Apple valitsi OPENSTEPin perustaksi klassisen Mac OS:n seuraajalle. Siitä tuli API Cocoa Mac OS X. OPENSTEP on itse asiassa päivitetty versio NeXTSTEP:stä, joka käytti Mach 2.5:tä. Sellaisenaan OPENSTEPin Mach/BSD-yhdistelmä on Applen Mac OS X -käyttöjärjestelmän perusta.
Mach-projektin johtava kehittäjä Richard F. Rashid on työskennellyt Microsoftilla vuodesta 1991 lähtien erilaisissa ylemmän tason tehtävissä Microsoftin tutkimusdivisioonassa , Microsoft Researchissa. Microsoftin Windows NT , Windows XP: n edelläkävijä, alkoi Machin kaltaisella mikroydinpohjaisella mallilla. Toinen Machin alkuperäisistä kehittäjistä, Avie Tevanian , oli aiemmin NeXT :n ohjelmistopäällikkö ja toukokuuhun 2006 asti Applen ohjelmistotekniikan toimiston johtaja.
Katso myös
Ulkoiset linkit
- Mach-projekti Carnegie Mellonissa
- Mach-järjestelmä – Liite käyttöjärjestelmäkonsepteihin (7. painos), Avi Silberschatz, Peter Galvin Baer ja Greg Gagne
- Machin, Ameban ja kuoron vertailu
- Kohti todellisia mikroytimiä – Sisältää lukuisia suorituskykymittareita, kuten artikkelissa mainitut
- µ-ydinpohjaisten järjestelmien suorituskyky – Sisältää erinomaisen suorituskyvyn vertailun Linuxista, joka toimii monoytimenä Mach 3:lla ja L4:llä
- Mach-ytimen lähdekoodi - Selattava versio Mach-ytimen lähdekoodista FreeBSD /Linux-ytimen ristiviittaussivustolla