Oud 18-12-2004, 16:00
dragonstorm
Avatar van dragonstorm
dragonstorm is offline
FF voor alle duidelijkheid, dit is 100% een concept, een idee, ik heb hiervan nog niets geschreven, heb ook totaal geen ervaring met het schrijven van hardwarecommunicatie, dus verwacht niet van mij binnen een half jaar een werkende versie te zien..

Het concept

Ik had 'n ideetje, namelijk om 'n besturingsysteem te maken zonder kernel, maar met servers die alle functies van het OS overnemen.

Dit zou bestaan uit minimaal de volgende servers:

-hardware abstraction layer server - een server die hardware voorstelt als objecten, zodat processen hier geen kennis van hoeven te hebben. Alle directe hardwarecommunicatie gaat via deze server. Ieder modern OS heeft zo'n ding.
-memoryserver - hoewel ik niet weet of deze direct nodig is, denk ik dat het voor de elegantie wel handig is om 'n memoryserver te maken, deze communiceert met de halserver
-messageserver - dit is wel essentieel. Hiervoor heb k al een hele hoop regels uitgedacht. Het idee is een enkele server waarin ieder proces messages kan lezen en schrijven.
-timesplitter & controleserver - deze server zorgt voor preemptive multitasking, en controleert of ieder proces nog werkt. Dit kan eenvoudig door ieder proces aan t einde van 'n cyclus een message te laten achterlaten met 'ik werk nog' in de message server. Gebeurt dit niet, dan is eenvoudigweg het proces vastgelopen.

Hierin kunnen andere servers worden toegevoegd (filesystem, netwerk etc) die als 'gelijkwaardige servers' kunnen worden behandeld. Of een proces kan gewoon in userspace draaien.

Met een initial ramdisk en een startup script is dit wel te booten.


Waarom deze aanpak?

-proof of concept. Ik wil kijken of het kan werken. Ik zat aan het hele idee van een 'no-kernel' systeem te denken, en bedacht dat het met verschillende servers wellict wel zou kunnen
-het geeft mogelijkheden, en het word nog leuker wanneer iedere server met modules kan werken. Dit levert een extreem flexibel systeem op. Een gebruiker kan ieder mogelijk programma als server gebruiken, zolang deze maar fatsoenlijk communiceert met de andere servers. Bovendien is het makkelijk te updaten. Alles wat gedaan hoeft te worden is de nieuwere server opstarten, de variabelen overplaatsen, de pid overplaatsen en de oude server af te sluiten. On the fly 'kernel' vernieuwing, ik vind het wel sexy.

Graag reacties.
Met citaat reageren
Advertentie
Oud 18-12-2004, 16:22
Fade of Light
Avatar van Fade of Light
Fade of Light is offline
gedistribueerde servers?
Met citaat reageren
Oud 18-12-2004, 18:15
phoxetis
Avatar van phoxetis
phoxetis is offline
euh, hoe wou je dat spul starten?
met een opstartmodule dan zeker?
kijk, daar is je kernel

edit: wel leuk idee overigens
__________________
I never be late... I drive a V8 ...
Met citaat reageren
Oud 18-12-2004, 19:48
Verwijderd
Met de huidige hardware is een non-kernel systeem niet mogelijk, tenzij je deze in de hardware zou inbakken, voor zover ik weet.
Je moet namelijk iets hebben wat de communicatie verzorgd en de HAL kan dat niet. De HAL zorgt ervoor dat software niet direct met hardware kan communiceren.
Met citaat reageren
Oud 18-12-2004, 19:53
Manuzhai
Avatar van Manuzhai
Manuzhai is offline
Zulk soort systemen worden micro-kernels/nano-kernels genoemd. Het idee daarachter is dat je een zo simpel mogelijke kernel heeft, die, zoals jij voorstelt, allemaal servers heeft die de taken uitvoeren. Kijk bijvoorbeeld eens naar Minix, of Plan 9. Dit zijn Operating Systems die al dergelijke eigenschappen bezitten. Dat werkt misschien beter dan het opnieuw beginnen from scratch.

Een belangrijke probleem met deze aanpak blijkt wel te zijn dat communicatie tussen een server en de kernel performance-wise veel minder lekker loopt dan binnen een kernel. Daar zijn volgens mij al een paar soortgelijke initiatieven op stukgelopen.
__________________
Slechts beschikbaar via naamzoek/privebericht.
Met citaat reageren
Oud 18-12-2004, 20:04
Verwijderd
Maar dat gaat dus niet werken. Monolithische kernels hebben hun nut bewezen. Microkernels worden naarmate het ontwikkeltraject verder komt, steeds gecompliceerder totdat het monolitische kernels worden. Ook al zijn ze dan nog steeds modulair opgebouwd.
Met citaat reageren
Oud 18-12-2004, 21:24
dragonstorm
Avatar van dragonstorm
dragonstorm is offline
goed, laat me dat idee van opstarten even wat duidelijker maken...
het idee is om een soort initial ramdisk te maken met al deze servers. Deze servers hebben elkaar nodig en moeten dus tegelijk geladen worden. Dit kan met een eenvoudig startupscriptje die aan het einde bash starts (of iets dergelijks)

Ik ben zelf ook voor 'n monolithische kernel met modules, dit is technisch de beste oplossing tussen 'n microkernel en een ouderwetse monolithische kernel.

Ik denk dat met 'n gecentraliseerde messageserver het probleem met communicatie wel kan worden opgelost.

Btw, microkernels werken wel, daar werkt windows nt nog op , en BeOS, hoewel dat meer een hybride kernel is.
Met citaat reageren
Oud 19-12-2004, 12:11
Manuzhai
Avatar van Manuzhai
Manuzhai is offline
Windows NT is zeker geen microkernel, maar juist een monolithische kernel. Ik zat net nog te lezen in een boek van Tanenbaum (een van de grote OS-wetenschappers, heeft Minix geschreven), en hij geeft aan dat er voor een echte microkernel een performance penalty van 20% geldt. Dat is nogal wat!
__________________
Slechts beschikbaar via naamzoek/privebericht.
Met citaat reageren
Oud 19-12-2004, 13:15
Verwijderd
Ja exact; Tanenbaum vs Thorvalds:
http://groups.google.nl/groups?hl=nl...cs.vu.nl#link1
Thorvalds is Monolithic en Tanenbaum Microkernel.

Thorvalds veegt de vloer aan met tanenbaum.
Zoals gewoonlijk (CISC & RISC Discussie, 3DNow vs MMX etc) zal een hybride vorm het beste zijn.
Met citaat reageren
Oud 19-12-2004, 14:11
dragonstorm
Avatar van dragonstorm
dragonstorm is offline
wikipedia beweert dat nt een hybride kernel is, in ieder geval - ik weet het ook niet precies

Waar microkernels wel goed voor zijn, is ontwikkeling. Als t niet werkt kun je de meeste services gewoon weer herstarten
Met citaat reageren
Oud 19-12-2004, 14:15
Verwijderd
Hehe. Dat klopt. Maar Linux is geen hybride kernel, volgens thorvalds een monolitische kernel. Toch kan je al je network services bijvoorbeeld opnieuw starten, remote via een terminal. Dat is vrij geniaal.
En toch zitten deze modules vrij dichtbij zo niet in de kernel.
Met citaat reageren
Oud 23-12-2004, 14:00
dragonstorm
Avatar van dragonstorm
dragonstorm is offline
http://en.wikipedia.org/wiki/Mach_kernel

intressant dit stuk, vertelt 'n hoop over het gedoe met microkernels
Met citaat reageren
Oud 23-12-2004, 14:20
Verwijderd
http://www.gnu.org/software/hurd/hurd.html
Met citaat reageren
Oud 23-12-2004, 14:37
Chimera
Avatar van Chimera
Chimera is offline
Citaat:
dragonstorm schreef op 18-12-2004 @ 17:00 :
On the fly 'kernel' vernieuwing, ik vind het wel sexy.
Uhuh. Dingen als memory of hardwarestates zet je ook zo even over natuurlijk
Met citaat reageren
Oud 23-12-2004, 21:35
dragonstorm
Avatar van dragonstorm
dragonstorm is offline
bij een modulaire, uit servers bestaande 'kernel' kan dit, ja
Met citaat reageren
Oud 24-12-2004, 09:14
Manuzhai
Avatar van Manuzhai
Manuzhai is offline
Alleen vertelde RMS dat GNU/Hurd helemaal van de Mach-kernel afgaat, en overstapt op iets dat ze L4 noemen.
__________________
Slechts beschikbaar via naamzoek/privebericht.
Met citaat reageren
Oud 24-12-2004, 09:32
Verwijderd
Citaat:
Manuzhai schreef op 24-12-2004 @ 10:14 :
Alleen vertelde RMS dat GNU/Hurd helemaal van de Mach-kernel afgaat, en overstapt op iets dat ze L4 noemen.
Tsja, dat is al jaren bekend.

Ze gebruiken de Mach-kernel puur om snel tot een draaiend systeem te komen en een userbase te krijgen van programmeurs die helpen het systeem verder te ontwikkelen.

Verder heb ik het idee dat GNU/Hurd grotendeels vertegenwoordigt waar de TS het over heeft.

@TS:
Wordt alsjeblieft niet programmeur 1039291 die zijn eigen systeem gaat programmeren en het uiteindelijk ergens in een stoffige hoek van cyberspace laat verkomen, maar ondersteun een bestaand project. Platformen als GNU/Hurd kunnen alle hulp gebruiken.
Met citaat reageren
Oud 24-12-2004, 12:19
dragonstorm
Avatar van dragonstorm
dragonstorm is offline
@ ********: dat was ik al eigenlijk niet van plan, weet nog niet zoveel van hardware programmeren dat ik het zou kunnen doen

Maar om nog ff een punt te maken over monolithische kernels vs microkernels, als ik wikipedia moet geloven is het ongeveer zo:

-linux is monolitisch, evenals *BSD
-Win NT is hybride, dwz een microkernell met extra functies, BeOS en DragonflyBSD ook
-Darwin is microkernel, mach om precies te zijn

dus ik zou zeggen dat het debat over hoe een kernel opgebouwd moet worden nog lang niet over is
Met citaat reageren
Oud 24-12-2004, 12:26
Verwijderd
Citaat:
dragonstorm schreef op 24-12-2004 @ 13:19 :
Darwin is microkernel, mach om precies te zijn
Nope.

http://www.opendarwin.org/pipermail/...il/003805.html

"Mach is not "the OS"; mach mechanisms are used in support of the BSD OS component; Darwin is a monolithic kernel."
Met citaat reageren
Oud 28-12-2004, 19:13
Verwijderd
GNU/Hurd? Dat wordt nooit wat! Tis een expirement.
Met citaat reageren
Advertentie
Reageren

Topictools Zoek in deze topic
Zoek in deze topic:

Geavanceerd zoeken

Regels voor berichten
Je mag geen nieuwe topics starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Spring naar

Soortgelijke topics
Forum Topic Reacties Laatste bericht
Software & Hardware Non-X86 discussie topicje
L@CuTu$
30 23-02-2003 22:03


Alle tijden zijn GMT +1. Het is nu 21:42.