Computing freedom (was: a no-kernel system)

Francois-Rene Rideau rideau@clipper
Tue, 3 Jan 95 17:50:57 MET

> I'm sorry it's taken me so long to reply, The holidays have taken their 
> social toll.
> On Wed, 28 Dec 1994, Francois-Rene Rideau wrote:
Firstly, I wish you all a happy new year.

Now, here I reply to Mike.
> A program is made of modules.  But you are not thinking distributed if 
> you assume the modules are local.  You could view html as a programming 
> language.  If your next "module" is in Finland over a dial-up, I'll 
> gaurantee that home-page with a full color picture of Finland will be 
> slow to come up.  And please refrain from implicitly calling others 
> stupid.  Please give me the *easy* solution to the real *distributed* 
> problem.  
   Easy: have multiple copies of a same (read-only) object distributed
everywhere as needed ! It's a *wrong* assumption to think that every
object should lie in only one place. That html be implemented this way
only shows that html was conceived as an amateur concept to show how a
WWW was possible, not as it could be done efficiently. See Xanadu for
such projects, or Amoeba papers about how existing distributed systems
do manage multiple copies of read-write objects through a centralized
referee. Of course, using read-only objects when possible allows to
spare net and time resources used by such referee system, while
independent r/w objects should have independent referees.

  So I stick to my "software shop" view of module availability for all
those modules that can be copied indefinitely becuase they are read-only.

>>> You can only afford very small computers (embedded).  When you're fighting
>>> over a wasted byte, who can afford to support multiple standards?
>>> One thing you forget is the nature of businesses to support everything so
>>> their users don't get pissed about a particular format not being
>>> accessable.  If you foster the creation of multi-standards, then our beast
>>> will grow large.
>>    Hey, are you argueing that nobody should be free to write a program that
>> diverges from the standard distribution ? Are you trying to say that a
>> centralized instance should do *all* the work, and that people would have
>> just to enjoy the result and be happy ? This *is* communism and
>> totalitarianism.
> You know that's not what I'm saying.
Totalitarianism was not what most communists or national-socialists were
thinking they were saying; but the "one standard" system they fought for
led straightfully to such a regime.

> But we have to realize that 
> standards are around because they make sense, not because a group got 
> bored one day and drafted them. 
Standards make sense because people are free not to use them, and still
use them as they see they are more convenient to use.

> We must carefully craft standards where 
> needed and allow freedom everywhere else.
   We must allow freedom everywhere *including* about the standards.
People can choose at their own risk not to use a standard.
   *But* when it comes to not depriving *other* people of their freedom by
using security holes that arise from anarchy, yes, there must be standard
unfakable (as possible) identification protocols. Such protocols will be no
more compulsory than others, but powerful standards (presumably some PGP
style thing) will be provided, so people *can* protect. And no one will be
*forced* to furnish a PGP signature anymore than to grant access of their
services to people no furnishing one.

> We cannot make a "freedom" blanket statement.
That's exactly what I'm saying. Freedom is freedom to choose, and to reject
standards. It is also freedom not to be backstabbed by other people not
respecting the standards. That's all. Choice means there exist a solution,
and there exist many of them. Having no solution (no standard) is not
freedom. Having a one standard is not freedom either.

> Yes we are free.  But you are going way off the subject.  The fact you 
> can rip the ROMs out of your motherboard, connect up a front panel, and 
> toggle in some code is proof of that.  No one will arrest you (at least 
> not in the states).
   Yes, somehow we are already free; if we weren't, we couldn't even think
about a new system. But this freedom is quite lesser, as we are discouraged
to do this by warranty closes, refusal of support, and complete absence of
meta-protocol and centralized informational address dispatching service.
   We are granted some "individual" freedom, but there currently exist no
way to freely associate, to freely share. Everyone is meant to either obey
or redo reverything from scratch. This is not the kind of freedom I want.
Maybe the FSF is already fighting for that. I should re-read its manifesto.

> What you really want to do is create a language standard, right?  Is that
> not limiting peoples freedom by even making those limitations?
   No, it's not if my language is *not* compulsory. And not either if my
language is powerful enough so that with proper affordable extension modules,
any other language can be expressed using mine. If it fulfills those
requirements, it would extend, not limit, people's freedom.

> Let's be real here.  We need standards, or else we have anarchy.
   Yes, we do. But no standard should be an eternal, unrevokable,
autoritarianly/centralizedly decided truth. Standard are proposed, not
imposed, to people.

>  We'll try to employ KISS.  And we need this to work.
   Yes, for if we fail, people will be free to reject us.

>  And nothing is cast in stone.
> If you don't like my standards throw them out later in favor of others or 
> none.  But you have to start somewhere.
   That's exactly what I say !
   So we agree after all.

>>    Now, as for small computers, let the small computer users choose
>> themselves what modules they will use; be sure that *they* know far
>> better than *you* what *they* do or do not need. If communication is
>> fair and fast enough, bad modules will naturally be replaced by better
>> ones, and people who require bad modules will be responsible for their
>> modules not being supported. Centralized information providers (I
>> insist on the plural) will help people choose modules from their
>> actual specifications and/or other people's actual feedback, rather
>> than just from the provider's prestige.
> You're still stuck in this one computer paradigm.
   When I'm talking about small isolated computers, yes, I stick to a
one-computer paradigm. If the computer is no longer small, then the
tiny-space problem does not arise anymore, and if it's not isolated and
can't contain everything it needs, the small computer will actually be
just an "intelligent terminal" of a big system, so it's not really a
small computer that the user uses.

> And you can't blame it on the users when things don't work.
> It's our job to come up with a system that works.
   Again, we're not writing *all* the system. Just a system frame, a basis,
a "kernel" if you want (though kernel generally means something atomic and
indivisible, while what we provide is a working set of independent but
interacting objects).
   Unless you're going to use the computer in place of computer users,
or write just any possible program ever needed, there will always be
system extensions, new libraries, modules, etc. So the system *users*
use is not exactly the system *we* provided, and *they* are responsible
for any extensions they use, while we are responsible for the frame in
which such extensions are possible.
   Users *are* to be blamed if they cause their system to fail. They are
free to fail, or they can't be free at all.

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