Publicado el Domingo 22 de Abril del 2007 @ 17:49 por Armonth.
No me gusta demasiado escribir sobre Windows Vista por la de tiempo que puede conllevar moderar si se genera un flame sin sentido, pero es que el nuevo sistema operativo de Microsoft ya parece 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 comocalloc(...)) 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.
Que porqueria el Vista, me parece muy mala competencia que hagan cosas como estas.
Pues vale, debido a toda esas distribuciones Linux para torpes y a que los ordenadores de Apple están mas baratos que nunca posiblemente Microsoft esté pasando por su peor época en cuanto a cuotas de mercado y para mejorar la situación tiran piedras contra su propio tejado: requisitos de sistema absurdos, imposibilidad de recuperar sus propias copias de seguridad, una cantidad de variantes del mismo Vista que hace dudar cual comprar y ahora resulta que no permiten utilizar compiladores de otros…
Conclusión: Los desarrolladores utilizarán otros sistemas operativos para programar, una vez que hay que programar desde otro sistema operativo pues ya haces una versión para el SO desde el que trabajas, y de ahí poco a poco irán abandonando Windows…
Enrealidad será solo GCC el afectado, o son todos aquellos programas compilados sin usar las API de Windows. Yo imagino que es por lo segundo… lo siento pero ya no podrás usar tu viejos programas en FoxPro, ni tus juegos DOS XD
hola he leido los comentarios…bueno io propramo con el mingw y al comprarme un note venia con vista bueno instale el mingw hice algunos programas pero al compilar me salia ————-configuration: chao - Debug—————-
compilin..
chao.c
gcc.exe: intallation problem, cannot exec ‘cc1′: No such file or directory
chao.o - 1 error(s), 0 warning(s)
mi pregunta es si se pude arreglar esto para que pueda compilar el mingw…ojala me respondan prfa!!!
Como odio Window$ Vista, porque limita a los compiladores de GNU como GCC y a las APIs ANSI, POSIX y otros que superan bastante a la de Win32. En Linux y DOS mis programas se compilan bastante bien solo porque no restringen a los compiladores de codigo abierto. Ese metodo creado por Micro$oft frente a compiladores GCC y programas sin la API de Win32 es solo para hacer creer a los programadores que es mejor usar compiladores propietarios (como el cochino M$ Visual Basic o el asqueroso M$ Vicual C/C++, o si no el lenguaje C#, plagio de los lenguajes C/C++) en vez de compiladores de codigo libre, y es evidentemente una tecnica de monopolio abusadora hacia el codigo abierto. Yo pienso usar solo Linux (el mejor de todos), Win$hit 2000 (solo para desensamblar drivers y examinarlos) y DOS (por su velocidad)
Estoy buscando todos los comandos que usa la funcion system de C++.
si alguien los tiene agradeceria que me los enviara
Windows vista es un asco.. en realidad s lo peor en S.O. es una pena q microsoft este diseñando porquerias asi….
ayr leí un artículo que creo que tiene que ver con esto:
wikipedia
64-bit data models:
Many 64-bit compilers today use the LP64 model (including Solaris, AIX, HP, Linux, Mac OS X, and IBM z/OS native compilers). Microsoft’s VC++ compiler uses the LLP64 model. The disadvantage of the LP64 model is that storing a long into an int may overflow. On the other hand, casting a pointer to a long will work. In the LLP model, the reverse is true. These are not problems which affect fully standard-compliant code but code is often written with implicit assumptions about the widths of integer types.
Desde hace un año vengo compilando todos mis programas en Linux usando GCC…!Que libertad para programar (En C++)!…Gracias a la comunidad del software libre me estoy liberando de la tirania de Windows y su limitativo sistema operativo Vista…Pero aun asi, que mala y desagradable noticia…Eso si que es una patetica estrategia de monopolizacion…