Update of /cvsroot/wisp/wisp/users/pisi/winix
In directory sc8-pr-cvs1:/tmp/cvs-serv5882/winix
Added Files:
README.winix
Log Message:
initial import
--- NEW FILE: README.winix ---
Winix.
!!! BIOHAZARD !!!
Winix is experimental! The Beast can harm your computer!
* What is Winix?
Winix is my experimental project to bring Scheme (clean functional logic)
and *nix (hierarchical filesystem, processes) closer together, and use best
of two worlds. To be more exact, Winix is a hybrid of Wisp and Linux kernel.
No support for other schemes or unix kernels is planned.
* Why such a stupid name?
I like it. Don't ask. Think on: Wisp, *nix, Minix. And of course Win(dows)
and (os) IX.
* What it does?
The main objective is experimentig with Wisp on top of Linux kernel.
I achive it by replacing the traditional init process - the parent of all
other processes - with Wisp. There's no more init.d nor rc.local. To make
practical of such Winix system, Winix sets up an environment that allows
you to continue using your linux box like nothing had changed - except startup
procedure.
Winix makes use of a startup that follow make style dependencies (although
not using make). See [RefDep1] for some additional thoughts on this topic.
Each facility provides a moudele other modules can depend on - something like
package managers do with packages.
Winix tries to be FBC compatible, modular and tunable.
* FBC
FBC (Fcking Big Computer) is a word. Nothing else. Or... hell knows.
Terms FBC and FBN relate closely to each other - connected FBC-s sontruct
a FBN (You Know What I Mean). A FBC is a node of a network (graph), that
can perform some logical operations (have a processor and ram), communicate
with other FBCs (nodes) of the FBN (graph) using network links (edges of the
graph). There are FBC-s with different tasks, but they all have the same basic
modules:
fbc.processor - the 'computing node'. This module deals with hardware,
devices, /proc filesystem, time, random, sysctl configuration etc.
fbc.network - initalizes networking (flushes iptables, brings up networking
links)
fbc.storage - a node must be able to store information. Either on local
or remote filesystems.
Note: there are slight problems with classifying instructions for
pppoe connections (that require storage) or NFS root systems...
After FBC is up and running, a host application is executed. For Winix it's...
* SMN
SMN is a set of selected functions a FBC may have in a certain FBN.
Basically there are three of them at the moment:
Server - a bare fbc with no fancy devices, only services.
Client - a fbc with possibly some strange devices. smart client. compare to
plan9's terminal [RefNet1]
Workstation - mixture of both.
NOTE: UGLY.
At the moment there's only a client setup. A client at the moment can deal
with:
smn.client.in.kbms - mouse and keyboard
smn.client.out.visual - xfree and xfs
smn.client.out.audio - tunes audio using aumix
Finally.. a bash script is executed that brings up windowmaker on my system.
The system is tunable using windowmaker menu.
You can:
1) turn the fbc node off (what means bring down the smn.client portion before
turning the system off.
2) reset the fbc - turn off smn.client and fbc, then restart
3) softreset - turn off smn.client (basically all user software) and restart it
4) reload - reload 'winix firmware' without (?) terminating any user program.
* How can i try it?
Consult INSTALL.winix for manual installation instructions. Work is going on
to put this beast on a bootable cdrom for easy transportation and installation.
Consult README.beast for instructions for creating an ISO image of The Beast.
Other booting methods (USB flash drives etc) is considered, but not worked on.
For some thoughts read [RefBoot1] and [RefBoot2].
REFERENCES:
[RefDep1] http://lnx-bbc.org/bbctools3.html - minit: a make based init.
[RefBoot1] http://lnx-bbc.org/bbctools1.html - linux on a small cdrom.
[RefBoot2] http://www.knopper.net/knoppix/index-en.html - a bootable linux cd
[RefNet1] http://www.cs.bell-labs.com/sys/doc/9.html - plan9 and
different specialized nodes of a network.
* to be continued...
@(#) $Id: README.winix,v 1.1 2003/02/08 23:55:16 pisi Exp $
|