国产精品免费无遮挡无码永久视频-国产高潮视频在线观看-精品久久国产字幕高潮-国产精品99精品无码视亚

電子工程網(wǎng)

標(biāo)題: 嵌入式系統(tǒng)為什么要用Linux,而不用Windows [打印本頁]

作者: FWW7    時(shí)間: 2017-4-8 10:23
標(biāo)題: 嵌入式系統(tǒng)為什么要用Linux,而不用Windows
比起 Windows,怎樣解讀 Linux 的文件系統(tǒng)與目錄結(jié)構(gòu)?
Linux 和 Windows 的文件系統(tǒng)有些不同,在學(xué)習(xí)使用 Linux 之前,若能夠了解這些不同,會有助于后續(xù)學(xué)習(xí)。
本文先對 Windows 和 Linux 上面文件系統(tǒng)原理、組織概念進(jìn)行區(qū)分,并給出例子、列舉兩者的優(yōu)缺點(diǎn)以具體說明,最后較為詳細(xì)地介紹了 Linux 系統(tǒng)的目錄結(jié)構(gòu)。
Windows 和 Linux 文件系統(tǒng)
下面將介紹啟動 Windows 和 Linux 后,在文件系統(tǒng)的角度上,它們分別是怎樣看待自己世界的。
訪問原理
在 Windows 系統(tǒng)中, 一切東西都是存放在硬盤上的。啟動系統(tǒng)后,先確定硬盤,再確定硬盤上的分區(qū)以及每個(gè)分區(qū)所對應(yīng)文件系統(tǒng),最后是存放在某個(gè)分區(qū)特定的文件系統(tǒng)中的文件。 也就是說,Windows 是通過 “某個(gè)硬盤-硬盤上的某個(gè)分區(qū)-分區(qū)上的特定文件系統(tǒng)-特定文件系統(tǒng)中的文件” 這樣的順序來訪問到一個(gè)文件的。
但是與 Windows 不同, Linux 系統(tǒng)中的一切都是存放在唯一的 虛擬文件系統(tǒng)中的,這個(gè) 虛擬文件系統(tǒng)是樹狀的結(jié)構(gòu)以一個(gè)根目錄開始。啟動系統(tǒng)后,先有這個(gè) 虛擬文件系統(tǒng),再識別出各個(gè)硬盤, 再把某個(gè)硬盤的某個(gè)分區(qū)掛載到這個(gè) 虛擬文件系統(tǒng)的某個(gè)子樹上(即分區(qū)用某個(gè)子目錄來表示),再確定分區(qū)對應(yīng)的子目錄文件系統(tǒng),最后的文件就存放在這個(gè)特定的文件系統(tǒng)中。 也就是說, Linux 系統(tǒng)是通過 “虛擬文件系統(tǒng)-硬盤-硬盤上的分區(qū)-分區(qū)上的特定文件系統(tǒng)-特定文件系統(tǒng)中的文件” 這樣的順序來訪問一個(gè)文件的。
可能對習(xí)慣了使用 Windows 的用戶來說, Linux 的方式有些不適應(yīng),它的 虛擬文件系統(tǒng),實(shí)質(zhì)就是一顆目錄樹,最開始的目錄叫做根目錄,根目錄中又有每一級子目錄,或者文件,子目錄又有子子目錄和文件,其中每個(gè)子目錄都特定的功能這個(gè)功能(這些是約定俗成了的,在后面 常用的重要目錄 (See section 1.2.1) 中會詳細(xì)說明)。
也許有人會問,沒有這個(gè)虛擬文件系統(tǒng)就無法使用硬盤,可是最開始沒有硬盤,那么這個(gè) 虛擬文件系統(tǒng)以及相應(yīng)的組織結(jié)構(gòu)是怎么存放起來的呢?這個(gè)問題,就像先有雞還是先有蛋這個(gè)問題一樣看似簡單實(shí)則……但是,在 Linux 中,很輕易地跳出了這個(gè)思維循環(huán),問題的答案并沒在 虛擬文件系統(tǒng) 和 硬盤 這兩者之間徘徊,而是第三者—— 內(nèi)存 ,Linux 系統(tǒng)啟動起來之后,整個(gè) 虛擬文件系統(tǒng)的組織結(jié)構(gòu),都是隨著每次內(nèi)核系統(tǒng)的啟動自動在內(nèi)存中建立好了的,根本就不需要硬盤。
另外還要注意,就是在我們用戶的角度上,無論在 Windows 還是 Linux 上面,都是使用路徑來訪問一個(gè)文件的。表示文件的路徑由 “文件所在的目錄+各級目錄的分隔符+文件” 三個(gè)部分組成,這個(gè)策略在兩者之間是一樣的,所不同的是,Windows 下面目錄分隔符是 \ , Linux 下面是 / ,也許這也是兩者之間為了表示其各自立場不同的一個(gè)原因吧?^_^
系統(tǒng)組織
在 Windows 系統(tǒng)中,我們可以把文件大體分為兩種: 系統(tǒng)文件和用戶文件 。一般來說系統(tǒng)文件(例如 Windows 操作系統(tǒng)本身,一些系統(tǒng)程序,程序運(yùn)行所需的庫文件,以及一些系統(tǒng)配置文件等)存放的默認(rèn)位置在 C 盤,當(dāng)然也可以在安裝時(shí)候指定在其他盤;其它用戶文件,包含用戶后來安裝的程序以及一些數(shù)據(jù)文件等,用戶可以把它們隨意存放在任意的分區(qū)。
在 Linux 系統(tǒng)中,主要有兩個(gè)概念: 虛擬文件系統(tǒng)中的文件和 Linux 操作系統(tǒng)內(nèi)核 本身。邏輯上可以認(rèn)為前者屬于上層,后者在下層,前者基于后者,后者依賴前者而存在。 Linux 把除了它本身(Linux 操作系統(tǒng)內(nèi)核)以外的一切事物都看作是在 虛擬文件系統(tǒng)中的文件了。無論是鍵盤,鼠標(biāo),數(shù)據(jù),程序,CPU,內(nèi)存,網(wǎng)卡……無論是硬件、軟件、數(shù)據(jù)還是內(nèi)存中的東西,我們都可以在 虛擬文件系統(tǒng)中的相應(yīng)子目錄對他們進(jìn)行訪問和操作,操作統(tǒng)一。而實(shí)現(xiàn)這些管理的幕后就是 Linux 操作系統(tǒng)內(nèi)核 本身:啟動 Linux 系統(tǒng)的時(shí)候,首先電腦把 Linux 操作系統(tǒng)內(nèi)核 加載到內(nèi)存中,內(nèi)核本身提供了文件管理,設(shè)備管理,內(nèi)存管理,CPU 進(jìn)程調(diào)度管理,網(wǎng)絡(luò)管理等功能,等內(nèi)核運(yùn)行起來之后,就在內(nèi)存中建立起相應(yīng)的 虛擬文件系統(tǒng),最后就是內(nèi)核利用它提供的那些功能,通過管理文件的方式,來管理 虛擬文件系統(tǒng)中的硬件軟件等各種資源了。
Linux 把提供操作系統(tǒng)本身功能(管理計(jì)算機(jī)軟硬件資源)的那些部分劃給了 Linux 操作系統(tǒng)內(nèi)核 ,使得 Linux 操作系統(tǒng)內(nèi)核 成為一個(gè)獨(dú)立的部分,有它自己獨(dú)立的開源代碼;而其它的一切(軟件應(yīng)用,硬件驅(qū)動,數(shù)據(jù))都根據(jù)其特性有自己的開源代碼、或者自由地組織并且存放在那個(gè) 虛擬文件系統(tǒng)中由 Linux 操作系統(tǒng)內(nèi)核 來管理。這樣,將系統(tǒng)本身和系統(tǒng)所管理的資源分開,并開放源代碼,有助于對系統(tǒng)或者系統(tǒng)所管理的資源進(jìn)行靈活的定制和擴(kuò)展,還能按需快速建立起只適合自己使用的操作系統(tǒng),也利于操作系統(tǒng)本身的發(fā)展。實(shí)際 Ubuntu , Fedora , RedHat 等各種不同的 Linux 操作系統(tǒng)發(fā)行版,簡單來說就是不同廠商對其文件系統(tǒng)和內(nèi)核進(jìn)行了不同的配置而產(chǎn)生的 “大眾化” 的操作系統(tǒng)。相比之下,Windows 就顯得非常地零亂復(fù)雜,將系統(tǒng)、軟件、硬件、數(shù)據(jù)都混在了一起,其不同版本只能由 Microsoft 一家公司發(fā)行。
舉例說明
下面用直觀的例子,來說明兩者的不同,以加深理解。假設(shè)我們的機(jī)器上面有一個(gè)硬盤,硬盤分為三個(gè)區(qū)。
在 Windows 系統(tǒng)中, 我們啟動系統(tǒng)之后就會看到 C, D, E, 盤符,它們分別對應(yīng)硬盤上的三個(gè)分區(qū),增加硬盤,或者分區(qū),會導(dǎo)致盤符的增加(注意由于歷史原因, A, B 用于表示軟驅(qū),硬盤分區(qū)盤符從 C 開始按字母遞增),這里的每個(gè)分區(qū)都各自可以被格式化為不同的文件系統(tǒng)(這里的文件系統(tǒng),包括例如 NTFS 格式, FAT32 格式等),文件系統(tǒng)的基本功能就是為了存放文件的,不同文件系統(tǒng)區(qū)別一般在于管理其中存放的文件的功能的強(qiáng)弱,所以分區(qū)被格式化成指定格式的文件系統(tǒng)之后,就可以存放任何文件和目錄了,我們看到的 C, D, E 內(nèi)容也就對應(yīng)了硬盤中相應(yīng)分區(qū)的數(shù)據(jù)內(nèi)容。
但是,與 Windows 中把硬盤分區(qū)看成 C, D, E 盤符不同, Linux 中最開始根本就沒有硬盤的概念,就只有一個(gè)純粹的 虛擬文件系統(tǒng)。如果想要使用哪個(gè)硬盤的某個(gè)分區(qū),就把那個(gè)分區(qū) “掛載” 到某個(gè)子目錄之下,這樣硬盤中的分區(qū),文件系統(tǒng),目錄等內(nèi)容就呈現(xiàn)到了那個(gè)子目錄里面。也就是說,在 Linux 中,我們使用硬盤中的數(shù)據(jù),實(shí)際是先把硬盤的某個(gè)分區(qū) “掛載” 到某個(gè)子目錄下,然后通過那個(gè)子目錄來訪問的。這個(gè)例子中, 通常硬盤會對應(yīng) 虛擬文件系統(tǒng)中的/dev/sda(如有多個(gè)硬盤,則為 /dev/sda, /dev/sdb, ……, 按字母遞增), 其三個(gè)分區(qū)對應(yīng) /dev/sda1, /dev/sda2,/dev/sda3(多個(gè)分區(qū)按數(shù)字遞增,不同硬盤的分區(qū),對應(yīng)為 /dev/sdb1, /dev/sdb2 等等), 默認(rèn)硬盤各個(gè)分區(qū)會被掛載到 虛擬文件系統(tǒng)系統(tǒng)中類似 /mnt/sda1/, /mnt/sda2/, /mnt/sda3/ 的目錄(在 Linux 又叫掛載點(diǎn))中,在/etc/fstab 文件中,我們可以找到分區(qū)文件和掛載點(diǎn)的對應(yīng)關(guān)系描述。這樣,硬盤相應(yīng)的分區(qū)就做為整個(gè) 虛擬文件系統(tǒng)根目錄下的一顆子樹,反映到了子目錄(掛載點(diǎn))上,子目錄中的內(nèi)容就對應(yīng)分區(qū)中的數(shù)據(jù)。
假設(shè)訪問上述硬盤第三個(gè)分區(qū) dir1 目錄中的文件 test.file
Window 系統(tǒng)上的路徑:E:\dir1\test.file

Linux 系統(tǒng)上的路徑:/mnt/sda3/dir1/test.file
再有,假設(shè)用戶安裝和卸載一個(gè)程序 firefox :
可見, Linux 文件的存放和組織明顯方式更高效,層次更分明。
優(yōu)缺點(diǎn)
基于上述內(nèi)容,Windows 和 Linux 文件系統(tǒng)的各有優(yōu)缺點(diǎn)分別如下。


作者: FWW7    時(shí)間: 2017-4-8 10:24
大家可加我QQ相互交流,QQ為2232894713




歡迎光臨 電子工程網(wǎng) (http://www.4huy16.com/) Powered by Discuz! X3.4