linux 磁盘过滤驱动_Linux系统结构

打工人,打工魂,打工的都是人上人


Linux系统由4个部分组成:shell、kernel、filesystem、user application。其中shell、kernel、filesystem组成了操作系统结构,他们使user可以运行程序、管理文件及使用系统。四者的关系如下图所示。

3a4ce26500694ccc4aa06a495eafeca0.png


Linux Kernel

Kernel是User Application和Computer Source交流的中介,其组成结构如下图。在Linux系统中,用户无法直接访问Kernel,需要通过System API才能实现对Kernel的访问。

9773a820ff7118a89eaee407eda2b810.png

Linux把除了他本身(Linux操作系统内核)之外的东西都看作是虚拟文件系统的文件,无论是硬件、软件、还是内存中的东西,都可以在VFS中相应的子目录进行操作。

启动Linux系统时,首先电脑把Linux内核加载到内存中,内核提供了各种管理功能。内核启动后,在内存中建立VFS,然后内核利用他的各种管理功能,以文件的形式管理计算机的软硬件

内存管理

Linux采用“虚拟内存”管理方式,让有限的物理内存满足Application对物理内存的大量需求。Linux将内存划分为内存页。对于大部分体系结构,内存页的大小为4KB。

进程管理

Linux多任务的本质是并发。通过进程调度实现对时间片的管理。进程调度通过进程优先级控制进程对CPU的访问。通过“多任务”机制,每个进程有独立的进程空间,在运行时可以认为是进程独占计算机,防止某个进程崩溃影响其他进程。

进程间可以通过信号、管道、共享内存、信号量和套接字等实现通信。

文件系统

Linux将独立的文件系统组合成一个有层次的树状结构。

虚拟文件系统VFS是在用户和文件系统中间的一个抽象层,提供了用户操作不同文件系统的通用接口。VFS使用户不需要知道文件所在文件系统类型而可以直接操作。

VFS之上是诸如open()、read()的函数的抽象API,VFS下是各个文件系统的实现。

文件系统下是缓冲区缓存Buffer Cache,BufferCache通过保存将数据保留一段时间优化对物理设备访问。

1d649d4849700f55909d3e7dd8bc0720.png

设备驱动程序

设备驱动程序是Kernel中的重要组成部分,它运行在高特权级处理器环境。

所有对Hardware Device的调用都需要有驱动程序。

网络接口(net)

包含网络协议和网络驱动程序两部分。

网络协议部分实现每一种可能的网络协议。

网络驱动程序负责网络设备的调用。


Linux Shell

Shell提供了用户与内核的交互界面,常用调用shell的方法有两种:命令行直接输入和shell脚本。


 文件系统

Linux文件系统是文件在磁盘等存储设备上的组织方法。Linux中,无论操作系统管理几个磁盘分区,只会有一个目录树结构。完整的目录书结构类似下图。

a900a24299e3c6dedccd4e294e408949.png

 Linux磁盘分区

硬盘分区主要有三种,分别是主分区、扩展分区、逻辑分区。任何一个分区都要挂载到目录上。

主分区马上可以被使用,无法再进行分区。

扩展分区需要被再次分区才能使用。

逻辑分区是由扩展分区建立起来的分区。

硬盘分区的标识一般使用/dev/hd[a-z]X或者/dev/sd[a-z]X来标识,其中[a-z]代表硬盘号,X代表硬盘内的分区号。X为1-4是主分区(包含扩展分区),从5开始是逻辑分区。

Linux文件系统

Linux中,每个分区都是一个文件系统,都有自己的目录层次结构。Linux会将这些文件系统总成一个总的目录结构层次。

传统的磁盘与文件系统中,一个分区只能被格式化为一个文件系统。但在新技术中,比如LVM、软件磁盘阵列技术,可以将一个分区格式化为多个文件系统(LVM)也可将多个分区合成一个文件系统(LVM、软件磁盘阵列)。

Linux文件系统特性

文件系统会把文件的一些属性,比如说权限,拥有者/组等信息放在inode中,而文件的实际数据放在data block中。另外还会有一个超级块(super block)记录整个文件系统的整体信息,比如inode和data block的使用情况。

磁盘分区被指定文件系统后,就会分为一个个大小1024、2048、4096Byte大小的块。第一块是super block,其中包含整个文件系统的整体信息,inode/block使用情况,指向空间inode和数据块的指针等信息。inode块是文件系统的索引,记录文件的属性和存放数据的位置信息。data block存放数据,如果数据过大,则会占用多个data block。

就像一本书有封面、目录和正文。文件系统中的super block就是书的封面,inode就是书的目录,data block就是书的正文。

文件系统分区时,会设置超级块、inode table和数据区域。查看一个文件时,inode table会调出文件的属性,并从数据区域调出文件内容。

下图展示了索引式文件系统,inode 4中会存储文件属性以及数据区域2、7、13、15,读取文件内容时,操作系统可以按照inode 4的指引将这四个block中数据读取出来。

27065e1a4555b89f1a154b491f8e6298.png

下图展示了闪存的文件系统。闪存一般使用FAT文件系统,没有inode,每个block的号码记录在前一个block中。如果block太过分散,磁盘读取头无法一圈就读取所有block,就会多读几圈。如果blcok太过分散,就需要进行“碎片整理”,将分散的block整理在一起,便于读取。Ext2文件系统时索引时文件系统,基本不需要“碎片整理”

5e61e627b47b4401f1b4d5c6f773f585.png

Linux Kernel Map: http://www.makelinux.net/kernel_map/

该地址中是Linux Kernel Map,可以直接查看每一个模块

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux常见驱动源码分析(kernel hacker修炼之道)--李万鹏 李万鹏 IBM Linux Technology Center kernel team 驱动资料清单内容如下: Linux设备模型(中)之上层容器.pdf Linux设备模型(上)之底层模型.pdf Linux驱动修炼之道-驱动中一些常见的宏.pdf Linux驱动修炼之道-内存映射.pdf Linux驱动修炼之道-看门狗框架源码分析.pdf Linux驱动修炼之道-触摸屏驱动之s3c2410_ts源码分析.pdf Linux驱动修炼之道-SPI驱动框架源码分析(中).pdf Linux驱动修炼之道-SPI驱动框架源码分析(下).pdf Linux驱动修炼之道-SPI驱动框架源码分析(上).pdf Linux驱动修炼之道-RTC子系统框架与源码分析.pdf Linux驱动修炼之道-platform.pdf Linux驱动修炼之道-LCD背光与gpio控制.pdf Linux驱动修炼之道-INPUT子系统(下).pdf Linux驱动修炼之道-INPUT子系统(上).pdf Linux驱动修炼之道-framebuffer(中).pdf Linux驱动修炼之道-framebuffer(下).pdf Linux驱动修炼之道-framebuffer(上).pdf Linux驱动修炼之道-DMA框架源码分析(下).pdf Linux驱动修炼之道-DMA框架源码分析(上).pdf Linux驱动修炼之道-DM9000A网卡驱动框架源码分析(中).pdf Linux驱动修炼之道-DM9000A网卡驱动框架源码分析(下).pdf Linux驱动修炼之道-DM9000A网卡驱动框架源码分析(上).pdf Linux驱动修炼之道-clock框架.pdf Linux驱动修炼之道-ADC驱动.pdf Linux内核访问外设I O资源的方式.pdf LINUX内核USB子系统学习笔记之初识USB.pdf kernel hacker修炼之道之驱动-流水灯.pdf kernel hacker修炼之道之驱动-混杂设备.pdf kernel hacker修炼之道之驱动-按键.pdf kernel hacker修炼之道之PCI subsystem(五).pdf kernel hacker修炼之道之PCI subsystem(四).pdf kernel hacker修炼之道之PCI subsystem(三).pdf kernel hacker修炼之道之PCI subsystem(六).pdf kernel hacker修炼之道之PCI subsystem(二).pdf

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值