project status

Basile STARYNKEVITCH Basile.Starynkevitch@wanadoo.fr
Sun, 30 Aug 1998 21:51:04 +0200 (CEST)


>>>>> "David" == David Manifold <dem@pacificrim.net> writes:

    David> OK, I'd like to request a project status report.  I want to
    David> make two lists:

    David> 1. What everyone is working on for TUNES. 

I (Basile STARYNKEVITCH) am working on my spare time only on KUT, a
Kernel Usable for Tunes. 

Of course, I did'nt go far yet!  Current KUT snapshot is available
(usually I change it every night) on
"http://perso.wanadoo.fr/starynkevitch/basile/kutsnap.tgz" (a 70Kb tar
gnuzipped file, about 2000 lines of source code).

The only goal of KUT is transient: code a minimal operating system
suitable for bootstrapping the Tunes project. Essentially, this means
a kernel running only in ring 0 protected mode, no user (ring 3) code,
and a Scheme interpreter inside the kernel.

Eric W Biederman <ebiederm@inetnebr.com> offered some help and
suggested me in a private mail 

    Eric> The fastest way I can imagine getting this working is to
    Eric> take a linux (or other open source) kernel and stripping it
    Eric> down to just what you need.  And building your interpreter
    Eric> upon that.

I (Basile) replied to him:

The problem with current Linux kernel is that they are really too
big. I'm definitely not a kernel expert (although I believe I know
linux quite well -eg I know many syscalls- but not from inside the
kernel [but I did read Remy Card's book on Linux 2.0 internals]

Perhaps I should take a VSTa or TINOS kernel and strip it.

On the other hand, coding from scratch is hard, but I feel I
understand my code. And KUT has a pecularity that other systems don't
have: 1) it runs only in 32 bits protected ring 0 mode (all kernel, no 
user application code, no system calls) 2) it is transient by nature
(once Tunes is bootstrapped KUT becomes useless) so don't need good
performance. In a certain way, KUT is more a 32 bits BIOS (but these
are not opensourced!).

    David> 2. What things we are looking for help on,

I won't answer for the TUNES community, but more selfishly for myself,
while I'm trying to code KUT.

First, I really need some encouragement regarding KUT. Is KUT a
reasonable way to get TUNES working? I'm not sure! Perhaps starting
from VSTa (or TINOS) might be easier. (starting from a Linux 2.x
kernel seems really much too hard for me). However, KUT should only
run in 32 bits ring 0 (no tasks no user application code) so have a
big pecularity.

Second I now need some help by a PC hardware expert. Probably, I made
stupid mistakes in my code, but I have a bizarre problem in KUT:
interrupts. Catching an INT3 interrupt (from an INT3 instruction) is
OK. Catching timer interrupt is strange (it seems that I am getting
timer interrupt all the time, even when asking a slow clock tick). But
I don't catch any keyboard interrupt. If you have a few minutes to
spare, try looking into my code (comments and name are in english) to
give me some help. I believe my problems are stupid, and I might fix
them soon, but I'll appreciate some help now!


Third, and this is a more general concern, I think that we should
define what a minimal TUNES should be. Our main concern should be to
say what TUNES should not contain at first.

Nearly 10 years ago, I wrote a [bad] PhD thesis on reflective system, 
and deciding what should *not* be in it was a major problem [both
psychological, since we all want our system to be everything, and
technical, since defining the minimal base to be able to *easily*
bootstrap itself is still a challenge].

Same apply to KUT; what kernel feature are useless for KUT & Tunes?

Regards.

NB Is Faré working on some great ideas, or is he in vacation?

--

Basile STARYNKEVITCH - 8 rue de la Faiencerie, 92340 BOURG LA REINE (France)
tel 01.46.65.45.53. mél = basile point starynkevitch at wanadoo point fr
boulot=work= basile point starynkevitch at cea point fr