Linux拾遺

1 目錄與文件的本質(zhì)

Linux系統(tǒng)的文件數(shù)據(jù)除了文件實(shí)際內(nèi)容外租悄,還含有文件權(quán)限(rwx)與文件屬性(所有者、群組豪娜、時(shí)間參數(shù)等)等非常多的屬性。文件系統(tǒng)通常會將這兩部分的數(shù)據(jù)分別存放在不同的塊咽筋。實(shí)際數(shù)據(jù)放到data block塊中,若文件太大時(shí)徊件,會占用多個(gè)block奸攻。權(quán)限與屬性放置到inode中,一個(gè)文件占用一個(gè)inode虱痕,同時(shí)記錄此文件的數(shù)據(jù)所在的 block號碼睹耐。另外,還有一個(gè)超級塊(superblock)會記錄整個(gè)文件系統(tǒng)中的整體信息部翘,包括inode與block的總量硝训、使用量、剩余量等新思。

由于每個(gè)inode與block號碼都有編號窖梁,而每個(gè)文件都會占用一個(gè) inode,inode內(nèi)則有文件數(shù)據(jù)放置的block號碼表牢。因此窄绒,我們可以知道贝次,如果能夠找到文件的inode的話崔兴,那么自然就會知道這個(gè)文件所放置數(shù) 據(jù)的block號碼,當(dāng)然也就能夠讀出該文件的實(shí)際數(shù)據(jù)了。這是個(gè)比較有效率的做法敲茄,因?yàn)槿绱艘粊砦覀兊拇疟P就能夠在短時(shí)間內(nèi)讀取出全部的數(shù)據(jù)位谋,讀寫性能 比較好。

當(dāng)我們在Linux下的ext2文件系統(tǒng)新建一個(gè)目錄時(shí)堰燎,ext2會分配一個(gè) inode與至少一塊block給該目錄掏父。其中,inode記錄該目錄的相關(guān)權(quán)限與屬性秆剪,并可記錄分配到的那塊block號碼赊淑。而block則是記錄在這 個(gè)目錄下的文件名與該文件名占用的inode號碼數(shù)據(jù)。這就是為什么在Linux下叫目錄而不像在window下叫文件夾仅讽,因?yàn)樗_實(shí)就是一個(gè)索引陶缺。而且 這也解釋了為什么明明所有文件都是在根目錄下,為什么卻還可以放在不同的磁盤洁灵?因?yàn)槟夸浥c其下的子目錄和文件饱岸,就不是包含與被包含的關(guān)系,而只是一個(gè)索引徽千。

2 Linux下文件的隱藏屬性

顯然苫费,這里要說的并不是rwx那9個(gè)權(quán)限,而是要聊chattr和lsattr這兩個(gè)命令双抽。這兩個(gè)命令在只能在Ext2/Ext3的文件系統(tǒng)上面生效百框,其他文件系統(tǒng)可能就無法支持了。

2.1 chattr 設(shè)置文件的隱藏屬性

#chattr [+-=] [ASacdistu] 文件或目錄
  參數(shù):
    + :增加某一個(gè)特殊參數(shù)牍汹,其他原本存在參數(shù)則不動  
    - :刪除某一個(gè)特殊參數(shù)琅翻,其他原本存在參數(shù)則不動
    = :僅有后面的參數(shù)

A :設(shè)置了A這個(gè)屬性時(shí),此文件(或目錄)的訪問時(shí)間atime將不會被修改柑贞》阶担可避免I/O較慢的機(jī)器過度訪問磁盤。
    S :一般文件是異步格式寫入磁盤的钧嘶,如果加上S這個(gè)屬性時(shí)棠众,對文件進(jìn)行任何修改,將會“同步”寫入磁盤中有决。
    a :設(shè)置a之后闸拿,這個(gè)文件將只能增加數(shù)據(jù),而不能刪除也不能修改數(shù)據(jù)书幕,只有root才能設(shè)置這個(gè)屬性新荤。
    c :這個(gè)屬性設(shè)置之后,講會自動將此文件壓縮台汇,在讀取的時(shí)候會自動解壓縮苛骨,但是在存儲的時(shí)候篱瞎,將會先進(jìn)行壓縮后再存儲。
    d :當(dāng)dump程序被執(zhí)行的時(shí)候痒芝,設(shè)置d屬性將可使該文件(或目錄)不會被dump備份俐筋。
    i :它可以讓一個(gè)文件不能被刪除、改名严衬,設(shè)置連接也無法寫入或添加數(shù)據(jù)澄者。只有root才能設(shè)置這個(gè)屬性。
    s :當(dāng)文件設(shè)置了s屬性時(shí)请琳,如果這個(gè)文件被刪除粱挡,它將會被完全從這個(gè)硬盤空間中刪除。
    u :與s相反俄精,當(dāng)使用u來配置文件時(shí)抱怔,如果該文件被刪除了,則數(shù)據(jù)內(nèi)容其實(shí)還存在磁盤中嘀倒。

2.2 lsattr 顯示文件隱藏屬性

#lsattr [-adR] 文件或目錄
  參數(shù):
    -a :將隱藏屬性也顯示出來
    -d :如果接的是目錄屈留,僅列出目錄本身的屬性而非目錄內(nèi)的文件名
    -R :連同子目錄的數(shù)據(jù)也一并列出

3 內(nèi)存交換空間(swap)

安裝Linux時(shí)需要兩個(gè)分區(qū),一個(gè)是根目錄测蘑,另外一個(gè)就是swap(內(nèi)存交換空間)灌危。swap的功能就是在應(yīng)付物理內(nèi)存不足的情況下所造成的內(nèi)存擴(kuò)展記錄的功能。一般來說碳胳,如果硬件的配備足夠的話勇蝙,那么swap應(yīng)該不會被我們的系統(tǒng)所使用到。

CPU所讀取的數(shù)據(jù)都來自內(nèi)存挨约,當(dāng)內(nèi)存不足的時(shí)候味混,為了讓后續(xù)的程序可以順利運(yùn)行,因此在內(nèi)存中暫不使用的程序與數(shù)據(jù)就會被挪到swap中了诫惭。此時(shí)內(nèi)存就會空出來給需要執(zhí)行的程序加載翁锡。swap是用硬盤來暫時(shí)放置內(nèi)存中的信息。

目前主機(jī)的內(nèi)存都很大夕土,因此在個(gè)人使用上馆衔,不設(shè)置swap也沒有太大的問題。不過服務(wù)器可就不同了怨绣,猶豫不會知道何時(shí)會有大量來自網(wǎng)絡(luò)的請求角溃,因此最好能夠預(yù)留一些swap來緩沖一下系統(tǒng)的內(nèi)存用量。

新建swap分區(qū)的方法:
  1篮撑,分區(qū):先使用fdisk在磁盤中分出一個(gè)分區(qū)給系統(tǒng)作為swap减细。由于Linux的fdisk默認(rèn)會將分區(qū)的ID設(shè)置為Linux的文件系統(tǒng),所以可能還得要設(shè)置一下system ID赢笨。
  2未蝌,格式化:利用新建swap格式的mkswap 設(shè)備文件名就能夠格式化該分區(qū)成為swap格式驮吱。
  3,使用:最后將該swap設(shè)備啟動树埠,方法為swapon 設(shè)備文件名糠馆。
  4嘶伟,查看:最終通過free這個(gè)命令來查看一下內(nèi)存的使用情況怎憋。

4 內(nèi)核結(jié)構(gòu)的區(qū)分

單內(nèi)核與微內(nèi)核是具有代表性的內(nèi)核結(jié)構(gòu)。
  單內(nèi)核——所有內(nèi)核服務(wù)均在內(nèi)核空間中存在并運(yùn)行九昧。直接調(diào)出內(nèi)核服務(wù)绊袋。

4.1 基于單內(nèi)核的操作系統(tǒng):

用戶空間包含:應(yīng)用、庫
  內(nèi)核包含:文件系統(tǒng)旁钧、進(jìn)程間通信蛹疯、I/O和設(shè)備管理响迂、基本進(jìn)程管理等。
  微內(nèi)核——內(nèi)核服務(wù)中一部分位于用戶空間展姐。利用消息傳遞方式調(diào)用內(nèi)核服務(wù)。

4.2 基于微內(nèi)核的操作系統(tǒng):

用戶空間包含:應(yīng)用剖毯、庫圾笨、文件系統(tǒng)、進(jìn)程服務(wù)器逊谋、調(diào)頁程序擂达、驅(qū)動程序等。
  內(nèi)核包含:微內(nèi)核
  內(nèi)核結(jié)構(gòu)的區(qū)分標(biāo)準(zhǔn)是:所有內(nèi)核服務(wù)是否集成在內(nèi)核空間運(yùn)行胶滋。
  2.6版Linux內(nèi)核雖然具有支持模塊的模塊化內(nèi)核板鬓,但模塊也是運(yùn)行在內(nèi)核空間的,因此仍為單內(nèi)核究恤。

參考書籍:
《鳥哥的Linux私房菜》
《ARM Linux內(nèi)核源碼剖析》

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末俭令,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子部宿,更是在濱河造成了極大的恐慌唤蔗,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件窟赏,死亡現(xiàn)場離奇詭異妓柜,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)涯穷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進(jìn)店門棍掐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人拷况,你說我怎么就攤上這事作煌【蚺梗” “怎么了?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵粟誓,是天一觀的道長奏寨。 經(jīng)常有香客問我,道長鹰服,這世上最難降的妖魔是什么病瞳? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮悲酷,結(jié)果婚禮上套菜,老公的妹妹穿的比我還像新娘。我一直安慰自己设易,他們只是感情好逗柴,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著顿肺,像睡著了一般戏溺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上屠尊,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天旷祸,我揣著相機(jī)與錄音,去河邊找鬼知染。 笑死肋僧,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的控淡。 我是一名探鬼主播嫌吠,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼掺炭!你這毒婦竟也來了辫诅?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤涧狮,失蹤者是張志新(化名)和其女友劉穎炕矮,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體者冤,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡肤视,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了涉枫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片邢滑。...
    茶點(diǎn)故事閱讀 40,865評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖愿汰,靈堂內(nèi)的尸體忽然破棺而出困后,到底是詐尸還是另有隱情乐纸,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布摇予,位于F島的核電站汽绢,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏侧戴。R本人自食惡果不足惜宁昭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望救鲤。 院中可真熱鬧久窟,春花似錦秩冈、人聲如沸本缠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽丹锹。三九已至,卻和暖如春芬失,著一層夾襖步出監(jiān)牢的瞬間楣黍,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工棱烂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留租漂,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓颊糜,卻偏偏與公主長得像哩治,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子衬鱼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評論 2 361

推薦閱讀更多精彩內(nèi)容