• 内核文件系统


    Linux内核实现了一套特殊的内存虚拟文件系统用于使用与文件接口统一的操作来完成系统信息管理,它们包括:
    procfs、devfs、sysfs。

    一、procfs
    procfs是Linux内核信息的抽象文件接口,大量内核中的信息以及可调参数都被作为常规文件映射到
    一个目录树中/proc.这样我们就可以简单直接的通过echo或cat这样的文件操作命令对系统信息进行查取
    和调整了。大量的系统工具也通过procfs获取内核参数,例如ps、lspci等。

    1. procfs的挂载:首先确定你的内核已经支持procfs,默认支持
    # mount -t proc none /proc
    使用/etc/fstab条目:none /proc proc defaults 0 0

    2. procfs的内容:
    进程信息
    系统信息

    3. procfs信息查看
    cat命令: cat /proc/cmdline

    4. procfs参数调整
    echo命令

    二、tmpfs
    tmpfs是一种虚拟内存文件系统,使用内存作为存储分区进行文件的临时性存取,掉电会丢失,创建时不需要使用mkfs等进行格式化。

    1. tmpfs的挂载:首先确定你的内核已经支持tmpfs
    # mount -t tmpfs -o size=10M tmpfs /tmp
    # df -h
    使用/etc/fstab条目:tmpfs /tmp tmpfs defaults 0 0

    2. tmpfs的使用:用来存放应用临时生成的信息,不需要持久保存
    正常使用挂载目录:创建文件,存储信息,删除文件等
    记住:目录下的所有信息将在系统掉电后全部丢失

    3. tmpfs的作用
    提高存储效率,内存的访问速度比Flash快很多
    避免对Flash存储设备的频繁读写,提高使用寿命

    三、devfs
    Linux2.6内核以前设备文件的抽象机制:提供了一种类似于文件的方法来管理位于/dev目录下的所有设备。

    1. /dev ————— 根文件系统目录
    设备文件创建
    制作根文件系统时创建基本的,比如console,tty1等
    设备驱动加载时创建相应的设备文件

    2. 特殊设备文件
    /dev/console
    /dev/null /dev/zero

    3. devfs的缺点 ————> sysfs的设计
    不确定的设备映射,有时一个设备映射的设备文件可能不同,例如我的U盘可能对应sda有可能对应sdb
    没有足够的主/辅设备号,当设备过多的时候,显然这会成为一个问题

    四、sysfs
    Linux2.6内核以后引入sysfs:挂载于/sys目录下,把实际连接到系统上的设备和总线组织成一个分级的文件,用户空间的程序同样可以利用这些信息以实现和内核的交互,该文件系统是当前系统上实际设备树的一个直观反应。

    1. sysfs的原理
    kobject子系统:建立目录树
    当一个kobject被创建的时候,/sys/目录下对应的文件和目录也就被创建
    每个设备在sysfs中都有唯一对应的目录,可以被用户空间读写

    2. sysfs的挂载:首先确定你的内核已经支持sysfs,默认支持
    # mount -t none sysfs /sys
    使用/etc/fstab条目:none /sys sysfs defaults 0 0

    3. sysfs的使用
    cat命令: 查看/sys目录下的设备信息

    4. sysfs的应用
    用户空间的工具udev:利用了sysfs提供的信息来实现所有devfs的功能
    udev运行在用户空间中,而devfs却运行在内核空间

  • 相关阅读:
    POJ1609 UVALive2815 UVA1196 ZOJ1787 Tiling Up Blocks【二维最长上升子序列+DP】
    UVALive3638 UVA12100 POJ3125 HDU1972 Printer Queue【队列+模拟】
    UVA10391 ZOJ1825 Compound Words【SET+暴力】
    NUC1157 To the Max【最大子段和+DP】
    NUC1399 Sum It Up【DFS】
    NUC1742 Subsequence【前缀和+二分搜索+尺取法】
    NUC1371 Who's in the Middle【中位数+排序】
    NUC1312 Sum【水题+数学题】
    POJ2100 Graveyard Design【尺取法】
    UVALive3399 UVA1210 POJ2739 Sum of Consecutive Prime Numbers【素数筛选+尺取法】
  • 原文地址:https://www.cnblogs.com/CHYI1/p/5542726.html
Copyright © 2020-2023  润新知