為什麼幾乎所有軟體安裝都默認c盤呢?


幾乎所有的PC,只要裝的是Windows,C盤幾乎100%都是有的,將軟體裝在C盤,可以不用去理會用戶計算機磁碟配置上的差異。如果不這樣干,比如,軟體默認安裝在E盤,那有些用戶的電腦只有C和D兩個盤,怎麼辦?還是別自找麻煩吧。

=========================================

有些人說可以調用系統API去確定操作系統在哪個盤再決定路徑,這當然沒問題啦,很多軟體,只要稍微專業一點的軟體,都是這麼做的,但你架不住人就想偷懶啊!

事實上,有不少軟體就為解決特定的問題而開發出來的,開發者根本就不願意多花時間在這上面,能用能跑就OK,哪值得花時間去考慮N種情況?怎麼簡單就怎麼來嘛,直接指定軟體安裝和運行都在C盤就是一種偷懶的行為表現,而且確實在絕大多數情況下這麼干不會對軟體運行有什麼影響。

話又說回來,由於用戶軟體硬體運行環境的多樣性,其實僅就安裝與部署這一塊,結合特定軟體的具體要求,真要做到「專業」,就得花費相當多的時間精力去進行測試,要考慮N多情況(比如數據文件放哪?佔用多少空間?有沒有安全性問題,調用的API是否與特定版本的Windows相關等等……),並不僅僅是只有一個路徑問題的。


一個嚴謹的安裝程序,應該調用系統參數確定安裝目錄。在Windows中,這個參數是%ProgramFiles(x86)% (針對32位程序),或者%ProgramFiles%(針對64位程序)

在默認的Windows系統中,這個參數%ProgramFiles%的值是:%SystemDrive%Program Files

至於這個%SystemDrive%是多少,是在安裝系統時候選擇硬碟分區確定的,常見的如果只有一個分區或者第一個操作系統,一般就是C盤啦。這時候完整的安裝程序路徑就是C:Program Files (針對64位程序)或者C:Program Files (x86) (針對32位程序)

這就是為什麼大部分程序都是默認C盤的原因,但有些多系統環境或者用戶喜歡選擇的,可以修改上面的每個參數以修改安裝位置。 例如我以前就喜歡把%ProgramFiles(x86)%修改在D盤,這樣重裝系統就可以格式化整個C盤而保留程序的配置數據。

----------------------------------------------------

-- 以上回答了題主的問題,也回答了不是默認C盤的情況。

-- 下面是一些擴充信息

----------------------------------------------------

不管在任何時候,程序的設計中都要避免顯式的指定環境相關信息,這是野路子的做法,俗稱寫死。正確的做法應該是調用系統參數,如程序數據保存在%APPDATA%,%LOCALAPPDATA%中,程序共用信息保存在PROGRAMDATA中,臨時數據保存在%TEMP%中。這樣才有良好的兼容性和多用戶支持能力。

具體可參考官網: Store and retrieve settings and other app data 和 Shell Constants, Enumerations, and Flags (Windows)

可惜現在很多國產軟體都沒有做好。大部分連基本的多用戶支持都沒有做好。估計都是類似隔壁答案那位計算機學院講師教的那種野路子程序員寫出來的。(居然是985工科名校的計算機學院的老師!!)

一個好的軟體團隊,應該制定嚴格的代碼風格檢查制度,杜絕野路子,這是軟體質量的基本要求。


這個問題是不對的,默認裝的是C:Program Files (x86)?。至於這個路徑指向哪裡,是可以改的。


不,默認是C盤只是因為大家系統盤是C盤

你把系統裝D盤你就發現默認變D盤了……


從遠古時代說

遠古時代,有個磁碟A,磁碟B,不過通常都是一個軟碟機。所以多數人都是A是軟盤,B是空著的,C是硬碟的第一個分區的盤符。

然後曾經某段時間,破解遊戲也只能裝在C盤根目錄,不然就不能用。

然後同期,還有點帶加密狗的軟體,也要求你必須裝在C盤,不然狗插上了也不能用。

於是為了減少不必要的麻煩,默認都是C。

WINX開始,因為引入了註冊表的概念,這一塊變的更亂套。所以從WINX開始,好多高人,為了省事,都是建議從裝系統,這個是沒辦法的辦法。就因為註冊表這個坑爹的設置,你不從裝手動恢復,浪費的時間更多。

------

然後說點我自己的看法。軟體到底是裝在C,D,E,區別都不大。要說區別,還不如說你裝的這個軟體本身是不是足夠的有良心。至少在XP時代,多數人都曾經非常天真的以為把軟體都裝在一個文件夾,比如D:soft,結果從裝系統的時候,都被打臉。而且打的還挺疼。

好多DLL文件,默認都是從軟體自身的目錄里先調用,這樣的軟體體積都比較大,不招人待見,但是我感覺充滿了良心。比如現在多數軟體,都有個噱頭,叫綠色軟體,就是你放U盤裡,隨時可以用。插那裡,都一樣,不用安裝,就是這個套路。

更多的軟體,尤其是早期的軟體,文件是裝在一個地方,但是很多DLL都偷偷的裝在了%system%,而且可能出於一勞永逸的想法,調用DLL也都是從%system%優先,這就導致系統從新安裝以後,這個軟體就用不了,因為缺文件。

而且早期大多數軟體都是這個套路,就導致了居然還有軟體衝突這個概念,裝個軟體A,DLL寫一邊。裝個軟體B,DLL寫一遍,但是兩個軟體可能具體到版本,不通用。但是DLL名字一樣!在那個蠻荒年代,能知道到底是哪個遭雷劈的軟體,在寫入%system%有小動作,都屬於深不可測的高人。


現在很多都是智能讀取系統盤位置的,你系統裝在D盤就會裝在D盤。只是很多用戶都是C盤系統所以沒發現罷了。

我現在也比較喜歡把軟體裝在系統盤,因為如果重裝系統,所有軟體都重新安裝比較好。當你把軟體裝在其他盤要麼需要全盤格式化要麼手動刪除,這兩種都不方便。而很多人把軟體裝在非系統盤這個習俗,是由於以前硬碟比較小,軟體裝在系統盤會導致系統盤空間不足而出錯。

或者你專門用一個盤裝軟體,不裝自己的資料,也是可以的。但是安裝程序是不知道你的使用習慣的,再加上現在主流配置都足夠,所以把軟體默認安裝在系統盤是一個比較科學的做法。


你看到的:"c:Program Files"

軟體看到的:%ProgramFiles%

系統理解的:%ProgramFiles%-&>c:\Program Files

你把系統理解的改一下就好了。


因為很多電腦只有一個盤,如果小白用戶無腦下一步,彈出一個所選路徑不存在,用戶會懵逼的。


為什麼Windows系統盤的盤符是「C」,我就不多說了。

我也覺得說為了兼容大多數用戶磁碟分區必然有C盤之說。

然而我還有另一種認為:那就是裝在系統盤裡,軟體會運行更快。

快多少,我不說,也說不清,只是自己在用的過程中確實感覺出有差異,也淺層次地測試過,確實快。(個別軟體除外,比如Oracle服務端,好像是不建議裝在C盤的。)

跨磁碟分區操作文件和跨磁碟操作文件都不如同磁碟分區下操作快。

本人從大學買的第一台電腦的三個月以後,就一直保持電腦內文件分類明細的習慣,C盤分區100G+,其他盤裡分類放文件。

32位系統裝好之後是沒有C:Program Files (X86)目錄的,這是在64位系統中安裝32位軟體的默認路徑,64位系統中安裝64位軟體就像32位系統安裝32位軟體一樣是C:Program Files這個路徑。(不知道64位系統、64位軟體這種說法是否嚴謹科學,希望知者指正,謝謝。)


因為你有可能不分區。


沒有C


硬碟是圓的,C盤在硬碟的最外側。硬碟轉速一定的時候,磁頭在硬碟外側的相對線速度最快,因此C盤的讀寫數據最快,軟體裝在C盤會給人運行流暢的感覺。


因為普通PC所使用的硬碟大部分是機械硬碟,而機械硬碟內部分磁軌,處於外圈的磁軌的訪問速度相對內圈的訪問速度要快,因此一般系統盤所在的C盤會實用外磁軌,安裝軟體時,安裝目錄默認為C盤,可以提升軟體的訪問和運行體驗。


以前普通軟體把自己放在操作系統盤裡,提升自己的逼格,避免無其他盤,避免誤刪,避免找不到,現在部分軟體知道自己很流氓,容易擠爆系統盤,會自動選別的盤符。


因為a盤和b盤被淘汰了


因為有些不分區的初始只有一個C盤,默認別的盤別人萬一沒有嘞,但是C盤絕對是有的


因為A盤 B盤裝了太多不可言說的視頻。


環境變數里有配置吧 那個默認是系統盤


目前為止,我只發現Google家的軟體是默認安裝在C盤,運行安裝程序之後自動就安裝了,沒有給用戶選擇的界面。其他家的都可以讓用戶設置安裝目錄,如果用戶不自定義才會裝C盤。


以Windows操作系統為例吧,其他系統我也不熟悉。我覺得開發者的策略是,操作系統裝哪個盤我就跟著裝哪個盤,不至於是無效盤符吧。一般的軟體安裝的時候,通過查詢環境變數很容易獲取。

當然,預設值在哪個盤都不重要,只要能讓用戶指定就行了。

順便啰嗦一下。

一些關鍵的軟體和驅動自動安裝在系統盤,我也就認了,吐槽一下那些可有可無的應用軟體,默認系統盤,居然還不能讓用戶設置安裝路徑的渣渣軟體,以及那種全家桶系列,我就不指名道姓了,反正大家知道我在說誰就行。


推薦閱讀:

TAG:計算機 | 軟體設計 | 軟體安裝 | 電腦軟體 |