Windows Vista limita el uso de GCC

Autor: Armonth | El domingo 22 de abril del 2007 @ 17:49.

No me gusta demasiado escribir sobre Windows Vista por la de tiempo que conlleva moderar si se genera un flame sin sentido (y se genera demasiado a menudo) es que le están cayendo hostias de todos lados. El nuevo sistema operativo de Microsoft ya parece de chiste de juzgado de guardia.

Si ayer hice un resumen de los problemas que le están sucediendo, ahora me entero que limita el uso de GCC (vía Kernel Source):

Executable images created for the DOS/Wintel environment, using the GNU GCC compilers and language standards (but not linking to the Win32 API), are subject to failure (or performance degradation) when executed in Microsoft Windows Vista, because Vista arbitrarily restricts the memory space for the GCC executable to 32 MB (33,554,432 bytes).

Attempts to allocate more memory than this using the malloc(...) function (or related functions, such as calloc(...)) will fail. This limitation applies whether the application is executed with the Run command, within a Command Prompt box (DOS box), or with the Start command.

This limitation does not appear in Windows XP, Windows 98SE, or standalone DOS; the exact same executable, running under Windows XP SP2 or Win98SE, is capable of allocating several hundred megabytes of physical memory (if present on the machine). The limitation appears to apply to any compiler and linker not employing Microsoft's proprietary Win32 API.

O traducido:

Los executables creados para el entorno DOS/Wintel usando el compilador GNU GCC y lenguajes estándares (pero sin enlazar a la Win32 API) pueden fallar (o su rendimiento verse degradado) cuando son executados en Microsoft Windows Vista debido a una restricción arbitraria a 32 MB (33,554,432 bytes) del espacio de memoria para el ejecutable de GCC.

Intentar ubicar (N.dT: "allocate") más memoria usando la función malloc(...) (o funciones relacionadas como calloc(...)) fallaran. Esta limitación se aplica a cualquier aplicación que es ejecutada con el comando "Ejecutar", con el interprete de comandos (a.k.a "consola DOS") o con el comando Start.

Esta limitación no aparece en Windows XP, Windows 98SE o DOS: el mismo ejecutable corriendo sobre Windows XP SP2 o Win98SE es capaz de ubicar cientos de megabytes de memoria física (si ésta está presente en la máquina). La limitación parece que se aplica a cualquier compilador o enlazador (N.dT: linker) que no usa la API propietaria de Microsoft Win32.

En fin, parece un ataque directo al software libre y a desarrollos multiplataforma. El artículo sigue y parece que no sólo limita GCC (todo compilador o enlazador que no use Win32 API) pero éste es sin duda el mayor perjudicado y también uno de los más utilizados.

Comentarios