08 2017 档案

摘要:本章主要讨论与linux的设备驱动和设备管理的相关的4个内核成分,设备类型,模块,内核对象,sysfs。 主要内容: 设备类型 内核模块 内核对象 sysfs 总结 1. 设备类型 linux中主要由3种类型的设备,分别是: 设备类型 代表设备 特点 访问方式 除了以上3种典型的设备之外,其实Lin 阅读全文
posted @ 2017-08-25 15:27 闫宝平 阅读(469) 评论(0) 推荐(0) 编辑
摘要:主要内容: 缓存简介 页高速缓存 页回写 1. 缓存简介 在编程中,缓存是很常见也很有效的一种提高程序性能的机制。 linux内核也不例外,为了提高I/O性能,也引入了缓存机制,即将一部分磁盘上的数据缓存到内存中。 1.1 原理 之所以通过缓存能提高I/O性能是基于以下2个重要的原理: 1.2 策略 阅读全文
posted @ 2017-08-25 15:13 闫宝平 阅读(418) 评论(0) 推荐(0) 编辑
摘要:进程地址空间也就是每个进程所使用的内存,内核对进程地址空间的管理,也就是对用户态程序的内存管理。 主要内容: 地址空间(mm_struct) 虚拟内存区域(VMA) 地址空间和页表 1. 地址空间(mm_struct) 地址空间就是每个进程所能访问的内存地址范围。 这个地址范围不是真实的,是虚拟地址 阅读全文
posted @ 2017-08-25 12:00 闫宝平 阅读(275) 评论(0) 推荐(0) 编辑
摘要:主要内容: 块设备简介 内核访问块设备的方法 内核I/O调度程序 1. 块设备简介 I/O设备主要有2类: 字符设备:只能顺序读写设备中的内容,比如 串口设备,键盘 块设备:能够随机读写设备中的内容,比如 硬盘,U盘 字符设备由于只能顺序访问,所以应用场景也不多,这篇文章主要讨论块设备。 块设备是随 阅读全文
posted @ 2017-08-25 11:56 闫宝平 阅读(290) 评论(0) 推荐(0) 编辑
摘要:虚拟文件系统(VFS)是linux内核和具体I/O设备之间的封装的一层共通访问接口,通过这层接口,linux内核可以以同一的方式访问各种I/O设备。 虚拟文件系统本身是linux内核的一部分,是纯软件的东西,并不需要任何硬件的支持。 主要内容: 虚拟文件系统的作用 虚拟文件系统的4个主要对象 文件系 阅读全文
posted @ 2017-08-24 18:25 闫宝平 阅读(236) 评论(0) 推荐(0) 编辑
摘要:内核的内存使用不像用户空间那样随意,内核的内存出现错误时也只有靠自己来解决(用户空间的内存错误可以抛给内核来解决)。 所有内核的内存管理必须要简洁而且高效。 主要内容: 内存的管理单元 获取内存的方法 获取高端内存 内核内存的分配方式 总结 1. 内存的管理单元 内存最基本的管理单元是页,同时按照内 阅读全文
posted @ 2017-08-24 18:17 闫宝平 阅读(222) 评论(0) 推荐(0) 编辑
摘要:系统中有很多与时间相关的程序(比如定期执行的任务,某一时间执行的任务,推迟一段时间执行的任务),因此,时间的管理对于linux来说非常重要。 主要内容: 系统时间 定时器 定时器相关概念 定时器执行流程 实现程序延迟的方法 定时器和延迟的例子 1. 系统时间 系统中管理的时间有2种:实际时间和定时器 阅读全文
posted @ 2017-08-24 18:10 闫宝平 阅读(240) 评论(0) 推荐(0) 编辑
摘要:内核中提供了多种方法来防止竞争条件,理解了这些方法的使用场景有助于我们在编写内核代码时选用合适的同步方法, 从而即可保证代码中临界区的安全,同时也让性能的损失降到最低。 主要内容: 原子操作 自旋锁 读写自旋锁 信号量 读写信号量 互斥体 完成变量 大内核锁 顺序锁 禁止抢占 顺序和屏障 总结 1. 阅读全文
posted @ 2017-08-24 17:47 闫宝平 阅读(176) 评论(0) 推荐(0) 编辑
摘要:存在共享资源(共享一个文件,一块内存等等)的时候,为了防止并发访问时共享资源的数据不一致,引入了同步机制。 主要内容: 1. 同步的概念 了解同步之前,先了解另外2个概念: 临界区 - 也称为临界段,就是访问和操作共享数据的代码段。 竞争条件 - 2个或2个以上线程在临界区里同时执行的时候,就构成了 阅读全文
posted @ 2017-08-24 17:46 闫宝平 阅读(199) 评论(0) 推荐(0) 编辑
摘要:在前一章也提到过,之所以中断会分成上下两部分,是由于中断对时限的要求非常高,需要尽快的响应硬件。 主要内容: 中断下半部处理 实现中断下半部的机制 总结中断下半部的实现 中断实现示例 1. 中断下半部处理 那么对于一个中断,如何划分上下两部分呢?哪些处理放在上半部,哪些处理放在下半部? 这里有一些经 阅读全文
posted @ 2017-08-24 17:45 闫宝平 阅读(305) 评论(0) 推荐(0) 编辑
摘要:中断处理一般不是纯软件来实现的,需要硬件的支持。通过对中断的学习有助于更深入的了解系统的一些底层原理,特别是驱动程序的开发。 主要内容: 什么是中断 中断类型 中断相关函数 中断处理机制 中断控制方法 总结 1. 什么是中断 为了提高CPU和外围硬件(硬盘,键盘,鼠标等等)之间协同工作的性能,引入了 阅读全文
posted @ 2017-08-24 17:33 闫宝平 阅读(190) 评论(0) 推荐(0) 编辑
摘要:内核数据结构贯穿于整个内核代码中,这里介绍4个基本的内核数据结构。 利用这4个基本的数据结构,可以在编写内核代码时节约大量时间。 主要内容: 链表 队列 映射 红黑树 1. 链表 链表是linux内核中最简单,同时也是应用最广泛的数据结构。 内核中定义的是双向链表。 1.1 头文件简介 内核中关于链 阅读全文
posted @ 2017-08-24 17:28 闫宝平 阅读(155) 评论(0) 推荐(0) 编辑
摘要:主要内容: 1. 什么是系统调用 简单来说,系统调用就是用户程序和硬件设备之间的桥梁。 用户程序在需要的时候,通过系统调用来使用硬件设备。 系统调用的存在,有以下重要的意义: 1)用户程序通过系统调用来使用硬件,而不用关心具体的硬件设备,这样大大简化了用户程序的开发。 比如:用户程序通过write( 阅读全文
posted @ 2017-08-24 17:24 闫宝平 阅读(213) 评论(0) 推荐(0) 编辑
摘要:主要内容: 什么是调度 调度实现原理 Linux上调度实现的方法 调度相关的系统调用 1. 什么是调度 现在的操作系统都是多任务的,为了能让更多的任务能同时在系统上更好的运行,需要一个管理程序来管理计算机上同时运行的各个任务(也就是进程)。 这个管理程序就是调度程序,它的功能说起来很简单: 此外,为 阅读全文
posted @ 2017-08-24 17:22 闫宝平 阅读(230) 评论(0) 推荐(0) 编辑
摘要:进程是所有操作系统的核心概念,同样在linux上也不例外。 主要内容: 进程和线程 进程的生命周期 进程的创建 进程的终止 1. 进程和线程 进程和线程是程序运行时状态,是动态变化的,进程和线程的管理操作(比如,创建,销毁等)都是有内核来实现的。 Linux中的进程于Windows相比是很轻量级的, 阅读全文
posted @ 2017-08-24 17:21 闫宝平 阅读(208) 评论(0) 推荐(0) 编辑
摘要:在尝试内核开发之前,需要对内核有个整体的了解。 主要内容: 获取内核源码 内核源码的结构 编译内核的方法 内核开发的特点 1. 获取内核源码 内核是开源的,所有获取源码特别方便,参照以下的网址,可以通过git或者直接下载压缩好的源码包。 http://www.kernel.org 2. 内核源码的结 阅读全文
posted @ 2017-08-24 17:14 闫宝平 阅读(213) 评论(0) 推荐(0) 编辑
摘要:本篇简单介绍内核相关的基本概念。 主要内容: 单内核和微内核 内核版本号 1. 单内核和微内核 原理 优势 劣势 单内核 微内核 Linux的内核虽然是基于单内核的,但是经过这么多年的发展,也具备微内核的一些特征。(体现了Linux实用至上的原则) 主要有以下特征: 2. 内核版本号 内核的版本号主 阅读全文
posted @ 2017-08-24 17:10 闫宝平 阅读(295) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示