10-09 Linux的文件系统介绍以及各种设备的说明

Linux的文件编程
linux文件管理系统分为3部分
:与文件管理有关的软件,被管理的文件,实施文件管理需要的数据结构
用C语言建立,打开,关闭文件,向文件写入和读出数据等。

Linux文件系统简介
    从系统角度看
:文件系统是对文件存储空间进行组织和分配,负责文件存储,并对存入的文件进行保护和检索的系统。负责为用户建立文件,存入,读出,修改,转存,控制文件的存取,当用户不再使用时撤销文件等操作。
    linux文件系统基础
        linux目录树文件结构。linux中,所有的内容都被看成文件,包括硬件和目录。所有的操作都可以归结为对文件的操作,linux可以像操作普通文件一样来对磁盘文件,串口,键盘,显示器,打印机及其他的设备进行操作。
    bin:存放系统启动时需要的执行文件和一些用户常用的命令,例如cp,ls,cat等。
    boot:存放系统内核以及启动管理器,类似:grub
    cdrom:Ubuntu系统安装光盘镜像的挂在位置,这个目录根据用户的实际情况而存在,有些系统中可能没有。
    dev:设备文件目录,在其中存放了相应的设备信息。
    etc:存放相应的系统配置文件。
    home:用户主目录,在其中按照用户名存放了当前系统中存在用户的个人文件和信息,儡兮Windows中“我的文档”。
    lib:存放着系统最基本的动态链接共享库,其作用类似于Windows中的.dll文件。    
    lib64:这是lib目录的64位版本,当使用64位的操作系统时会存在这个目录,并且将对应的64位库函数存放在这里。
    lost+found:存放在文件系统修复时恢复的文件。
    media:用于存放Ubuntu系统加载的各种媒体,例如光盘,软盘等。
    mnt:用户临时挂载其他的文件系统,如挂载U盘,CDROM等。
    opt:用于存放安装时“可选”的程序,例如KDE,Gnome等。
    proc:系统内存的映射虚拟目录,可以通过直接访问这个目录来获取系统信息,他存在于内存中,而不是硬盘上。
    root:root用户的主工作目录,类似home。
    run:存放的是自系统启动以来描述信息的文件,某些类似Linux中这个目录可能位于var下。
    sbin:存放系统级的可执行文件,类似bin,但是这些文件只能供root用户访问,而不能供普通用户访问。
    selinux:存放提供强制访问控制的相应文件,在某些linux中可能不存在。
    srv:存放提供一些特定服务的文件。
    sys:存放系统信息相关文件。
    temp:存放临时文件。
    usr:存放普通用户的应用程序,文档,程序等。
    var:存放在时间,大小,内容上会经常变化的文件。
    注:Linux是主动管理文件,Windows是自己管理文件。
    linux文件系统由4部分组成:引导块,超级块,索引节点表,数据块。
    引导块:用于存放文件系统的引导程序,引导程序用于系统引导或启动操作系统,如果一个文件系统不存放操作系统,其引导块将为空。
    超级块:用来描述该文件系统管理的资源,其包含空闲索引节点表和空闲数据块表,用于具体说明文件系统的资源使用情况。
    索引节点表:用来存储文件的控制信息,每个节点对应一个文件。
    数据块:是磁盘上存放数据块的磁盘块,包括目录文件和数据。
    ***超级块***
    用于描述Linux文件系统的资源状态,包括文件系统的大小,空闲单元位置信息等。由以下字段构成:
    1.文件系统的容量信息,如:inode数目,数据块数目,保留块数目和块的大小等。
    2.文件系统中空闲块的数目。
    3.文件系统中部分可用的空闲块表。
    4.空闲块表中下一个空闲块号。
    5.索引节点表的大小。
    6.文件系统中空闲索引节点表
    7.空闲索引节点表中下一个空闲索引节点号
    8.超级块的锁字段,用于保证对存储单元的互斥操作
    9.空闲块表的锁字段和空闲索引节点的锁字段
    10.超级块是否被修改的标志
    11.其他字段,存放了文件系统是否完整的标志
    注:Linux关机时候要先将缓冲区数据写回文件系统,并且卸载该文件系统,如果没有卸载文件系统就关机,则很可能导致数据丢失。Linux启动的时候,在挂接(mount)一个文件系统之前首先会检查其超级块中的相应字段,如果上次没有进行卸载操作,则需要对该文件系统的完整性进行检查(fsck)。
    ********索引节点表********
    文件信息是由索引节点表来给出的,每个文件都有自己的索引节点表,在之中包含了该文件数据在磁盘上存储的位置信息,操作权限,文件所有者,操作时间等信息。索引节点表平时存储在磁盘上,在需要进行操作的时候读入内存,通常,存储在磁盘上的索引节点表称作磁盘索引节点,内存中的映像称作内存索引节点表。
    1.文件类型:普通文件,目录文件,链接文件,设备文件,管道文件等。
    2.文件链接数:记录了引用该文件的目录表项数,即记录了有多少个文件名指向该文件。
    3.文件属主标识:指出该文件的所有者ID
    4.文件属主的组标识:指出该文件所有者属组的ID
    5.文件的访问权限:系统将用户分为文件属主,同组用户和其他用户三类,每类用户可能获得对文件的一种或几种访问权限,目录文件的执行权限是指修改目录的权利。
    6.文件的存取时间:包括文件最后一次被修改的时间,最后一次被访问的时间和最后一次修改索引点的时间
    7.文件的长度:以字节表示的文件长度
    8.文件的数据块指针:文件操作的当前位置指针。
    文件描述符是Linux用于标识一个特定进程正在访问的文件,当打开一个文件或者创建一个文件,系统将返回一个文件描述符供其他操作引用,他可以用来标识其对应的特定文件。在Linux中,每个进程都可以拥有最多1024个文件描述符,并且有自己的文件描述符表,其中对于一般的进程是固定的,并且一般进程是固定的,并且是由系统自动打开的:0--标准输入文件,通常是键盘     1---标准输出文件,通常是显示屏   2----标准错误输出,一般也是屏幕
     Linux文件类型介绍
    -:普通文件,对应S_ISEEG()    l:链接文件,对应S_ISLNK()    
    c:字符设备文件,对应S_ISCHR()    s:套接字文件,对应S_ISSOCK()
    d:目录文件,对应S_SDIR()    b:块设备文件,对应S_ISBLK()
    p:管道文件,对应S_ISFIFO()
   
posted @ 2016-10-09 20:56  StivenYang  阅读(278)  评论(0编辑  收藏  举报