Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Installing and building Minix2 ?

251 views
Skip to first unread message

matt...@gmail.com

unread,
Feb 16, 2014, 3:04:57 AM2/16/14
to

For reasons I can't recall I decided I should install "Real mode" minix.

* Which version/flavor of Minix2 should I use?

I read somewhere that 2.04 was too big to run in real mode? and the readme for 2.03 says that it won't run in XT flavor (but will run in 8086(i86))? I'm a bit confused, whats the difference?

* Is there a guide to building Minix 2?

I studied the original OSDI many years ago and i seem to recall that it had a quite comprehensive guide, either in the appendices or the associated documentation, that covered:
-tools used/useful in the build process
-information on using the ACK compiler
-tools and preparations for building with a different compiler
-tools and preparations for building on a different host system
-even a primer on C and the ways Minix used macros etc

thanks,
matt

Antoine Leca

unread,
Feb 17, 2014, 10:08:23 AM2/17/14
to
matt...@gmail.com wrote:
> * Which version/flavor of Minix2 should I use?
>
> I read somewhere that 2.04 was too big to run in real mode?
> and the readme for 2.03 says that it won't run in XT flavor
> (but will run in 8086(i86))? I'm a bit confused, whats the difference?

Hmmm... I am not sure what you read exactly. Both releases notices
starts with:
*Important note*: Version 2.0.[34] will not run on a system with
only 640K! The halfbaked swapping code does not fully
compensate for the increased memory use of other parts of the
system, most notably the shell. [...]

So neither 2.0.3 nor 2.0.4 will run on an XT (which is limited to 640KB
by construction), nor on the 8086-based clones which were using the AT
disk controller, nor on 80286 without at least 384KB of extended memory.
Since running MINIX in real mode restrict the memory space to 640KB at
most, this is indeed not an option.
I believe you should be able to build a 2.0.3 version with the old MINIX
shell (still present in commands/sh), then fixes all the uses of the new
features of Almquist's ash (like in /etc/profile and the like) and be
able in the end to have something which can run from real mode (using
the TINYROOT, of course). It is not going to be easy.

The main (only?) difference between the XT versions and the others is
the disk driver, the XT versions are using the xtwini controller, the
386 and 286 variants are using the atwini, and the DOS-MINIX are using
the "bioswini" pseudo-controller. Then you have the TINYROOT staring
floppy disk to circumvent the maximum size of the disk storage ion a
regular XT, which is 360KB (to speak with modern units, this is .00034GB)

> * Is there a guide to building Minix 2?

"Running make from the /usr/src/tools/ directory" is the main way to
build Minix itself (including servers); and from /usr/src to rebuild the
libraries, the commands, and the boot monitor.


> I studied the original OSDI many years ago and i seem to recall
> that it had a quite comprehensive guide,

Reading OSDI 2nd ed. is certainly the best way to ride MINIX 2!


Antoine

Hul Tytus

unread,
Feb 17, 2014, 5:37:30 PM2/17/14
to
For info on the 2.0.? minix systems, most of the files & info can be
found at http://minix1.woodhull.com. The 2.0.2 version is a 32
bit system, though I believe it can be compiled for 16 bits.

Hul

matt...@gmail.com

unread,
Feb 18, 2014, 2:48:53 AM2/18/14
to
Thanks folks,

On Tuesday, February 18, 2014 2:08:23 AM UTC+11, Antoine Leca wrote:
......
>
> So neither 2.0.3 nor 2.0.4 will run on an XT (which is limited to 640KB
> by construction), nor on the 8086-based clones which were using the AT
> disk controller, nor on 80286 without at least 384KB of extended memory.
> Since running MINIX in real mode restrict the memory space to 640KB at
> most, this is indeed not an option.
...

It looks like I'll build 2.0.2 then.
Do you know where I can get the fixes based from 2.0.2?

...
> The main (only?) difference between the XT versions and the others is
> the disk driver, the XT versions are using the xtwini controller, the
> 386 and 286 variants are using the atwini,
...

After looking at it all again I think the stock kernel supports all hard disk types? The differences between i86 flavours seem to be the floppy size and the size of the RAM disk.
Removing the unneeded drivers should gain me a bit of space?

The binary for the 286 is the same as the 8088. Does the 286 use protected mode? Or does it just put the RAM disk into the extended memory (I think I read that somewhere)?

...
> "Running make from the /usr/src/tools/ directory" is the main way to
> build Minix itself
...

Given the space limitations in Real Mode, I think I'll be better to build on a bigger (and faster) system, using the i386 version of minix.

I think this is going to need a lot of manual configuration.
Pity there is no tutorial or guide like minix1 had.

...
>
> Reading OSDI 2nd ed. is certainly the best way to ride MINIX 2!
...

It will be arriving next week.
Hope it gives a bit some guidance on how to building.


matt

Antoine Leca

unread,
Feb 18, 2014, 9:57:00 AM2/18/14
to
matt...@gmail.com wrote:
> It looks like I'll build 2.0.2 then.
> Do you know where I can get the fixes based from 2.0.2?

Only formal I know of is... 2.0.3.
Besides it, most public informations were pushed on this very Usenet
group, where you'll encounter the most information, as well as...

Hul Tytus indeed wrote in <news:ldu2va$ikn$1...@reader1.panix.com> :
: For info on the 2.0.? minix systems, most of the files & info can be
: found at http://minix1.woodhull.com.

... which is definitively worth reading!

: The 2.0.2 version is a 32 bit system,

Nope, 2.0.2 (as all 2.0.* releases) exists as both a 16-bit and a 32-bit
release. Source is common to both.

: though I believe it can be compiled for 16 bits.

I also believe that (particularly since beginning from 2.0.3, the i386
system is able to compile the boot monitor which is a 16-bit binary),
but to be honest I never tried the cross-compilation system. Make sure
you have /usr/lib/i86/lib*.a available to your i386 system.

> ...
>> The main (only?) difference between the XT versions and the others is
>> the disk driver, the XT versions are using the xtwini controller, the
>> 386 and 286 variants are using the atwini,
> ...
>
> After looking at it all again I think the stock kernel supports all hard
> disk types?

Seem so. There are details about it at the bottom of
http://www.minix-vmd.org/pub/minix/2.0.3/


> The differences between i86 flavours seem to be the floppy size and
the size of the RAM disk.

This is correct, and it reflects the most often encountered
combinations: XT with 512K and 2 floppy drives, XT with hard disk (and
hence only one 360K floppy drive), AT286 with about 2M memory and HD
floppies, etc. To start off, MINIX cannot use the hard disk so should
rely on the floppies; the system (including the shell etc.) needs more
than 360K, so when there is only one floppy drive of this capacity, you
need kludges (explained in details in xt/README.) One such hack which is
common enough, is to have enough of RAM, so it get embedded in the
system: the bootstrapped system creates a big-enough RAM disk, loads the
content of the first floppy (ROOT) into it, then mounts the second
floppy (USR) in the (only) floppy drive: done.

> Removing the unneeded drivers should gain me a bit of space?

Yes, but not enough: a driver is several K, and what is missing is more
in the 100-200 K...


> The binary for the 286 is the same as the 8088. Does the 286 use protected
> mode?

Yes, as soon as it detects a 80286; that is, until overridden with
processor=86; see monitor(8).

> Or does it just put the RAM disk into the extended memory (I think I read that somewhere)?

Yes, it does that as well! I do not exactly remember how (or even if) it
handles enhanced memory (EMS, as opposed to XMS), I just remember it is
NOT compatible with protected mode so can only be handled in real mode;
I do not remember if support for that, if it even made its way into
official MINIX, survived into 2.0.x.


Antoine
0 new messages