為什麼 OS X 不需要註冊表?

OS X是UNIX-Like系統,但是為什麼UNIX-Like系統就不需要註冊表?Windows系統的註冊表主要用處是?


在類unix系統中,多數程序有自己獨立的配置文件,不需要向系統的配置中心(註冊表)去登記。

這樣做的好處是鬆散、靈活,讓程序與系統解耦。這是開源的風格。

windows是獨家公司的產品,所以組織方式是集中式、中心化,高耦合的。

這與系統設計風格與理念有關,它體現的是技術和文化的差異。


Windows也有很多獨立的配置文件,比如config,ini文件。但是COM/COM+技術需要一個全局的配置表。因為COM是用GUID來查找組件的,那麼註冊表就是一個比較好的配置點了。另外,Windows本身的設置也都是在註冊表中,而UNIX系統是在/etc目錄下的眾多獨立的配置文件


註冊表簡化了多用戶情況下的配置管理, 用註冊文件就只能APP自己搞定了(可以考慮存在$HOME下)

註冊表理論上效率稍微高那麼一點點

註冊表能夠更加將軟體和OS綁定(不過APP要處理移植也不難啊)

不管怎麼說,微軟慢慢也在向註冊文件轉換了


註冊表是為資源匱乏的系統設計的高效率方案


註冊表的作用是方便管理,mac系統沒接觸過,不清楚,。unix文化,很多時候強調的是自由,註冊表之類的東西,不是很符合這個精神。

但是,我個人是比較認同註冊表的,像ubuntu和fedora,都有引入軟體中心這樣的管理軟體,它也起到了對軟體進行統一管理的作用,你通過apt或yum或直接dpkg,yum,安裝一個軟體,系統都會對這個安裝的軟體進行記錄,某種意義上,它跟註冊表起的作用是一樣的。

沒有註冊表之類的管理軟體,會加大對系統資源(特別是安裝的軟體)的維護成本,想當初剛接觸linux的時候,總是為軟體到底裝在哪兒了糾結,安裝完一個軟體,它把啟動腳本放在了/bin下面,把軟體包放在了/usr下,又把一些配置文件放到了/etc下面,卸載起來還是有點麻煩的。


Mac系統的中配置信息是放在.plist文件當中,它是一種XML格式的配置文件形式。linux系統起同樣作用一般是.conf,它的格式類似於windows的ini的格式。

用分散的文本文件作配置文件,最重要的好處是可以套用操作系統的文件許可權機制來保護配置文件。這個在類unix機制是非常重要


實際上Mac OS是有類似於註冊表的功能的,其中之一就是~/Library/Application Support文件夾中對應你的應用的內容,另一個就是用Cocoa SDK設置的User Default,實際上也很像是註冊表。上面兩種方法的優點是在刪除了.app,軟體的設置仍然能夠保留,並在下次安裝的時候繼續使用。至於是否採用這兩種機制,取決於開發者的決策。


我認為註冊表是集中存放的(遵循同一套規定的)結構化配置文件,Mac也有吧。正好需要看app的配置信息,在 /Library/Preferences 和 ~/Library/Preferences 里找到了,它們存儲在 .plist 結尾的二進位文件里,用 xcode 打開看是 XML 結構; 另外 Library 目錄下可能還有 PreferencePanes,裡面存放一些可用控制面板,譬如 Java 控制面板;Library 目錄下可能還有 "PreferencePanes Disabled",裡面存放被禁用的面板


為了系統再生後,方便配置重用


推薦閱讀:

Windows 為什麼不支持多桌面?
Windows 10 mobile內核和Windows 10一樣嗎?
給同學裝電腦的時候怎麼樣設置可以保證長期流暢…?
為什麼那麼多人用 MacBook 裝 Windows 系統?
為什麼很多時候感覺國產軟體不愛用 Program Files 目錄?

TAG:Mac | macOS | MicrosoftWindows | 註冊表 |