Hi all, I've been recently working on GNU Mach 1 branch to port oskit drivers and remove the linux glue.
THIS IS NOT ANOTHER OSKIT-MACH. It is different. Differently from oskit-mach in this tree only the linux_dev component of oskit is used, and it is added at linking time. Furthermore, in the sources there is no OSKit code; instead, a COM component manager and the oskit_osenv interface have been natively created. IMHO this is cleaner and more powerful than oskit-mach, since it save us from all the OSKit's internal nightmares, inconsistencies and limitations. At the moment I've got my tree to probe both network and block devices, but I've created ds_routines linking only for block devices, so network drivers are ignored. Actually I could not have a boot though, since the code I am using to recognize partitions that I've found in scsi/disk_label.c gives me funny numbers so I had to disable partitions. I think anyways that it would be possible to use an IDE ATAPI cdrom as root to test it out, but I do not own cdrom devices. You can found the sources here: (special thanks to Alfred M. Szmidt for hosting the sources!) http://www.update.uu.se/~ams/tempura-stomach--08062005.tbz2 The tarball contains both oskit and gnumach tree. The oskit tree comes from savannah's unofficial oskit CVS with few modifications: - the entropy driver has been disabled for the moment, since it ignores the COM-based architecture of OSKit. - minor bugfixes, like adding an include in linux/dev/timer.c - ide and floppy glue now call the disk device respectively "hd" and "fd", to help lookup of devices. - Lot of debug printf's that I forgot. GNU Mach, of course, has been more seriously modified: - added a subdirectory, called oskitcom/, and some architecture dependent stub in i386/i386at/; - added native support for PCI bios register reading in GNU Mach; - [This should IMHO be actually ported even in the mainline GNU Mach 1.x] vm_resident.c now contains a poor man's multizone (DMA, normal) multiple pages allocator, done with code collected in the same file. This actually was needed, since current GNU Mach pre-allocs at init time a fixed amount of DMA-memory for the whole linux-glue memory needs (and it panics if the memory is insufficient). This allocator solves this, giving to drivers only the memory they need. - Lot of debug printf's that I forgot. :-) Please note, if you are interested in debugging, that there are some particularly weak parts: - osenv_mem allocator is REALLY dumb, it allocates a page even for a small structure. This can be easily fixed, of course. - Some inconsistency to fix in osenv_mem memory mapper. I would be very interested to ear from people who hacked the Mach much more than me what they think about this. All comments except for easy truths (L4 is the future) and easy lies (GNUMach is dead) will be greatly appreciated, too! :-) Thanks in advance, Gianluca -- It was a type of people I did not know, I found them very strange and they did not inspire confidence at all. Later I learned that I had been introduced to electronic engineers. E. W. Dijkstra _______________________________________________ Bug-hurd mailing list Bug-hurd@gnu.org http://lists.gnu.org/mailman/listinfo/bug-hurd