OT: Can We Make OSes Reliable and Secure

Robert Brockway rbrockway-wgAaPJgzrDxH4x6Dk/4f9A at public.gmane.org
Fri Jun 2 20:44:00 UTC 2006


On Fri, 2 Jun 2006, Lennart Sorensen wrote:

> efficient and reasonable thing to do.  This also means it is harder to
> tear out and replace a subsystem in linux, although it isn't always that
> bad.  After all sometime in 2.4.x (I think x=10) the VM system was
> completely replace by someone elses code because the existing code
> didn't work well, and the new one was simpler, more obvious, and clearly
> worked.  The VM interface apparently is sufficiently abstracted that it
> could just be replaced all at once without having to touch other code
> that uses it.

My recollection of that event is that it was anything but clean.  It was 
quite a painful experience and took place over several months.  It's a 
perfect example of whatr I'm talking about - the monolithic design made 
the change hard.

> I think much of the breakage seen on linux is just as likely on a micro
> kernel system.  One thing the microkernel system is less liukely to see

I disagree.  A lot of problems have occured because the Linux kernel (and 
indeed any monolithic kernel) is not very modular.  Many of these problems 
simply can't occur when the only way system processes can communicate is 
through a tightly defined protocol.  See my earlier example of sshd and 
httpd: one can only kill the other if the kernel allows it (ie, if there 
is a bug in the kernel).

> is a pointer bug in one piece of code causing a problem at some other
> random place in the system.  This certainly is useful, but I am not
> convinced it is worth the tradeoff.

I absolutely am.  I am convinced we'll see much more rapid system 
development under a well planned microkernel system.

> The linux kernel seems pretty good at staying up.  So does BSD.  If your

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.

> memory management module blows up, what is the rest of the system
> supposed to do on a microkernel system.  Microkernels don't
> automatically make things more stable, they do make it somewhat easier
> and clearer to make sure that one piece doesn't mess up another.  Of
> course if one piece is critical to the operation of the system as a
> whole, it has to be right no matter what, microkernel or not.

There are no absolutes but in a microkernel design there are less ways to 
kill the critical system (since less lines of code have the ability to 
kill it).

> Unix design hasn't given up yet.  It is evolving though.  We have memory

I think *nix is great.  It is the best OS out there in common use today. 
But it is showing its age.  Plan 9 is a great example of how unix would 
have been if it had been started in the 1990s.  I reiterate, if we have 
not advanced beyond the current crop of OSes in 20 years I think we've 
made a big mistake.  Most of the OSes on the horizon (experimental or 
otherwise) draw conceptually from unix while leaving behind much of the 
baggage.

>> [1] Now was it 2.4.15 where a filesystem patch broke the buffer-cache
>> resulting in filesystem corruption if you did not properly unmount before
>> system halt?  Such a problem cannot occur between (for example) the
>> filesystem code and buffer-cache in a microkernel any post than sshd can
>> take down your web server now (ie, if it manages to do it, it is only
>> because the system allowed the behaviour).
>
> A microkernel can have a buggy FS module too.  What is the difference?

But this is precisely the problem.  The bug was not in the FS, it was in 
the buffer-cache but it damaged the filesystem.  In a microkernel based 
system the communication protocol between the FS service and the 
buffer-cache service would not allow the damage to occur.  Indeed if it 
did the protocol itself would be at fault.

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