Pagina 1 di 1

Applicazione a 32bit su sistema a 64bit

Inviato: lun 27 feb 2017, 16:03
da joe
Mi è stato chiesto aiuto per far girare una vecchia applicazione per sistemi windows che consentiva di ottenere visure catastali.
L'applicazione penso sia la stessa roba che si trova qua:
http://www.agenziaentrate.gov.it/wps/co ... ale+comuni

Stava anche su un vecchio PC di una delegazione comunale tanto per capirci. Come si vede dal link sembra dismessa e fuori manutenzione, sostituita da una nuova versione. Pare anche funzionante solo su sistemi non superiori a windowsXP.
Invece sembra che l'amico che mi chiedeva, avesse l'applicazione installata su un PC con Win 7. Dopo aver portato il PC in riparazione e dopo una formattazione, gli è stato installato un sistema a windows 7 a 64bit.

Ho provato ad installarvi il programma, ma all'avvio dell'applicazione salta fuori un popup che segnala problemi dovuti all'incompatibilità tra il sistema a 64 bit e l'applicazione a 32 bit.
Domanda:
Ma non è forse vero che le applicazioni a 32bit funzionano sia su sistemi operativi a 32 che a 64bit?
Tant'è che anche in windows si trova la directory "C:\Programmi(x86)" contenente le applicazioni a 32bit, accanto a quella "C:\Programmi" per le applicazioni a 64 bit?
Sbaglio?

PS.
Ho avuto modo di provare l'applicazione sul mio XP virtualizzato sotto slackware con qemu. E l'applicazione gira... Quindi escluderei altri problemi di applicazione non funzionante in se.

Re: Applicazione a 32bit su sistema a 64bit

Inviato: lun 27 feb 2017, 17:18
da ponce
non uso molto windows, ma forse questo puo' aiutare?

http://www.megalab.it/5252/come-eseguir ... patibilita

Re: Applicazione a 32bit su sistema a 64bit

Inviato: lun 27 feb 2017, 17:33
da joe
Grazie, non ne ho idea... ma proverò la prossima volta che ho occasione di avere quel PC sottomano. :thumbright:

Re: Applicazione a 32bit su sistema a 64bit

Inviato: mar 28 feb 2017, 19:53
da Blallo
joe ha scritto:Ma non è forse vero che le applicazioni a 32bit funzionano sia su sistemi operativi a 32 che a 64bit?
Tant'è che anche in windows si trova la directory "C:\Programmi(x86)" contenente le applicazioni a 32bit, accanto a quella "C:\Programmi" per le applicazioni a 64 bit?
Sbaglio?
Dipende.
Se è stata scritta seguendo per filo e per segno le API di Windows funzionano senza problemi.
Se invece ha fatto molto "a fatti propri" (aka ha parti in asm) 99% non funzionerà.
E' il motivo per cui molti software per windows 95 non girano su Xp, anche a 32 bit.

In sintesi: è un terno al lotto.
Prova a impostare la compatibilità e a farla partire da amministratore.
Se non funziona, metti XP in una VM e vivi felice.

Re: Applicazione a 32bit su sistema a 64bit

Inviato: dom 5 mar 2017, 20:53
da hashbang
Onestamente questa storia mi puzza un po'.
Un'applicazione che gira su Windows a 32-bit ma non a 64-bit, che richiede in teoria MASSIMO Windows XP...

Ma siamo sicuri di stare parlando di un'applicazione a 32-bit? Per me questo sembra il classico caso di una a 16-bit. E tutto si spiegherebbe.

Per esempio il fatto che non funzioni su Windows x86_64 sarebbe del tutto normale perché il subsystem di retrocompatibilità per le applicazioni a 16-bit non è presente. Windows è sempre retrocompatibile architetturalmente di uno.
Windows x86 -> 16-bit
Windows x86_64 -> x86 (SysWoW64)

Usando il caro vecchio sigcheck che il buon Mark Russinovich ci ha messo a disposizione nella sua collezione di utility, le mie perplessità sembrano aver trovato conferma:
Immagine
Quindi, a meno che non stiamo parlando di un setup a 16-bit che installa un software a 32-bit direi che abbiamo svelato l'arcano.

[****SECONDA PARTE DEL POST****]

Per poter essere sicuri, dato che se non ricordo male le cagate di installer a 16-bit per roba a 32-bit erano un caso molto diffuso nei primi software installati tramite InstallShield e simili, ho messo su una VM Windows 2000 e ho installato il programma.

Morale della favola? La situazione è esattamente quella che mi aspettavo. Il software è a 16-bit. Lo si vede dal Task Manager:

Immagine

I software a 16-bit eseguiti in ambiente 32-bit sono mostrati leggermente spostati verso destra, per una questione di distinzione. Tra l'altro si nota la presenza di wowexec.exe, che è per l'appunto il componente di Windows che si occupa di gestire il subsystem a 16-bit.


Per concludere, o il tuo amico mette su una VM con una versione a 32-bit di Windows o formatta e installa direttamente quella sulla macchina.

Re: Applicazione a 32bit su sistema a 64bit

Inviato: lun 6 mar 2017, 0:22
da joe
Grande hash! :D

Grazie della spiegazione, ho provato anche io dal mio XP virtualizzato a verificare, ma purtroppo mi manca il comando "sigcheck" nel prompt del dos.
Per contro verifica ho copiato l'eseguibile nel mio sistema host linux e ho cercato di verificare di che tipo di file si trattasse:

Codice: Seleziona tutto

file /mnt/share/CAT_2000.EXE 
/mnt/share/CAT_2000.EXE: MS-DOS executable, NE for MS Windows 3.x
Siccome poi non avevo idea se quella roba lì significasse davvero 16bit, l'ho copiata e cercata con google e ad esempio qua:
http://wiki.osdev.org/NE

Spiega che si tratta di un formato a 16 bit:
The WIN-NE executable format, designed for Windows 3.x, was the "NE", or "New Executable" format. Again, a 16bit format, it alleviated the maximum size restrictions that the MZ format had.
poco oltre dice anche:
Operating Systems that use it: Windows 1.01 through 3.xx. The format can be run on later 32 bit windows systems (in a VDM), but is not the native format.
Because of 64 bit lack of v8086, support is discarded on 64 bit windows.
Il che probabilmente spiega un po' di cose e conferma quanto hai detto anche tu.

Qualche domanda:
1- http://www.dosbox.com/
Questo emulatore dos potrebbe farlo funzionare anche dal sistema con windows7-64bit?

2- Come avete letto poche righe sopra ho riportato l'output del comando "file" eseguito sull'eseguibile in questione. C'era un modo più semplice e soprattutto maggiormente "esplicativo" per capire se si trattava di un exe a 16 32 o 64 bit? In pratica qualcosa che mi ritornasse in modo esplicito se il file era un eseguibile a 16bit, oppure a 32bit o ancora a 64bit?

Grazie davvero delle risposte! :D

Re: Applicazione a 32bit su sistema a 64bit

Inviato: lun 6 mar 2017, 9:41
da hashbang
joe ha scritto:1- http://www.dosbox.com/
Questo emulatore dos potrebbe farlo funzionare anche dal sistema con windows7-64bit?
Onestamente non so se DOSBox supporta quel formato binario perché non l'ho mai usato.
2- Come avete letto poche righe sopra ho riportato l'output del comando "file" eseguito sull'eseguibile in questione. C'era un modo più semplice e soprattutto maggiormente "esplicativo" per capire se si trattava di un exe a 16 32 o 64 bit? In pratica qualcosa che mi ritornasse in modo esplicito se il file era un eseguibile a 16bit, oppure a 32bit o ancora a 64bit?
Se hai wine installato prova a vedere se sigcheck funziona. Lo trovi qui. Dato che c'è scritto che funziona su Windows Vista o successivi dubito fortemente che vada su XP, però forse può funzionare su WINE. Anche qui non lo so, perché non ho provato personalmente.
Di più non so dirti, anche perché considera che su Windows uso spesso e volentieri la riga di comando (CMD e PowerShell) e le relative utility. Quindi di software più intuitivi e possibilmente con GUI per questo tipo di utilizzo non ne conosco.

Re: Applicazione a 32bit su sistema a 64bit

Inviato: lun 6 mar 2017, 10:38
da joe
Non ho specificato che intendevo "lavorando da linux": cioè al posto del comando "file" dal mio terminale su linux, si poteva usare qualche altro comando che ritornasse un risultato più esplicativo? O magari usare comunque il comando file, ma con qualche opzione che appunto generasse un output in cui fosse leggibile 16bit, 32bit ecc?

La mia è solo una curiosità, come si vede con il comando file ed una ricerca via google anche gli ignoranti come me in materia possono trarre qualche conclusione sull'architettura di destinazione di un eseguibile.

Per quanto riguarda DOSBox potrei provarlo sul mio XP virtualizzato. Se in qualche modo l'applicazione CAT funzionasse attraverso quel tool, allora dovrebbe funzionare anche se dosbox fosse su sistema più recente tipo appunto windows7-64bit.