From: mib@churchy.gnu.ai.mit.edu (Michael I Bushnell) Newsgroups: gnu.misc.discuss,comp.os.mach,comp.os.linux.development,comp.os.linux.misc,comp.unix.pc-clone.32bit Subject: GNU Hurd Task List and Call for Volunteers Followup-To: gnu.misc.discuss Date: 18 May 1994 17:54:47 GMT Organization: FOO Lines: 140 Message-ID: NNTP-Posting-Host: churchy.gnu.ai.mit.edu Xref: usenet.ee.pdx.edu gnu.misc.discuss:7630 comp.os.mach:1434 comp.os.linux.d evelopment:9867 comp.os.linux.misc:16767 comp.unix.pc-clone.32bit:5854 Now that the Hurd can run (albeit haltingly) on its own, it is possible for people who do not have Mach 3.0 single-servers to contribute without much trouble. (However, if you don't have a single-server, you probably won't be able to use a debugger, but that doesn't mean you can't do debugging, right?) We at the FSF don't have any expertise in setting up Mach 3.0 machines; the machines that we do development on belong to the Open Software Foundation and were set up by them. So one of the things on the task list is to organize things so that people (like us and most of you) who don't know how to do it can do it. It's not impossible to figure out, it's just a pain and a marvelous thing for a volunteer to do. You can get Mach 3.0 from CMU; you get the C library and the Hurd from us. You need the soon-to-be-released version 1.07.6 of the C library and the latest Hurd snapshot (as well as our special version of MiG) from alpha.gnu.ai.mit.edu. All our work is based upon i386. The Hurd (except for a few programs; see the Hurd README file) is machine independent. The C library should not be too much trouble to port. Ports and information about porting difficulty for either of these are greatly desired. The Hurd is not yet self-hosting. While you are welcome to fetch the code and put things together, it is not likely that you will have a useful system right now. But you might be able to do significant work (see the task list below). And, even if you can't do significant work, I'm interested in hearing about any places where you had particular difficulty. If you want to start on one of these tasks, please let me know so I can keep track of volunteers properly. This task list will be updated periodically; gnu@prep.ai.mit.edu always has the latest version. -mib GNU Hurd Task List Version 1.0. If you would like to work on one of these, please contact mib@gnu.ai.mit.edu. Mach 3.0 Work o Mach 3.0 comes with CMU makefiles that depend on a drecky environment. It would be very helpful to have makefiles and installation stuff so that it worked well for cross-compilation between systems and used GNU tools. o MiG needs to be made able to support cross-compilation. o A replacement for MiG that understood C .h files. o Bootstrap tools and documentation to help people set up Mach 3.0 machines if they already have Linux; if they already have Net BSD; if they don't have anything. o Mach 3.0 needs to provide support for task virtual timers similar in functionality to the Unix ITIMER_PROF and ITIMER_VIRTUAL timers. o Mach 3.0 needs to provide a way for users to do statistical PC profiling similar to the Unix profil system call. o Mach 3.0 needs a facility to automatically send task and thread status on task/thread exit to a port that can only be changed by a privileged user; this would be used to implement process accounting. o Mach 3.0 needs a facility to find out what task is the parent of a given task. o Mach 3.0 needs a facility to find out which pages of a task's address space are in core to implement Unix's mincore call. o Mach 3.0 needs a facility to do msync. o Mach 3.0 needs a replacement for MEMORY_OBJECT_COPY_CALL that works at least for the cases needed in ordinary files. (Write mib if you want to know what the problem is and some ideas about how to solve it.) o Mach 3.0 needs proxy memory objects. (mib can tell you what these are and why they are important.) o Mach 3.0 needs a way to do per-task resource counters that are accessible to servers called by the task. o Mach 3.0 needs facilities to implement resource limits of various sorts. o Mach 3.0 needs a way to have a thread's CPU time statistics include time spent by servers on its behalf. o Of course, free ports are always necessary to machines that don't already have free ports. o Much work can be done doing research in how to improve Mach VM performance and timesharing scheduling policy. Hurd work (these are brief descriptions; mib can give more information): o We need a translator for /dev. o We need a replacement for utmp and wtmp that understands the Hurd `login collection' concept. Programs like who and finger then need to be changed to use this. o We need some existing shell programs changed to do Hurd things: like ls, su, fsck, tar, cpio, etc. o Some new programs need to be written: login, getty, ps, tools for new filesystem features. o Shadow directory translators. (Roland has the beginnings of this.) o A system for write, send, talkd and so forth to bleep users; this should be integrated with the utmp replacement above. o X. o A filesystem for /tmp that uses virtual memory instead of disk. o Filesystem implementations (using libdiskfs) for other popular formats, especially the Linux formats as well as MSDOG. o Transparent FTP translator. o NFS client implementation. You should start with BSD's 4.4 code and support the extensions they support; don't worry about Hurd extensions right now. (The server we want to write ourselves because it will probably involve changing the Hurd interfaces.) o A fancy terminal driver that uses readline and supports detach/attach. -- +1 617 623 3248 (H) | The soul of Jonathan was bound to the soul of David, +1 617 253 8568 (W) -+- and Jonathan loved him as his own soul. 1105 Broadway | Then Jonathan made a covenant with David Somerville, MA 02144 | because he loved him as his own soul.