No subject

Francois-Rene Rideau rideau@clipper
Fri, 9 Dec 94 22:56:10 MET


>> unless it relied heavily
>> on segments, which it won't, as segments are so slow and costly, and bring
>> not much.

> I'm curious why you say segments are costly and slow?  And if you don't 
> use segments, how do you isolate processes from each other without using
> the built in mechanisms provided by the CPU (in this case 386), and still 
> be quick?
I meant using segments as the basis of protection mechanism: this would mean
every memory pointer manipulation would involve a system call for the modifier
and a segment loading for the reader. All this is *quite quite* costly and
slow. Moreover, it allows only contiguous memory. I say: no ! Either have
programs proved secure, or isolate them from the system.

Segments will no more be used in our i386 system than they are in Linux,
OS/2 or any such OS. They'll be there just to allow the system to exist on the
hardware. (that *requires* a GDT) but not *anything* more. Not only wouldn't
that be compatible with other hardware, but it would be slow, and unpowerful.


>> Unix semantics suck, because they are expressed in C;
>> there thus can't be any kind of security or intelligent error recovery
>> under Unix;
> 
> Not true, it is a poor craftsman that blames his tools.
> 
  It is a poorer craftman even, who believes he can do as well with his stone
tools and curved boards as an engineer of the computer ages with his laser-
precise tools.
  Under Unix, you *can't* build a crash-proof persistent system, but by
accessing directly an uncached device (if it exists), that is if you rewrite
the logical disk access layer (which is not using Unix, but developping a
new tool). You can't have real-time response, but by using select() and
signals, and *hoping* nothing wrong will happen. Anything you can't do simply
with C, you can't do with Unix. Any higher-order operator is just impossible
under Unix (but not under systems built on top of Unix).



> There are advantages to writing as much as possible in the highest OO 
> language, points which I do not have to argue here.  But in the mean time 
> we need to work on some low-level implementational stuff, and since 
> machine and next up assembly are not as easy to work in as C, I advocate 
> C to write our bootstrap stuff in.  It is very portable, I have an 
> excellent development environment (Borland C++ 4.0), and we are not 
> anywhere near having a spec for our HLL.  We can always rewrite it later 
> in the HLL (or LLL).

I propose using assembly (on POSIX systems, that's indeed C; but on PCs,
that's i386 assembly, not BC++) to implement the LLL. Then, use the LLL to
implement the HLL. C/asm will only be for device drivers.

--    ,        	                                ,           _ v    ~  ^  --
-- Fare -- rideau@clipper.ens.fr -- Francois-Rene Rideau -- +)ang-Vu Ban --
--                                      '                   / .          --
MOOSE project member. OSL developper.                     |   |   /
Dreams about The Universal (Distributed) Database.       --- --- //
Snail mail: 6, rue Augustin Thierry 75019 PARIS FRANCE   /|\ /|\ //
Phone: 033 1 42026735                                    /|\ /|\ /