[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Virtual Memory



On Tue, 14 Feb 1995, Christian Lynbech wrote:

> Daniel> In <9502132140.AA05922@amazon.cs.duke.edu>, Scott Bigham writes:
> 
> Daniel> Making MiNT capable of determining wheter to use VM or not is probably
> Daniel> very easy, just as you say. However, the difficult part will be how to
> Daniel> use it from programs without making the programs incapable of running
> Daniel> on systems without VM. In the end you will end up with either 2
> Daniel> different binary distributions of the program or one distribution that
> Daniel> doesn`t make use of the new functions (f.ex. a non-blocking fork()).
> 
> It might not be quite as bad as that.
> 
> If I understand things correctly, then the OS interface would stay
> essentially the same. fork() remains fork() but the VM fork() really
> works while the non-VM fork() blocks. To some programs this will make
> a difference, such as some shells with job-control, but many other
> programs won't really care. And for those where it matters, one could
> probably tolerate special distributions and the need for special
> actions to the source code.
>
> Other than that, VM will primarily have an impact on how many and how
> big programs you can run at one time.
 
That is what I was thinking of!

 
> Perhaps it should also be noted that even if the 68000 machines never
> will have real VM, some means of process swapping would be very
> welcome. The idea is to swap blocked processes out to disk so that
> other processes may run in their address-space. Even though swapping
> large processes on each context-switch could be intolerable slow, it
> could make the difference between something that runs and something
> that dont. And since fork() blocks on such machines, swapping is
> further reduced.

I think it will be very diffcult (if not even impossible) only to implement 
some simple way of swapping on 68000s. It's just the missing MMU. All 
programs would have to know that their pointers might change and some 
memory they just accessed is not valid any more. Maybe there is a way of 
putting this into the MiNTLibs. But it will be hard work, no question. 
And porting programs will be even harder, because most programs rely on 
non changing pointers.

I have a good old 520 ST, also. I won't have any use of VM on it, too. So 
should we leave it all as it is? A program that won't run in 4 MB on an 
68000, won't run in 4 MB on an 68030 without VM either.

I don't think someone will try to port Linux to 68000s, so for 68000 
users MiNT is the only way to get some Unix compatible OS. VM then is 
only a gift for those who have newer CPUs.


Ciao,
Stephan


+------------------------------+-----------------------------+
|      Stephan Haslbeck	       |    Fachschaft Informatik    |
|       Agricolastr. 61	       |   Technische Universitaet   |
|      D-80686 Muenchen	       |      Muenchen, Bayern	     |
+------------------------------+-----------------------------+
|          Es gibt keine Probleme, nur Loesungen.	     |
+------------------------------------------------------------+