linux内核
文章平均质量分 59
vivi
这个作者很懒,什么都没留下…
展开
-
内核头文件传奇
<br />在 Linux 2.2/2.4 的纯真年代,内核头文件一直保持着 Unix 世界的"KISS"传统,只需将内核源码树中的头文件直接复制到 /usr/include 中即可使用,一切都是那么 *** and Stupid ...<br /><br />但是随着 2.6系列内核的发布,事情开始变得混乱和复杂起来。首先是内核开发者宣布强烈反对直接使用"未净化"的"原始"内核头文件,他们建议使用发行版提供的" 经过净化的"内核头文件。于是各种发行版开始"八仙过海,各显神通",由于"净化"方法各不相同,结转载 2011-05-13 10:04:00 · 758 阅读 · 0 评论 -
linux进程调度浅析
操作系统要实现多进程,进程调度必不可少。有人说,进程调度是操作系统中最为重要的一个部分。我觉得这种说法说得太绝对了一点,就像很多人动辄就说"某某函数比某某函数效率高XX倍"一样,脱离了实际环境,这些结论是比较片面的。 而进程调度究竟有多重要呢? 首先,我们需要明确一点转载 2011-09-11 16:26:20 · 2521 阅读 · 1 评论 -
linux内核原子操作的实现
所谓原子操作,就是“不可中断的一个或一系列操作”。硬件级的原子操作:在单处理器系统(UniProcessor)中,能够在单条指令中完成的操作都可以认为是“原子操作”,因为中断只发生在指令边缘。在多处理器结构中(Symmetric Multi-Processor)就不同了,由于系统原创 2011-07-12 12:53:33 · 19649 阅读 · 0 评论 -
内核中断,异常,抢占总结篇
一、基本概念中断分为同步中断和异步中断。同步中断CPU控制单元产生的,“同步”是指只有在一条指令执行完毕后,CPU才会发出中断,而不是发生在代码指令执行期间,比如系统调用。而异步中断是由其他硬件设备依照CPU时钟信号产生的,即意味着中断能够在指令之间发生,例如键盘中断。按照Int原创 2011-07-15 21:13:12 · 9163 阅读 · 3 评论 -
在用户空间发生中断时,上下文切换的过程
所谓上下文切换,实质就是寄存器堆的切换过程。这其中一部分需要硬件来切换,一部分需要软件来处理。当在用户空间发生中断时,首先由 x86 CPU 从硬件角度进行处理,然后才是 linux 内核的处理。当中断处理完毕,返回到用户空间时,最后的步骤也是交给 CPU 硬件来处理的。1、原创 2011-07-15 10:45:06 · 4393 阅读 · 0 评论 -
Linux内核抢占实现机制分析
Linux内核抢占实现机制分析【摘要】本文详解了Linux内核抢占实现机制。首先介绍了内核抢占和用户抢占的概念和区别,接着分析了不可抢占内核的特点及实时系统中实现内核抢占的必要性。然后分析了禁止内核抢占的情况和内核抢占的时机,最后介绍了实现抢占内核所做的改动以及何时需要重新调度。转载 2011-07-15 11:16:17 · 1877 阅读 · 0 评论 -
软中断小结
内核处理的任务中有的不是那么紧迫的,在必要的时间可以把它们延迟一段时间,这就是软中断形成的背景。这对于哪些期望它们的中断能在几毫秒内得到处理的“急迫”应用来说是非常重要的。由此,硬中断负责处理紧急的任务,软中断负责处理不是那么紧迫的任务。Linux 2.6内核提供了两种非紧迫、可中断函数:所谓的延迟函数(包括软中断和tasklets)和通过工作队列来执行的函数。软中断和tasklet有密切的关系,原创 2011-06-29 21:07:00 · 1118 阅读 · 0 评论 -
POSIX NTPL 线程库简介
在Linux操作系统中,本地POSIX线程库(NPTL)是一种软件特性,它可让Linux的内核,高效地运行那些使用POSIX风格的线程所编写的程序。测试中,NPTL在一个IA-32处理器上,成功地同时跑了10万个线程,启动这些线程只用了不到2秒。比较起来,在不支持NPTL的内核上转载 2011-07-14 18:38:33 · 8704 阅读 · 0 评论 -
Futex同步机制
引子在编译2.6内核的时候,你会在编译选项中看到[*] Enable futex support这一项,上网查,有的资料会告诉你"不选这个内核不一定能正确的运行使用glibc的程序",那futex是什么?和glibc又有什么关系呢?1. 什么是FutexFutex 是Fast U转载 2011-07-14 19:12:41 · 1441 阅读 · 0 评论 -
深入理解linux内核自旋锁
自旋锁是一个互斥设备,它只有两个值:“锁定”和“解锁”。它通常实现为某个整数值中的某个位。希望获得某个特定锁得代码测试相关的位。如果锁可用,则“锁定”被设置,而代码继续进入临界区;相反,如果锁被其他人获得,则代码进入忙循环(而不是休眠,这也是自旋锁和一般锁的区别)并重复检查这个锁原创 2011-07-09 10:45:58 · 11038 阅读 · 8 评论 -
Linux 中断总结
Linux中断分为硬中断和软中断。硬中断是由硬件设备触发的中断。I/O设备要产生硬中断时,会由中断控制器发送一个电信号,内核的设备驱动程序接收到这个电信号,就会调用相应的中断处理函数对这个中断进行处理。硬中断可以在任何时刻到来,它代表的系统必须马上处理的紧急任务,也简称为中断的上半部,与此对应的是中断下半部(buttom half),也称为软中断,代表的系统不必马上处理的、没那么紧急的任务。软中断处理函数一般在硬中断处理函数的末尾调用。硬中断处于所谓的“中断上下文中”。与此对应的是“进程上下文”。下面解释一原创 2011-04-16 15:52:00 · 2070 阅读 · 0 评论 -
Linux系统内核定时器机制详解
<br />Linux内核2.4版中去掉了老版本内核中的静态定时器机制,而只留下动态定时器。相应地在timer_bh()函数中也不再通过run_old_timers()函数来运行老式的静态定时器。动态定时器与静态定时器这二个概念是相对于Linux内核定时器机制的可扩展功能而言的,动态定时器是指内核的定时器队列是可以动态变化的,然而就定时器本身而言,二者并无本质的区别。考虑到静态定时器机制的能力有限,因此Linux内核2.4版中完全去掉了以前的静态定时器机制。<br /> 7.6.1 Linux内核对定时器转载 2011-05-31 21:31:00 · 909 阅读 · 0 评论 -
select,poll,epoll实现分析—结合内核源代码
select,poll,epoll都是IO多路复用的机制。所谓I/O多路复用机制,就是说通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据原创 2012-05-06 20:31:53 · 11273 阅读 · 4 评论