Toon posts:

[Discussie] Monolitische of Micro-kernel

Pagina: 1
Acties:
  • 254 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben net begonnen met het boek 'Modern Operating Systems' van Tanenbaum. Ik hoop dat dit me meer perspectief geeft in het geheel. Iemand nog andere aanraders? Ik heb al een ander topic gelezen waar zij een OS willen maken, ik zal het volgen :D

Maar wat betreft dit topic, ik heb niet echt een plaatje van wat wel en niet in kernel space draait(Niet 100% zeker.. omdat dit vaak verschilt) maar dacht dat veel in kernelspace draait bij bijvoorbeeld Linux (een volledige api.. Dat is veel code! (kan natuurlijk ook zelf bepalen wat je compileerd maar het blijft monolithic en dus een grote chaos (of zijn hier mensen die het daar niet mee ens zijn). (En bij NT5, VMS, 4.4BSD, Plan 9, OS/390, (wat was vroeger voornamelijk de filosofie)?)

Ik zou zeggen dat het een voordeel is als je veel oplossingen al definitief kan plaatsen in een kernel maar het minder handig is als je zoiets permanent erin bouwt terwijl zo'n oplossing niet eens het beste alternatief hoeft te zijn. Het is veiliger dacht ik, om bepaalde modulen juist in userspace te draaien, zodat een hacker minder snel instaat is het systeem over te nemen. Of is dat een beetje kort door de bocht?

Voor een embedded OS(of een ander soort minimalistic OS) zou ik voor een monolitische kernel gaan omdat je dan alle aansturing in zo'n kernel hebt. En dan zou ik graag zien dat applicaties 'zo high level' zijn dat het eigenlijk niet echt uitmaakt wat je met je kernel doet. Byte code apps (java?)..

Volgens mij ontketen ik nu een flame war ... Maar zo zie ik op dit moment naar Operating Systemen.

Wat ik eigenlijk het belangrijkste zou vinden is het weten waarom micro in een x situatie beter is als de monolitische en omgekeerd.

Acties:
  • 0 Henk 'm!

  • Arzie
  • Registratie: Juni 1999
  • Laatst online: 05-10 20:47
Lees ook deze even:
ftp://ftp.funet.fi/pub/Linux/doc/news/Linux_is_obsolete.Z

Of de Google versie.

[ Voor 64% gewijzigd door Arzie op 06-09-2003 15:22 ]


Acties:
  • 0 Henk 'm!

  • downtime
  • Registratie: Januari 2000
  • Niet online

downtime

Everybody lies

Zou het niet handiger zijn om eens te gaan Googlen? Dit soort discussies is er volop te vinden op allerhande websites die aan OS theorie of allerlei OS ontwikkelingsprojecten gewijd zijn.

Overigens is GNU Hurd misschien ook een aardige om naar te kijken. Da's het officiele UNIX/POSIX compatible Microkernel OS van de GNU.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bedankt,

Maar het is overigens altijd leuk om zo'n discussie te volgen in een forum..

Net zoiets als "Post je favo os!"

Ik had alleen wat meer gehoopt op diepgang "Post je mening over je favo OS Filosofie"

Acties:
  • 0 Henk 'm!

Verwijderd

Monolotisch zoals linux is achterhaalt en lelijk. Tanenbaum heeft uiteindelijk gelijk gekregen, maar hij was daarmee z'n tijd te ver vooruit. Tijdens de beginjaren van Linux was een monolotisch ontwerp praktisch en een microkernel traag. Computers zijn inmiddels snel genoeg om een microkernel systeem goed te laten draaien.

Jammer dat *het* microkernel open-source OS, GNU Hurd, zo dood is als een pier omdat ze meer zaten te zagen over het ontwerp dan aan daadwerkelijk coden toekwamen. Het schrijven van nieuwe OS-en strandt overigens vaak op de beschikbaarheid van drivers voor de hardware. Hurd strandde daarvoor al, helaas.

Bij Linux draait niet de hele API in kernelspace: libc en overigens ook x11 draaien erbuiten. Dit in tegenstelling tot Windows.

Wel in kernelspace draaien o.a. drivers en subsystemen. Maar daarvoor is het dan ook een monolitisch OS.

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op 06 September 2003 @ 16:46:
Monolotisch zoals linux is achterhaalt en lelijk.
Linux heeft modules en heeft daarmee het grootste nadeel van een monolitisch OS van zich af geworpen. Ik zie voor de rest niet in hoe Linux achterhaald en lelijk is en hoe Minix daarin beter is?

Acties:
  • 0 Henk 'm!

  • Arzie
  • Registratie: Juni 1999
  • Laatst online: 05-10 20:47
Mij spreekt het concept van een microkernel meer aan, het is eleganter. Een monolithische kernel is iets sneller, maar of het veel scheelt zou ik niet weten. Een voordeel van de microkernel is (denk ik) dat grote delen van de kernel al multithreaded zijn en dus goed op een SMP-systeem zullen draaien. Ik weet echter niet of dat met Linux niet ook kan.

Acties:
  • 0 Henk 'm!

Verwijderd

Nu Linux steeds complexer en groter wordt zijn belangrijke ideeen van de nieuwe kernel om alles zoveel mogelijk in modules te krijgen, dat is volgens mij precies het idee achter een microkernel. Dus toen Linux nog klein en fijn was werkte een monolitische kernel veel handiger en sneller, maar nu alles steeds groter wordt zie je een neiging naar het microkernel idee, met precies de 'nadelen' die bij een microkernel horen.

Acties:
  • 0 Henk 'm!

Verwijderd

Linux heeft modules en heeft daarmee het grootste nadeel van een monolitisch OS van zich af geworpen. Ik zie voor de rest niet in hoe Linux achterhaald en lelijk is en hoe Minix daarin beter is?
Bij een microkernel/monolistisch ontwerp is modulariteit niet een grondslag maar een bijkomstigheid. In een microkernel draait er zo weinig mogelijk code in kernel-space, om veiligheidsredenen: code in kernel-space is gevaarlijk. Bij linux zijn er wel modules, maar die draaien in kernel-space, en vergroten/verkleinen slechts dynamisch de monolitische kernel. Als een driver crashed, kan het nog steeds het hele systeem meenemen. Bij een microkernel is dat beter op te vangen, omdat de drivers en modules in user-space draaien, en dus afgeschermd zijn van andere modules en drivers.

Moduraliteit is goed, microkernel is beter :) Het is inderdaad eleganter en veiliger.

Vroeger ging het uit pure noodzaak om efficientie. Tegenwoordig is een goed ontwerp veel belangrijker. Computers zijn toch wel snel genoeg.

Acties:
  • 0 Henk 'm!

  • Loesje
  • Registratie: Januari 2000
  • Laatst online: 02-07 17:57
Dat Tanenbaum zijn tijd vooruit was en gelijk heeft gekregen durf ik te betwijfelen.

In de tijd van de minix-linux discussies, als de befaamde discussie tussen oa. Linus en Tanenbaum in de minix-nieuwsgroep, gold de microkernel al als theoretisch het best. Dat heeft Linus ook nooit ontkend.
Ook was Microsoft toen bezig met de eerste NT, die een microkernel heeft, net als al zijn opvolgers.

Wat Linus cs. punt was is dat het bij de kwaliteit van een OS niet zozeer om de theoretische basis als wel om de uitvoering van het OS gaat.

Een goed uitgevoerd monolitische kernel is gewoon velen malen beter dan een slechte microkernel.

Tanenbaum leefde in een puur theoretische wereld en stelde dat alles dat niet microkernel was, meteen crap was. Daar heeft hij zeker geen gelijk in gekregen.

Linus bouwde de basis van Linux in een maand. Dat was hem met een microkernel nooit gelukt. De complexiteit van het ontwerpen van een microkernel is er de reden voor dat er nooit een goede is gebouwd. Tanenbaum ontwierp Minix om te laten zien dat het KON, maar zodra het ingewikkelder werd met de komst van de i386 haakte hij af. (zogenaamd om het toegankelijk voor studenten te houden)

En dat is ook de reden dat Hurd niet zo ver is gekomen als men zou willen.

[ Voor 23% gewijzigd door Loesje op 08-09-2003 11:02 ]

Leven is meervoud van lef


Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Verwijderd schreef op 06 september 2003 @ 14:44:
Voor een embedded OS(of een ander soort minimalistic OS) zou ik voor een monolitische kernel gaan omdat je dan alle aansturing in zo'n kernel hebt. En dan zou ik graag zien dat applicaties 'zo high level' zijn dat het eigenlijk niet echt uitmaakt wat je met je kernel doet. Byte code apps (java?)..
Grappig, bij QNX denken ze daar heel anders over ;)

Zoals Loesje (terecht) opmerkte, de uitvoering is belangrijker dan een academisch perfecte constructie. Uiteindelijk gaat het toch om het gebruik.
Een monolitische kernel is niet per definitie achterhaald of een slecht ontwerp (wie zegt dat je een microkernel niet slecht kan ontwerpen?). Linux gebruikt tamelijk elegante oplossingen, zoals de Virtual Filesystem Switch, waarmee praktisch ieder FS al dan niet modulair ingeplugd kan worden.

De Hurd is een goed voorbeeld van vaporware, maar er is natuurlijk ook een bekend OS dat wel een microkernel is, en ook nog eens (grotendeels) goed geimplementeerd: BeOS. Tot zover AFAIK nog de enige redelijk zuivere microkernel die de voordelen ervan uitbuit, en de nadelen goed heeft opgelost.

De werkelijkheid heeft de theorie allang ingehaald: de wensen bepalen hoe een systeem eruit komt te zien en ontworpen wordt, en niet wat een paar slimme professoren in hun bovenkamer bedacht hebben.

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.

Pagina: 1