Linux拾遗

1 目录与文件的本质

Linux系统的文件数据除了文件实际内容外,还含有文件权限(rwx)与文件属性(所有者、群组、时间参数等)等非常多的属性。文件系统通常会将这两部分的数据分别存放在不同的块。实际数据放到data block块中,若文件太大时,会占用多个block。权限与属性放置到inode中,一个文件占用一个inode,同时记录此文件的数据所在的 block号码。另外,还有一个超级块(superblock)会记录整个文件系统中的整体信息,包括inode与block的总量、使用量、剩余量等。

由于每个inode与block号码都有编号,而每个文件都会占用一个 inode,inode内则有文件数据放置的block号码。因此,我们可以知道,如果能够找到文件的inode的话,那么自然就会知道这个文件所放置数 据的block号码,当然也就能够读出该文件的实际数据了。这是个比较有效率的做法,因为如此一来我们的磁盘就能够在短时间内读取出全部的数据,读写性能 比较好。

当我们在Linux下的ext2文件系统新建一个目录时,ext2会分配一个 inode与至少一块block给该目录。其中,inode记录该目录的相关权限与属性,并可记录分配到的那块block号码。而block则是记录在这 个目录下的文件名与该文件名占用的inode号码数据。这就是为什么在Linux下叫目录而不像在window下叫文件夹,因为它确实就是一个索引。而且 这也解释了为什么明明所有文件都是在根目录下,为什么却还可以放在不同的磁盘?因为目录与其下的子目录和文件,就不是包含与被包含的关系,而只是一个索引。

2 Linux下文件的隐藏属性

显然,这里要说的并不是rwx那9个权限,而是要聊chattr和lsattr这两个命令。这两个命令在只能在Ext2/Ext3的文件系统上面生效,其他文件系统可能就无法支持了。

2.1 chattr 设置文件的隐藏属性

#chattr [+-=] [ASacdistu] 文件或目录
  参数:
    + :增加某一个特殊参数,其他原本存在参数则不动  
    - :删除某一个特殊参数,其他原本存在参数则不动
    = :仅有后面的参数

A :设置了A这个属性时,此文件(或目录)的访问时间atime将不会被修改。可避免I/O较慢的机器过度访问磁盘。
    S :一般文件是异步格式写入磁盘的,如果加上S这个属性时,对文件进行任何修改,将会“同步”写入磁盘中。
    a :设置a之后,这个文件将只能增加数据,而不能删除也不能修改数据,只有root才能设置这个属性。
    c :这个属性设置之后,讲会自动将此文件压缩,在读取的时候会自动解压缩,但是在存储的时候,将会先进行压缩后再存储。
    d :当dump程序被执行的时候,设置d属性将可使该文件(或目录)不会被dump备份。
    i :它可以让一个文件不能被删除、改名,设置连接也无法写入或添加数据。只有root才能设置这个属性。
    s :当文件设置了s属性时,如果这个文件被删除,它将会被完全从这个硬盘空间中删除。
    u :与s相反,当使用u来配置文件时,如果该文件被删除了,则数据内容其实还存在磁盘中。

2.2 lsattr 显示文件隐藏属性

#lsattr [-adR] 文件或目录
  参数:
    -a :将隐藏属性也显示出来
    -d :如果接的是目录,仅列出目录本身的属性而非目录内的文件名
    -R :连同子目录的数据也一并列出

3 内存交换空间(swap)

安装Linux时需要两个分区,一个是根目录,另外一个就是swap(内存交换空间)。swap的功能就是在应付物理内存不足的情况下所造成的内存扩展记录的功能。一般来说,如果硬件的配备足够的话,那么swap应该不会被我们的系统所使用到。

CPU所读取的数据都来自内存,当内存不足的时候,为了让后续的程序可以顺利运行,因此在内存中暂不使用的程序与数据就会被挪到swap中了。此时内存就会空出来给需要执行的程序加载。swap是用硬盘来暂时放置内存中的信息。

目前主机的内存都很大,因此在个人使用上,不设置swap也没有太大的问题。不过服务器可就不同了,犹豫不会知道何时会有大量来自网络的请求,因此最好能够预留一些swap来缓冲一下系统的内存用量。

新建swap分区的方法:
  1,分区:先使用fdisk在磁盘中分出一个分区给系统作为swap。由于Linux的fdisk默认会将分区的ID设置为Linux的文件系统,所以可能还得要设置一下system ID。
  2,格式化:利用新建swap格式的mkswap 设备文件名就能够格式化该分区成为swap格式。
  3,使用:最后将该swap设备启动,方法为swapon 设备文件名
  4,查看:最终通过free这个命令来查看一下内存的使用情况。

4 内核结构的区分

单内核与微内核是具有代表性的内核结构。
  单内核——所有内核服务均在内核空间中存在并运行。直接调出内核服务。

4.1 基于单内核的操作系统:

用户空间包含:应用、库
  内核包含:文件系统、进程间通信、I/O和设备管理、基本进程管理等。
  微内核——内核服务中一部分位于用户空间。利用消息传递方式调用内核服务。

4.2 基于微内核的操作系统:

用户空间包含:应用、库、文件系统、进程服务器、调页程序、驱动程序等。
  内核包含:微内核
  内核结构的区分标准是:所有内核服务是否集成在内核空间运行。
  2.6版Linux内核虽然具有支持模块的模块化内核,但模块也是运行在内核空间的,因此仍为单内核。

参考书籍:
《鸟哥的Linux私房菜》
《ARM Linux内核源码剖析》

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,042评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 89,996评论 2 384
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,674评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,340评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,404评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,749评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,902评论 3 405
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,662评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,110评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,451评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,577评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,258评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,848评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,726评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,952评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,271评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,452评论 2 348

推荐阅读更多精彩内容

  • 一个基本的计算机系统由“硬件”和“软件”组成,一台Linux设备,主要的组成如下图所示: 一般情况下,我们所说的L...
    时待吾阅读 1,636评论 0 16
  • Linux系统一般有4个主要部分:内核、shell、文件系统和应用程序。 内核、shell和文件系统一起形成了基本...
    请爱护小动物阅读 2,553评论 0 22
  • Linux系统一般有4个主要部分: 内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本...
    偷风筝的人_阅读 3,245评论 1 17
  • 转载自:http://blog.csdn.net/hguisu/article/details/6122513原作...
    miaoiao阅读 1,509评论 0 7
  • 当我们面对选择的时候,我想,我们必须鼓起勇气为自己负责,在成年之前,帮我们做选择的往往是父母,老师;而成年之...
    劲雨波阅读 314评论 0 0