系列文章目錄
文章目錄
- 系列文章目錄
- 前言
- System32和SysWOW64
- Program Files和Program Files(x86)
- 總結
前言
現在的計算機系統都是64位了,如下:
System32和SysWOW64
對于64位的作業系統,打開 C:\Windows 目錄,有兩個檔案夾 System32 和 SysWOW64,如下:
System32中全部都是64位的程式的dll,而SysWOW64中全部都是32位的程式的dll。
為什麼System32中全部都是64位的程式的dll?
很早的時候,還沒有64位的時候,32的程式都安裝在System32這個檔案夾下,這沒有問題,但是核心中的路徑都是寫死了System32這個路徑,而64位的windows作業系統是直接在32位windows作業系統下移植的,由于修改核心代碼風險極大,就沿用了System32的檔案名。
是以,當我們在64位的windows作業系統上安裝64位的程式的時候,就安裝到了System32這個目錄下。
為什麼SysWOW64中全部都是32位的程式的dll?
SysWOW64 的全稱是 System Windows on Windows 64 (其中的大寫的 WOW 是 Windows on Windows 的簡寫),SysWOW64 這個目錄在 32 位windows作業系統上是沒有的,隻有在 64位 windows 作業系統上才有,而且這個目錄名的含義是 windows 上的 windows,這個目錄存在的意義本來就是為了相容32位程式的。就是說,新釋出了64位的windows作業系統,需要在這個作業系統上,既能安裝32位的程式,也能安裝64的程式,是以在新釋出的64位的windows作業系統上,留了一個目錄 SysWOW64 ,用來安裝 32 位的程式。
小結:
對于32位的程式:
32位的程式,在32的windows作業系統上運作,調用的就是System32目錄下的程式,可以了解;
32位的程式,在64位的windows作業系統上運作,會自動重定向到SysWOW64目錄下,并且連同系統資料庫都會遵循這個規則,哪怕你寫死調用路徑,系統都會給你強制重定向到SysWOW64中。
對于64的程式:
64位的程式,無法在32位的windows作業系統上運作,可以了解;
64位的程式,在64位的windows作業系統上運作,調用的是System32目錄下的程式。
regedit.exe