天天看點

Windows_01_Windows系統的中的32位和64位(System32和SysWOW64)

系列文章目錄

文章目錄

  • ​​系列文章目錄​​
  • ​​前言​​
  • ​​System32和SysWOW64​​
  • ​​Program Files和Program Files(x86)​​
  • ​​總結​​

前言

現在的計算機系統都是64位了,如下:

Windows_01_Windows系統的中的32位和64位(System32和SysWOW64)

System32和SysWOW64

對于64位的作業系統,打開 C:\Windows 目錄,有兩個檔案夾 System32 和 SysWOW64,如下:

Windows_01_Windows系統的中的32位和64位(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

Windows_01_Windows系統的中的32位和64位(System32和SysWOW64)
Windows_01_Windows系統的中的32位和64位(System32和SysWOW64)

Program Files和Program Files(x86)

總結

繼續閱讀