Please consider a donation to the Higher Intellect project. See or the Donate to Higher Intellect page for more info.

AmigaMach FAQ

From Higher Intellect Wiki
Jump to navigation Jump to search
By popular demand, here's Jarkko Hietaniemi's excellent AmigaMach FAQ -

AmigaMach FAQ

$Id: KludgeMach-FAQ,v 1.15 1993/01/01 14:47:52 jhi Exp $

====== WHAT?

Mach kernel (MK78) has been ported to Commodore Amigas.
The port works provably on the following platforms:

- A3000 with AmigaDOS 2.04 in RAM with 4MB fast RAM ('030 25MHz)
- A2500 with 2 MB fast RAM ('030)
- A2000 with GVP Combo ('030 33MHz)
- A500  with CSA MegaMidget Racer ('030)

The port is also known as "KludgeMach".

Motorola 68030 definitely works, '020 should be sufficient as long as
a MMU (68851) is available.  On a '040 Mach sort of boots but checking
needs to be made whether the same binaries and sources still run on a '030.

To boot the KludgeMach at least 2MB fast RAM is required.
KludgeMach DOES NOT USE chip ram at all.  By tweaking sources the fast
RAM requirement could perhaps be pushed down to 512kB.

Diskspace requirement of the binaries is only 300kB.
The current distribution CONTAINS ONLY THE SOURCES and to build Mach
at least 3MB of fast RAM is required.  To build the binaries, 25MB of
diskspace is needed, of this 15MB is for Mach, 10MB for the
development tools.  The minimum memory requirement for the compilation
is at least 2 MB (works only with optimization turned off), 4MB is
probably enough.

NOTE: these requirements are only for now; in near future the
distribution is likely to grow significantly because device drivers
and servers are added.  The recommended minimum is then 4MB fast RAM
and 40MB disk.  Nice-to-have amounts are then 8MB fast and 100MB disk:
this much is needed for double build directories and for possible
Mach-based filesystem's playground.

====== WHY?

The KludgeMach project aims at building a free UNIXish environment for
the Commodore Amiga computers.  As its base it will use the Mach
microkernel built at Carnegie Mellon university (CMU).  Mach is
OS-independent, however, and therefore other OSs could also be run
on top of it as servers.

====== WHERE?

The port is available by FTP from the following places:

Australia:        GMT+10 (NSW)

Europe:            GMT+2  (EET)
        (or /pub/amiga/mach, both work)
        IP:  GMT+1  (MET)
        (or, both work)

United States:               GMT-5  (EST)
        IP:                  GMT-8  (PST)
        IP: is the primary distribution site BUT DO USE
The link to "down under" is seriously limited.  When uploading (ftp
put'ting), use the incoming/ directory of monu1.  Also remember to do
your ftp'ing when there is night at the site you are using.  The
distribution is mirrored daily from monu1 to homeboy and oes and from
there daily to Germany and Finland.

You need only the file


to get started. Currently the latest version is 0.007, based on CMU
MK78.  Note that the European sites have one directory deeper
hierarchy, you will need to get
SIM is a kernel debugger that will be useful if (when) you
start hacking on the Mach kernel.  It was done by Stefan Walter
<[email protected]>.

If you develop AmigaMach, it is best to use the tools provided
in the distribution (directory tools/).  This because then everyone
will know what the others are talking about (basically, face the
same bugs :-).  If you want/need to use some other tools, please
first discuss the choice in the mailing list and then if the new tool
is really deemed necessary, provide it to others by uploading it
to monu1.  The tools that are currently agreed upon are:

        gcc-2.2.2       (remember to apply fixes 1 to 3)
        GNU parser/patch utils

The full contents of the monu1 distribution are:

This is an area for the distribution of sources related to ports 
of the Mach microkernel from CMU to the Motorola 68000 series of

The directories are:

/pub/mach:                      - you are here
total 12
-rw-r--r--  1 1606         2761 Sep 11 13:33 README
drwxr-xr-x  4 1606         2048 Dec 17 12:05 amiga
drwxr-xr-x  2 1606         2048 Oct  6 12:46 cmu_src
drwxr-xr-x  2 1606         2048 Oct  6 12:46 contrib
drwxrwx-wx  2 1606         2048 Dec 14 15:54 incoming

/pub/mach/amiga:                - sources to AmigaMach
total 9718
-rw-r--r--  2 1606        21102 Nov  3 02:12 AmigaMach-FAQ
-rw-r--r--  1 1606         5178 Oct 18 01:45 Bootstrap.patch
-rw-r--r--  1 1606         2065 Oct 19 12:37 Bootstrap2.patch
-rw-r--r--  1 1606      3256873 Sep  3 14:12 KludgeMach-0.003.tar.Z
-rw-r--r--  1 1606      3041123 Sep 20 15:52 KludgeMach-0.006.tar.Z
-rw-r--r--  1 ftp       3317969 Dec 14 15:36 KludgeMach-0.007.tar.Z
-rw-r--r--  2 1606        21102 Nov  3 02:12 KludgeMach-FAQ
-rw-r--r--  1 1606         8341 Sep  3 19:52 KludgeMach-README
-rw-r--r--  1 1606         5301 Oct 22 17:45 SCSI.patch
-rw-r--r--  1 1606         5944 Oct 22 17:45 SCSI2.patch
-rw-r--r--  1 1606        68957 Sep  3 12:51 SIM.lha
drwxr-xr-x  2 1606         2048 Oct  6 12:48 diffs
-rw-r--r--  1 1606        35326 Sep 27 12:58 hd_wilde.diff
-rw-r--r--  1 ftp         53096 Sep 11 12:50 scsi9091.lzh
drwxr-xr-x  2 1606         2048 Dec 17 12:05 tools
-rw-r--r--  1 ftp         25840 Sep 11 12:50 uart.tar.Z

/pub/mach/amiga/diffs:          - differences between versions
total 60
-rw-r--r--  1 1606  e helpful
total 4550
-rw-r--r--  1 1606          388 Oct  5 11:21 GettingGNUTools
-rw-r--r--  1 1606       345600 Sep  4 18:43 dmake.lha
-rw-r--r--  1 1606           80 Sep  4 18:47 dmake.lha.readme
-rw-r--r--  1 ftp          7286 Oct  5 00:42 gcc-2.2.2-fix2.lha
-rw-r--r--  1 ftp        173155 Dec 14 17:42 gcc-2.2.2-fix3.lha
-rw-r--r--  1 1606      3306066 Sep  4 11:54 gcc-2
total 4818
-rw-r--r--  1 1606          254 Sep  5 10:38 getting_bsdss
-rw-r--r--  1 1606      2863311 Sep  3 13:52 mk78.tar.Z
-rw-r--r--  1 1606       219675 Sep  3 13:53 poe9.tar.Z
-rw-r--r--  1 1606      1777023 Sep  3 13:53 user18.tar.Z

/pub/mach/contrib:              - other random sources
total 494
-rw-r--r--  1 1606        92701 Sep  3 12:51 MachSun3.tar.Z
-rw-r--r--  1 1606         2571 Sep  8 11:27 second_SYS.h

Note that the European sites have one directory deeper hierarchy, you
will need to cd to /pub/mach/amiga, just /pub/mach is not enough.
Note also that the directory hierarchy (where the things are) may
mutate because new material will accumulate and the hierarchy might
need reorganizing.  The rule of thumb: use th.  This is not
continuously mirrored, it is only a snapshot of 7th of September 1992.

Mach documentation is available by ftp from                     GMT-5  (EST)

For example doc/osf/ is a good starting place.

====== BEWARE!

KludgeMach works, but only for suitably small values of "works".
Ha and to Michael if you have some special
  skills, hardware or just time to hack around.

  Michael is also in charge of the "offical" releases so SEND YOUR PATCHES
  TO Michael.  Here are the guidelines:
> * Use diff -rc to create a patch I can apply directly to the directory
> structure.
> * Send the patch to me and tell me you want it added. Tell me which
> version ing on this.

- drivers: SCSI, AT IDE, WD33C92, WD33C93, Commodore 2065/2090/2091
  expertise needed.
  Amiga UNIX has many device drivers WITH sources.  Their copyright
  status needs to be checked from Commodore.  Keith Gabryelski has
  volunteered to contact C= about this.  Ty Sarna <[email protected]> is
  contacting GVP about their drivers.  Other 3rd party vendors like
  IVS could also use some questioning.  Markus Illenseer
  <[email protected]> has already contacted Ralph Babel of GVP:
> He knew about the Mach Port already, he is very interested on a running
> kernel and a running Server. But he is not willing to implement a GVP SCSI
> driver while nothing is ruhen the driver for
> the A3000-SCSi and the A2091 is finished, and he thought this could be
> a point to enter into Mach.

- an OS :-) Work and queries are currently progressing on several fronts:

  BNR2SS/BSDSS: Michael Saleeba [Zik] <>
  The situation is a bit muddy: CMU has stopped SUPing BSDSS.

  BSD4.4: Real Soon Now -- the "lite" or unencumbpfer <[email protected]>:
> I understand that you're interested in the Mach-based Sprite
> single-server.  I'm the person who did the single-server.  I no longer
> work for the University of California, but I can give you some
> information about the server.
> - The sources for the Sprite single-server are available for anonymous
>   ftp from allspice.berkeley.edute
>   daemon.
> - The Sprite single-server implements a subset of Sprite
>   functionality.  There is no binary compatibility, either with native
>   Sprite or with UNIX.  Process migration is not supported, nor is
>   access to the local disk.  Most of the Sprite distributed file
>   system is implemented, ct, the Sprite group gave
>   up on supporting external sites in early 1992, and requests for a
>   Sprite distribution are now politely refused.
> - If you would like to browse any of the missing sources, I can try to
>   put together a tar file for you.  Also, feel free to send me mail if
>   you have additional questions.  Please be patient if I am slow in
>   answerinme time ago I spoke with Richard Stallman on the subject. He's very
> interested in having m68k-based machines running the Hurd. In fact
> apparently GNU have a couple of Amigas they'd like to use to help
> develop the Hurd, so it'd be nice if we could help out with that :-)

  The upper layers may be portable enough to make an UNIX server???
  Some work has been doichael Richardson <[email protected]> has at least a
  partial answer:
>   Yes, it is. The ISA bus architecture stuff is sufficiently isolated
> that making it work on other types of 386 system would be a snap. The
> 386 specific stuff is isolated to one directory tree (in which the isa
> stuff is located) as well. 
>   I am unclear as to how a Mach single serudio, clock, etc)

- contacts with GNU project (see the above discussion about Hurd)

- cross-compilation environment
  Jukka Partanen <[email protected]> is researching this area.

- RDB (Rigid Block Standard) experts

- AmigaOS emulator

- this FAQ file is maintained by Jarkko Hietaniemi


Erik Bennett            <[email protected]>
        oes.o       <[email protected]>
        the author of the initial port of Amiga Mach

Keith Gabryelski        <[email protected]>
        former C= AmigaUNIX Networking/X11/device Engineer
        AmigaUNIX device driver source status

Dominic Giampolo        <[email protected]> ftp maintainer

Niklas Hallqvist        <[email protected]> ftp maintainer (the primary site)
        the central coordinator
        the official releases

Ty Sarna                <[email protected]>
        Sprite research
        GVP contact

Markus Wild             <[email protected]>
        Linux preliminary peek
        Amiga ports of GCC and gtar

====== HOW?

Want more information?

t, amiga-mach, is most useful as an information channel
both for asking questions and for sending answers and progress reports.
For specific subprojects people are encouraged to use either personal
mail or create mailing lists if the subject is not necessarily useful
for "general public".
For example people working actively with console driver might get
together and create a entions
of Amiga UNIX, MacIntoshes and Mac's A/UX on the amiga-mach list.
Standardizing call conventions would make possible to have binary
compability between m68k-based Machs.

This FAQ is updated about weekly and then merged to the ftp distribution.
It is sent weekly to the amiga-mach mailing list and crossposted to
the following USENET newsgroups: