Reflection

David Jeske jeske@home.chat.net
Sun, 3 Jan 1999 10:13:49 -0800


On Sun, Jan 03, 1999 at 10:28:55AM +0100, Anders Petersson wrote:
> All that in the kernel? No way. That rules reflective kernel out. Besides,
> I see no need to have all that in the kernel to replace it without rebooting.

I believe you have misunderstood. His statement was that in order to
make a design like linux reflective, you might do that. However, if
you have a better orginization, you arn't going to have 'a linux
kernel with a compiler built in'. I think his example of putting a
compiler into the linux kernel wasn't a good one to express the idea
of reflection anyhow.

> >Sounds good so far.  Just consider the above example for mOS, instead of
> >Linux, and you will get an idea of what you are up against.
> 
> Keep your reflective hands off mOS. :) We're aiming for a small-sized
> kernel, not a reflective giant.

I certainly wouldn't advocate making the kind of system Tril is
advocating by 'writing a kernel and throwing a compiler into it'. He
was just presenting an analogy. The idea is that the system should
have enough information to understand itself and it's own
data-structures. See the post I made for what I think is a more
concrete example.

> >Remember, every system has reflection.  It's just how long the road is
> >(and how bumpy) from one system to the changed system. 
> 
> Don't forget that there's a prize for everything. Will the advantages with
> good reflection weight heavier than the disadvantages? (I bet you answer
> "yes"...)

That depends on whether you think it's important to have many
components work together, whether it's important to truly reuse
software components. Think of reflection as the idea of 'keeping
around all the meta-information you can' about objects/code, and
making sure the system can modify/replace things at any time. I gave
examples of how current systems are incapable of this and how you
might make them more capable of this in my post.

-- 
David Jeske (N9LCA) + http://www.chat.net/~jeske/ + jeske@chat.net