New OSKit 0.96 released and a "Scheme machine"

Also, check out the the appended msg: a grad student from Rice who had never before seen the OSKit built a Scheme machine in five hours! Good luck and please let us know of interesting uses and good and bad feedback and fixes -- to both code and docs. We really don't know how easy it will be for people to use this newish COM stuff, which is needed, but a bit more complicated than the simple old libraries. --------- From: Jay Lepreau <lepreau@cs.utah.edu> Message-Id: <199812190458.VAA28969@mancos.cs.utah.edu> To: oskit-notify@lux.cs.utah.edu Subject: The OSKit 0.96 is released Date: Fri, 18 Dec 98 21:58:09 MST Go to http://www.cs.utah.edu/projects/flux/oskit/ and follow your nose for all the goodies. Briefly: it's up to 30 component libraries now, comes with 45 example mini-kernels, a 500 page (help!) document with few blank pages anymore (although still lots of gaps in it), can be configured with full multithreading and Posix threads, has prototype CPU inheritance scheduling in it (5 policies including 2 real time), has a hierarchical network link-sharing component, has a "simple virtual memory" component including pageout. Has most Linux and BSD filesystems, several networking libs, the full FreeBSD C library (which means most of Posix), lots of device drivers (perhaps 60), profiling support, and some minimal video and window manager support. A currently inelegant but useful component lets you run many kernels on Unix in user-mode, which is great for debugging. Most components now use the COM object model, which is a first in internal OS design. Just about every component is optional, and unlike any other OS, is designed to fit into *other* operating systems and environments if desired. Of course the OSKit's got problems, too, don't we all. There are a ton of things that it needs. One nice thing in that regard is that it's easy to incrementally add to the OSKit. Let's do it! Re licensing, the OSKit comes with full source, and is GPL'ed; "open source" is now the "in" term apparently. If a business or someone has trouble with the GPL, the University is willing to talk about other options. As a special holiday bonus-- for such patience on your part-- this release supports a version, which we provide, of the Kaffe OpenVM (Java to you) from Transvirtual. Thus you can link them together and you've got Kaffe on the bare HW, or with a configuration change, you can run the same "Java OS" on top of Unix. Our Kaffe changes will go into the next beta release. Thanks to Tim Wilkinson and his company for giving Kaffe to the world. We are grateful to the long line of free software projects from whom we drew code, including Mach, Linux, FreeBSD, NetBSD, and XFree86. The GNU build tools were, as always, invaluable. DARPA's support has been great. Finally, I want to thank and acknowledge the fine team at Utah that has accomplished so much, and with whom I have the honor to work. Check out the CREDITS file for their names. Jay Lepreau University of Utah lepreau@cs.utah.edu ----------------- Date: Sat, 19 Dec 1998 13:32:36 -0600 (CST) From: Matthew Flatt <mflatt@cs.rice.edu> To: plt-design@cs.rice.edu cc: lepreau@cs Subject: MzScheme kernel MzScheme 100/21 is now available in kernel form for x86 machines. In other words, MzScheme can run as a stand-alone OS on your PC. Practical? Perhaps eventually. For now, it's just fun. The MzScheme kernel is based on OSKit from the Flux group at Utah. Coverting MzScheme to a kernel took about 5 hours, most of that being the time to understand various aspects of the OSKit. I spent an additional 2 or 3 hours making MzScheme run as smooth as it does, but a little more work is needed (as described below). A LILO-friendly kernel is now available (on cs at Rice): /home/mflatt/zMzScheme To install the kernel on a machine that already has Linux: 1) Copy zMzScheme to / (or wherever you want). 2) Edit /etc/lilo.conf, adding image=/zMzScheme label=mz root=/dev/hda6 read-only but change /dev/hda6 to be whatever is in your image=/boot/vmlinuz-2.0.32 line, and adjust the path in the image=/zMzScheme line if you didn't put zMzScheme it in the root directory. 3) Run `lilo' within Linux. 4) Reboot. 5) At the lilo boot prompt, type "mz" and hit return. 6) Evaluate MzScheme expressions to your heart's content. In principle, you don't even need Linux, and I can supply a kernel in multiboot format if anyone wants it. (So far, I've only learned to start kernels via LILO.) The current MzScheme kernel is missing a few useful features: * No useful filesystem support. It looks like it's easy to support any filesystem that Linux supports, and I'll wire things together sometime. Meanwhile, when you start the current MzScheme kernel, you get an empty filesystem. You can create files and directories, but they're stored in memory, not on disk. * No TCP support, yet. That's probably also straightforward to add. * Reading from stdin blocks all MzScheme threads. This seems to be a limitation of the OSKit's default stdin support (no non-blocking reads on stdin, and select() always claims stdin is ready to read), but if so, it looks like MzScheme can talk to the console directly to fix the problem. Matthew ---------