Ken Dickey on a new OS...

Kenneth Dickey kend0@earthlink.net
Fri, 12 May 2000 17:25:46 -0700


Francois-Rene Rideau wrote:
...
> > My major concerns about such a project are:
> > ...
> >   * Target/Vision/Coherence issues
> >    (How to narrow goals and strategies
> >    to what can be accomplished with resources at hand).

> Target is what I lack. Vision and coherence I have.

[restating the obvious..]

I find that converging on and working toward a specific 'target' goal set clarifies a number of concrete details and exposes design problems.  Starting from a 'taproot' system which can be generalized has an advantage in growing communities of users & developers from a working base.

E.g. pick an under $200 hw computing platform with enough horsepower but limited runtime resources (PlayStation 2, single board computer, other) and work on the UI (from the top) and the TUNE (from the bottom).  Start with a dynamic system, develop/adapt a good IDE => fast mutate/learn/update cycle [make mistakes faster and cheaper than anyone else].  The substrate should be stable enough early on to allow rapid learning and having a coherent target means that the momentum converges rather than going 'brownian'/random.

> >   * Technology reuse/leverage (Not being able
> >    to do everything from fundamentals,
> >    how to converge on and leverage what is there
> >    and how to energize/grow/leverage existing communities;
> >    where to contribute, how to grow).
> I think that this problem comes second,
> it's all a SMOP (simple matter of programming)
> and that the free software development model mostly solves it:
> "develop on demand, if it scratches you, or if someone pays you".
> The BIG problem is to build a usable initial core.
> I like the way Pliant does things on top of linux|windows.

I guess the questions I have are: "How does what you want differ from the closest already available approximation?" and "How can you make use of the user community which supports this?".

[Obviously, I do not yet have a concrete mental model of what you are proposing].

 
> As for "doing everything from fundamentals", it IS possible:
> there is the OS kit (as used by Olin Shivers with SMLNJ to obtain ML/OS),
> and there is clementine (will it be released as free software this year?).
> Even if clementine isn't released, it shows that even hardware support is
> SMOP, and can be benefit from modular and reflective design.

I have been part of a number of development efforts/communities (e.g. in Scheme/Smalltalk/Dylan/...) which have been taking various fundamental approaches for a couple of decades now, which is why I am open to "radical rethink".  However, I was trained as an engineer before getting into CS and I tend to reach for existing solutions, particularly those which have done significant work, have a research/developer community (injecting new ideas) as well as a user community (beating the ideas into shape and throwing out the ones that don't work).  Again, my questions are "what am I trying to achieve?" and "how do I get there with the lease work/resource?".  If I can leverage, what specific missing fundamentals are required to get ahead?  What problems are there that need to be eliminated?  [Do I really need to build from scratch?  It is fun, but it is also a lot of work.  What is the requirement which drives this "ground up" approach?].

It _does_ take a long time to build a dog from amino acids..


> >> If you feel like it, I'd happily offer the task to you...
> > I have the background but at this point I would have to be paid
> > to do the work.
> Hum. Would you be available in one year from now, when I find funding?

Probably--if I am not already working on such a solution (perhaps in another context).


> >>> - SELF CENTERING (homeostatic)
> >>> - SELF DESCRIBING
> >> I call tend to put all that under the concept "reflection".
> >
> > My concept of 'reflection' does not quite cover this.
> > I tend to think of reflection as a low-level implementation
> > substrate/strategy.
> I guess you're right. However, I think it's precisely the
> implementation substrate that enables dynamic self-{center,describ}ing.
..
> That's essentially reflection at the high-level
> (instead of just at the bit-diddling level as in Java).

I have looked through various docs (arrow, etc.) but my experience is that the more abstract things are, the more concrete the examples must be to illustrate what is going on.  I tend to learn well from examples.  Can you point me to more specific examples/docs which illustrate the higher-level reflective capabilities you are referring to?  [I am familiar with computational reflection/reification and somewhat with "machine learning" technologies but less familiar with specific AI ontologies which are computationally tractable/efficient with small resource consumption.  I'm a bit out of date w.r.t. the ai research literature.].


> The ability for the user to dynamically define or select new
> low-level implementation strategies is thus essential to achieve
> a universal system, one that can _express_ solutions to all problems.

It only needs to express problems that most people are interested in. ;^)

Again, I am most interested in meaningful, useful solutions for ordinary people.


Cheers,
-KenD

=============
First things first.
But not necessarily in that order.   	Dr. Who