CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Machkernel - Wikipedia

Machkernel

Mach is een compacte kernel voor besturingssystemen. Mach is ontwikkeld aan de Carnegie-Mellon Universiteit voor de ondersteuning van onderzoek op het gebied van besturingssystemen, waarbij de nadruk lag op gedistribueerde en parallelle berekeningen. Het project aan de CMU was actief van 1985 tot en met 1994.

Mach is ontwikkeld vanuit het inzicht dat alle moderne besturingssystemen een aantal dingen met elkaar gemeen hebben of zouden moeten hebben, zoals:

  • het kunnen draaien van meerdere toepassingen tegelijk door middel van multitasking
  • threads, d.w.z. onderdelen van een toepassing die zelf kunnen multitasken als een soort minitoepassingen
  • ondersteuning voor meerdere processoren, in een enkele machine of via een netwerk
  • verkeer tussen processen, het direct sturen van berichten tussen toepassingen
  • geheugenbescherming en veiligheid

In het begin en midden van de jaren '80 was er een aantal projecten die probeerden in deze behoeften te voorzien. Vaak ging het daarbij om het veranderen van onderdelen van bestaande besturingssystemen, vooral BSD. Na iedere wijziging werd het OS opnieuw gecompileerd, de machine opnieuw opgestart en de wijziging uitgeprobeerd. Deze benadering was problematisch, vooral ook omdat zelfs kleine probleempjes de hele machine deden crashen.

Dus begon men met Mach een nieuw concept te verkennen, dat nu bekend staat onder de naam microkernel. Daarbij bevindt zich de code van het besturingssysteem niet in één grote kernel, maar wordt de meeste code gedelegeerd in kleinere programma's, zogenaamde servers, die net als alle andere programma's draaien als processen onder de microkernel. Daarbij kwam een eind aan de situatie waarbij de kernel min of meer gelijk stond aan het besturingssysteem, en werd de rol van de kernel beperkt tot die van verkeersagent en dienstregelaar voor de servers.

Dit zou moeten betekenen dat men na een wijziging aan het OS alleen maar het gewijzigde server-programma hoefde te herladen, zonder het hele besturingsssysteem te hoeven hercompileren. Alleen na het werken aan de Mach-kernel zelf zou een hestart nog nodig zijn, en dat zou maar zelden moeten voorkomen.

Nu is Mach zelf geen volledig besturingssysteem, en zonder een verzameling servers is het vrijwel onbruikbaar. Deze servers bestonden toen echter nog niet. Om een bruikbaar systeem draaiend te krijgen maakten de auteurs van Mach even snel een aanpassing van het besturingssysteem BSD: in plaats van BSD in onderdelen op te breken en van ieder onderdeel een server te maken, compileerden ze eenvoudigweg de hele kernel als één server en draaiden ze dat. Het resultaat stond bekend als POE.

POE draaide dus min of meer als een toepassing zoals alle andere, maar de prestaties waren vreselijk. Voor iedere aanroep vanuit een gebruikerstoepassing, bijvoorbeeld om de tijd op te vragen van de systeemklok, moest een bericht naar de kernel worden gestuurd (een bewerkelijke verrichting die bekend staat als context switch). De kernel stuurde dat bericht dan via nog een context switch door naar de Unix-library. En het antwoord moest de hele weg weer terug! Dus kreeg Mach, buiten zijn schuld, de reputatie flexibel maar erg langzaam te zijn.

In het daarop volgende decennium heeft men dit berichtenverkeer vele malen sneller kunnen maken. Uiteindelijk werden de prestaties van Mach-achtige besturingsystemen zelfs vaak beter dan die van de BSD's waar ze op gebaseerd waren. Maar tegen die tijd had de academische wereld de interesse in het onderzoek op het gebied van besturingssystemen min of meer verloren, en zo is de belofte van Mach nog altijd niet ingelost.

Ooit dacht men namelijk dat Mach de hele wereld van de besturingssystemen langzaam zou overnemen, maar dit is niet gebeurd. Misschien is de belangrijkste reden voor het algemene falen van Mach wel "luiheid": iedereen leek te denken dat iemand anders maar een op library's gebaseerd besturingssysteem moest leveren, en dus deed niemand het. De tot nu toe grootste inspanning in die richting is de Hurd van GNU, maar de Hurd is nu al ongeveer tien jaar vertraagd. Een aantal commerciële besturingssystemen heeft meer succes gehad, zoals QNX, dat alle beloften van Mach lijkt in te lossen.

Het werk aan Mach vond een aantal jaren lang plaats aan de CMU, maar werd uiteindelijk stilgelegd toen veel van de medewerkers de universiteit verlieten voor het bedrijfsleven. Mach is in het midden van de jaren '90 korte tijd weer tot leven gewerkt aan de University of Utah, wat leidde tot Mach 4 met belangrijke verbeteringen, maar werd daarna weer een slapend project.

Ondertussen benaderde een aantal bedrijven het gebruik van Mach op een praktische manier. De BSD-laag (of die van een ander besturingssysteem) werd direct binnenin de kernel gedraaid, zodat veel context switches konden worden voorkomen. Dat leverde redelijke prestaties op, zonder op de mogelijkheden van meerdere processoren en makkelijk te gebruiken threads in te leveren. Maar zelfs deze voordelen zijn relatief kleiner geworden omdat de verscheidene Unix-aanbieders ze inmiddels in hun eigen producten hebben verwerkt.

Dergelijke versies van op Mach gebaseerde besturingssystemen waren onder andere OSF/1, NeXTSTEP, en OS/2 van IBM voor de op de RS/6000 gebaseerde machines. Van deze systemen wordt er geen nog gebruikt. Ook andere besturingssystemen verkenden de mogelijkheid om naar een dergelijke benadering over te stappen, zoals Pink van Apple en Workplace OS van IBM.

Inmiddels heeft Apple OpenSTEP overgenomen om daarmee het Mac OS te vervangen. (OpenSTEP is in feite een bijgewerkte versie van het op Mach 2.5 gebaseerde besturingssysteem NeXTSTEP.) Het resultaat heet Mac OS X, wat net als zijn voorlopers gebaseerd is op de combinatie Mach/BSD.

[bewerk] Externe koppelingen

 
Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Sub-domains

CDRoms - Magnatune - Librivox - Liber Liber - Encyclopaedia Britannica - Project Gutenberg - Wikipedia 2008 - Wikipedia 2007 - Wikipedia 2006 -

Other Domains

https://www.classicistranieri.it - https://www.ebooksgratis.com - https://www.gutenbergaustralia.com - https://www.englishwikipedia.com - https://www.wikipediazim.com - https://www.wikisourcezim.com - https://www.projectgutenberg.net - https://www.projectgutenberg.es - https://www.radioascolto.com - https://www.debitoformtivo.it - https://www.wikipediaforschools.org - https://www.projectgutenbergzim.com