64 Bit D Kernel
Alexander Panek
a.panek at brainsware.org
Tue Oct 23 14:14:11 PDT 2007
Jarrett Billingsley wrote:
> "Alexander Panek" <a.panek at brainsware.org> wrote in message
> news:ffk3sd$2is7$1 at digitalmars.com...
>> Brian Madden wrote:
>>> As of right now our code is sort of all over the place, and fairly
>>> undocumented, but we're mostly groping in the dark right now. If anyone
>>> has questions or comments, feel free to voice them.
>> I hope there'll be some more documentation, soon. I don't know how you
>> guys communicate during development, but e.g. a public mailing
>> list/newsgroup/forum would be tremendously cool to track down your
>> design/implementation decisions and such (doesn't really make sense if
>> you're sitting next to each other, communicating vocally, of course).
>
> Usually we communicate with our mouths. Texts, IMing, and vulgar hand
> signals are our other main channels of communication. ;)
That's great! Be sure to keep a Stik around.
>> Ad comments..mhm.. I got a few questions, if you don't mind :)
>>
>> - Did you guys try to make the build process work with DSSS entirely?
>
> We've got a pretty involved build process, and not many files yet. I don't
> think DSSS would be of much use at least until a later stage.
As of now, you seem to use a Makefile; building with DSSS would be more
interesting in terms of "proof of concept", etc. I tend to try to keep a
project sticking to its languages'(or language's) tools, which would be
DSSS in case of D, respectively Make in case of C or assembly (though
you can do that one file with DSSS, too :P).
>> - Where there approaches to get rid of assembly and/or C?
>
> There are no C files left. I think the only (non-inline) assembly left is
> boot.S, which is called by GRUB and sets up the stack, initial GDT, and
> initial page table and makes the jump to 64-bit mode. After that, it's all
> D with some inline assembly here and there (thank you GDC's extended ASM
> syntax).
Right..you jump into the cold water (64bit) right there, missed that.
> I have no idea if we plan on moving this to any other architecture.
Hehe, maybe you should at least /plan/ to, so you have a code base that
allows it....
>> - Why exokernel? Why not micro?
>
> I defer to James for that argument :S
...but apparently James knows more about this in particular. :)
Personally, I am planning on splitting up my kernel into a completely
platform dependant (the nucleus), and a mostly independant (the actual
kernel) part. Basically, the nucleus implements a specific interface for
all sorts of memory operations (allocating, sharing, moving, as well as
paging and other rather platform specific [from an implementation point
of view] things) and maybe additionally the base of IPC, as long as the
platform has some support for it, that might speed up things.
The rest should be implemented "generic" enough to keep the code base
platform independent. If this independency isn't feasable, this
particular piece of code should be put into a module, rather than
"polluting" the kernel package(s).
Best regards,
Alex
More information about the Digitalmars-d
mailing list