OT: Can We Make OSes Reliable and Secure
Robert Brockway
rbrockway-wgAaPJgzrDxH4x6Dk/4f9A at public.gmane.org
Tue Jun 6 21:55:51 UTC 2006
On Mon, 5 Jun 2006, Lennart Sorensen wrote:
> Then what took Hurd so long?
Disagreements, lack of direction, general human related problems that can
derail even the best project.
>> Sure. Because a lot of hard work has gone into it. I am emphasising that
>> it is simply easier to make a microkernel system stable.
>
> Well other than QNX, I am still waiting to see a successful microkernel
> system that gets used.
OS-9 (not Mac OS9 but Microware OS-9)
> Well the unix user space is excelent. Little tools (modular design
> after all) that do one thing well, working together is great. Of course
That's part of the conceptual side which many OSes have taken on board (as
per my earlier posts).
There is cruft in *nix userspace. Why exactly is the command to send a
signal to a process called "kill"? The name is historical but is defined
in POSIX now. This one was highlighted to me just recently when I was
providing training on the shell and command line tools.
> there is no reason a microkernel based system couldn't use the same user
> space, and work great.
Yes, very true. In fact I fully expect the popular MK (microkernel)
systems of the coming decades to fully support a Linux
look-alike environment among others.
I've alluded to this a bit in earlier posts:
My view of future OSes is MK based systems with low level services
(functions we'd now have in a monolithic kernel) running in userspace and
the ability to simulataneously abstract a large number of environments
cleanly and have them talk. What we today call virtualisation would only
be a subset of the abstraction I'm talking about.
In an MK (in general) you lose in performance but you gain in stability
and flexibility. Experiments in the area show the performance loss is
usually no more than 10% for an MK. A well designed MK like recent
versions of the L4 family can actually perform better than a monolithic
kernel in some cases.
> If I was to accidentally byte swap some data in one module (say it's a
> module that does caching) before sending it to the filesystem module,
> there is nothing the filesystem module can do to save me. Bugs are
> bugs, and they will hurt data in some cases.
If the caching module passes bad data, yes that could cause corruption.
It also has nothing to do with my original assertion...
This part of the discussion arose when I pointed out that tampering in one
part of a monolithic kernel broke another part. I was (and still am)
talking about code changes, not corrupt data.
No amount of tampering in one module will corrupt code in another module
of a well designed MK system. As they only communicate through a well
defined protocol there remains integrity in the commands exchanged between
the modules. For example a buffer-cache module could only ask the
filesystem module to do specific actions (flush block X to disk now,
whatever). The language the modules speak can be arbitrarily constrained.
A well defined MK system would probably even put constraints on how
rapidly messages could be sent over the protocol to prevent an internal
DoS.
Rob
--
Robert Brockway B.Sc. Phone: +1-905-821-2327
Senior Technical Consultant Urgent Support: +1-416-669-3073
OpenTrend Solutions Ltd Email: support-wgAaPJgzrDxH4x6Dk/4f9A at public.gmane.org
Web: www.opentrend.net
We are open 24x365 for technical support. Call us in a crisis.
--
The Toronto Linux Users Group. Meetings: http://tlug.ss.org
TLUG requests: Linux topics, No HTML, wrap text below 80 columns
How to UNSUBSCRIBE: http://tlug.ss.org/subscribe.shtml
More information about the Legacy
mailing list