linux系統下的共享庫是真正的共享庫,同名庫在內存、硬碟中只有一份,所有程序都共享這一份庫。一旦庫文件升級,系統裡面的所有程序都受影響。這就是linux一升級glibc庫,整個系統都掛掉的原因。更麻煩的是,整個系統同名庫只允許存在一個版本。如果A軟體依賴C庫的v1.0版本,B軟體依賴C庫的v1.1版本,那麼A、B兩個軟體就無法共存。
而windows則不同,每個軟體都在自己的安裝目錄下放了一份dll,每個軟體可以只使用自己安裝目錄下的dll庫文件,一個共享庫只供一款軟體使用,在同名庫在內存中可以存在多份。這保證了A、B兩個軟體都能正常使用。