linux空間及其操作
??一、Linux 內(nèi)存
??在 Linux 中,用戶(hù)內(nèi)存和內(nèi)核內(nèi)存是獨(dú)立的,在各自的地址空間實(shí)現(xiàn)。由于地址空間是虛擬的,所以可以存在很多。事實(shí)上,內(nèi)核本身駐留在一個(gè)地址空間中,每個(gè)進(jìn)程駐留在自己的地址空間。這些地址空間由虛擬內(nèi)存地址組成,允許一些帶有獨(dú)立地址空間的進(jìn)程指向一個(gè)相對(duì)較小的物理地址空間(在機(jī)器的物理內(nèi)存中)。因?yàn)槊總€(gè)地址空間是獨(dú)立且隔離的,因此很安全。
??因?yàn)槊總€(gè)進(jìn)程(和內(nèi)核)會(huì)有相同地址指向不同的物理內(nèi)存區(qū)域,不可能立即共享內(nèi)存。幸運(yùn)的是,有一些解決方案。用戶(hù)進(jìn)程可以通過(guò) Portable Operating System Interface for UNIX? (POSIX) 共享的內(nèi)存機(jī)制(shmem)共享內(nèi)存,但有一點(diǎn)要說(shuō)明,每個(gè)進(jìn)程可能有一個(gè)指向相同物理內(nèi)存區(qū)域的不同虛擬地址。
??虛擬內(nèi)存到物理內(nèi)存的映射通過(guò)頁(yè)表完成,這是在底層軟件中實(shí)現(xiàn)的。硬件本身提供映射,但是內(nèi)核管理表及其配置。注意這里的顯示,進(jìn)程可能有一個(gè)大的地址空間,但是很少見(jiàn),就是說(shuō)小的地址空間的區(qū)域(頁(yè)面)通過(guò)頁(yè)表指向物理內(nèi)存。這允許進(jìn)程僅為隨時(shí)需要的網(wǎng)頁(yè)指定大的地址空間。
??由于缺乏為進(jìn)程定義內(nèi)存的能力,底層物理內(nèi)存被過(guò)度使用。通過(guò)一個(gè)稱(chēng)為 paging(然而,在 Linux 中通常稱(chēng)為 swap)的進(jìn)程,很少使用的頁(yè)面將自動(dòng)移到一個(gè)速度較慢的存儲(chǔ)設(shè)備(比如磁盤(pán)),來(lái)容納需要被訪問(wèn)的其它頁(yè)面。這一行為允許,在將很少使用的頁(yè)面遷移到磁盤(pán)來(lái)提高物理內(nèi)存使用的同時(shí),計(jì)算機(jī)中的物理內(nèi)存為應(yīng)用程序更容易需要的頁(yè)面提供服務(wù)。注意,一些頁(yè)面可以指向文件,在這種情況下,如果頁(yè)面是臟(dirty)的,數(shù)據(jù)將被沖洗,如果頁(yè)面是干凈的(clean),直接丟掉。
??選擇一個(gè)頁(yè)面來(lái)交換存儲(chǔ)的過(guò)程被稱(chēng)為一個(gè)頁(yè)面置換算法,可以通過(guò)使用許多算法(至少是最近使用的)來(lái)實(shí)現(xiàn)。該進(jìn)程在請(qǐng)求存儲(chǔ)位置時(shí)發(fā)生,存儲(chǔ)位置的頁(yè)面不在存儲(chǔ)器中(在存儲(chǔ)器管理單元 [MMU] 中無(wú)映射)。這個(gè)事件被稱(chēng)為一個(gè)頁(yè)面錯(cuò)誤,并被硬件(MMU)刪除,出現(xiàn)頁(yè)面錯(cuò)誤中斷后該事件由防火墻管理。
??二、頁(yè)面置換
??Linux 提供一個(gè)有趣的交換實(shí)現(xiàn),該實(shí)現(xiàn)提供許多有用的特性。Linux 交換系統(tǒng)允許創(chuàng)建和使用多個(gè)交換分區(qū)和優(yōu)先權(quán),這支持存儲(chǔ)設(shè)備上的交換層次結(jié)構(gòu),這些存儲(chǔ)設(shè)備提供不同的性能參數(shù)(例如,固態(tài)磁盤(pán) [SSD] 上的一級(jí)交換和速度較慢的存儲(chǔ)設(shè)備上的較大的二級(jí)交換)。為 SSD 交換附加一個(gè)更高的優(yōu)先級(jí)使其可以使用直至耗盡;直到那時(shí),頁(yè)面才能被寫(xiě)入優(yōu)先級(jí)較低的交換分區(qū)。
??并不是所有的頁(yè)面都適合交換。考慮到響應(yīng)中斷的內(nèi)核代碼或者管理頁(yè)表和交換邏輯的代碼,顯然,這些頁(yè)面決不能被換出,因此它們是固定的,或者是永久地駐留在內(nèi)存中。盡管內(nèi)核頁(yè)面不需要進(jìn)行交換,然而用戶(hù)頁(yè)面需要,但是它們可以被固定,通過(guò) mlock(或 mlockall)函數(shù)來(lái)鎖定頁(yè)面。這就是用戶(hù)空間內(nèi)存訪問(wèn)函數(shù)的目的。如果內(nèi)核假設(shè)一個(gè)用戶(hù)傳遞的地址是有效的且是可訪問(wèn)的,最終可能會(huì)出現(xiàn)內(nèi)核嚴(yán)重錯(cuò)誤(kernel panic)(例如,因?yàn)橛脩?hù)頁(yè)面被換出,而導(dǎo)致內(nèi)核中的頁(yè)面錯(cuò)誤)。該應(yīng)用程序編程接口(API)確保這些邊界情況被妥善處理。
??三、Linux空間磁盤(pán)命名規(guī)范
??硬盤(pán)類(lèi)型標(biāo)記通常是以第一個(gè)SCSI磁盤(pán)記為/dev/sda,第二個(gè)SCSI磁盤(pán)記為/dev/sdb;第一個(gè)SATA磁盤(pán)記為/dev/hda,第二個(gè)為/dev /hdb,就這樣以此類(lèi)推。
??Linux系統(tǒng)中,硬盤(pán)分區(qū)標(biāo)記的每個(gè)磁盤(pán)的各個(gè)分區(qū)是這樣的:第一個(gè)SCSI磁盤(pán)的第一個(gè)分區(qū)為/dev/sda1,第二分區(qū)為 /dev/sda2,第三分區(qū)為 /dev/sda3,就這樣以此類(lèi)推。
??/dev/sda 表示這臺(tái)服務(wù)器當(dāng)前只添加一塊scsi硬盤(pán);sda1 磁盤(pán)的第一個(gè)分區(qū),掛著到/boot用于掛載centos系統(tǒng)的核心組件;Sda2 磁盤(pán)的第二個(gè)分區(qū),類(lèi)型為物理磁盤(pán)。
??VG VolGroup創(chuàng)建卷組,卷組是由物理卷組(通常指硬盤(pán)分區(qū)或是磁盤(pán)從邏輯上分區(qū))組成的,這里指的是系統(tǒng)根目錄格式化為交換區(qū)就等同于虛擬內(nèi)存了。
??通過(guò)上述對(duì)linux空間的介紹及一些常用命令的介紹,大家是否對(duì)linux空間有了一定的了解。不過(guò)光看懂不成,要在實(shí)際運(yùn)用中使用,才能更好的掌握哦。小伙伴們要想獲得更多l(xiāng)inux空間的內(nèi)容,請(qǐng)關(guān)注新網(wǎng)!
聲明:免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶(hù)自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請(qǐng)發(fā)
送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)
需注明出處:新網(wǎng)idc知識(shí)百科