
linux内核
laoyl
如果不想平凡的过完一生,那就不断去努力,不断去超越
展开
-
linux 0.11内存管理
内存管理概述;主要代码分析;内存管理概述:linux 0.11内核,最大支持16M物理内存。如果以最大内存16M讲解内核将其分块管理分别为:--内核区[0~end] (从物理0地址开始,存放内核代码)--缓冲区[end~4M] (面向文件系统,为文件缓冲机制提供缓冲区,从640K~1M为显存和BIOSrom信息存放点)--虚拟盘[4M~4.5M] (虚拟原创 2013-05-04 20:00:23 · 2642 阅读 · 0 评论 -
linux内核设计与实现(第七章)----中断处理
中断处理一般不是纯软件来实现的,需要硬件的支持。通过对中断的学习有助于更深入的了解系统的一些底层原理,特别是驱动程序的开发。主要内容:什么是中断中断类型中断相关函数中断处理机制中断控制方法总结1 什么是中断为了提高CPU和外围硬件(硬盘,键盘,鼠标等等)之间协同工作的性能,引入了中断的机制。没有中断的话,CPU和外围设备之间协同工作可能只有轮询这个方法:CPU定期检查硬原创 2013-07-04 15:57:38 · 954 阅读 · 0 评论 -
linux内核设计与实现(第六章)----内核数据结构
作为一个合格的linux驱动工程师,在查看linux内核代码中,发现内核数据结构贯穿于整个内核代码。在这里介绍4种最基本的数据结构,可以在内核代码编写中节约大量的时间。主要内容:链表队列映射1 链表链表是linux内核中最简单的,同时也是使用最广泛的数据结构,内核中使用的是一种双向链表。1.1头文件简介内核中关于链表定义的代码位于: include/linux/原创 2013-07-04 15:48:08 · 1364 阅读 · 0 评论 -
linux内核设计与实现(第十二章)----内存管理
内核的内存使用不像用户空间那样随意,内核的内存出现错误时也只有靠自己来解决(用户空间的内存错误可以抛给内核来解决问题)。所有内核的内存管理必须要简洁而且高效。主要内容:内存的管理单元获取内存的方法获取高端内存内核内存的分配方式总结1 内存的管理单元内存最基本的管理单元是页,同时按照内存地址的大小,大致分为3个区。1.1 页页的大小与体系结构有关,在x86架构中,页的原创 2013-07-10 18:32:40 · 1530 阅读 · 0 评论 -
linux内核设计与实现(第十一章)----定时器和时间管理
系统中有很多与时间相关的程序(比如定期执行的任务,某一时间执行的任务,推迟一段时间执行的任务),因此,时间的管理对于linux来说非常重要。主要内容:系统时间定时器定时器相关概念实现程序延迟的方法定时器和延迟的例子1 系统时间系统中管理的时间有2种:实际时间和定时器。1.1 实际时间实际时间就是现实中钟表上显示的时间,其实内核中并不常用这个时间,主要是用户空间的程原创 2013-07-08 11:04:35 · 1504 阅读 · 0 评论 -
linux内核设计与实现(第十章)----内核同步方法
内核中提供了多种方法来防止竞争条件,理解了这些方法的使用场景有助于我们在编写内核代码时选用合适的同步方法,从而即可保证代码中临界区的安全,同时也让性能的损失降到最低。主要内容:原子操作自旋锁读写自旋锁信号量读写信号量互斥体完成变量大内核锁顺序锁禁止抢占顺序和屏障总结1 原子操作原子操作是由编译器来保证的,保证一个线程对数据的操作不会被其他线程打断。原子操作有2类原创 2013-07-07 10:00:30 · 1034 阅读 · 1 评论 -
linux内核设计与实现(第九章)----内核同步介绍
存在共享资源(共享一个文件,一块内存等等)的时候,为了防止并发访问时共享资源的数据不一致,引入了同步机制。主要内容:同步的概念同步的方法-加锁死锁锁的粒度1 同步的概念了解同步之前,先了解另外2个概念:临界区 - 也称为临界段,就是访问和操作共享数据的代码段。竞争条件 - 2个或2个以上线程在临界区里同时执行的时候,就构成了竞争条件。 所谓同步,其实防止原创 2013-07-05 20:38:08 · 875 阅读 · 0 评论 -
linux内核设计与实现(第五章)----系统调用
主要内容:什么是系统调用Linux系统调用实现原理一个ARM体系架构的系统调用实现1、什么是系统调用简单来说,系统调用就是用户程序和硬件设备之间的桥梁。用户程序在需要的时候,通过系统调用来使用硬件设备。系统调用的存在,有以下重要的意义:1)用户程序通过系统调用来使用硬件,而不用关心具体的硬件设备,这样大大简化了用户程序的开发。 比如:用户程序通过write原创 2013-06-17 15:21:04 · 1068 阅读 · 0 评论 -
linux内核设计与实现(第四章)----进程的调度
主要内容:什么是调度调度实现原理Linux上调度实现的方法调度相关的系统调用1、什么是系统调度现在的操作系统都是多任务的,为了能让更多的任务能同时在系统上更好的运行,需要一个管理程序来管理计算机上同时运行的各个任务(也就是进程)。这个管理程序就是调度程序,它的功能说起来很简单:决定哪些进程运行,哪些进程等待决定每个进程运行多长时间此外,为了获得更好的用户体验,运原创 2013-06-12 21:21:26 · 909 阅读 · 0 评论 -
linux内核设计与实现(第三章)----进程管理
进程是所有操作系统的核心概念,同样在linux上也不例外。主要内容:进程和线程进程的生命周期进程的创建进程的终止1、进程和线程 进程和线程是程序运行时状态,是动态变化的,进程和线程的管理操作(比如,创建,销毁等)都是有内核来实现的。Linux中的进程于Windows相比是很轻量级的,而且不严格区分进程和线程,线程不过是一种特殊的进程。所以下面只讨论进程,只有当原创 2013-06-12 21:13:29 · 879 阅读 · 0 评论 -
linux内核设计与实现(第一章)----linux内核简介
主要内容:单内核和微内核内核版本号1、单内核和微内核 原理优势劣势单内核整个内核都在一个大内核地址空间上运行。1. 简单。2. 高效:所有内核都在一个大的地址空间上,所以内核各个功能之间的调用和调用函数类似,几乎没有性能开销。一个功能的崩溃会导致整个内核无法使用。原创 2013-05-27 15:26:56 · 987 阅读 · 0 评论 -
linux内核设计与实现(第二章)----内核开发准备
主要内容:获取内核源码内核源码结构编译内核方法内核开发特点1、获取内核源码linux是一个开源的内核,linux源码随手可得,想要获取内核源码非常的方便,可以通过网站下载或者git方式下载。http://www.kernel.org2、内核源码结构目录说明arch特定体系结构的代码block块设备I/O层原创 2013-05-27 17:27:23 · 972 阅读 · 0 评论 -
linux内核设计与实现(第八章)----中断下半部的处理
在前一章节已经提及过中断会分成上下两部分,是由于中断对时限的要求非常高,需要尽快的响应硬件。主要内容中断下半部处理实现中断下半部的机制总结中断下半部的实现中断实现实例1 中断下半部处理那么对于一个中断,如何划分上下两部分呢?哪些处理放在上半部,哪些处理放在下半部?这里有一些经验可供借鉴:如果一个任务对时间十分敏感,将其放在上半部如果一个任务和硬件有关,将其放在上原创 2013-07-05 20:32:54 · 962 阅读 · 0 评论