Linux热插拔机制的介绍和应用

热插拔即带电插拔,热插拔功能就是允许用户在不关闭系统,不切断电源的情况下取出和更换损坏的硬盘、电源或板卡等部件。Linux内核支持热插拔的部件有USB设备、PCI设备甚至CPU。Linux的热插拔支持是一个连接底层硬件、内核空间和用户空间程序的机制,且一直在变化,故立文讨论之。

内核调试工具SystemTap:适合懒人的printk替代品

SystemTap是一个Linux调试和性能分析工具,可用于应用层和内核层的分析,但主要侧重内核层。SystemTab可以在不修改内核代码不重复编译内核不重启机器的情况下,收集运行内核的信息并使信息可视化。调试人员可以利用它绘制函数调用关系图,打印寄存器信息和调用栈,输出内核中指定变量(可以是局部变量)。它如同一个更加方便prink,方便调试人员观察内核行为,诊断错误异常,分析系统性能。在YAVIS开发过程中,我们使用SystemTap分析包发送和接收情况,并分析通信性能瓶颈。

从零构建内核:系统调用

内核工作在最高特权级上。由于x86保护机制的存在,低特权级的用户态进程不能使用一些特权指令,或者访问内核数据,以保证系统的稳定。但有时候,我们需要提供用户态进程访问内核资源的途径。但这个途径必须是事先安排好的指定路线——去内核这个野生动物保护区,出于游客安全和动物保护的原则,游客不应该随意行动。系统调用就是一辆辆旅游观光车,以内核的身份代替用户进程访问内核数据或者执行内核代码。

从零构建内核:中断处理框架

中断处理程序,也叫Interupt Handler或中断服务例程(ISR),是中断发生后运行的一系列代码,一般用作对中断的响应。在我的内核中,构建了一个简单的框架,方便新处理函数的加入。

从零构建内核:第一个进程

“内核”上成功运行了第一个进程。本文只涉及最基础的进程概念,主要探讨进程的要素和从高特权级跳转低特权级的方法。可以预告的是后面将紧接着进行多进程实验。

从零构建内核:局限

内核设计中有些部分是野路子,目的只有一个:简(tou)单(lan).不优雅的代码给目前的内核带来了一些局限(不过这些局限对目前的内核却没什么影响:P).写此博文,提醒自己,以及便于以后扩展.