1. 设备专用文件(设备文件)

设备专用文件与系统的某个设备相对应。在内核中,每种设备类型都有阈值向对应的设备驱动程序,用来处理设备的所有I/O请求。可以将设备划分为字符设备和块设备两种。

每个设备文件都有主、辅id号各一个。主id号标识一般的设备等级,内核会使用主ID号通过一颗设备相应的红黑树来找到相应的驱动程序。辅id号能够标识特定设备。

设备文件的inode中记录了设备文件的主、辅id。每个设备驱动程序都会将自己与特定主设备号的关联关系向内核注册(上面说的红黑树),一次建立设备专用文件和设备驱动程序之间的关系。内核是不会使用设备文件名来查找驱动程序的。

2. 磁盘和分区

磁盘分区可以容纳任何类型的信息,但通常只会包含以下之一:

文件系统:用来存放常规文件

数据区域:可以作为裸设备来对其进行访问

交换区域:供内核的内存管理之用

3. 文件系统

在文件系统中,用来分配空间的基本单位是逻辑块,即文件系统所在磁盘设备上若干连续的物理块

引导块:总是作为文件系统的首块,不为文件系统所用,只包含用来引导操作系统的信息

超级块:包含用于文件系统有关的参考信息:inode表容量、文件系统中逻辑块的大小、以逻辑块计,文件系统的大小

文件系统中的每个文件或目录在inode表中都对应着唯一一条记录。这条记录登记关乎文件的各种信息

数据块:文件系统的大部分空间都用于存放数据

5. inode

针对驻留于文件系统上的每个文件,文件系统的inode表会包含一个inode,inode所维护的信息如下:

文件类型

文件属主

文件属组

三类用户的访问权限

三个时间戳(文件的最后访问时间a,文件最后修改时间m、文件状态的最后改变时间c)

指向文件的硬链接数量

文件的大小,以字节为单位

实际分配给文件的块数量,以512字节块为单位

指向文件数据块的指针

6. 虚拟文件系统

linux所支持的各种文件系统,其实现细节均不相同。虚拟文件系统是一种内核特性,通过为文件系统操作创建抽象层来解决问题:

vfs针对文件系统定义了一套通用接口。所有与文件交互的程序都会按照这一接口来进行操作

每种文件系统都会提供vfs接口的实现

7. 日志系统

系统崩溃之后,为了确保文件系统的完整性,充气式就必须对文件系统的一致性进行检查fsck。如果过大,就会非常玛法。

采用日志文件系统,则无需在系统崩溃后对文件进行漫长的一致性检查。在实际更新元数据前,日志文件系统会将这些更新操作记录与专用的磁盘日志文件中,对元数据更新的记录是按照其相关性分组进行的。在事务处理过程中,一旦系统崩溃,系统重启时便可以利用日志重做(redo)任何不完整的更新,同时为文件系统恢复一致性状态。借用数据库的说法,日志文件系统能够确保总是将文件元数据事务作为一个完整丹玉来提交。

8. 文件系统的挂载和卸载

点击(此处)折叠或打开

1. #include

2. intmount(constchar\*source,constchar\*target,constchar\*fstype,unsigned long mountflags,constvoid\*data);

3. /\*returns 0onsuccess,or\-1onerror\*/

fstype是一个字符串,用来标识设备所含文件系统的类型

data是一个指向信息缓冲区的指针,对其的解释则取决于文件系统,就大多数文件系统而言,该参数就是一个字符串,包含了以逗号分隔的选项设置

点击(此处)折叠或打开

1. #include

2. intumount(constchar\*target);

3. /\*returns 0onsuccess,or\-1onerror\*/

4. intumount2(constchar\*target,intflags);

5. /\*returns 0onsuccess,or\-1onerror\*/

9\. 获得与文件系统 有关的信息:statvfs()

点击(此处)折叠或打开

1. #include

2. intstatvfs(constchar\*pathname,struct statvfs\*statvfsbuf);

3. intfstatvfs(intfd,struct statvfs\*statvfsbuf);

4. /\*both return 0onsuccess,or\-1onerror\*/

5. struct statvfs{

6.     unsigned long f\_bsize;/\*file\-system block size\*/

7.     unsigned long f\_frsize;/\*fundamental file\-system block size\*/

8.     fsblkcnt\_t f\_blocks;/\*total number of blocksinfile system(inunits of f\_frsize)\*/

9.     fsblkcnt\_t f\_bfree;/\*total number of free blocks\*/

10.     fsblkcnt\_t f\_bavail;/\*number of free blocks availabletounprivileged process\*/

11.     fsfilcnt\_t f\_files;/\*total number of i\-nodes\*/

12.     fsfilcnt\_t f\_ffree;/\*total number of free i\-nodes\*/

13.     fsfilcnt\_t f\_favail;/\*number of i\-nodes availabletounprivileged process\*/

14.     unsigned long f\_fsid;/\*file\-system ID\*/

15.     unsigned long f\_flag;/\*mount flags\*/

16.     unsigned long f\_namemax;/\*maximun length of filenamesonthis file system\*/

17. };

以上两个函数能够获得与已挂载文件系统有关的信息

linux裸设备文件系统,Linux当中的文件系统相关推荐

  1. linux 裸设备使用,Linux上如何使用裸设备

    本文不涉及基础概念,只是简单列一下Redhat上创建lvm裸设备的步骤,以供查阅.各个命令的参数可以通过man获得. 1.创建pv pvcreate -M2 --metadatasize 100M / ...

  2. linux 裸设备使用,linux裸设备使用

    一.配置: RHAS4: 1,将硬盘分区: #fdisk -l #fdisk /dev/sdb 2,绑定: 方式一: #raw /dev/raw/rawN /dev/sdbN #raw -qa #vi ...

  3. linux裸设备大小,SUSE Linux 十 配置裸设备(raw devices)

    SUSE Linux 10 配置裸设备(raw devices) 裸设备,是没有经过格式化的分区或磁盘,也叫裸分区(原始分区),不被Unix通过文件系统来读取的特殊字符设备.它由应用程序负责对 它进行 ...

  4. linux裸设备文件系统,关于裸设备,文件系统,CIO/DIO

    我们在创建DMS表空间容器时可以选择使用裸设备或文件系统,下面我们来看看两者的区别.我们知道,内存的读写效率比磁盘高近万倍,因此数据库通常会在内存中开辟一片区域,称为Buffer Pool,使数据的读 ...

  5. linux 裸设备 逻辑卷,Linux通过逻辑卷使用裸设备

    本文不涉及基础概念,只是简单列一下Linux上创建lvm裸设备的步骤,以供查阅.各个命令的参数可以通过man获得. (一)创建裸设备 1.用fdisk命令为磁盘阵列划分区(如sdc1,sdc2.... ...

  6. oracle在linux上使用裸设备,在linux下构建基于LVM的裸设备数据库

    我的环境很简单,vm workstation下面装了一个linux 4,oracle 10g版本,由于不属于trouble shooting和performance tuning 而只是搭建一套裸设备 ...

  7. linux给目录加裸设备磁盘,Linux添加裸设备空间(Redhat)

    .创建pv pvcreate            /dev/sdd****pvcreate -M2 –metadatasize 100M /dev/sda pvcreate -M2 –metadat ...

  8. Linux操作系统的设备独立性,Linux的设备管理

    一 设备管理 在计算机系统中,除了CPU和内存之外,其余的大部分硬件设备称为外部设备.外部设备包括常用的I/O(输入/输出)设备.外存设备以及终端设备等. 1.I/O设备的类型 ●按设备的所属关系可以 ...

  9. linux cdc设备驱动程序,Linux Kernel 'cdc-wdm' USB设备驱动程序堆缓冲区溢出漏洞

    发布日期:2013-03-14 更新日期:2013-03-19 受影响系统: Linux kernel 3.x Linux kernel 2.6.x 描述: --------------------- ...

最新文章

  1. 南农计算机考研985,江浙沪985/211考研难度梯队排名
  2. 【IT笔试面试题整理】字符串转数组+数组转字符串
  3. 项目一感应垃圾桶(Wemos)
  4. Python基础-----列表、元组、集合(2)
  5. spring基础——普通bean xml注入
  6. 安装完python怎么打开-安装python后如何通过Python打开网页
  7. 详解面试手撕过的那些排序算法
  8. LFYZOJ 104 Counting Swaps
  9. JS关于辅助函数inherit()的小问题
  10. python 装饰器(复杂一点的)
  11. 光滑噪声数据常用的方法_数据挖掘部分课后习题
  12. JS根据身份证计算年龄
  13. 数字逻辑电路设计(实验测试题)
  14. 如何打造一个让人愉快的框架
  15. 【算法图解】——算法必备
  16. 【学习笔记】超实数(Surreal Number)和不平等博弈
  17. “M OP N“ 数值问题
  18. java continu语句
  19. 【FFMPEG】视频转码之VOB视频无声处理
  20. 初学Java时使用记事本开发出现的中文乱码问题

热门文章

  1. 百度地图2.1获取密钥配置的Android签名证书的sha1值
  2. 使用 Mashups4JSF 生成和消费 Mashup Feed
  3. 网络营销方案之巧用电子书营销
  4. 美国波特兰市禁用人脸识别,被违规监控可获赔1000美元
  5. 语音识别发展必牺牲隐私?最大问题或因不符用户预期,需增透明性
  6. 读写分离数据库之MyCat
  7. 2020美国计算机研究生学校排名,2020 US.news 美国研究生院排名出炉,美中国际独家解析!...
  8. java 二维数组的定义
  9. ajax从mysql提取数据在html中_Python骚操作,提取pdf文件中的表格数据!
  10. 实用计算机技术选修,实用计算机组装与维护选修课学习心得