Applicazione a 32bit su sistema a 64bit

Area di discussione libera.

Moderatore: Staff

Regole del forum
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
joe
Iper Master
Iper Master
Messaggi: 2715
Iscritto il: ven apr 27, 2007 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Applicazione a 32bit su sistema a 64bit

Messaggioda joe » lun feb 27, 2017 16:03

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.

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 2195
Iscritto il: mer mar 05, 2008 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 4.14.0
Desktop: lxde
Località: Pisa
Contatta:

Re: Applicazione a 32bit su sistema a 64bit

Messaggioda ponce » lun feb 27, 2017 17:18

non uso molto windows, ma forse questo puo' aiutare?

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

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 2715
Iscritto il: ven apr 27, 2007 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Re: Applicazione a 32bit su sistema a 64bit

Messaggioda joe » lun feb 27, 2017 17:33

Grazie, non ne ho idea... ma proverò la prossima volta che ho occasione di avere quel PC sottomano. :thumbright:

Avatar utente
Blallo
Packager
Packager
Messaggi: 3292
Iscritto il: ven ott 12, 2007 11:37
Nome Cognome: Savino Liguori
Slackware: 14.2 / 12.2
Kernel: 4.4.14-smp
Desktop: DWM
Località: Torino / Torremaggiore (FG)
Contatta:

Re: Applicazione a 32bit su sistema a 64bit

Messaggioda Blallo » mar feb 28, 2017 19:53

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.
My DWM configuration: https://github.com/8lall0/dwm

Feel free to use.

Avatar utente
hashbang
Packager
Packager
Messaggi: 1965
Iscritto il: ven giu 04, 2010 10:27
Nome Cognome: Luca De Pandis
Distribuzione: Win 10 Pro | macOS
Località: Lecce / Bergamo / Milano
Contatta:

Re: Applicazione a 32bit su sistema a 64bit

Messaggioda hashbang » dom mar 05, 2017 20:53

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.
There's a certain kind of programmer who'll look at any problem and say, 'I know, I will use XML.' Now he has two problems.

Stack is the new term for "I have no idea what I'm actually using". [Erich Schubert]

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 2715
Iscritto il: ven apr 27, 2007 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Re: Applicazione a 32bit su sistema a 64bit

Messaggioda joe » lun mar 06, 2017 0:22

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

Avatar utente
hashbang
Packager
Packager
Messaggi: 1965
Iscritto il: ven giu 04, 2010 10:27
Nome Cognome: Luca De Pandis
Distribuzione: Win 10 Pro | macOS
Località: Lecce / Bergamo / Milano
Contatta:

Re: Applicazione a 32bit su sistema a 64bit

Messaggioda hashbang » lun mar 06, 2017 9:41

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.
There's a certain kind of programmer who'll look at any problem and say, 'I know, I will use XML.' Now he has two problems.

Stack is the new term for "I have no idea what I'm actually using". [Erich Schubert]

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 2715
Iscritto il: ven apr 27, 2007 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Re: Applicazione a 32bit su sistema a 64bit

Messaggioda joe » lun mar 06, 2017 10:38

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.