On Mon, Feb 04, 2002 at 02:12:27PM -0800, Michael Davidson wrote:
I am inclined to think that *none* of the other
operating systems that
have been mentioned
- Linux, Minix, BSD UNIX etc - are of much use *except* as a reference
for how to do
certain things with the hardware (and they probably aren't even very
good for that purpose)
I feel that Linux and *BSD are possibly overkill for reference as
a device driver model. Mainly because they have evolved so far on
from what Vx is and they were even in the earliest days.
I DO feel however that the source of a current PC system could be a
good example of how to talk to the floppy, keyboard etc etc at the
lowest level ie performing the read, write etc etc. So because of
its small size and the fact that it doesn't have hundreds of people
editing the code then say MINIX could be very usefull as a "how did
they read from the floppy drive"; NOT how did they do process
scheduling.
So for example taking the source for the RK driver from V6 rk.c:
If we were say in a PC version to call the floppy drive RK (why not?),
then the aim would surely be to rewrite the appropriate functions
so they are specific to the PC floppy drive.
UNIX has come a *long* way since V6 and V7, and a
modern BSD device
driver with
support for disk partitioning schemes, bad block mapping and
who-knows-what-else is a
very different beast from the V6 rk11 driver.
Of course it is. Otherwise I would still be using a magnet to edit
the hard disk the hard way. I don't think for one minute we should
provide that level of sophistication.
Instead we should aim at getting a "1970s version of Unix" running on
a PC. So initially the teletype becomes the screen and the keyboard
and the disk unit becomes say the floppy drive.
Later things can be expanded to talk IDE/SCSI whatever - but at that
point you are evolving the "1970s version of Unix" on a stage further -
which at present is not what I (at least) consider a goal of any
potential porting project to be. It becomes part of a wish list.
At present I would be extremely happy with being able to put a 1.44MB
floppy disk in a PC and watch the PC boot an early Unix, provide a shell
and be able to use a few tools.
I don't think that initially we should aim for any more than that.
My apologies if I am raining on anyones parade or this mail has gone
out of context to the one I am replying to, or is even turning into
a rant. Sorry if I am irritating anyone.
To me, at least, the "obvious" way to get a
V6 or V7 disk driver working
is to do exactly
what almost everyone used to do when faced with this problem - you start
with
something like the rk11 driver, study it until you understand how it
works (or at least
think that you do ...) and then modify it to talk to your particular
piece of hardware.
Exactly. That way you waste less time mucking around.
From that perspective, what you *really* need is good
documentation for
the PC
hardware that you are going to be dealing with - ie interrupt
controller, dma controller,
floppy controller, ide interface etc.
The PC Indispensible Hardware Book ISBN: 0201596164 is dead good for this.
A quick look at Amazon reveals that there is a new edition - which is
going to cover hardware we are unlikely to use - so an earlier edition may
be found fairly cheaply. Besides I am not forking out for another copy
just yet - the wifes course books are crippling my bank account as it is. :-)
Regards
Paul