|
From: Ricardo Q. <ri...@ve...> - 2001-09-09 17:38:23
|
On Sat, Sep 08, 2001 at 01:39:48PM -0300, Gerardo Richarte wrote: > 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 add native support for video, it is rather difficult, since you're in protected mode. One way would be, to do it the X-Free86 way, but anyway, I like the challenges :) For the disk support, I think the easist approach would be to add support for IDE drives. I dont know if SqueakNOS will have block & char devices a la UNIX way, or not. I know nothing about IDE drives, but I beleive that a lot of IRQ handling and I/O ports would be needed. (Is DMA needed for Disks ?) > 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) I like the idea of doing a generic compiler. I didnt understand well the part of the CompileMethod and the JIT :( ( I'll ask you tomorrow ) > 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... I have some experience working in network device drivers, and that. So, I like the idea of working in a network layer. > > 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. I really dont know the magnitude, but I imagine that the most important part would be the desing to approve the course. I think that the implementation need not to be finished, but, although we can approve the course with an unfinished implementation, I would like to continue with it until it is finished. So I dont care if the implementation would take 6 months. >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? I would like to do any of the projects. I need some more information for the device drivers, like what layers do plan to have (eg: network device driver, protocol device driver, block or char, a I/O manager and IRQ handling, or I dont know what ) For the asm/C compiler, I more or less know what you want, but I dont know the part of the NativeCompile. > Projected Bye! > Richie Thanks, riq. -- Ricardo Quesada |