|
From: Alan G. <ala...@st...> - 2002-11-15 05:11:43
|
I have a renewed interest in ulta-light and highly customizable operating systems so I came to join this ML only to discover, to my horror, that I was already a member. This is horrifying because there has been so little trafic that I had forgotten I had subscribed, probably quite some time ago. =((( Anyawy, I am putting togeather a dual-athlon purely for develment and it will be on the net for as long as I am (most of the day!) so it will be a very good develment platform as I predict multiprocessing will become the dominant paradigm in the coming years. (just ignore the fact that it will have only 128 mb of ram and 850 mb HD for the forseeable future ;). My thinking on how to accomplish the SNOS has arrived at the concept of a "Hardware Abstraction Layer" that has been used by Micro$oft for some time... A hardware abstraction layer is a system of software that provides "Mechanism not policy" to the higher level code. I propose a general hardware abstraction layer based on the language C-- and the L4 microkernel. C-- is being developed with some backing from M$, It is a varriant of C that is optomized as an intermediate form for high-level languages which today have to rely on the obscene GCC compiler. It is intended to be a "portable assembly language". -- Perfect for what we need. I propose that we develop C-- instead of going streight to machine code because I want the HAL to be multi-purpose, supporting anyone's language system instead of just Squeak, most notable of which the interpriter that I plan to write as a part of my AI project. A C-- complier can be bootstrapped as follows. The current Smalltalk > C compiler can be converted and optomized to C-- with not too much effort. Then we will need to produce an optomizing (hopefully paralellizing!) C-- > Object code compiler in Smalltalk. To get the machine-level binary we do this: Compile the compiler with the smalltalk > C-- compiler then inspect it for errors. Then we use the smalltalk version of the C-- > object code compiler ON THE C-- version of the same compiler to produce the machine executable. Next we take Fiasco or some other L4 varriant and then convert it to C--, and do the same with a de-cruftified GRUB (or possibly a Multiboot version of Minix's superb boot monitor). We'll also need linkers and ports of Bison/fLex, and whatever other tools belong in the HAL package. This, a few other utilities, shells, and drivers will give us 1.0. =) This is a bit more ambitious than what Squeak NOS has been about before but it will give the world a solid HAL that, by all rights, should send Linux to the dustbin of history... =))))) I have been having some nightmarish dealings with the USPS (I'm out $140) but I have bought some cheap temporary ram that will, with a great deal of luck, boot my develment box and put me in business. I plan to install BeOS on it and provide anyone who wants to help me with my projects access to it. |