zoukankan      html  css  js  c++  java
  • 1009 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()
       
    起风了,努力生存
  • 相关阅读:
    Code Forces 650 C Table Compression(并查集)
    Code Forces 645B Mischievous Mess Makers
    POJ 3735 Training little cats(矩阵快速幂)
    POJ 3233 Matrix Power Series(矩阵快速幂)
    PAT 1026 Table Tennis (30)
    ZOJ 3609 Modular Inverse
    Java实现 LeetCode 746 使用最小花费爬楼梯(递推)
    Java实现 LeetCode 745 前缀和后缀搜索(使用Hash代替字典树)
    Java实现 LeetCode 745 前缀和后缀搜索(使用Hash代替字典树)
    Java实现 LeetCode 745 前缀和后缀搜索(使用Hash代替字典树)
  • 原文地址:https://www.cnblogs.com/StivenYang/p/8441332.html
Copyright © 2011-2022 走看看