comp.lang.ada
 help / color / mirror / Atom feed
From: "Warren W. Gay VE3WWG" <ve3wwg@NoSpam.cogeco.ca>
Subject: Re:  Microkernels & Ada (Was for the AdaOS folks)
Date: Tue, 28 Dec 2004 01:19:16 -0500
Date: 2004-12-28T01:19:16-05:00	[thread overview]
Message-ID: <GU6Ad.1103$Y_4.930050@read2.cgocable.net> (raw)
In-Reply-To: <41d011b6$0$320$ba620e4c@news.skynet.be>

Adrien Plisson wrote:
> Wes Groleau wrote:
> 
>> or anyone else with similar ambitions.
>>
>> Read "Kill the operating System"
>> page 32 of September 2003 Technology Review
>>
>> Not a prescription, but something to think about.
> 
> This is a nice article.

I agree with an earlier post that there
is a certain "troll factor" to this article.
Maybe that is required from time to time to get people
motivated enough to do something about it, or, for lack of
action, to at least discuss it.

> he could also go a LOT further: most people are running PCs, a computer 
> architecture dating from an old age of computing. did anyone thought of 
> a newer architecture ?

I think people are working on new architectures, but perhaps
not as actively as 10-20 years ago. I am finally relieved that
some hardware support is going into CPU instruction sets to
alleviate the buffer overrun problem. However, more needs to
be done.

I've recently developed an interest in microkernel
design and have been reading much of the
monolithic argument against microkernels etc. Much of
the argument is of course in support of Linux's design,
it seems, to justify their design approach.

The last article I read where Linus Torvalds critisized
microkernels was on the general grounds (paraphrased) that
"they promised to be more portable, but cannot be..". He
makes a point there, and I do see references to that in
the orignal literature. But portability was never the entire
point of microkernels.

Others criticize microkernels on the performance issue. This
point is harder to ignore, but I personally believe that this
also will become an insignificant issue with time. Each year
we see more powerfull CPU chips, and in a short period of
time, it looks like we may soon have dual, quad and
octo-core CPU chips. The efficiency factor becomes less
important with these types of advances in hardware.

The other side of the efficiency argument IMHO is this: if
people gripe about the inefficiency of Mach, and then run
Java desktops, then what are they griping about? Java is
inefficient too, yet some people find a reason to run
interpreted code, whether it be Java, Perl, TCL, Bash,
Python or BASIC. So the point I want to make is that if
microkernels lead to safer and better operating systems,
then why do we shy away from it on efficiency grounds?

Here is my last point on the efficiency of microkernel
design: Because the O/S is running in a bunch of user-mode
servers, all passing messages etc., in nice modular fashion,
it obviously does suffer from a number of costly VM TLB
flushes, to carry out a user service (each user context
switch). What I'd like to suggest, is that it is time
for hardware people to look at this problem and improve
upon the TLB flush problem. For example, cannot a CPU
carry more than one TLB set of resources, so that a
total flush is not always required? If increasing
amounts of cache is held on chip, why not set aside
more resources for say 8 TLB register sets to help
with microkernel user-mode context switches?

You can bet on the fact that if everyone used a microkernel
designed O/S today, Intel, AMD, IBM and others would be
working hard to fix some of that "overhead" problem. The
rest of the overhead may not be worth going after, but the
big problems would get attention.

I have recently started experimenting with Ada user
mode modules on top of a microkernel (GNAT). I would
like to see more projects like this in the future (I
plan to share the project and encourage participation).
So far, I have proved to myself that it can be done
with GNAT and with open sourced tools.

Perhaps someday, someone else will provide the microkernel
itself in Ada, in Mach or L4 microkernel like terms (or
something better).

> the interresting thing is : we can all think about it, but we also ARE 
> ABLE TO DO IT. 

My time is limited, but what I feel I _can_ do, is get an
O/S project started, using an _existing_ microkernel.
I suggested as much this last summer. After a month or
so, the idea bother me so much, that I had to try
something.

I firmly believe that others could do the same thing. The
point is that more _research_ needs to be done on _SAFE_
and _SECURE_ operating systems. We have enough fully
featured (M$) and fast (*NIX) systems, but I'd like to
see a secure and rootless O/S for starters.

Anyway, I'd like to see more O/S research that employed
Ada, and to repeat myself, one way to do this is to
start with a microkernel, and use Ada on top of it.

> so where is the problem ? why do we still use those weird old computing 
> standards when we could have much much more ?

Two problems, IMHO:

   1. The user wants one interface, and programs need another (programs
      don't like fuzzy file name references etc., yet for users this
      can be very helpful).

   2. People are often stuck on what they know (look at all of
      the C/C++-like languages that get invented every year).

While POSIX is good for UNIX and portability, when starting a
new O/S, I think you need to say "who cares about POSIX?" Work
from the requirements back to the implementation. POSIX embodies
a lot of good ideas, and I don't suggest that we want to be
different without good reasons for it, but I think some fresh
thinking would be welcome.

> the answer is in the text: "Computing’s standard model owes its success 
> to the economics of the computer industry". people are investing in 
> development. they don't want to lose their investment, so they target 
> what is widely used: 

This wasn't true when UNIX was being initially developed. It
need not be the case for a new design. The design just needs
to solve a problem. For example, a secure O/S is needed for
firewalls (hence my interest in a rootless O/S).

It doesn't need to take the world by storm either. It took
years before suddenly everyone realized they needed a *NIX
server (thanks to the Internet & www). I am sure that other
opportunities are in the wing.

> so do investors never take any risk ?

Take your savings and invest it, and then you'll know what
they are thinking. Everyone has a limited tolerance for
risk, especially when it is your investment dollar. But
where there is risk, there is opportunity also, if for
no other reason than nobody wants to go there.

> yes they do. sometimes something really new, something revolutionnary 
> comes out. it exists for some time, then disappear (see BeOS). those 
> thing so not disappear because their ideas are bad, no. they disappear 
> because people don't want to change: they don't want to risk investing 
> in something new. they wait and see if it really is worth the 
> investment. so investors that invested in the develoment of the new 
> ideas don't get any return, the idea fails on the market, the investors 
> abandon the idea, the idea disappear.

With the desktop, you may be right. But that is not the only
frontier for an O/S. There are millions of appliances
running operating systems, many of them Linux now.

With a microkernel approach, it _is_ possible to run
multiple environments at the same time (Linux, *BSD, & maybe
even M$ win32). Look for new ways to allow the user to migrate.
Try things, many things.

> so how to change this ? how to get new ideas accepted by all ? this is 
> the real question to ask...

Well, the last thing I'll say is that if nobody takes the risk
to produce a new O/S, then no one will risk using it ;-)
--
Warren W. Gay VE3WWG
http://home.cogeco.ca/~ve3wwg



  parent reply	other threads:[~2004-12-28  6:19 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-27  5:09 For the AdaOS folks Wes Groleau
2004-12-27 10:56 ` Florian Weimer
2004-12-27 12:50   ` Georg Bauhaus
2004-12-27 13:12     ` Florian Weimer
2004-12-28  1:18   ` Wes Groleau
2004-12-27 13:46 ` Adrien Plisson
2004-12-27 16:28   ` Georg Bauhaus
2004-12-28  6:19   ` Warren W. Gay VE3WWG [this message]
2004-12-28 12:02     ` Microkernels & Ada (Was for the AdaOS folks) Adrien Plisson
2004-12-28 15:28       ` Warren W. Gay VE3WWG
2004-12-30  1:19 ` For the AdaOS folks Nick Roberts
2004-12-30 13:58   ` Warren W. Gay VE3WWG
2004-12-30 15:27     ` Dmitry A. Kazakov
2004-12-30 16:30       ` Warren W. Gay VE3WWG
     [not found]         ` <otb8t09dkjh54e1k5s5ccn23ggkqk6ndui@4ax.com>
2004-12-30 19:06           ` OT: Mach Ports (For the AdaOS folks) Warren W. Gay VE3WWG
2004-12-31 10:03         ` For the AdaOS folks Dmitry A. Kazakov
2004-12-31 11:30           ` Warren W. Gay VE3WWG
2004-12-31 12:31             ` Dmitry A. Kazakov
2004-12-31 16:24               ` Warren W. Gay VE3WWG
2004-12-31 17:57                 ` Marven Lee
2004-12-31 18:40                   ` Warren W. Gay VE3WWG
2004-12-31 19:22                     ` Warren W. Gay VE3WWG
2005-01-02 15:09                     ` Marven Lee
2005-01-02 20:06                       ` Luke A. Guest
2005-01-03  3:13                         ` Warren W. Gay VE3WWG
2005-01-03  6:40                           ` Luke A. Guest
2005-01-03 10:30                             ` Marven Lee
2005-01-03 15:52                             ` Warren W. Gay VE3WWG
2005-01-03 16:48                           ` Ad Buijsen
2005-01-03 18:49                             ` Warren W. Gay VE3WWG
2005-01-03 13:43                         ` Marven Lee
2005-01-04 23:36                         ` Nick Roberts
2005-01-03 16:22                       ` Warren W. Gay VE3WWG
2005-01-04 23:16                       ` Nick Roberts
2005-01-05  3:48                         ` Warren W. Gay VE3WWG
2005-01-05 13:14                           ` Nick Roberts
2005-01-01 12:53                 ` Dmitry A. Kazakov
2005-01-02  0:31                   ` Warren W. Gay VE3WWG
2005-01-02 11:50                     ` Dmitry A. Kazakov
2005-01-02 22:04                       ` Warren W. Gay VE3WWG
2005-01-03 10:30                         ` Dmitry A. Kazakov
2005-01-03 16:36                           ` Warren W. Gay VE3WWG
2005-01-03 17:05                             ` Dmitry A. Kazakov
2005-01-03 19:01                               ` Warren W. Gay VE3WWG
2005-01-03 19:55                                 ` Dmitry A. Kazakov
2005-01-03 20:44                                   ` Warren W. Gay VE3WWG
2005-01-04  0:02                                     ` Randy Brukardt
2005-01-04 17:44                                       ` Warren W. Gay VE3WWG
2005-01-04 20:14                                         ` Nick Roberts
2005-01-04  9:59                                     ` Dmitry A. Kazakov
2005-01-04 18:00                                       ` Warren W. Gay VE3WWG
2005-01-04 19:07                                         ` Dmitry A. Kazakov
2005-01-04 19:57                                           ` Warren W. Gay VE3WWG
2005-01-05  0:02                                             ` Nick Roberts
2005-01-05  4:37                                               ` Warren W. Gay VE3WWG
2005-01-05 18:54                                                 ` Nick Roberts
2005-01-05 20:04                                                   ` Warren W. Gay VE3WWG
2005-01-06  0:32                                                     ` Nick Roberts
2005-01-06  1:29                                                   ` Wes Groleau
2005-01-06 11:03                                                     ` Dmitry A. Kazakov
2005-01-05  9:39                                             ` Dmitry A. Kazakov
2005-01-05 11:20                                               ` Warren W. Gay VE3WWG
2005-01-05 12:18                                                 ` Dmitry A. Kazakov
2005-01-05 14:39                                                   ` Warren W. Gay VE3WWG
2005-01-05 17:16                                                     ` zest_fien
2005-01-05 19:44                                                       ` Larry Kilgallen
2005-01-04 20:09           ` Nick Roberts
2005-01-05 10:19             ` Dmitry A. Kazakov
2005-01-05 18:33               ` Nick Roberts
2005-01-05 20:15                 ` Dmitry A. Kazakov
2004-12-31 18:47     ` Nick Roberts
2004-12-31 20:36       ` Warren W. Gay VE3WWG
2005-01-04 18:22         ` Nick Roberts
2005-01-05  5:12           ` Warren W. Gay VE3WWG
2005-01-05 18:02             ` Nick Roberts
2005-01-05 19:55               ` Warren W. Gay VE3WWG
2005-01-06  0:57                 ` Nick Roberts
2005-01-06  2:34                   ` Warren W. Gay VE3WWG
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox