為什麼蘋果電腦硬碟不分區?

2021-01-14 快科技

本文翻譯自程式設計師的問答社區stackexchange.com上的一個問題。

有人可以給我解釋一下,為什麼Linux的文件系統是「單目錄層階樹狀」結構,而不像Windows那樣有個C:\、D:\分區啥的,這樣做有沒有特別的原因呢?

一句話答案:不分區的好,Windows那是為了向下兼容。

Doug O'Neal 163票

說起來Unix的文件系統的道行要比Windows的早很多年,所以您的問題得改成:「為什麼Windows要自搞一套弄出個硬碟分區符號來呢?」

樹狀的文件結構有個優勢就是任何子目錄或者文件,都能順著根目錄找到,所以,如果你需要把本地文件遷移到一個網絡硬碟上,這時候對於軟體來說,它們不會察覺到任何區別。

假設你有一套系統,作業系統焊死不能動,但是有個程序有很高的I/O需求,那麼你可以很方便地把/usr目錄加載為只讀,然後把/opt(應用程式安裝目錄)目錄加載到一塊SSD上。這樣整個文件系統的結構對於作業系統來說沒有發生任何改變。

然而在Windows下,這種問題就比較討厭,特別是程序路徑前面帶著個C:\Program Files\的時候……

Gilles 70票

這都是有歷史原因在裡面的,部分上是因為這樣做在當時更有效。

Multics

Multics是我所知的歷史上第一個採用「層階樹狀文件結構」的作業系統,一個目錄裡還嵌著子目錄這種機制。引用R. C. Daley和P. G. Neumann的《通用輔助文件存儲(A General-Purpose File System For Secondary Storage)》一文中的話:

論文第二部分闡述了一種「層階樹狀文件結構」的文件系統,對於作業系統來說,它非常高效。這種結構兼顧了可靠性和靈活性……

為了便於理解,我們可以把這種結構想像成一棵樹,文件的樹,其中有一些目錄其實也是文件。但是有一個例外的目錄,它自身的指針只指向一個單一的,確定的目錄,那就Root目錄。它沒有明確地被其他目錄所指,Root目錄只是隱式地代表一個虛擬的分支,我們稱這個分支結構為「文件系統」。

在任何時候,用戶都處於一個目錄下面,我們稱它為「工作目錄(working directory)」,用戶可以通過指定入口訪問工作目錄下面的文件,而且多個用戶可以同時工作在同一個工作目錄之下。

在其他各個方面,Multics追求的是靈活性,用戶只需工作在整個文件系統的一條分支上,其他的不用管,但還能保證用目錄管理文件的便捷性。目錄還被用來控制訪問權限——目錄的READ屬性允許用戶訪問目錄中的文件,而EXECUTE屬性允許用戶修改目錄中的文件(這個特性被後來的unix系統繼承下來)。

Multics還遵循了「單一存儲對象池」的設計原則,但是論文沒有在這方面展開。「單一存儲對象池」對於當時的硬體條件來說非常合適,那時候沒有可移動的硬碟,起碼是沒有人關心這個問題。Multics確實有一個備用的備份存儲池,但對於用戶來說,它是不存在的。

Unix

Unix系統深受Multics的影響,但是比起Multics的「靈活」,Unix更專注於加強系統的「簡潔」。

單一目錄樹層級」的文件系統就很適合Unix系統。就和Multics一樣,存儲池的細節經常不需要用戶關心,但是後來出現了可拆卸的硬碟,Unix通過mount和umount兩個命令把對存儲設備的操作暴露給用戶(只有「管理員權限」的用戶才能執行這樣的操作)。在《Unix分時系統設計(The Unix Time-Sharing System)》一文中,Dennis Ritchie和Ken Tompson解釋道:

雖然系統根目錄一般都在同一個存儲設備上,但是對於其他分支目錄則未必要這樣做。出於兩種考慮,我們需要mount命令完成存儲設備掛載的工作:普通文件的文件名一致性,和文件所在的存儲設備可能有其獨立的文件存儲結構。通過mount命令,可以把之前的一個文件,替換成一個可移動存儲設備上的完整的目錄結構,事實上,mount命令把文件層級的某一部分,通過引用外部數據,替換成一個新的結構。這樣對於之前整個文件系統來說,沒有發生任何改變。

其實,拿我們的系統安裝過程舉例,root目錄一直在我們的硬碟上佔了一小塊地方,但其他用戶數據在不同的硬碟上,通過mount機制,按序列加載組成一個初始化的系統。一個「可掛載」的系統,完全是通過讀寫特殊文件完成的。各種應用可以創建自己的文件系統,或者簡單地從他處拷貝一份。(註:上面這段文字的中心思想:在UNIX中,一切都是文件。

「層階樹狀文件系統」還有一個優勢,就是可以把管理存儲設備的複雜任務交給內核處理,這就意味著內核雖然越來越複雜,但是對於建立其上的應用來說,其結果就是保持簡潔,因為內核已經把髒活累活都包了,大部分應用都不用關心這部分細節,這是一種更加自然的設計。

Windows

Windows系統流淌著兩支古老血脈:設計運行在VAX微機上的VMS作業系統,和早期Intel微機(如8080、Z80)上運行的CP/M作業系統。

VMS有一個分布式的層級文件系統,叫做Files-11。在Files-11中,一個文件的完整路徑包括一個「節點名稱」、一個關聯的用戶帳戶、設備名稱、目錄樹、文件名和文件類型,以及版本號。VMS有強大的Logical Names功能,這個功能允許自定義「快捷方式」到指定的路徑,所以用戶不需要在意目錄的「真實」路徑。

CP/M是為了64KB的內存和軟盤系統設計的。為了一切從簡,所以從誕生起,它就沒有「目錄」這個概念,但是文件是通過引用「驅動器位置」來訪問的,比如A:或者B:。

MSDOS 1.0繼承了CP/M的這個特性,所以當MSDOS 2.0引入「目錄」的概念以後,為了兼容1.0也在路徑前保留了「盤符」字符,而斜槓「/」符號是原來VMS和CP/M系統中表示「命令參數開始」的符號,所以後來的DOS以及Windows必須區分,並採用反斜槓「\」符號作為路徑分隔符。

Windows繼承了DOS和VMS的習慣,雖然已經意義不大,但是依舊保留著「盤符」的傳統。如今,在Windows底層採用的是UNC路徑(通用命名規則即\servername\sharename的規範),但這只是一些高級Windows用戶需要知道的功能,Windows現在確實可以通過「重解析點」(Reparse Points)來掛在存儲設備(所以不需要C:這樣的盤符了)。

 

相關焦點

  • 習慣哪一種 為什麼蘋果電腦硬碟不分區
    有人可以給我解釋一下,為什麼Linux的文件系統是「單目錄層階樹狀」結構,而不像Windows那樣有個C:\、D:\分區啥的,這樣做有沒有特別的原因呢?    一句話答案:不分區的好,Windows那是為了向下兼容。
  • 為什麼懂電腦的人,都說硬碟不需要分區?看完你就知道了
    你的電腦有多少個分區呢? 當你拿到一臺新電腦的時候,一般只能看到一個系統分區。這時候就會開始進行系統分區,將硬碟分為C、D、E等等盤符,用途也各不相同,系統盤,資料盤,娛樂盤等等。 似乎所有人都認為,硬碟一定要分區。
  • 電腦硬碟怎麼分區?
    不管是固態硬碟還是機械硬碟,分區都是一樣的操作。1、首先按照系統版本(32位或64位,可在此電腦,右鍵,屬性中查看)下載一個分區助手diskgenius,下載完成安裝上並打開diskgenius。,主磁碟分區(如果把想把系統安裝到固態硬碟裡,選擇此項),擴展磁碟分區(如果只是存儲數據使用選擇此項),這裡我選擇主磁碟分區。
  • 電腦系統安裝第三步:硬碟分區
    1、硬碟分區針對的是新電腦或新硬碟,如果之前電腦或硬碟裝過系統,一般可以跳過此步。硬碟分區之前首先要進BIOS看一下或更改一下電腦的啟動模式,開機馬上連續不停的按相應的快捷鍵即可進入BIOS,不同品牌電腦和主板的快捷鍵不一樣,一般都是F1到F12、Esc、Del其中的一個鍵,有的筆記本可能要配合Fn鍵,有的開機的時候在屏幕上會有一兩秒的提示,有的一點也不提示。需要根據自己電腦的品牌或主板的品牌去查一下。
  • 在蘋果電腦上使用硬碟需注意格式問題,NTFS硬碟不支持咋辦
    WINDOWS系統上支持的主要的硬碟格式有NTFS和FAT32。而蘋果電腦使用的是蘋果系統MAC OS。MAC OS支持的硬碟格式和我們的WINDOWS有所不同。MAC OS上支持的硬碟格式是HFS+和exFAT。
  • 檢測電腦硬碟確實沒壞,卻不能分區也做不上系統,問題究竟在哪?
    一臺可以正常使用的電腦由硬體與軟體組成,自然我們遇到的電腦故障也就分硬體故障與軟體故障兩大類。硬體故障一般都是不常見的,更多的是軟體故障。的過程非常慢,而且進pe之後,給電腦分區的時候,先是用MBR的格式,老是顯示不成功,顯示寫扇區錯誤;小編接著換GUID的格式也不能分區,同時先是寫扇區錯誤。
  • 怎麼給硬碟進行分區與格式化? 史上最詳細的硬碟分區方法大全
    川北在線核心提示:原標題:怎麼給硬碟進行分區與格式化? 史上最詳細的硬碟分區方法大全 很多用戶都想了解一下裝系統的基礎知識,比如分區、格式化等。我們之前簡單介紹過大硬碟GPT分區方法,使用的是Win10系統自帶的Diskpart工具。
  • 驚現蘋果硬碟數據恢復軟體解決方案
    蘋果電腦數據恢復完美解決方案 達思蘋果數據恢復軟體    達思蘋果數據恢復軟體D-Recovery for Mac1.0是安裝在windows平臺上的軟體,恢復蘋果硬碟數據時,需要把蘋果硬碟或蘋果硬碟的鏡像文件掛在PC上進行恢復。據達思科技CTO覃總說,安裝在蘋果電腦的版本及英文版會陸續推出。
  • 硬碟只有C盤如何增加分區
    硬碟只有一個C盤如何增加分區呢?新買的筆記本電腦很多都是固態硬碟120G,基本只要一個系統分區,如何不影響系統的情況下給C盤增加分區呢?下面讓小白系統教你不用重裝系統給C盤增加分區。增加分區使用自帶的磁碟管理給C盤增加分區,注意這個方法需要謹慎,建議提前備份好C盤上面重要的資料。
  • 如何快速地創建硬碟分區
    大家好,我是波仔,非常高興的今天又來跟大家一起分享與探討,我們今天來分享一下如何快速的創建硬碟分區,使用哪些方法和工具來快速的創建硬碟分區。快速硬碟分區新的硬碟必須將其進行分區和格式化後才可以使用。分區就是將硬碟的存儲空間劃分為若干個區域,即 C、D、E、F 等分區。
  • 為什麼電腦裝的都是固態硬碟,自己的電腦反應還是比其他人的慢?
    電腦的龜速確實讓很多電腦使用者頭疼,那麼有什麼方法能改變電腦的反應速度呢? 聽別人說電腦加固態硬碟真的可以變快嗎?你是不是也這麼認為的!但是很多人也都會說,為什麼電腦裝的都是固態硬碟,我的電腦速度還是比他的電腦慢!下面小編和大家說說。
  • 全新SSD固態硬碟 怎麼分區 怎麼裝系統
    2、在裝有新固態硬碟的電腦上插入U盤,為了發揮固態盤的速度,首先要進BIOS開啟硬碟AHCI模式,通常新型電腦默認就是ahci,不需要改,這一步可以省略。
  • 硬碟老分不清MBR和GPT分區,IT男淺談區別,小白裝機不走彎路!
    大家現在都對電子產品熟悉了,越來越多的人對電腦的感覺都不是那麼神秘了,許多對電腦稍微感興趣的人,也都研究過如何給自己的電腦裝系統,因為許多電腦產生問題後,基本沒有重裝系統解決不了的問題。而且隨著許多第三方的裝機軟體出現,例如大家熟知的大白菜、老毛桃等等,令重裝系統都非常的簡單。
  • 電腦分區究竟要如何分區才算合理?維修多年老師傅說出其中答案!
    一般來說,現在我們常見的硬碟有兩種,機械硬碟與固態硬碟,機械硬碟的讀取速度慢,但是它有容量大的特點;固態硬碟讀取速度快,但是它有容量小的特點。我們給電腦安裝系統的時候就得要注意是否有固態硬碟,有的話就安裝在固態硬碟裡,沒有的話我們就安裝在機械硬碟裡。下面說一說分區的細節,分為兩個部分來說,電腦只有機械硬碟與電腦有機械硬碟與固態硬碟混合硬碟兩個部分。
  • 老電腦這樣加裝固態硬碟,既不需要重裝系統,又省時間!
    這句話以前用的最多的地方是調侃,而當我打開家裡這臺老電腦時才真正體會了這句話的含義。因為這臺電腦年代久遠,開機後明顯用時很慢,運行速度也不理想。因為之前有把筆記本從機械升到固態的經驗,知道一塊固態硬碟對於一臺電腦的運行速度到底有多重要,於是我就打算先將這臺老電腦升級一塊固態硬碟。
  • 蘋果電腦操作科普 複製和拷貝不一樣?是的!
    因為用電腦這麼多年了,雖然稱不上高手,但複製、粘貼、剪切這類常用功能早就習慣快捷鍵了。更不用說用蘋果的筆記本幾乎脫離滑鼠。(突然想起曾經一個長輩給我一個U盤,說裡面的歌都打不開,我一看都是快捷方式,很明顯是粘貼的時候點了「粘貼快捷方式」)。 同樣的,之前有人抱怨蘋果電腦滑鼠右鍵沒有「剪切」,這個就是純粹的無知了。在編輯文檔,以及圖片視頻軟體處理軟體裡是有「剪切」的。
  • 辦公遊戲一機搞定,單固態硬碟安裝黑蘋果 Win10雙系統,真香
    蘋果推出的 macOS 在系統穩定性和流暢性方面優化得非常不錯,由於 macOS 是搭配蘋果硬體售賣的,動輒萬元的售價讓很多消費者望而卻步。好在有些大神破解了 macOS,讓其能運行到普通的電腦上,讓我們低成本的體驗到流暢高效的黑蘋果 macOS。但是 Mac 可用軟體相對 Win 系統要少很多,尤其是遊戲軟體就更少了,所以只適合用作設計和辦公使用。
  • 電腦硬碟怎樣合併分區
    很多人電腦系統盤分區只有十幾個G,這讓電腦該如何進行運行呢。
  • 蘋果電腦揮之不去的煩惱!怎樣兼容U盤移動硬碟
    [PConline 應i用]很多用蘋果電腦的朋友,都經常會遇到這樣的煩惱:插入某個U盤或者移動硬碟,發現只能讀取文件,沒法把文件複製進去!這是因為這個U盤或者移動硬碟,使用的是NTFS格式,這也是Windows御用的文件系統,但macOS卻無法對其有較好的兼容。
  • 機械硬碟憑什麼比固態硬碟要好?電腦硬碟就該這樣裝,準沒錯!
    固態硬碟和機械硬碟到底哪個好呢?其實很多朋友會說:「那肯定是固態硬碟!」其實這個說法並不準確,為什麼呢?我們先來看一個對比:固態硬碟的優勢:讀寫速度快、防震性強、運行時非常安靜、體積小重量輕、發熱少功耗低。機械硬碟的優勢:壽命長、價格便宜、硬碟損壞數據可找回。