Re: mach, hurd, libc, arm9.
Vasily Sartakov, le Mon 08 Mar 2010 16:17:38 +0300, a écrit :
> Now I have compiled Mach kernel, which can boot, init all structures
> and threads, load first module. I have a system timer from interrupt,
> and hard/soft clocks property work. kernels threads property work too
> - it can init, start, block, wait assertion's, so - all thread's staff
> good work. I can start first microserver, but now its only simple
> binary, traps/syscalls/etc doesnt work.
Wow, that's cool! Perhaps you should share the source that you already
have, so we can already comment on how it is organized, how fine the
patch is, etc.
> for next step I should have start module and debug trap/rpc and
> user/kernel context switching, but now I stuck. I dont know what I
> should do. In one hand I have a long path with libc/hurd building,
> then making arm9 libc port and than hurd's micro-server arm port, in
> other - forget about libc, make own small "libc", where all syscalls
> makes as asm includes, use it for debugging my micro-kernel, and then
> hope what true-libc will property work.
> I tried do build libc/hurd a
> lot of times, but still have a huge amount of linking errors,
I guess so, glibc is very demanding in terms of architecture support.
I think having a very simple small libc is a good thing to first make
sure that system calls are working properly. Maybe you should also
implement an arm port of the Mach kernel debugger, kdb.
Then you can probably duplicate the i386 parts of the hurd directories
of eglibc, and replace all the code of the functions with some abortion,
to get things linked easily and then slowly start progressing in the
initialisation code. At first, disable signal handling, you will most
probably not need it at first, and that will relieve you from having to
port libthreads already.