LLL: Re: More thoughts
Mon, 31 Oct 1994 16:16:29 -0800 (PST)
On Mon, 31 Oct 1994, Andy Thornton wrote:
> Virtual Processor
> ... I would suggest that any extra
> registers on the host processor be used as the top entries (the most used)
> of the stack which should speed execution.
Bingo! You're on the same wavelength as me.
> I would discourage the use of multiple code versions in a single
> executable - it seems at odds with the philosophy of "one binary for all"
> which is so central to the project. Also if these objects are to be
> migrated then keeping the size down is an important consideration.
> High Level Language
> The argument that this has to be portable holds no water because we have
> the virtual processor for portability so we can use any language that we
> want. If we want to get the system widely accepted then a range of
> application programming languages must be catered for and I would be
> inclined to avoid tieing ourselves to tightly to any particular
> language's object model.
That's our argument for making PIOS a foundation piece of software.
MOOSE can sit on top and provide one flavor of OS. But I would like to
encourage others to experiment with their own high level OS "flavors".
> Real Processor Interfacing
> We should have some kind of system for identifying the specific strengths
> of each real processor in the system - ie. if the processor supports
> floating point in hardware. Some indication of the speed of the
> processor and it's current load is also required.
I proposed that each tool box come with a very small tool exhibiting the
larger tool boxes behavior, a sort of benchmark tool. The OS could
sample the speed of this code snippet to determine which processor
performs the best.
> If we intend that the micro kernel should be compiled down to the virtual
> code we will need some form of boot strapping translator to get us a
> running kernel - it's a bit of a chicken and egg problem...
I think we can make the microkernel so small that it will be programmed
in C (arguments pro/con) and a little assembly HAL. It will basically be
a loader and compiler/interpreter, task switcher, and some other very
basic functions. I want to move as much as possible out of the kernel,
including the kitchen sink.
Let's see how small we can make it.