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

Re: [MiNT] virtual address spaces



Mark Duckworth napisał(a):
<cut>

IMO, the implememnation of virtual memeory is not that hard on 680x0 platform. The problem is we have to struggle with other problems Atari left us.

1. Disk drivers

Atm. disk drivers (XHDI) live outside the kernel. That means the are hard to be put into virtual address space.

2. AUTO

User can put lots of stuff to run before FreeMiNT kernel. Arrgghh...

3. Apps that have idea how memory looks, GEM protocols and pointer sharing....

Solution:

Ad1:

Write own disk driver as a part of kernel and do not use other ones. Falcon IDE driver is easy. Floppy - we can take it from EmuTOS (I tried it and got reading work) ACSI/SCSI - I dont know really.

Ad1/2/3:

As I previously written about we need to separate our virtual machine into 2 worlds.

First world is an "old style". W keep AUTO, XHDI drivers, old apps there. Any acces to ST-RAM address space is a phisical (ie. not translated). Any accest to TT-RAM is translated. All processes live in one virtual memory space

First world is created at startup from phisical memory - ie each memory chunk that is malloced before FreeMiNT starts goes, and stays there.

Second world: for all new apps, every app have their own adress space, (almost) full memory virtualization for each process, every process have his own sandbox.

We can keep a "window" at fixed memory address (ie. the same address in each sandbox) between both worlds to allow some limited support for old style GEM protocols...