From: William Bland
Subject: Design of Lisp-based operating systems
Date: 
Message-ID: <pan.2004.05.23.01.21.37.152791@abstractnonsense.com>
For reasons that should be obvious to anyone who follows linux-related
news, I've been reading a bit about microkernel operating systems the last
few days.  Since I'm learning Lisp at the moment, I try to relate
everything else back to it, so I was wondering:  does a microkernel
approach make sense at all in a Lisp-based operating system?  My guess is
no, because as far as I know in a Lisp-based OS there is no reason to run
things in different address-spaces, so microkernel design just doesn't
make sense.  Am I right, or is there something I haven't understood?

Thanks,
	Bill.
-- 
Dr. William Bland.
It would not be too unfair to any language to refer to Java as a
stripped down Lisp or Smalltalk with a C syntax.   (Ken Anderson).

From: David Steuber
Subject: Re: Design of Lisp-based operating systems
Date: 
Message-ID: <87aczzg5yw.fsf@david-steuber.com>
William Bland <····@abstractnonsense.com> writes:

> For reasons that should be obvious to anyone who follows linux-related
> news, I've been reading a bit about microkernel operating systems the last
> few days.  Since I'm learning Lisp at the moment, I try to relate
> everything else back to it, so I was wondering:  does a microkernel
> approach make sense at all in a Lisp-based operating system?  My guess is
> no, because as far as I know in a Lisp-based OS there is no reason to run
> things in different address-spaces, so microkernel design just doesn't
> make sense.  Am I right, or is there something I haven't understood?

I thought the major reason for micro-kernels was that services ran in
user land rather than kernel land space.  A nasty bug in a service
can't bring down the entire system, or so goes the theory.

OS X is actually mach.  Darwin is just a service running on top of
mach.  I am pretty sure it runs in user space, not kernel space.
Memory requests and other core system functions are delegated to the
mach kernel.

-- 
I wouldn't mind the rat race so much if it wasn't for all the damn cats.
From: Barry Margolin
Subject: Re: Design of Lisp-based operating systems
Date: 
Message-ID: <barmar-52BCAB.01042423052004@comcast.dca.giganews.com>
In article <··············@david-steuber.com>,
 David Steuber <·····@david-steuber.com> wrote:

> William Bland <····@abstractnonsense.com> writes:
> 
> > For reasons that should be obvious to anyone who follows linux-related
> > news, I've been reading a bit about microkernel operating systems the last
> > few days.  Since I'm learning Lisp at the moment, I try to relate
> > everything else back to it, so I was wondering:  does a microkernel
> > approach make sense at all in a Lisp-based operating system?  My guess is
> > no, because as far as I know in a Lisp-based OS there is no reason to run
> > things in different address-spaces, so microkernel design just doesn't
> > make sense.  Am I right, or is there something I haven't understood?
> 
> I thought the major reason for micro-kernels was that services ran in
> user land rather than kernel land space.  A nasty bug in a service
> can't bring down the entire system, or so goes the theory.
> 
> OS X is actually mach.  Darwin is just a service running on top of
> mach.  I am pretty sure it runs in user space, not kernel space.
> Memory requests and other core system functions are delegated to the
> mach kernel.

I don't think so.  IIRC, there are two major versions of Mach: the early 
one was a conventional monolithic kernel design, the later one was a 
micro-kernel.  OS X is based on the former.

-- 
Barry Margolin, ······@alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
From: Thomas F. Burdick
Subject: Re: Design of Lisp-based operating systems
Date: 
Message-ID: <xcv3c5qvqr2.fsf@famine.OCF.Berkeley.EDU>
Barry Margolin <······@alum.mit.edu> writes:

> In article <··············@david-steuber.com>,
>  David Steuber <·····@david-steuber.com> wrote:
> 
> > OS X is actually mach.  Darwin is just a service running on top of
> > mach.  I am pretty sure it runs in user space, not kernel space.
> > Memory requests and other core system functions are delegated to the
> > mach kernel.
> 
> I don't think so.  IIRC, there are two major versions of Mach: the early 
> one was a conventional monolithic kernel design, the later one was a 
> micro-kernel.  OS X is based on the former.

That's close, but the reality isn't so black and white.  Mach 3 was
the one where they made it a real microkernel, but it was hardly a
traditional monolith beforehand.  And I believe NeXT/Apple have
developed the separation of parts further.  I don't know offhand
what's in kernel space and what's in user space, but I do remember
that the VM system runs on top of Mach, and if you boot in single-user
mode, you want to remember to start it, or you'll eventually run out
of memory.

-- 
           /|_     .-----------------------.                        
         ,'  .\  / | No to Imperialist war |                        
     ,--'    _,'   | Wage class war!       |                        
    /       /      `-----------------------'                        
   (   -.  |                               
   |     ) |                               
  (`-.  '--.)                              
   `. )----'                               
From: Michael Hudson
Subject: Re: Design of Lisp-based operating systems
Date: 
Message-ID: <m34qq6x9vs.fsf@pc150.maths.bris.ac.uk>
···@famine.OCF.Berkeley.EDU (Thomas F. Burdick) writes:

> Barry Margolin <······@alum.mit.edu> writes:
> 
> > In article <··············@david-steuber.com>,
> >  David Steuber <·····@david-steuber.com> wrote:
> > 
> > > OS X is actually mach.  Darwin is just a service running on top of
> > > mach.  I am pretty sure it runs in user space, not kernel space.
> > > Memory requests and other core system functions are delegated to the
> > > mach kernel.
> > 
> > I don't think so.  IIRC, there are two major versions of Mach: the early 
> > one was a conventional monolithic kernel design, the later one was a 
> > micro-kernel.  OS X is based on the former.
> 
> That's close, but the reality isn't so black and white.  Mach 3 was
> the one where they made it a real microkernel, but it was hardly a
> traditional monolith beforehand.

I get the impression from:

http://developer.apple.com/documentation/Darwin/Conceptual/KernelProgramming/Mach/chapter_6_section_1.html

that the Mach that Darwin is atop of *can* be run as a microkernel,
but isn't (to the extent that the various terms mean anything <wink>).

Cheers,
mwh

-- 
  All obscurity will buy you is time enough to contract venereal
  diseases.                                  -- Tim Peters, python-dev
From: Thomas F. Burdick
Subject: Re: Design of Lisp-based operating systems
Date: 
Message-ID: <xcvwu31u0r7.fsf@famine.OCF.Berkeley.EDU>
Michael Hudson <···@python.net> writes:

> ···@famine.OCF.Berkeley.EDU (Thomas F. Burdick) writes:
> 
> > That's close, but the reality isn't so black and white.  Mach 3 was
> > the one where they made it a real microkernel, but it was hardly a
> > traditional monolith beforehand.
> 
> I get the impression from:
> 
> http://developer.apple.com/documentation/Darwin/Conceptual/KernelProgramming/Mach/chapter_6_section_1.html
> 
> that the Mach that Darwin is atop of *can* be run as a microkernel,
> but isn't (to the extent that the various terms mean anything <wink>).

You're right, I forgot they'd ported OpenStep to Mach 3.  At least we
can say with certanty that it's not a picokernel :-)

-- 
           /|_     .-----------------------.                        
         ,'  .\  / | No to Imperialist war |                        
     ,--'    _,'   | Wage class war!       |                        
    /       /      `-----------------------'                        
   (   -.  |                               
   |     ) |                               
  (`-.  '--.)                              
   `. )----'                               
From: David Magda
Subject: Re: Design of Lisp-based operating systems
Date: 
Message-ID: <86zn7x4s7y.fsf@number6.magda.ca>
David Steuber <·····@david-steuber.com> writes:
[...]
> OS X is actually mach.  Darwin is just a service running on top of
> mach.  I am pretty sure it runs in user space, not kernel space.
> Memory requests and other core system functions are delegated to
> the mach kernel.

There's a good description of how things are organized at:

http://www.kernelthread.com/mac/osx/arch_xnu.html

The article starts at:

http://www.kernelthread.com/mac/osx/


-- 
David Magda <dmagda at ee.ryerson.ca>, http://www.magda.ca/
Because the innovator has for enemies all those who have done well under
the old conditions, and lukewarm defenders in those who may do well 
under the new. -- Niccolo Machiavelli, _The Prince_, Chapter VI
From: Matthias Buelow
Subject: Re: Design of Lisp-based operating systems
Date: 
Message-ID: <2ham6nFapeumU1@uni-berlin.de>
William Bland wrote:

> everything else back to it, so I was wondering:  does a microkernel
> approach make sense at all in a Lisp-based operating system?  My guess is

the question might also be whether a microkernel-based system makes any 
sense at all in a commercial environment.  all the big vendors have 
either abstained from, or moved from implementing microkernel general 
purpose OSes.  the most prominent mach-based, dec osf/1 (digital unix, 
tru64 unix), nextstep, macos X, and gnu hurd (will be issued bundled 
with Duke Nukem Forever just next fall) all use the single-server 
concept, which more or less leads the microkernel basis ad absurdum.
a microkernel is nice for experimenting and research.  for a real-life 
implementation with a rather fixed, well-known feature set, it doesn't 
make much sense.

-- 
   Matthias Buelow; ···@{mukappabeta,informatik.uni-wuerzburg}.de
From: Rob Warnock
Subject: Re: Design of Lisp-based operating systems
Date: 
Message-ID: <ZOmdnalhn57AAy3dRVn-sQ@speakeasy.net>
Matthias Buelow  <···@mukappabeta.de> wrote:
+---------------
| William Bland wrote:
| > everything else back to it, so I was wondering:  does a microkernel
| > approach make sense at all in a Lisp-based operating system?
| 
| the question might also be whether a microkernel-based system makes any 
| sense at all in a commercial environment.  all the big vendors have 
| either abstained from, or moved from implementing microkernel general 
| purpose OSes.
+---------------

What?!? You don't include IBM as a "big vendor"?!?  Or maybe you just
have never thought about VM/370 -> VM/390 -> z/VM as a "microkernel",
but it really is (even though IBM calls it a "hypervisor"), so much
so that whole operating systems run on top of it!  ;-}

Note: I recently took a look as "Linux for zSeries", and was quite
surprised at what they've managed to accomplish: imagine running
MVS, CICS, TSO, CMS, and several hundred Linux system images on
the same piece of hardware all at the same time!

In fact, it got me starting about who might fund a port of CMUCL
(and/or SBCL) to zSeries [since zSeries is 64-bit capable, and
64-bit SuSE already runs on it]...

+---------------
| a microkernel is nice for experimenting and research.  for a real-life 
| implementation with a rather fixed, well-known feature set, it doesn't 
| make much sense.
+---------------

The long & continuous history of IBM microkernel (hypervisor) operating
systems from CP-67 -> VM/370 -> VM/390 -> z/VM disputes that.


-Rob

-----
Rob Warnock			<····@rpw3.org>
627 26th Avenue			<URL:http://rpw3.org/>
San Mateo, CA 94403		(650)572-2607
From: Marco Parrone
Subject: Re: Design of Lisp-based operating systems
Date: 
Message-ID: <87pt8vyxbe.fsf@marc0.dyndns.org>
--=-=-=

Matthias Buelow on Sun, 23 May 2004 06:05:21 +0200 writes:

> William Bland wrote:
>
>> everything else back to it, so I was wondering:  does a microkernel
>> approach make sense at all in a Lisp-based operating system?  My guess is
>
> the question might also be whether a microkernel-based system makes
> any sense at all in a commercial environment.  all the big vendors
> have either abstained from, or moved from implementing microkernel
> general purpose OSes.  the most prominent mach-based, dec osf/1
> (digital unix, tru64 unix), nextstep, macos X, and gnu hurd (will be
> issued bundled with Duke Nukem Forever just next fall) all use the
> single-server concept, which more or less leads the microkernel basis
> ad absurdum.

The GNU Hurd is not a single-server, is has different servers and
translators, so that users can use their own servers and translators
without needing to have superuser privileges.

The GNU Hurd offers libraries to write your own servers and
translators, that libraries are in C, so they should be usable with
various schemes/lisps (if they work on the GNU/Hurd).

IMHO GNU/Hurd would be a good platform where to implement a lisp-based
OS, as you can add/replace a piece of the OS at a time.

-- 
Marco Parrone <·····@autistici.org> [0x45070AD6]

--=-=-=
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQBAsMPhi2MRZ0UHCtYRAkxjAJ9+vL8iQ1Q6BVrf0AJ0Daw0Dc3pZgCgy6lp
eXlte4FQCCtqShMgPnnsoUQ=
=1mXI
-----END PGP SIGNATURE-----
--=-=-=--