2010年1月14日
摘要: 在学习Linux驱动的过程中,遇到一个宏叫做container_of。该宏定义在include/linux/kernel.h中,首先来贴出它的代码:1. 439/** 2. 440*container_of-castamemberofastructureouttothecontainingstructure 3. 441*@ptr:thepointertothemember. 4. 442*@ty... 阅读全文
posted @ 2010-01-14 23:24 Parry Nee 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 1. 基本概念每个进程控制块都有4个有关ID、含义不同的值,内核根据它们组成了4个全局的2维的HASH表,每个进程都要链接到这四个不同含义的Hash表当中。/* 4种类型的值*/enum pid_type{ PIDTYPE_PID, 进程的PID PIDTYPE_TGID, 线程组ID PIDTYPE_PGID, 进程组ID PIDTYPE_SID, 会话ID PIDTYPE_MAX};struc... 阅读全文
posted @ 2010-01-14 23:23 Parry Nee 阅读(948) 评论(0) 推荐(0) 编辑
摘要: Linux 内核的同步机制(杨燚)http://www.ibm.com/developerworks/cn/linux/l-synch/part1/index.htmlhttp://www.ibm.com/developerworks/cn/linux/l-synch/part2/http://www.ibm.com/developerworks/cn/linux/kernel/sync/inde... 阅读全文
posted @ 2010-01-14 23:21 Parry Nee 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 记得在中国人气和高手最多的linuxform上看到的一句话。现在自己的书架上以后lkd2+ldd3+情景分析,再加上它ulk3,书架的linuxkernel的四库全书已经凑齐,很充实。lkd2:属于在总体上给你一个轮廓和框架;先看一遍有个总体把握,过后再精读;ldd3:工作时必不可少的书籍,我们组就买了3本人手一本,已经翻烂了,属于实践的好书;情景分析:太厚了,而且是2.4的,不过很详细;ulk3... 阅读全文
posted @ 2010-01-14 23:20 Parry Nee 阅读(695) 评论(0) 推荐(0) 编辑
  2010年1月13日
摘要: 与其他大部分Unix变体和其他大部分的操作系统不同, Linux完整地支持内核抢占。 在不支持内核抢占的内核中,内核代码可以一直执行,到它完成为止。也就是说,调度程序没有办法在一个内核级的任务正在执行的时候重新调度 -- 内核中的各任务是协作方式调度的,不具备抢占性。 在2.6版的内核中,内核引人了抢占能力;现在,只要重新调度是安全的,那么内核就可以在任何时间抢占正在执行的任务。 那么,什么时候重... 阅读全文
posted @ 2010-01-13 13:42 Parry Nee 阅读(410) 评论(0) 推荐(0) 编辑
摘要: Sailor_foreversailing_9806@163.com转载请注明http://blog.csdn.net/sailor_8318/archive/2008/09/03/2870184.aspx【摘要】本文详解了Linux内核抢占实现机制。首先介绍了内核抢占和用户抢占的概念和区别,接着分析了不可抢占内核的特点及实时系统中实现内核抢占的必要性。然后分析了禁止内核抢占的情况和内核抢占的时机... 阅读全文
posted @ 2010-01-13 13:18 Parry Nee 阅读(5093) 评论(0) 推荐(0) 编辑
  2010年1月12日
摘要: 今天开始学习linux内核编程了,从没有内核编程基础开始学起。所以很多相关的知识都要了解。首先就是AT&T汇编语言。因为在linux内核源代码中,好像除了开始的bootsect.s和head.s是用intel的汇编外,别的汇编代码都是用的AT&T汇编语言,所以有必要把AT&T汇编语言了解一下。不过,由于AT&T汇编和intel汇编大同小异,所以,了解一下一些不同的地... 阅读全文
posted @ 2010-01-12 15:25 Parry Nee 阅读(2296) 评论(1) 推荐(0) 编辑
  2010年1月6日
摘要: 进程、轻量级进程(LWP)、线程进程:程序执行体,有生命期,用来分配资源的实体线程:分配CPU的实体。用户空间实现,一个线程阻塞,所有都阻塞。内核实现,不会所用相关线程都阻塞。用LWP实现,用线程组表示这些线程逻辑上所属的进程。进程描述符进程描述符(简称pd, process descriptors),结构体是:task_struct数据较多,存放在kenerl的动态内存空间。pd的引用放在thr... 阅读全文
posted @ 2010-01-06 15:26 Parry Nee 阅读(1852) 评论(0) 推荐(0) 编辑
摘要: (关于每CPU变量的详细解释可以参照《Linux设备驱动第三版》8.4节)每个线程代表一个进程的执行流。这里有个例子:就是象棋。其中一个线程是用来对棋盘进行控制,另一个线程是用来判断棋的策略的。然而,如果这个过程仅仅只是一个进程,那么第一个线程在等待一个用户动作的时候并不能简单的对分时系统调用进行判断。这样的话,第二个线程将会被阻塞,而我们需要的是第一个线程应该不能被阻塞。我们需要的是轻量级进程对... 阅读全文
posted @ 2010-01-06 15:25 Parry Nee 阅读(510) 评论(0) 推荐(0) 编辑
摘要: 1, 主板信息   .查看主板的序列号  --------------------------------------------------  #使用命令  dmidecode | grep -i 'serial number'  #查看板卡信息  cat /proc/pci  --------------------------------------------------  2, cpu... 阅读全文
posted @ 2010-01-06 15:22 Parry Nee 阅读(314) 评论(0) 推荐(0) 编辑