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