|
From: Gerardo R. <ge...@om...> - 2001-09-10 02:04:34
|
Hi riq!
> Currently I'm taking a course of Object Oriented Desing at the university,
> and we have to do some work of desing + implementation.
Right now SqueakNOS knows how to boot and start a standard Squeak
image. It has PS/2 mouse, serial ports, and keyboard support all done in
Squeak, with just a few primitives (I/O ports, and IRQ "hooking").
We only have one video mode, 630x480x4bits, and it's set before
starting Squeak), we want to do it all from Squeak, so our next steps will be
better video support, from Squeak, and hard Disk support from squeak. With that,
we are planning to use a Squeak persistence scheme that Valeria and Leandro
are doing, we think that we won't need any FileSystem support, or that we'll
need it just to be able to access external information.
To compile SqueakNOS we need a linux system, with gcc and all that
stuff, a huge project would be to write a compiler that can produce native code
from Squeak slang and from assembler (right now x86), one that is able to
compile SqueakNOS' VM and bootloader, there is something already done by
Hans Martin Mosner, I think, not complete, just a starting point. Another way to
aproach this problem, would be to implement a native CompiledMethod, and move
all primitive (first manually) to this NativeCompiledMethod, then, with a JIT (to
native) compiler we can replace the primitives with native code without having to
recompile all the VM, just the part we need. This are two huge projects, but can
be divided in smaller functional and usefull units.
An assembler is a first step for both of them. You can focus on making the
native code production in such a way that'll make it easy to generate code for
any microprocesor (given the instruction set), or you can focus on making the
input so it's easy to add support for another language (such as Smalltalk or C or
perl, not only assembler)
There are a lot other things that need work, I'm not sure what kind of
project do you need to do...
For example, we know that the DeviceDriver scheme needs some work, and
we need a lot of DeviceDrivers, like Ethernet Cards or Sound Cards, Hard Disk
Controllers, Floppy Disk Controllers, etc, etc. We also know that we'll need
DMA to do this, we don't know if the speed we'll be enough to do everything from
Squeak, we'll find it out though...
We are in a very early stage, almost everything that must be done is
attached to the hardware. I don't know the magnitud of the project you need to
do, but probably, you'll need a thing big enough to need some design, and small
enough to be done in a semester. A lot of stuff is already done in squeak, like
windows managing, process scheduling, etc... what we need to do is take closer
this two worlds, the low level world we are building for SqueakNOS, and the high
level world that's already in Squeak. This doesn't mean that there are not high
level things that need to be done, just that we aren't able to see them now (and
we don't want, untill we are a little closer).
Does anybody has another ideas?
Projected Bye!
Richie
|