[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...