zoukankan      html  css  js  c++  java
  • Linux的文件系统

     

    Linux的文件系统

      1. 基础概念

        1. 在LINUX系统中有一个重要的概念:一切都是文件。Linux是重写UNIX而来,在UNIX系统中,把一切资源都看作是文件,包括硬件设备。

        2. Linux的文件系统因为Linux的版本不一样而不一样,会向下兼容,而且一个Linux发行版不会只有一个文件系统。

      2. 整体结构如下

        1. 存储硬件:常见的硬盘有PATA, SATA和AHCI等,

        2. 在Linux系统中,对不同硬盘所提供的驱动模块一般都存放在内核目录树drivers/ata中,而对于一般通用的硬盘驱动,也许会直接被编译到内核中,

            而不会以模块的方式出现,可以通过查看/boot/config-xxx.xxx文件来确认。

        3. General Block Device Layer  通用设备操作接口

      不同的硬盘驱动,会提供不同的IO接口,内核认为这种杂乱的接口,不利于管理,需要把这些接口抽象一下,形成一个统一的对外接口,这样,不管你是什么硬盘,什么驱动,对外而言,它们所提供的IO接口没什么区别,都一视同仁的被看作块设备来处理。所以,如果在一层做的任何修改,将会直接影响到所有文件系统,不管是ext3,ext4还是其它文件系统,只要在这一层次做了某种修改,对它们都会产生影响。

    4. 文件系统   File System

      目前Linux的支持的文件系统由好多,大多Linux发行版本默认使用的文件系统一般是ext4,另外,新一代的btrfs也呼之欲出,不管什么样的文件系统,都是由一系列的mkfs.xxx命令来创建。

      

         5. Virtual File System 虚拟文件系统

      文件系统那么多,那不同的文件系统的操作也不一致,所以需要一个统一的接口来对文件系统操作, 而不是直接操作文件系统。VFS就把这些不同的文件系统做一个抽象,提供统一的API访问接口,这样,用户空间就不用关心不同文件系统中不一样的API了。VFS所提供的这些统一的API,再经过System Call包装一下,用户空间就可以经过SCI的系统调用来操作不同的文件系统。

    VFS所提供的常用API有:
      mount(), umount() …
      open(),close() …
      mkdir() …

    https://www.cnblogs.com/chenpython123/p/11355151.html   系统目录

  • 相关阅读:
    关于回溯与招聘市场
    关于回溯与马
    关于回溯和后宫
    关于兔子
    关于递归和斐波那契数列
    关于递归和汉诺塔
    关于简单汉诺塔
    nodejs报错roll back,because of a error.node.js setup wizard ended prematurel
    fatal error C1859 意外的预编译头错误,只需重新运行编译器
    sqlserver2008 无法设置主体sa的凭据
  • 原文地址:https://www.cnblogs.com/chenpython123/p/11215592.html
Copyright © 2011-2022 走看看