[SqNOS] ColaNOS

Luke Gorrie lukego at gmail.com
Mon Sep 22 17:43:09 UTC 2008


.. 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 at corest.com>:
>    My ugly
> (http://lists.squeakfoundation.org/pipermail/squeak-dev/2008-September/131609.html)
> 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
>


More information about the SqueakNOS mailing list