Question from a non-programmer

1238 views
Skip to first unread message

Lisa Gardner

unread,
May 27, 2001, 10:36:21 AM5/27/01
to
Hi. I am not a programmer, just an interested layman (layperson,
I guess... hah). I do tech support for Mac software so have some
understanding of the Mac.

My questions concern something called the nanokernel. I have
a few questions about it. First, let me relate to you my understanding
of what the nanokernel is, and have you guys correct that understanding
if it is not quite right.

My understanding is this: the nanokernel controls the reading and
writing to the main kernel. It basically controls this for anything which
needs to get to the OS kernel. It is the 'only road' into the kernel. Is
this true?

Now here is my question:

I understand the Mac OS X/Darwin has a nanokernel. At first I was
under the impression that a nanokernel was a Unix specific thing,
then after some very quick research on the web, I concluded that no,
prior Mac OS's make use of a nanokernel also. In particular, OS 9.1
makes use of a nanokernel.

So, what I am interested in, is this: When you run Classic mode inside
of OS X, you are 'taking' in some way from a bootable 9.1 OS (I guess
usually) that sits on another partition on your hard drive. That bootable 9.1
OS must also make use of a nanokernel. Does it make use of it while
you are using Classic mode? It would have to in some way, correct?

How does Classic mode work? Is it, from the programming standpoint,
just an entire 9.1 OS running inside of OS X? If so, then it must be using
the 9.1 nanokernel, getting to the main 9.1 OS, then passing stuff on to
the OS X nanokernel and through to the OS X? Or is the OS 9.1 nanokernel
pointing directly to the bootable OS 9.1 that's installed on the other partition
and kind of bypassing a lot of the OS X stuff completely, so that the OS X
nanokernel doesn't even come into the picture while you're booted in Classic?

How do these two OS's, the OS 9.1 and the OS X, work together in Classic?
How do the two nanokernels work together in Classic, if they do? Does Classic
make use of a different nanokernel entirely?

Please, clear up for me any misunderstanding you see here and/or point
me in the direction of someplace where I can find some good info on this.

Thanks,

Lisa


meeroh

unread,
May 27, 2001, 1:42:44 PM5/27/01
to
In article <th249oj...@corp.supernews.com>,
"Lisa Gardner" <lgar...@mbay.net> wrote:

>My questions concern something called the nanokernel. I have
>a few questions about it. First, let me relate to you my understanding
>of what the nanokernel is, and have you guys correct that understanding
>if it is not quite right.
>
>My understanding is this: the nanokernel controls the reading and
>writing to the main kernel. It basically controls this for anything which
>needs to get to the OS kernel. It is the 'only road' into the kernel. Is
>this true?

No, if I am reading the statement correctly.

A kernel is a basic piece of the system software which takes care of the
lowest level of system's responsibilities. For example, a kernel
typically handles such things as divide by zero exceptions and memory
exceptions, which occur when an application has a bug. It might also
handle such things a virtual memory, creating processes, distributing
load among multiple processors, etc.

When designing a kernel, its authors can choose one of several design
philosophies. If the kernel contains a lot of stuff in it, then it's
called a monolithic kernel. If the kernel contains less stuff in it,
then it's called a microkernel. If it contains very very little stuff in
it, then it's called a nanokernel.

>Now here is my question:
>
>I understand the Mac OS X/Darwin has a nanokernel. At first I was
>under the impression that a nanokernel was a Unix specific thing,
>then after some very quick research on the web, I concluded that no,
>prior Mac OS's make use of a nanokernel also. In particular, OS 9.1
>makes use of a nanokernel.

Mac OS X uses the Mach kernel, developed at Carnegie-Mellon. It's a
microkernel -- it implements some stuff, but leaves a lot of stuff to be
implemented outside of the kernel. It implements threads, processes,
virtual memory, inter-process communication, and some other things. You
can get Mach kernel documentation at
<http://www.cs.cmu.edu/afs/cs.cmu.edu/project/mach/public/www/mach.html>,
but beware -- it's really hard to read (in my opinion).

Mac OS 9 uses a nanokernel. The nanokernel implements a very small
number of things -- basically the lowest level of interaction with the
processor and other components of the system is in the nanokernel,
everything else is built on top of the nanokernel. If Rene is listening
here he might be able to provide more insight on the workings of the
nanokernel in Mac OS 9.

>So, what I am interested in, is this: When you run Classic mode inside
>of OS X, you are 'taking' in some way from a bootable 9.1 OS (I guess
>usually) that sits on another partition on your hard drive. That
>bootable 9.1 OS must also make use of a nanokernel. Does it make use
>of it while you are using Classic mode? It would have to in some way,
>correct?

My understanding is that the way the Classic environment works is
essentially by talking to the Mac OS X kernel instead of the Mac OS 9
nanokernel. I believe that the Mac OS 9 nanokernel is not involved in
the Mac OS X Classic action. By replacing interactions with the
nanokernel with interactions with the Mac OS X kernel, the Classic
environment becomes just another process running under Mac OS X.

>How does Classic mode work? Is it, from the programming standpoint,
>just an entire 9.1 OS running inside of OS X? If so, then it must be
>using the 9.1 nanokernel, getting to the main 9.1 OS, then passing
>stuff on to the OS X nanokernel and through to the OS X? Or is the OS
>9.1 nanokernel pointing directly to the bootable OS 9.1 that's
>installed on the other partition and kind of bypassing a lot of the OS
>X stuff completely, so that the OS X nanokernel doesn't even come into
>the picture while you're booted in Classic?
>
>How do these two OS's, the OS 9.1 and the OS X, work together in
>Classic? How do the two nanokernels work together in Classic, if they
>do? Does Classic make use of a different nanokernel entirely?
>
>Please, clear up for me any misunderstanding you see here and/or point
>me in the direction of someplace where I can find some good info on
>this.

Basically, this is my understanding:

Mac OS 9 structure is
Applications & Drivers -> System -> Nanokernel

Mac OS X structure is
Applications -> System -> Kernel & Drivers

Mac OS X with Classic structure is
Mac OS 9 Applications & Drivers -> Mac OS 9 System in Classic -> Mac OS
X Kernel and Drivers

The main thing to understand is that the services proveded by the Mac OS
X kernel are a superset of the services provided by the Mac OS 9
nanokernel, and therefore in order for Mac OS 9 to work on Mac OS X, it
needs to use the services provided by the Mac OS X kernel, and it
becomes a first-class citizen on Mac OS X.

hth

meeroh
--
Using random signatures is as simple as putting text files into a folder called "Random Signatures" in your Preferences folder.

Simon

unread,
May 31, 2001, 12:45:07 PM5/31/01
to
In article <macdev-2DFDFD....@senator-bedfellow.mit.edu>,
meeroh <mac...@meeroh.org> wrote:

<respectful snip>
>
> hth
>
> meeroh

--
Using random signatures is as simple as putting text files into a folder
called "Random Signatures" in your Preferences folder.

Really?!
And all this time I've been using that damned 'YLS'

Or, you may be joking...
Only one way to find out...

'Testing, testing...'

meeroh

unread,
May 31, 2001, 7:46:49 PM5/31/01
to
In article
<coolsim-F3BEEE...@news6-win.server.ntlworld.com>,
Simon <coo...@mac.com> wrote:

>Using random signatures is as simple as putting text files into a folder
>called "Random Signatures" in your Preferences folder.
>
>Really?!

You need to install "IC Random Signatures" Internet Config extension and
then it's as simple as that.

hth

meeroh
--
You can get random signatures if you put text files into a folder called "Random Signatures" in your Preferences folder.

Ioannis

unread,
May 31, 2001, 11:39:53 PM5/31/01
to
meeroh wrote:
[snip]

> >Really?!
>
> You need to install "IC Random Signatures" Internet Config extension and
> then it's as simple as that.

It would be great if this worked with earlier versions of Navigator or
Communicator. It doesn't work with Nav 3.01, which is just about the
fastest version for reading news.

> hth
>
> meeroh
> --
> You can get random signatures if you put text files into a folder called "Random Signatures" in your Preferences folder.

--
Ioannis Galidakis
<http://users.forthnet.gr/ath/jgal/>
_______________________________________________
"The traits of the good scientist: good command
of logic and _excellent_ command of insanity."

Jude Giampaolo

unread,
May 31, 2001, 10:59:17 PM5/31/01
to
In article <3B170E...@home.com>, Ioannis <nos...@home.com> wrote:

> meeroh wrote:
> [snip]
> > >Really?!
> >
> > You need to install "IC Random Signatures" Internet Config extension and
> > then it's as simple as that.
>
> It would be great if this worked with earlier versions of Navigator or
> Communicator. It doesn't work with Nav 3.01, which is just about the
> fastest version for reading news.

Have you tried using NewsWatcher?

--
Jude Giampaolo
http://prozac.eeap.cwru.edu/jude/ "Corn Nog?"
ju...@prozac.eeap.cwru.edu
jc...@po.cwru.edu (Please, no HTML email)

Ioannis

unread,
Jun 1, 2001, 12:50:33 AM6/1/01
to
Jude Giampaolo wrote:
[snip]

> Have you tried using NewsWatcher?

I can't use NW or MT-NW, cause on first launch it tries to download the
entire newsgroup list and my connection drops. This has nothing to do
with either NW or MT-NW. It's just that where I live, on this particular
neighborhood, the lines are crap and after a certain amount of data gets
transfered, the line dies.

I can get away for short periods of times and short data transfers, up
to 1 M, but anything larger than that, the line dies. The local Ma Bell
of course cannot just "correct" this problem only for me, because it
involves scraping the entire neighborhood network.

<Sigh...>

> --
> Jude Giampaolo
> http://prozac.eeap.cwru.edu/jude/ "Corn Nog?"
> ju...@prozac.eeap.cwru.edu
> jc...@po.cwru.edu (Please, no HTML email)

--

meeroh

unread,
Jun 1, 2001, 12:40:05 AM6/1/01
to
In article <3B171F...@home.com>, Ioannis <nos...@home.com> wrote:

>I can't use NW or MT-NW, cause on first launch it tries to download the
>entire newsgroup list and my connection drops.

Try saying "update group list: never" in the server settings?
(Just guessing)

meeroh
--
To get random signatures put text files into a folder called "Random Signatures" into your Preferences folder.

Ioannis

unread,
Jun 1, 2001, 2:08:13 AM6/1/01
to
meeroh wrote:
>
> In article <3B171F...@home.com>, Ioannis <nos...@home.com> wrote:
>
> >I can't use NW or MT-NW, cause on first launch it tries to download the
> >entire newsgroup list and my connection drops.
>
> Try saying "update group list: never" in the server settings?
> (Just guessing)

There is no such option in YA-NW 3.1.8.

> meeroh
> --

meeroh

unread,
Jun 1, 2001, 4:07:43 AM6/1/01
to
In article <3B1731...@home.com>, Ioannis <nos...@home.com> wrote:

>meeroh wrote:
>>
>> In article <3B171F...@home.com>, Ioannis <nos...@home.com> wrote:
>>
>> >I can't use NW or MT-NW, cause on first launch it tries to download the
>> >entire newsgroup list and my connection drops.
>>
>> Try saying "update group list: never" in the server settings?
>> (Just guessing)
>
>There is no such option in YA-NW 3.1.8.

But you said NW or MT-NW in the first post. I have that option in MT-NW.

meeroh
--
Using random signatures is as simple as putting text files into a folder called "Random Signatures" in your Preferences folder.

Ioannis

unread,
Jun 1, 2001, 9:30:44 AM6/1/01
to
meeroh wrote:
[snip]

> >There is no such option in YA-NW 3.1.8.
>
> But you said NW or MT-NW in the first post. I have that option in MT-NW.

Ooops! Sorry. I meant YA-NW.

meeroh

unread,
Jun 1, 2001, 11:07:29 AM6/1/01
to
In article <3B1799...@home.com>, Ioannis <nos...@home.com> wrote:

>Ooops! Sorry. I meant YA-NW.

"Oh". I have no idea then.

meeroh
--
The contents of text files in a folder called "Random Signatures" in your Preferences folder are used as random signatures.

Don Sample

unread,
Jun 1, 2001, 11:54:12 AM6/1/01
to
In article <macdev-B147DE....@senator-bedfellow.mit.edu>,
meeroh <mac...@meeroh.org> wrote:

> In article <3B1799...@home.com>, Ioannis <nos...@home.com> wrote:
>
> >Ooops! Sorry. I meant YA-NW.
>
> "Oh". I have no idea then.
>
> meeroh

YA Newswatcher lets you cancel the get of the full group list.

Ioannis

unread,
Jun 1, 2001, 1:03:57 PM6/1/01
to
Don Sample wrote:
[snip]

> YA Newswatcher lets you cancel the get of the full group list.

Sure. But one cannot do anything with the program after cancelling. I
just want to subscribe to a SPECIFIC set of newsgroups and NOT download
the entire set.

As far as I can see, YA-NW cannot do that. If anybody knows how to do
this, I'd appreciate the info.

René A. Vega

unread,
Jun 1, 2001, 2:13:05 PM6/1/01
to

meeroh wrote:

> In article <th249oj...@corp.supernews.com>,
> "Lisa Gardner" <lgar...@mbay.net> wrote:
>
> >My questions concern something called the nanokernel. I have

> >a few questions about it. ...


> >My understanding is this: the nanokernel controls the reading and

> >writing to the main kernel. .


>
> No, if I am reading the statement correctly.
>
> A kernel is a basic piece of the system software which takes care of the
> lowest level of system's responsibilities.

In all Mac OS 9.x and earlier systems that ran with the first PowerPC machines, the system was built with a nanokernel. That
kernel and the original emulator was the brainchild of Gary Davidian, a superb engineer who developed a tiny piece of code to
create two protected contexts one for the 68K emulator and one for native (PowerPC) code, ensuring a seamless transition from 68K
based hardware to PowerPC. That 18 KB kernel handles address relocation, hooks for virtual memory, exception management, low level
I/O support, alignment handling and high performance instruction emulation.

Atop that sits the upper layers of the OS, I/O drivers, graphics, process manager, etc. There is no kernel layer above the
nanokernel, just managers and servers.


> It might also
> handle such things a virtual memory, creating processes, distributing
> load among multiple processors, etc.

I rewrote the nanokernel in OS 8.6, adding multitasking, multiple address space support, fully protected memory, multiprocessing
support, a high performance scheduler, enhanced power management. That increased its size to 50K (80K with full debugging
support). The upper layers didn't exploit much of that support in 8.6, though the notable change was the blue task blocking when
idle thence reducing battery consumption by 40% on laptops. Through the subsequent releases up to 9.x, more of the system used
those modern facilities as did in-house and 3rd party applications.

> When designing a kernel, its authors can choose one of several design
> philosophies. If the kernel contains a lot of stuff in it, then it's
> called a monolithic kernel.

A good example is OS X. Mach, IOkit, BSD are pretty much integrated into a monolithic kernel.

> >Now here is my question:
> >
> >I understand the Mac OS X/Darwin has a nanokernel.

No. Mac OS X has a kernel by way of the integrated facilities.

> At first I was
> >under the impression that a nanokernel was a Unix specific thing,

Not really. Most unix systems have kernel functions integrated with the upper layers. A few unix system have a microkernel
underneath them. mklinux is one such system.

>
> >then after some very quick research on the web, I concluded that no,
> >prior Mac OS's make use of a nanokernel also.

The nanokenrel was used starting with system 7 on 6100s.

> > In particular, OS 9.1 makes use of a nanokernel.

Yes.

> Mac OS X uses the Mach kernel, developed at Carnegie-Mellon. It's a
> microkernel -- it implements some stuff, but leaves a lot of stuff to be
> implemented outside of the kernel.

Yes, but at this point OS X integrates many more functions into the kernel.

> Mac OS 9 uses a nanokernel. The nanokernel implements a very small
> number of things -- basically the lowest level of interaction with the
> processor and other components of the system is in the nanokernel,

The nanokernel implements a fair amount: multitasking, multiprocessing support, multiple virtual address spaces, memory
protection, server based VM, server based I/O, address space management kernel calls. There are over a hundred kernel calls.

> >So, what I am interested in, is this: When you run Classic mode inside
> >of OS X, you are 'taking' in some way from a bootable 9.1 OS (I guess
> >usually) that sits on another partition on your hard drive. That
> >bootable 9.1 OS must also make use of a nanokernel. Does it make use
> >of it while you are using Classic mode? It would have to in some way,
> >correct?

What is done (and this is clever), is the kernel SPIs are used as an abstraction layer. The native nanokernel is replaced by a
shim which either directly implements kernel calls or uses OS X services to implement other kernel calls. It's a little bit more
complicated than this, but essentially this is what takes place.

> I believe that the Mac OS 9 nanokernel is not involved in
> the Mac OS X Classic action.

Insofar as the native code is not used, but the SPI remains.

> By replacing interactions with the
> nanokernel with interactions with the Mac OS X kernel, the Classic
> environment becomes just another process running under Mac OS X.

Mostly so. There are other high level issues such as coordinating window drawing, unifying high level event management, drag and
drop clip board management. One important thing is under OS 9, Mac OS (that which most people interact with) is just another
process running as a task by the nanokernel.

> >How does Classic mode work? Is it, from the programming standpoint,
> >just an entire 9.1 OS running inside of OS X?

Mostly with fancy plumbing to bridge services between the two OSs, and a pseudo kernel supporting the nanokernel's SPI.

> (Meeroh says)


> Basically, this is my understanding:
>
> Mac OS 9 structure is
> Applications & Drivers -> System -> Nanokernel
>
> Mac OS X structure is
> Applications -> System -> Kernel & Drivers
>
> Mac OS X with Classic structure is

> Mac OS 9 Applications & Drivers -> Mac OS 9 System in Classic -> [abstraction layer] Mac OS
> X Kernel and Drivers
>

I added the abstraction layer. Also, to makes things run faster there are various virtual machine-like assists in the mach kernel
for classic.

Classic runs surprisingly well, up to 90% of native performance on X if you throw a lot of RAM into your machine to accomodate the
combined working sets of the two systems.

R.


Simon

unread,
Jun 2, 2001, 9:57:15 PM6/2/01
to
Although not intending to cause offence, the article
<macdev-2308BE....@senator-bedfellow.mit.edu>stirred the one
know to friends as
meeroh <mac...@meeroh.org> to proclaim:

> In article
> <coolsim-F3BEEE...@news6-win.server.ntlworld.com>,
> Simon <coo...@mac.com> wrote:
>
> >Using random signatures is as simple as putting text files into a folder
> >called "Random Signatures" in your Preferences folder.
> >
> >Really?!
>
> You need to install "IC Random Signatures" Internet Config extension and
> then it's as simple as that.
>
> hth
>
> meeroh

Where is that extension?
I can't find it using sherlock2, so presumably it's not installed, and
I can't find it on the web.

Any pointers?

meeroh

unread,
Jun 2, 2001, 10:39:33 PM6/2/01
to
In article
<coolsim-DAB27D...@news2b-win.server.ntlworld.com>,
Simon <coo...@mac.com> wrote:

>Where is that extension?
>I can't find it using sherlock2, so presumably it's not installed, and
>I can't find it on the web.

It was included with some older versions of InternetConfig. See
<http://www.access.ch/power/infoservices/TidBits/TidBits276.html>

hth

meeroh
--

Simon

unread,
Jun 3, 2001, 8:34:38 AM6/3/01
to
Although not intending to cause offence, the article
<macdev-646534....@senator-bedfellow.mit.edu>stirred the one
know to friends as
meeroh <mac...@meeroh.org> to proclaim:

> In article

> <coolsim-DAB27D...@news2b-win.server.ntlworld.com>,
> Simon <coo...@mac.com> wrote:
>
> >Where is that extension?
> >I can't find it using sherlock2, so presumably it's not installed, and
> >I can't find it on the web.
>
> It was included with some older versions of InternetConfig. See
> <http://www.access.ch/power/infoservices/TidBits/TidBits276.html>
>
> hth
>
> meeroh

The links there were dead, but I googled "Internet Config 1.1" andfound
a download...
Hope it works...

Simon

unread,
Jun 3, 2001, 9:27:50 AM6/3/01
to
Although not intending to cause offence, the article
<coolsim-09F36D...@news6b-win.server.ntlworld.com>stirred
the one know to friends as
Simon <coo...@mac.com> to proclaim:

Hmmm... None seem to have the extension bundled, and most links to IC
are broken...

Oh well, too bad...

Ioannis

unread,
Jun 3, 2001, 11:46:24 AM6/3/01
to
Simon wrote:
[snip]

> Hmmm... None seem to have the extension bundled, and most links to IC
> are broken...
>
> Oh well, too bad...

If you still cannot locate it, email me at jgal at ath.forthnet.gr and I
will send it to you.

Reply all
Reply to author
Forward
0 new messages