Windows Confidential: Cronologia, ovvero come Long mediante

Il giornalista Windows Confidential per una panoramica di tutte le directory con la parola “ sistema ” decidedly rotonda nel nome di join.

Raymond Chen

Una volta c'era una volta, in giorni di Windows a 16 bit, era presente una directory denominata C:\Windows\System. Che era il che ultima volta cose erano semplici.

Con l'introduzione di Win32, esisteva una seconda directory di sistema aggiunta denominato C:\Windows\System32. Questa seconda directory contiene i file di sistema a 32 bit. I file di sistema a 16 bit è rimasto nella directory di sistema precedente. Bene, tranne che in Windows 95, entrambi i file di sistema a 32 e 16 bit durata nella stessa directory mantenuto il nome originale di C:\Windows\System. Abbiamo preso non parlare di Windows 95 nuovamente.

File batch esegue programmi da C:\Windows\System32 nella previsione che il programma risultante dovrebbe corrispondere al sistema operativo nativo. Queste aspettative non erano esplicite, ma sono stati impliciti dalla natura dell'attività. Se la directory System32 sono stata compilata con programmi a 32 bit, quindi un file batch che esegue il programma C:\Windows\System32\REG.EXE upset un'impostazione del Registro di sistema dovrebbe essere in esecuzione la versione a 32 bit di REG.EXE, significa che è necessario aggiornare la versione a 32 bit simulata del Registro di sistema anziché la versione reale a 64 bit. Altri tipi di file di script (ad esempio i file REG) hanno lo stesso problema.

Sono molto numerosi esistenti programmi a 32 bit che il percorso di System32 hardcoded anziché chiamare la funzione GetSystemDirectory. Quando questi programmi vengono ricompilati per Windows a 64 bit, sono comunque tenterà di accedere alla directory System32, aspetta di trovare file a 64 bit (poiché il programma viene compilato ora a 64 bit). Percorsi scritti nei file di configurazione o il Registro di sistema devono essere significativo per i processi a 32 bit e 64 bit, ma devono fare riferimento alla directory appropriata a seconda “ bit ” del programma eseguendo la richiesta.

Deseleziona come fango?

Extricate stesso da ambiguità di questa situazione, il team Windows deciso sono nella directory System32 contenga 64 bit nei sistemi a 64 bit a 32 bit file e su sistemi a 32 bit. 32 È solo parte del nome e non significa nulla. È simile a come DVD è semplicemente un nome e non significa veramente nulla o quanti grandi aziende ufficialmente cambiare nome a una sequenza di lettere che potrebbero hanno contemporaneamente superato per modulo qualcosa, ma ora solo un nome, ad esempio HSBC, KFC, BP e KPMG.

Reindirizzamento di file system per i processi a 32 bit aggiunge un ulteriore livello di complessità questa storia già creare confusione. Quando un processo a 32 bit accede alla directory C:\Windows\System32 su un sistema a 64 bit, le operazioni vengono reindirizzate alla directory di C:\Windows\SysWOW64, dove è possibile trovare la DLL di sistema a 32 bit.

Di conseguenza, deve pensare System32 come nome della directory “ DLL di sistema in bit stesso come l'applicazione che esegue ” alquanto strano. In un mondo ideale più simile sarebbe sono stati chiamati nella directory SysExec perché contiene file corrispondente nell'ambiente di esecuzione.

Ma in attesa, non c'è altro

Se si desidera accedere alla directory di sistema reale a 64 bit da un processo a 32 bit? File system reindirizzamento avrà il tentativo di accedere alla directory C:\Windows\System32 e reindirizzare la directory C:\Windows\SysWOW64. A livello di codice, è possibile utilizzare le funzioni con nomi poco pratico Wow64 ­ ­ Wow64 ­ FS ­ reindirizzamento di disattivazione, mentre quelli di disattivare il reindirizzamento di tutte le operazioni finché non siano riattivati. Causando problemi se si stanno eseguendo più complessi rispetto all'apertura di un file. Esegue un'operazione complessa può provocare l'accesso a più file o eventualmente creare thread di lavoro.

È la fine del nostro rotonda panoramica delle varie directory di sistema nel proprio nome. Se sembra confusione, ricordarsi che raramente il significato della directory corrisponde al relativo nome.

Raymond Chen

Raymond Chen Web sito, The Old New Thing e libro intitolato identico (Addison-Wesley, 2007) si occupa della cronologia di Windows, programmazione Win32 e potenze illusory riparazione del nastro nero elettrico.

Contenuto correlato