On Wed, Sep 10, 2008 at 8:17 PM, celticht32@aol.com wrote:
Question : Why does wine have to allocate all its memory at startup? re... the issue that is causing the ATI drivers to have such a fuss.... why not just allocate as needed? or have the ability (if its not there already) to specify the total amount of memory which is available to the wine process and limit wine to just that ammount of memory (kind of like the way most VM machines have the option of setting the maximum amount of memory which is available).
Windows applications assume a certain memory layout, which sometimes conflicts with what *nix does.
For example applications don't expect to see pointers into the upper 1-2 GB of the 4 GB virtual memory address space because on Windows the kernel's memory is mapped there. But, ld-linux.so.2 could load libraries there, including libraries hosting Wine's DLLs, and pointers to memory in those would leak into the Windows code. So Wine prevents the "special" areas of Windows memory from being used by *nix libraries and functions like malloc() by mmap()ing that memory in advance.
In my opinion, it would be better if we used a custom dynamic linker (ie. an ld-wine.so) that could control where all libraries get loaded so we wouldn't have to steal memory in advance and go through one of the most elaborate startup processes in existence, where an assembly _start routine in wine-preloader loads before ld-linux.so.2 and then pretends to be the kernel.
Bye Damjan Jovanovic