
linux kernel
b02330224
这个作者很懒,什么都没留下…
展开
-
container_of()宏的简要解析
在学习Linux驱动的过程中,遇到一个宏叫做container_of。该宏定义在include/linux/kernel.h中,首先来贴出它的代码:1. 439/** 2. 440 * container_of - cast a member of a structure out to the containing structure 3. 44转载 2012-10-15 11:03:25 · 435 阅读 · 0 评论 -
linux内核启动地址的确定
内核编译链接过程是依靠vmlinux.lds文件,以arm为例vmlinux.lds文件位于kernel/arch/arm/vmlinux.lds,但是该文件是由vmlinux-armv.lds.in生成的,根据编译选项的不同源文件还可以是vmlinux-armo.lds.in,vmlinux-armv-xip.lds.in。vmlinux-armv.lds的生成过程在kernel转载 2012-10-15 11:06:51 · 696 阅读 · 0 评论 -
Linux内核代码-结构体初始化
Linux内核代码 结构体初始化2011-01-24 20:40出处:中国IT实验室作者:佚名【我要评论】[导读]在阅读GNU/Linux内核代码时,我们会遇到一种特殊的结构初始化方式。该方式是某些C教材(如谭二版、K&R二版)中没有介绍过的。 在阅读GNU/Linux内核代码时,我们会遇到一种特殊的结构初始化方式。该方式是某些C教材(如谭二版、K&R二版)中没有介绍过的。这种方转载 2012-10-15 16:56:35 · 541 阅读 · 0 评论 -
Linux 时钟处理机制
赵 健博 (zhaojianbo@ncic.ac.cn), 硕士, 中国科学院计算技术研究所简介: 在 Linux 操作系统中,很多活动都和时间有关,例如:进程调度和网络处理等等。所以说,了解 Linux 操作系统中的时钟处理机制有助于更好地了解 Linux 操作系统的运作方式。本文分析了 Linux 2.6.25 内核的时钟处理机制,首先介绍了在计算机系统中的一些硬件计时器,转载 2012-10-15 16:04:02 · 494 阅读 · 0 评论 -
linux内核链表的实现
本文会记录一些linux内核实现中使用到的一些小技巧,工具等等,会根据学习进度不定时更新本文......双向循环链表第一个想写的是linux的双向循环链表(写这个的原因是因为最近学习epoll的内核代码实现,进而需要了解linux的等待队列,这其中也用到了双向循环链表,稍后也会分析linux的等待队列)linux的双向循环链表之于传统的双向循环链表,其优点是:将其从具体的数据结构中提取转载 2012-10-15 16:58:04 · 419 阅读 · 0 评论 -
[转]kmalloc, vmalloc分配的内存结构
[转]kmalloc, vmalloc分配的内存结构对于提供了MMU(存储管理器,辅助操作系统进行内存管理,提供虚实地址转换等硬件支持)的处理器而言,Linux提供了复杂的存储管理系统,使得进程所能访问的内存达到4GB。 进程的4GB内存空间被人为的分为两个部分--用户空间与内核空间。用户空间地址分布从0到3GB(PAGE_OFFSET,在0x86中它等于0xC0000000),转载 2012-10-15 17:04:14 · 392 阅读 · 0 评论