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()
       
    起风了,努力生存
  • 相关阅读:
    Xcode8中Swift3.0适配问题
    Swift3.0语法变化
    一起聊聊 Swift 3.0
    Swift 3.0 的 open,public,internal,fileprivate,private 关键字
    leetcode先刷_Binary Tree Level Order Traversal II
    java + memcached安装
    POJ 2533-Longest Ordered Subsequence(DP)
    网络协议——IP
    使用百度地图——入门
    取消延时功能
  • 原文地址:https://www.cnblogs.com/StivenYang/p/8441332.html
Copyright © 2011-2022 走看看