Subject: Re: Lets boot NetBSD without the MacOS
To: Dr. Bill Studenmund <wrstuden@loki.stanford.edu>
From: Mike Frager <fragermk@drthunder.ml.org>
List: port-mac68k
Date: 02/23/1999 19:16:40
On Tue, 23 Feb 1999, Dr. Bill Studenmund wrote:

> On Tue, 23 Feb 1999, Mike Frager wrote:
> 
> > Hello everyone,
> > 
> > I'm interested in developing a way to boot NetBSD without the MacOS at
> > all. I think I've narrowed down two ways to do it:
> > 
> > First, an imposter Apple_Driver partition: this would be loaded in early
> > boot by the start manager and then would find a certain NetBSD partition
> > then load and execute a second stage loader that would actually boot the
> > kernel.
> > 
> > The advantage of the imposter Apple_Driver is that it is loaded very early
> > and would be simple to implement since the documentation for writing an
> > Apple_Driver is easily available. The downside is that we would have to
> > create a user space utility in NetBSD to manage it.
> 
> I think this method would be the best of the two. It's been a
> while since I read IM, but I seem to recall that Apple added hooks 
> to boot other OS's at about this stage. I thought it was a little
> different in that an Apple_Driver is trying to be a MacOS disk driver,
> while the other-os thingie is trying to be an OS-booter. The difference
> being that if you choose to boot MacOS, with the booter different from the
> disk driver, you could still have a macOS disk driver.
> 
> Probably the best thing to do is to add two partitions, one containing
> code the other preferences.
> 

I like this idea. I'm not too sure about the hooks to other OSes but it is
certainly possible. In this case we wouldn't need a MacOS driver since as
soon as the driver code is executed it will boot NetBSD, that's where the
second stage loader would come it. It would basicly do the same as Lilo on
that other platform. It would present the user with a prompt and if the
user wanted to go to MacOS it would just load a regular driver and
continue on it's way.

If the user were to choose NetBSD then at that point it would calculate
the section sizes and then actually boot the kernel. This will likely be
the hard part because this program will have no (practitly) function
libraries to call.

Is there anyone else out there who has worked with Mac SCSI on a low
level? I could use some help because it looks like this could be tough.

I think it will turn out to be worth it because these imposter drivers
could be made to work on any Macintosh.

Mike Frager
mike@frager.org