[comp.sys.amiga] Minix and AmigaDOS

ehoogerbeets@rose.waterloo.edu (Edwin Hoogerbeets) (08/02/89)

In article <SHADOW.89Aug1004439@pawl.rpi.edu> shadow@pawl.rpi.edu (Deven T. Corzine) writes:
% Joe> They said: "AmigaMINIX boots from a normal AmigaDOS floppy".
% Joe> unambiguous reference to AmigaMINIX being started near the end of
% Joe> the startup-sequence, after your SetMap command.
% Joe>   Which means AddMem can go in there, no problem.
% If there's actually a startup-sequence, yes.

Doesn't AddMem tell *AmigaDOS* that there is more memory? If so, how is
AmigaDOS going to tell Minix about it? Minix is an OS of itself, and
takes over the machine, effectively doing the equivalent of a reboot.
When it boots on a PC, the MSDos stuff is never seen.

The boot code on the floppy is used as a bootstrap to get Minix
started. You may have to write your own custom hard drive drivers and
AddMem type stuff for all the neat goodies you have on your own machine.

Use the source, Luke!

Edwin

shadow@pawl.rpi.edu (Deven T. Corzine) (08/02/89)

On 1 Aug 89 22:35:24 GMT,
ehoogerbeets@rose.waterloo.edu (Edwin Hoogerbeets) said:

In article <SHADOW.89Aug1004439@pawl.rpi.edu> shadow@pawl.rpi.edu
(Deven T. Corzine) writes:

Joe> They said: "AmigaMINIX boots from a normal AmigaDOS floppy".
Joe> unambiguous reference to AmigaMINIX being started near the end of
Joe> the startup-sequence, after your SetMap command.  Which means
Joe> AddMem can go in there, no problem.

Deven> If there's actually a startup-sequence, yes.

Edwin> Doesn't AddMem tell *AmigaDOS* that there is more memory?

Dammit, WHEN will everyone get the difference between Exec and
AmigaDOS straight???  Stop and think a moment.  What does "AmigaDOS"
come from?  "Amiga Disk Operating System" -- It's only file-system
related stuff, by and large.  (not entirely, but mostly.)  It's all
layered on top of Exec.

Exec is the well-executed half.  It does the multitasking, memory
management, library and device handling, etc.  AmigaDOS adds a layer
for loading devices and libraries off disks, and has its own devices
(e.g. SER: which uses Exec's serial.device to do the actual I/O) but
doesn't handle things at a low level.

AmigaDOS defines more what the user interface is like, which is a
shame, as it is a pretty hideously implemented system.  Truly, there
ARE some nice design features (e.g.  assigned volumes and filesystem
processes) but the implementation is seriously ridden with dain
bramage, which is difficult to excise, at this stage of the game.
(BCPL is a big part of this.)

AddMem affects the system (_Exec_) free memory lists, and AmigaDOS is
no necessary part of the chain.

Edwin> If so, how is AmigaDOS going to tell Minix about it? Minix is
Edwin> an OS of itself, and takes over the machine, effectively doing
Edwin> the equivalent of a reboot.  When it boots on a PC, the MSDos
Edwin> stuff is never seen.

AmigaDOS doesn't "tell" Minix anything.  Minix disables the system,
and extracts the information it is interested in from the system
structures (the *Exec* system structures) and trashes everything else.
(AmigaDOS included.)  It does NOT do the equivalent of a reboot.  It
DOES take over.  (It's simple to do; do a Disable() and destroy the
system structures once you've got what you want out of them, and
install your own OS.  If you don't do the Enable(), Exec loses.)

On a PC, it installs itself using a special boot loader, and ignores
MS-DOS.  It could (and possibly does) do this on an Amiga, but to be
able to run AddMem and the like, you need to be able to load AmigaDOS
first.  (It remains a simple procedure to usurp the system completely
when you start it.)

Edwin> The boot code on the floppy is used as a bootstrap to get Minix
Edwin> started. You may have to write your own custom hard drive
Edwin> drivers and AddMem type stuff for all the neat goodies you have
Edwin> on your own machine.

AddMem-type stuff should be fine; all it does is change the system
memory lists to say "there is also *this* free memory"...  Device
drivers (for your hard drive or whatever) are useless, because the
depend heavily on the Exec library structure, device structure and
message-passing system.

Simply put, they CAN'T run under Minix -- Exec is
toasted.  If Minix were layered on top of Exec (as AmigaDOS is) then
it could use all existing Exec drivers.  [maybe filesystem-level
drivers would have to be written, but they could be done fairly
easily, relative to rewriting a low-level driver.]

Edwin> Use the source, Luke!

Boo, hiss.

Deven
--
Deven T. Corzine        Internet:  deven@rpi.edu, shadow@pawl.rpi.edu
Snail:  2214 12th Street, Troy, NY 12180       Phone:  (518) 271-0750
Bitnet:  deven@rpitsmts, userfxb6@rpitsmts     UUCP:  uunet!rpi!deven
Simple things should be simple and complex things should be possible.