tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
GSoC report: GNU/Hurd translators
Hi,
as the first half of the GSoC has passed, I present you the status of my
project:
I have reached the stable state of the following parts:
- additional syscalls and VOPs for managing translators
- support for passive translators in ext2fs
- changes in newfs_ext2fs allowing to specify the Hurd creator OS
- changes in fsck_ext2fs to respect translators during the check and be able
to fix potential problems related to them
- userland tools (showtrans and settrans) to manage the translators, coherent
with the Hurd's counterparts; there are also man pages for them
This works (excluding the active translators) in the same way it works in the
Hurd (hopefully).
The original plan included also support for ffs, but it turned out, that it
isn't currently working in the Hurd according to this short mail exchange:
http://lists.gnu.org/archive/html/help-hurd/2008-07/msg00003.html
, so at present I've abandoned writing the support as I have no reference
implementation.
What is left:
- figure out how exactly the communication between relevant servers looks like
in Hurd to be able to provide that to the translators being run on NetBSD
- find out what has to be done to be able to launch Mach binaries
- write the relevant code for the above
- if there will be enough time, write some NetBSD specific translator using
puffs
I am planning to work on the first two points from the list simultaneously.
The first step to achieve is to run a simple Hurd binary which doesn't use
any IPC. The next step is to make programs able to use ports. Having done
this and the research which servers should be emulated, I will start
implementing the next parts of the translator API.
Various problems met so far:
- time; until 27 June I had my exam session. Fortunatelly, this problem
doesn't exist anymore
- time consuming bugs I have made. The worst was using too much memory on the
kernel stack during a syscall execution. It was hard, because the uvm faults
appeared after an undefined amount of time and no reasonable stack trace was
available
- dealing with the Hurd; administrative tasks related to it are often very
time consuming, as it is not so mature and widely used; one example was
forcing the Hurd to work with disklabels and ufs; finally it turned out that
it is currently broken
- rump; launching a new process from the kernel adds some extra references in
the code, which resulted in rump not linking. I've temporarilly overcome it
by providing some stubs, which will have to be filled in the future
(hopefully it won't be very hard)
You can read more about the work done so far on the web page:
http://netbsd-soc.sourceforge.net/projects/hurdt/
Regards
--
Marek Dopiera
marek%dopiera.pl@localhost, http://marek.dopiera.pl
JID: siersciu%jabberpl.org@localhost, GG:219418
Home |
Main Index |
Thread Index |
Old Index