About GNU Hurd
GNU Hurd is a complete new and free kernel
which is a set of servers running on Mach micro kernel. Currently it works on Intel's
cpu only, but Hurd is highly independent with cpu and almost machine related parts are
hidden in Mach kernel.
For more informations for Hurd itself, please see
Hurd home page.
Porting Hurd to the new baremetal
- Make GNU c (gcc) work for your target.
- Make GNU binutils work for your target.
- Port gnumach or mach4 to your target.
- Make GNU libc work
on your target. libc must be configured for Hurd.
- Make Hurd servers work on your target.
- Make all binaries work on your target.
Any system can become the host of the cross development, but I think that the
Hurd system will be the best.
Mips case
I'm trying to port Hurd to some target machines with Mips cpu. One target is R3000
based board and the other is R4000PC (Primary Cache only version) based. The latest
works can be got via ftp.
Another miscellaneous sources can be found in
ftp://ftp.sra.co.jp/pub/gnu/hurd-mips/
which is a mirror site of the original URL
ftp://ftp.kk.info.kanagawa-u.ac.jp/pub/kojima/hurd/
which may be very slow.
There are many things to do:
- The current mips3 (R4000) porting violates the network transparency. It will be common
problem with 64-bit addressing mode since Mach restricts the range of vm_address_t
value to only 32-bit unsigned value. There is no good solution for this. The easiest
and only one complete way is to use the user address space only up to 4G bytes.
As an incomplete solution, one can hack MIG to generate the additional code to
truncate/extend values for the each use of vm_address_t in RPC and fails the real
truncation as the value error. But this needs the much extra bad things to the current
system.
- The current mips3 porting can't use the dynamic linking. This restriction comes from
the current GNU ld for Mips Elf64 objects. R3000 (Mips Elf32) case can use the shared
library.
Baremetals
EVAL4000 is
an evaluation board of the LSI logic's M4 chip set for Mips R4000. This is the current
target machine of my Hurd porting work.
Do You want to see the log of booting and running Hurd on EVAL4000?
P40 is
a homebrewed workstation with Mips R3000. It was developed by a group in a Japanese BBS.
I wrote a tiny Unix-like operating system t2 and ported the ancient 386BSD and FreeBSD to
P40 using t2.
Masashi Kamata who is the leader of this group wrote many softwares for this metal
including almost device drivers and CMU version of Mach3. He and I also ported X11 to P40.
Back to Index