Sulla “apparente” superiorita’ di Microsoft Windows Vista

Ecco cosa ho trovato oggi su internet riguardo al nuovo Windows Vista. Un articolo intitolato “Windows Vista restricts GNU GCC apps to 32MB”. Che dice:

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.

Leggete l’articolo completo qui.

Per i non anglofili, o per quelli che non si sentono a proprio agio con certe cose tecniche, traduco riassumendo: Windows Vista limita a 32 Megabytes la memoria allocabile da parte di software compilato con il compilatore GNU GCC. In pratica le richiete malloc() sono limitate a quelle dimensioni, ridicolo! SEMPLICEMENTE RIDICOLO!

Cioe’ solo gli eseguibili compilati con un compilatore Microzozz e linkati con le API netive M$ possono allocare piu’ di 32 MB di RAM. Se si compila con GCC, il limite di memoria allocabile e’, appunto, di 32 MB…..
Chissa’ quali altre sorprese troverete VOI, nei vostri sistemi operativi Vista! 🙂

Pensate a software come Gimp, Ethereal, Gaim, Tomcat, Apache, Mysql… non funzioneranno piu’ sul vostro fiammante Windows Vista!

Siete ancora sicuri di voler ancora usare prodotti Microsoft? Vi rendete conto o no che questo e’ un crimine vero e proprio?

Beh intanto continuate a comprare portatili con Windows Vista gia’ preinstallato.. utilizzate copie pirata di Microsoft Office… etc… etc… la volete prendere o no una posizione chiara ed etica? 🙂 Mi pare sia arrivato il momento di iniziare!

Comments Posted in Diritti digitali, Informatica, Paranoia, Politica, Scienza, Software

Comments

  1. Tra parentesi, il ragionamento fatto dal team della NTVDM è analogo a quello fatto dagli autori di DosBox, che limita di default la memoria allocabile a 16 MB, aumentabili a 64 modificando il file di configurazione (per andare oltre i 64 bisogna modificare i sorgenti e ricompilare).

  2. Credo che abbiano pensato che, dal momento che le applicazioni DOS giravano su macchine con risorse veramente limitate, 32 MB fosse il massimo che un’applicazione con un po’ di sale in zucca potesse allocare, e che allocazioni maggiori potessero derivare solamente da bug o altri problemi. Oppure ci possono essere applicazioni che non liberano la memoria finché non esaurisce, usando il fallimento di malloc in maniera simile al messaggio WM_COMPACTING di Windows 3.x; vista la grande quantità di memoria presente sulle macchine odierne malloc non fallisce mai e queste applicazioni continuano a mangiare memoria inutilmente.
    Il limite quindi finisce con il simulare la quantità di memoria presente su una macchina di alta gamma dei tempi del DOS, dando all’applicazione un ambiente di esecuzione “realistico”.
    La rottura di compatibilità con poche applicazioni legacy sarà parsa accettabile vista anche la sempre maggiore diffusione di applicazioni di virtualizzazione, con cui le poche applicazioni non più compatibili gireranno sicuramente meglio (le applicazioni 16 bit in NTVDM girano piuttosto lentamente).

  3. pallotron says:

    grazie del commento.

    io non capisco comunque perche’ un sistema operativo, di default, debba evitare ad una applicazione di alloccare tutta la memoria che gli serve (come fa a decidere che e’ assai? 🙂 ).

    magari e’ un vecchio applicativo scientifico che necessita di memoria. che ne so. buh. uno avrebbe diretto alla retrocompabilita’. se un programma chiede di allocare quella memoria vuol dire che gli serve 😀

  4. Guarda che si sta parlando di applicazioni compilate a 16 bit e quindi eseguite in modalità di compatibilità DOS… mi pare più che normale che, dopo 16 anni che i sistemi Windows sono a 32 bit, Microsoft decida di tagliare un po’ la compatibilità con le applicazioni a 16 bit (peraltro per un buon motivo, vedi dopo). Inoltre questa limitazione si verifica per applicazioni compilate con QUALUNQUE compilatore a 16 bit e quindi eseguita in NTVDM, compreso il buon vecchio Microsoft C++ (non ancora Visual) dei tempi andati. Lo scopo di questa limitazione (come spiega l’e-mail che probabilmente viene da un programmatore Microsoft citata in fondo all’articolo) è di evitare che applicazioni a 16 bit allochino quantità enormi di memoria per niente: le applicazioni DOS infatti, lavorando con un sistema operativo senza multitasking avevano a disposizione praticamente tutta la macchina per sé, e quindi anche allocando tutta la memoria fisica disponibile non c’erano altre applicazioni che ne risentissero; allocare troppa memoria invece è dannoso su un sistema multitasking, dal momento che essa è condivisa con altre applicazioni (anche se il problema è di molto diminuito dall’utilizzo della memoria virtuale).
    Tutto quello che dici dopo sulle applicazioni open source che non dovrebbero funzionare è un mucchio di scemenze, dal momento che le applicazioni che citi sono compilate a 32 bit e lavorano con le API di Windows (come ogni applicazione Windows fa, esattamente nello stesso modo in cui ogni applicazione sui sistemi UNIX-like richiama le syscall).

  5. Marco says:

    a dire il vero cio’ succede solo con djgpp perche’ e’ un compilatore piuttosto vecchio con mingw o cygwin cio’ non accade