.. moving an offline discussion between me and Gerardo Richarte onto the SqueakNOS mailing list in case others are interested too. We're talking about bringing up SqueakNOS (and NOSen in general) on top of the OLPC XO's Openfirmware (a small Forth OS).
2008/9/21 Gerardo Richarte gera@corest.com:
My ugly (http://lists.squeakfoundation.org/pipermail/squeak-dev/2008-September/131609...) implementation of the callout mechanism is working!
I can do "interpret"("nand:") for example, and it works :)
Cool :-)
now, I ran into another problem, and I think this is a real problem: I have two (actually three) different memory managers at this point:
Is there an easy way that when starting Squeak you can allocate all the memory you will ever need (e.g. 95% of system memory) for the Squeak heap and runtime system -- and then keep all your own memory allocations inside that and make OFW happy with the leftover 5% that it can keep for itself? (Just an idea.)
I've been reading over the C "client interface" towards Openfirmware. The Firmworks manuals are not freely available (and I'm having some trouble buying them) but it turns out to be documented in the IEEE Openfirmware specification -- I didn't think IEEE docs would be on the 'net but happily this one is: http://www.complang.tuwien.ac.at/forth/1275.ps.gz
The client interface offers a well-defined interface for opening devices and making calls into their drivers' methods. That's probably just a bit neater than calling into INTERPRET with fragments of Forth source code (and if you want to use custom Forth code you can always load some new methods on the devices presumably).
More later :-)
Squeak's (Garbage collection, for which I "allocate" all available memory starting at 1MB) SqueakNOS' native memory mamanger (nothing really, just a static pointer that's incremented on avery alloc() and never decremented)
and now, Forth's (OFW's) allocator, which I think, interferes and clashes with the Garbage collector (it returns objects inside the Object Memory, but this objects are not allocated from Squeak, so the memory is actually used independently by both at the same time). This will very easily crash the system (and does as soon as I want to open a file).
So, this is a problem I have. Not sure if you'll have it (for example, you could directly relay EVERY memory allocation to OFW, and let it manage the memory for you... at least to start with).
richie