Martin Klaiber <
usenet....@gmx.de> writes:
>Michael van Elst <
mle...@serpens.de> wrote:
>> Andreas Kohlbach <
a...@spamfence.net> writes:
>>>Es soll Amix für den Amiga geben, der allerdings eine PMMU braucht (laut
>>>Wikipedia).
>> Amix läuft auf 68020+PMMU oder (die letzte Version) auf 68030. 68040/68060
>> haben eine andere MMU. Aber auf allem läuft NetBSD oder Linux/m68k.
>Meines Wissens liefen die ersten Unix-Versionen auf einer PDP. Hatten
>diese PDPs schon eine MMU oder brauchte Unix damals noch keine MMU?
Auch eine PDP hat eine MMU, allerdings nur Segmentierung (ähnlich 80286)
bei dem ganze Prozesse ein- und ausgelagert werden konnten.
Paging gab es erst mit der VAX, das besagt auch der Name
Virtual Address eXtension.
>Oder anders gefragt: Würde ein frühes Unix auf einem 68k-Rechner ohne
>MMU laufen, wenn man es dafür kompiliert bekäme (incl. der Anpassungen
>an die andere Hardware)?
UNIX überhaupt nicht. Da hat jeder Prozess einen eigenen Addressraum,
und dafür braucht es eine MMU. Ein 68000 hat auch noch ein weiteres
kleines Problem, er könnte selbst mit einer (externen) MMU keinen
virtuellen Speicher benutzen, da er Zugriffsfehler nicht sinnvoll
abarbeiten kann. Das gab es erst beim 68010 (z.B. eine Sun-2 hatte
einen 68010 und eine MMU-Eigenentwicklung).
Die beste Näherung wäre Minix (vor Minix3), da wird für m68k der
Addressraum dadurch simuliert, dass Prozesse ständig hin- und herkopiert
werden, so dass sie auf denselben Addressen laufen. Interessanterweise
braucht man das relativ selten, da beim Laden eines Programms
jeweils andere Adressen verwendet werden können, aber ein Programm
wie 'kermit' (serielle Datenübertragung) war extrem langsam.
N.B. ohne MMU funktioniert natürlich auch kein Speicherschutz. Ein
Prozess kann einen anderen, oder gar den Kernel, modifizieren oder
zum Absturz bringen.