深入Linux内核架构—简介和概述(五)

本文介绍了Linux内核的文件系统,包括Ext2、Ext3、ReiserFS和VFS(虚拟文件系统)的概念;探讨了模块在内核中的作用,特别是模块的动态加载和热插拔功能,以及对二进制代码模块的限制;还讲解了缓存机制,如页缓存和块缓存如何提高系统性能。同时,简述了内核中链表处理的API及其在数据结构中的应用。
摘要由CSDN通过智能技术生成

一、文件系统

Linux系统由数以千计乃至百万计的文件组成,其数据存储在硬盘或其他块设备。存储使用层次式文件系统。文件系统使用目录结构组织存储的数据,并将其他元信息(例如所有者、访问权限等)与实际数据关联起来。Linux支持许多不同的文件系统:标准的Ext2(第二版扩展文件系统)和Ext3(第三版扩展文件系统)、ReiserFS、XFS(一种高性能的日志文件系统)、VFAT(FAT32文件系统格式,为兼容DOS),还有很多其他文件系统。Ext2基于inode,即它对每个文件都构造了一个单独的管理结构,称为inode,并存储到磁盘上。inode包含文件所有的元信息,以及指向相关数据块的指针。目录可以表示为普通文件,其数据包括指向目录下所有文件的inode的指针,因而层次结构得以建立。相比之下,ReiserFS广泛应用树形结构来提供同样的功能。

内核必须提供一个额外的软件层,将各种底层文件系统的具体特性与应用层隔离开来。该软件层称为VFS(虚拟文件系统)。VFS既是向下的接口(所有文件系统都必须实现该接口),同时也是向上的接口(用户进程通过系统调用最终能够访问文件系统功能)。

如图1-10所示。

                         图1-10 虚拟文件系统层、文件系统实现和块设备层之间的互操作

二、模块和热插拔

模块用于在运行时动态地向内核添加功能,如设备驱动程序、文件系统、网络协议等,实际上内核任何子系统几乎都可以模块化。

模块还可以在运行时从内核卸载,这在开发新的内核组件时很有用。

模块在本质上是普通的程序,在内核空间执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值