Subject: Mach related servers on Linux Author: Mary Thompson Date: July 1994 ----------------------------------------------------- There is a group working on getting a Linux compatible single server, multi-server and Hurd servers. Information about the project is available via the www URL: http://boole.info.polymtl.ca:1500/~hallu/ The FTP server is: boole.info.polymtl.ca/pub/proj/linuxss. There is a group mailing list linuxss@info.polymtl.ca that can be joined by sending mail to linuxss-request@info.polymtl.ca. Posts to comp.os.mach and comp.os.linux.annouce from members of group follow. ------------------------------------------------------------ To: hurd-dev@gnu.ai.mit.edu, linuxss@info.polymtl.ca, lites@cs.hut.fi Subject: Mach with new build environment and LILO support available Cc: marcus@ee.pdx.edu, steve@icarus.icarus.com, mw@eunet.ch Date: Fri, 15 Jul 94 16:10:11 MDT From: Bryan Ford You can get my first (working) release of Mach, with a totally new, "GNUified" build environment and direct LILO (Linux Loader) support, by anonymous FTP from kahlua.cs.utah.edu:/pub. Get the packages called `mach4-UK01.tar.gz' and `mach4-i386-UK01.tar.gz'. The first contains a README that should explain everything needed to get going. This release successfully boots from LILO (at least on my machine) and uses Remy Card's modified server bootstrap program to load and run his test server from a Linux ext2fs partition. I haven't yet tried running any "real" servers on it yet, though I want to get both LITES and the Hurd running smoothly on it. I'll probably work on the Hurd first, because thanks to Louis-D. Dubeau it has ext2 file system support. This release has a number of Linux dependencies, and will probably not build/run from a BSDish system without some fixes. For one thing, the old non-LILO boot mechanism is temporarily broken. Also, some of the auxiliary programs used to build boot images probably need some Linux include files and such, because they were ripped straight out of Linux. If you make the fixes for BSD, please me the patches - I probably won't be able to fix it myself real soon because the NetBSD boot loader seems to be incompatible with my PC. (One thing I _can_ do, and plan to before the next release, is to integrate Johannes Helander's Mach patches for LITES.) At this point the system probably contains lots of little bugs and gotachas, and I'm sure I've broken a few things here and there. It'll probably be getting a lot more unstable in the near future, as well, as I integrate migrating threads into the i386 version of the kernel. Therefore, at this point I'm not interested in getting bug reports, although bug _fixes_ in the form of patches are always welcome. :-) I'm also interested in hearing discussion on how to further change Mach to better support the free servers, make it more powerful and robust, easier to install and use, etc. Thanks, and have fun! Bryan --- Bryan Ford baford@cs.utah.edu University of Utah, CSS `finger baford@schirf.cs.utah.edu' for PGP key and other info. ----------------------------------------------------- Newsgroups: comp.os.linux.announce Subject: Linux*s project status Keywords: linux, mach, hurd, single server, multiple server, status From: hallu@info.polymtl.ca Date: Jun 9 1994 The linuxss has now split in three different directions: -building a single server. -building a multiple server. -adding Linux compatibility to the Hurd. While I am working more on the two last options, others are working on the first option. We hope that despite the differences between the three directions, there will be strong interraction between people working on them and that, where possible, design and code will be shared. What has been done: - Remy Card patched Mach so it now boots from a ext2fs partition. (This helps a lot.) - I wrote specs for the Linux syscalls (some info still missing). What will be done: - I'm beginning work on a Hurd compatible (from Hurd sources) ext2 fs server. A umsdos fs server (or Alessandro Forin's DOSFS) will follow. This is of use mostly to a ms or Hurd implementation. - In parallel with the previous point, I'll write ext2fs and umsdos (or DOSFS) specs. - Daniel Veillard is working on a port of the Linux kernel to a Mach server. This is will lead to a ss implementation, however some byproducts of this work might be used in a ms implementation. For more info take a look at the URL in my sig. ldd | Louis-Dominique Dubeau |Computer Engineering, Ecole Polytechnique de Montreal (Montreal, Quebec) |Linux single server project (http://boole.info.polymtl.ca:1500/~hallu/) | -> This sentence is false!!! <- ------------------------------------------------------------------------------- Article: 3909 of comp.os.mach Newsgroups: comp.os.mach,comp.os.linux.development From: hallu@info.polymtl.ca (Louis-D. Dubeau) Subject: Building Mach 3.0 under Linux Organization: Ecole Polytechnique de Montreal Date: Tue, 2 Nov 1993 16:58:13 GMT Hi there, I've finaly succeded in building the Mach 3.0 mk under Linux. (Well, I think I have a usable microkernel.) BTW, sory to those who asked me questions and to whom I didn't respond. Here is what I did. I hope this will help people who want to build Mach 3.0 under Linux or some other platform. I've downloaded the Mach 3.0 mk with the buildtools and the i386 specific code. I've also downloaded the documentation. IT'S VERY IMPORTANT TO READ THE DOCUMENTATION BEFORE TRYING ANYTHING. I then modified the setup.sh, bootstrap.sh and setvar.csh scripts that come with the buildtools. I build the ode tools and then the all the buildtools (rebuilding the ode tools in the process). I had to build xstrip by hand since the Makefile sets LPATH with Mach libs before Linux libs. When you build xstrip with the makefile, it link the object files with Mach's crt0.o. As you can imagine this leads directly to a core dump when you try to execute xstrip. The solution is either to patch the Makefile or to build it by hand. I tried next to build the mk. I had to change most "#ifdef __386BSD__" in the lex scripts to "#if defined(__386BSD__) || defined(__linux__)" . I also patched one of the .mk file (of odemake) to use libfl instead of libl. You can also make a symlink from libfl to libl. The next problem I had was with config. It dumped core at me every time I tried to execute it. The problem was in the memory deallocation algorithm in mkheaders.c (function doheader). The code dereferenced pointers that were already deallocated. (In some OS that could work.) I've replaced that code with a recursive deallocation algorithm. I then had to modify makeboot, in order for it to be able to recognize a Linux binary. I had to change switch((int)x.image) to switch((short int)... in the exec.c file in kernel/src/makeboot/i386. With all those modification, I got odemake to procude a bootable microkernel. I tried to load it with LILO but it didn't work. LILO loaded the image and then returned to the "LILO boot:" prompt. Now, how will I get the damn thing to boot? (Yes, I know I also need a server if I want to do something useful with the mk.) A la prochaine Louis-Dominique Dubeau -- =========================================================================== | Hallu (Louis-Dominique Dubeau) | | Membre du Comite Micro de l'AEP | | Departement de Genie Informatique | | Ecole Polytechnique de Montreal (Montreal, Quebec) | ====================== This sentence is false !!! ======================== Article: 3910 of comp.os.mach From: jds@cs.umd.edu (James da Silva) Newsgroups: comp.os.mach,comp.os.linux.development Subject: Re: Building Mach 3.0 under Linux Date: 2 Nov 1993 14:46:58 -0500 Organization: University of Maryland, Department of Computer Science Lines: 42 References: <1993Nov2.165813.2482@vlsi.polymtl.ca> hallu@info.polymtl.ca (Louis-D. Dubeau) writes: > With all those modification, I got odemake to procude a bootable >microkernel. I tried to load it with LILO but it didn't work. LILO loaded >the image and then returned to the "LILO boot:" prompt. > > Now, how will I get the damn thing to boot? (Yes, I know I also >need a server if I want to do something useful with the mk.) Good job so far. Now you've come to the crux of the matter! First, you need to check that all the little details are right. Mach has to be loaded at the right address and invoked in the right manner. Mach is expecting to be invoked in protected mode with valid segment registers set up to a "flat" address space, and it is expecting parameters passed from the boot program on its stack. Look at the following files to piece together how these parameters are pushed/popped/used: i386at/boot/asm.S i386at/asm_startup.h i386at/model_dep.c i386/setroot.c You'll have to modify either your boot program or the Mach startup to get the arguments differently. Once you have that part in sync you should be able to see Mach go through its initial device probe sequence. After the devices probe, Mach hands off to the bootstrap task, which was connected to it by makeboot. If makeboot wasn't modified correctly for your Linux a.out format, the whole thing will go south at this point. Then the bootstrap loader will try to open a paging file, and load and run the first server. For all that to work, the disk driver will need to recognize the Linux partitioning system. As is, it expects a BSD-ish label on the disk somewhere (can be in a DOS partition) and takes its info from that. Of course, bootstrap will also have to understand your Linux filesystems and a.out format, as will any Unix server you want to run. Whew. Good luck, you'll need it. I know, I've been there. :-) Jaime ............................................................................ : Stand on my shoulders, : jds@cs.umd.edu : James da Silva : not on my toes. : uunet!mimsy!jds : Systems Design & Analysis Group Article: 4237 of comp.os.mach Newsgroups: comp.os.mach From: jlr@usoft.spb.su (John Lynn Roseman) Subject: Re: Availability of Mach 3.0/development system Organization: UrbanSoft AO (St-Petersburg) Date: Sat, 23 Apr 1994 15:33:00 GMT Message-ID: Lines: 85 Sanjay Lal (lals@ecf.toronto.edu) at 22 Apr 94 16:35:19 GMT writes: > I was wondering if there is a Mach Development system fot i386/486 > based on Linux or someother UNIX like OS? If not is it feasible > at all to do this?? I cant afford a UNIX source liscence!! This is definitely feasible, and it could have a big impact on the free software movement. Today only a few people have the opportunity to contribute to the Hurd, because the development environment requires a UNIX source license. With a free UNIX single server, the Hurd could benefit from the open model which has proved so successful with Linux. Derek Upham (upham@cs.ubc.ca) wrote (in gnu.misc.discuss on 10 Apr 1994 15:06:44): > The Unofficial GNU Hurd FAQ, Version 0.4 > . . . > there is a > private (invitation-only) list for developers to coordinate > their efforts. It's not even worth thinking about unless you > (a) have a lot of free time on your hands, (b) know Unix > internals and Mach very well, and (c) have a proper machine. > > A proper machine'', at the moment, means an x86 box running > Mach 3.0 with some sort of Unix single-server running on top. > The OSF/1 operating system is one such single-server, and the > CMU Unix single-server is another. Both cost money. David Becker (beckerd@cs.unc.edu) wrote (in gnu.misc.discuss on 22 Mar 1994 15:43:18): > What you really need is a unix server. Mach for the i386at architecture is > free from CMU but the BSD unix server requires a unix source license. > With USL-BSDI suit settled, the BSDSS server may be rereleased for > free. Furthermore, we have e-mail from someone at the Helsinki University of Technology who has written a single server based on BSD UNIX and is ready to release it as free software as soon as 4.4 BSD Lite is released by UCB. Meanwhile, on the Linux side: Louis-D. Dubeau (hallu@info.polymtl.ca) wrote (on Fri, 17 Dec 1993 03:04:17 in comp.os.linux.development): > Yep! The Linux-ss team is working to port Linux to Mach and therefore we have > build Mach on Linux. The Mach sources and tools are at mach.cs.cmu.edu. It won't > compile out of the box though. I and other member of the Linux-ss team have made > some paches to Mach to make it compile and boot with Linux. Unfortunately, the > patches aren't available yet but they will soon. (The main reason why my patches > are not yet public is that I'm in my exams period so I don't have much time > now.) > . . . > | Louis-Dominique Dubeau > |Computer Engineering, Ecole Polytechnique de Montreal (Montreal, Quebec) > | --- Linux single server project --- > | mailing list: linuxss@info.polymtl.ca -- requests: linuxss-request > | alpha code at info.polymtl.ca in incoming/linuxss (use it at your own risk) > | -> This sentence is false!!! <- So, as far as we can see, the status is this: The BSD people have the expertise to write a Mach single server, and have already written at least two of them. But they are sitting and waiting for the release of BSD-Lite, and no one is sure when that will happen. The Linux single server project was begun by someone in Canada. They apparently were able to compile and install Mach from Linux, but their effort seems to be in limbo now. The resources to write a free single server exist, but they are dispersed over several different newsgroups and mailing lists. If the experience and energy of these groups were combined, a free Mach development environment could become a reality. The question is: Where is the right place to conduct this effort? comp.os.mach, comp.os.linux.development, comp.os.386bsd.development, gnu.hurd.help? Or maybe a new newsgroup like comp.os.linux.mach or comp.os.mach.bsdss? -- John -------------------------------------------------------+ UrbanSoft AO info@usoft.spb.su | -- Shrink-wrapped GNU and public domain UNIX software | -- Custom TeX and PostScript programming by e-mail | -- Database documents, standard forms, directories | Article: 4257 of comp.os.mach From: spj@ukelele.gcr.com (Guru Aleph_Null) Newsgroups: comp.os.mach Subject: Re: Availability of Mach 3.0/development system Date: 26 Apr 1994 12:49:48 -0400 Organization: /usr/lib/news/organi[sz]ation Lines: 50 In article , John Lynn Roseman wrote: >spj@ukelele.gcr.com (Guru Aleph_Null) on 24 Apr 1994 13:02:20 -0400 wrote: >> We really do need a free Mach development environment. There must be >> a conspiracy somewhere, you'd think there would be one by now. :) >Blame the AT&T/USL/Novell lawyers. And the decision by the FSF >to rely on a non-free development environment for the Hurd. That decision probably was the only choice they had for developing the Hurd. I think that's the only "developement environment" available for Mach 3.0. Now it looks like Novell's going to put out its own Linux distribution and give Linux a boost in recognizability in the Real World. (Expose) >> and comp.os.mach.bsdss is too BSD-centric. :) >Maybe what we need is something BSD-centric. >A free Mach single server would probably have to start with an >existing free UNIX. So it seems the options are Linux and BSD. >Even though Linux may have more users and more developers than >BSD386, my impression is that a Linux single server is far from >reality. BSDss already exists, so it would just be a question of >isolating and rewriting the code segments which are not already >free. Alpha code for the linuxss is in aiken.info.polymtl.ca:/pub/linuxss. They're using CVS to manage the sources which knocks me out of contention for trying to help until I get some more disk space. :) They are including an older bsdss (free apparently) and some other servers for people to look at. >By the way, does comp.os.mach.bsdss already exist? Our local >news server does not carry any sub-groups under comp.os.mach, >but they would probably add them if we asked. I don't think I made it clear that I was speculating on the creation of such a newsgroup(s). I got mail about this and he brought up a good point that the number of messages posted to comp.os.mach weekly usually can be counted on one hand--- he didn't feel that we needed to bother with creating a comp.os.mach.* hierarchy. But I feel differently, I think there's a big "vacuum" waiting to be filled, and just these messages here will probably trigger a firestorm of interest in such an environment. >-- John -- .---------------------------------------. MS-Windows and Form 1040A are respon- |Guru Aleph-Null spj@ukelele.gcr.com|%sible for lowering America's GNP by `---------------------------------------'#wasting more person-hours than all %#######################################%of the lawyers combined. --proverb