![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux内核
谨行
切莫乐极生悲
展开
-
虚拟地址、线性地址和物理地址之间的关系,数据段和代码段的重叠设计
1.内核代码和数据的地址对于Linux 0.12内核代码和数据来说,在head.s程序的初始化操作中已经把内核代码段和数据段都设置成为长度为16MB的段。在线性地址空间中这两个段的范围重叠,都是从线性地址0开始到地址0xFFFFFF共16MB地址范围。在该范围中含有内核所有的代码、内核段表(GDT、IDT、TSS)、页目录表和内核的二级页表、内核局部数据以及内核临时堆栈(将被用作第1个任务转载 2012-10-21 17:09:08 · 2176 阅读 · 0 评论 -
保护模式,实模式
最近我的闲暇时间几乎都用在了研究如何开发操作系统上,遇到了不少痛苦。这方面的材料实在太少,而更多的是理论方面的文章。我有时候在想,我有没有可能用更通俗易懂的方式表达清楚一些技术问题,让对这块有兴趣的同志少走一些弯路,因为有兴趣研究的人太少了,要像保护大熊猫一样加以保护。从我自己在网上看技术文章的经验来看,如果一篇文章前面有作者的一段真实的啰嗦,我反而更愿意看。所以我希望这段啰嗦能够刺激你看下去。如转载 2012-10-21 08:48:20 · 645 阅读 · 0 评论 -
内核同步方法
1.原子操作原子整数操作描述ATOMIC_INIT(int i) 在声明一个atomic_t变量时,将它初始化为iint atomic_read(atomic_t *v) 原子地读取整数变量vvoid atomic_set(atomic_t *v, int i)转载 2016-03-01 20:54:45 · 327 阅读 · 0 评论 -
主要的中断下半部及其区别
中断下半部主要有:软中断,tasklet,工作队列区别1. 软中断和tasket是不可以睡眠的,任务队列在进程上下问执行是可以睡眠的。2.相同的软中断可以在不同的cpu上同时执行,类型相同的tasklet不可以同时执行,不同类型的软中断可以在不同的cpu同时执行3.tasklet可以通过代码进行动态的注册,软中断必须在编译期间就进行静态注册。tasklet是利用原创 2016-03-23 17:11:47 · 1159 阅读 · 0 评论