当前位置: 首页 > C/C++, Linux kernrl > 正文

Linux内核初探5

Linux内核初探5

系统调用:

   What:用户进程与内核交互的经典方法。

          进程管理:创建了新的进程,查询信息,调试。

          发送信号,定时器及相关处理机制。

          对各种文件进行操作。

          创建,删除和重命名目录。

          保护机制:读取和变更UID/GID,命名空间的处理。

          定时器函数:定时器函数和统计信息。

          用户进程要从用户状态切换到核心态,并将系统关键任务委派给内核执行,系统调用是必由之路。

 

设备驱动程序,块设备和字符设备:

字符设备:

         提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取。(调制解调器是典型的字符设备)。

块设备:

         应用程序可以随机访问设备数据,程序可自行确定读取数据的位置。硬盘是典型的块设备,应用程序可以寻址磁盘上的任何位置。数据的读写只能以块(通常512B)的倍数进行。且不支持基于字符的寻址。内核为提高系统性能广泛的使用了缓存机制。

 

文件系统

存储使用了层次式文件系统。文件系统使用目录结构组织存储数据,并将其它信息与实际数据关联起来。

内核必须提供一个额外的软件层,将各种底层文件系统的具体特性与应用层(和内核自身)隔离起来。该软件层称为VFS,虚拟文件系统或虚拟文件系统交换器VFS是向下的接口同时也是向上的接口。

 

模块和热插拔

   目的:用于在运行时动态地向内核添加功能,驱动程序,文件系统,网络协议等。

   运行环境:内核空间,需要提供某些引导代码段。

   必要性:支持热插拔。

   特性:可以支持多种移动设备,内核自身的大小却不会发生膨胀。

   二进制代码的模块有一定危险性。

缓存:

       内核使用缓存来改进系统性能。由于内核是通过基于页的内存映射来实现访问块设备的,因此缓存也按页组织,也就是说整页都缓存起来,故称为页缓存。

   块缓存用于缓存没有组织成页的数据,慢慢被取代。

版权声明:本文为博主原创文章,未经博主允许不得转载。

]]>

本文固定链接: http://zmrlinux.com/2015/03/27/linux%e5%86%85%e6%a0%b8%e5%88%9d%e6%8e%a25/ | Kernel & Me

该日志由 root 于2015年03月27日发表在 C/C++, Linux kernrl 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: Linux内核初探5 | Kernel & Me
【上一篇】
【下一篇】