Subject: Re: Got a kernel, now what?
To: Chris G Demetriou <Chris_G_Demetriou@lagavulin.pdl.cs.cmu.edu>
From: Jonathan Stone <jonathan@DSG.Stanford.EDU>
List: port-pmax
Date: 12/09/1994 09:23:20
[[This is long. Executive summary: On a pmax, NetBSD's kernel
  is a long way away from what a pmax can boot, and __some__
  compatibilety seems like a Really Good Idea, for both
  bootstrapping now and installation later]]

cgd writes:


[[ted lemon writes:]
>> I actually went to the trouble of macrofying locore.S so that it can
>> be compiled either way - each symbol is encapsulated in a cpp macro,
>> like this:
>> [ ... ]
>
>a somewhat-good idea, to get things bootstrapped, but the long term
>goals are:
>       (1) to become completely 'native',
>        (2) to be clean.
>
>I.e. if this stuff is added now, it should be removed later.

these goals are motherhood-and-apple-pie unobjectionable.
However, they seem to ignore some pragmatic aspects about
the DECstation NetBSD port:

  (a) The vendor's bootblock cannot boot a 'native' pmax NetBSD kernel,
      only ECOFF kernels with little-endian headers. (`Native' is
      little-endian a.out with a big-endian magic number.)
  (b) There's __no__ other extant bootblocks for the pmax that can boot
      a NetBSD pmax kernel, except the binary image on Gregorio.Stanford.EDU
  (c) There's no tools available for a pmax NOT ALREADY RUNNING NETBSD
      that can safely build a fileystem on a pmax that's read-write
      mountable,  by NetBSD, on a pmax. (tools that run on, e.g.,
      x86s running NetBSD do exist, and can construct filesystems
      mountable read-write, but they probably have a very
      different idea about where the bootblock code should reside.)
  (d) pmaxes -- at least those I've seen -- tend not to have
      bootable read-write removable media (e.g., floppy drives).
  (e) There's no source available from anywhere (other than me)
      from which a  bootblock that can boot a NetBSD kernel can be
      built;  the necesary  changes  haven't yet been merged into
      __anyone__ else's source tree, that I know of. This will
      hopefully be rectified in the near future. It shouldn't
      be a long-term issue.

Given all those points, the word that comes to my mind to describe
installation of NetBSD on a pmax, _WITHOUT_ using an ecoff-format
kernel at some point, is ``insurmountable''.  Clearly it can be done,
but it's not easy. Especially if one doesn't have some other machine
running NetBSD to help out.  (And why would one care about something
as old and slow as a pmax, if one had a 486 or pentium that's as fast
or faster, and better supported by NetbSD?)

This makes me think ongoing support for building ecoff kernels (e.g.,
for installation of a binary distribution) seems _entirely_
reasonable.  The only other reasonable approach I've thought of is to
write a second-level bootstrap loader that can read and load either
ecoff or native NetBSD kernels, and to install _that_.

I really, sincerely wonder if NetBSD has been ported to any other
platform where the impedance mismatch between the vendors' OS and
native NetBSD is so great? (Not counting DOS, which is so deficient
that many master boot records capable of booting other OSes are widely
available.)