
Linux内核设计与实现
文章平均质量分 81
age2cn
这个作者很懒,什么都没留下…
展开
-
Linux进程状态和变迁
一、进程的状态表述: 1: #define TASK_RUNNING 0 2: #define TASK_INTERRUPTIBLE 1 3: #define TASK_UNINTERRUPTIBLE 2 4: #define TASK_STOPPED 4 5: #define TASK_TRACED 8 6: /* in tsk->exit_state原创 2010-07-08 19:18:00 · 1104 阅读 · 0 评论 -
Linux进程的创建和终结
Linux进程的创建 linux创建进程很复杂,首先调用fork(),最终调用do_fork(),而do_fork()调用copy_process() 。 首先是copy_process()的一系列工作: 1.复制父进程。调用dup_task_struct(),此时子进程与父进程描述符完全相同。 2.把进程描述符中的各项设为0或者初始值,并把进程状态设为TASK_UNINTERUPTIBLE,保证进程未创建完毕前不要投入运行。 3.调用copy_flags原创 2010-07-08 19:22:00 · 447 阅读 · 0 评论 -
Linux内核2.6简介
什么是Linux内核? 内核是我们通常所说的“Linux技术奇迹”的最重要特征。在IT术语中,内核既是操作系统的心脏,也是它的大脑,因为内核控制着基本的硬件。内核是操作系统的核心,具有很多最基本功能,如虚拟内存、多任务、共享库、需求加载、共享的写时拷贝(copy-on-write)可执行程序和TCP/IP网络功能。 Linux内核的起源可追溯到1991年芬兰大学生 Linus Torvalds编写和第一次公布Linux的日子。尽管到目前为止Linux生态系统早已远远发展到了Torvalds本人之外的范围原创 2010-07-08 19:06:00 · 632 阅读 · 0 评论 -
Linux进程和线程
什么是进程,什么是线程? 进程是资源管理及分配的最小单元;而线程是程序执行的最小单元。一个进程的组成实体可以分为两大部分:线程集和资源集。在现代操作系统中,进程支持多线程,进程中的线程是动态的对象,代表了进程指令的执行过程。资源,包括地址空间、打开的文件、用户信息等等,由进程内的线程共享。在linux中,线程是一种特殊的进程,是一种轻量级的进程。 Linux线程的实现 Linux线程是通过进程来实现。Linux kernel为进程创建提供一个clone()系统调用,clone的参数包括如原创 2010-07-08 19:14:00 · 419 阅读 · 0 评论 -
什么是中断?什么是异常?
Linux 内核需要对连接到计算机上的所有硬件设备进行管理,毫无疑问这是它的份内事。如果要管理这些设备,首先得和它们互相通信才行,一般有两种方案可实现这种功能: 1.轮询(polling) 让内核定期对设备的状态进行查询,然后做出相应的处理; 2.中断(interrupt) 让硬件在需要的时候向内核发出信号(变内核主动为硬件主动)。 第一种方案会让内核做不少的无用功,因为轮询总会周期性的重复执行,大量地耗用 CPU 时间,因此效率及其低下,所以一般都是采用第二种方案。 什么是中断?原创 2010-07-08 19:29:00 · 1052 阅读 · 0 评论 -
Linux中断处理过程
如图所示,完整的中断系统由两部分组成:硬件电路和软件处理。 硬件处理的一般过程: 1.硬件电路产生IRQ信号。 2.可编程中断控制控制器(PIC)收集IRQn值,转换成相应的向量。 3.PIC将中断向量由INT发送到CPU,进入软件中断处理。 软件处理的一般过程: 1.初始化阶段向linux内核注册中断处理程序。 2.中断发生时,通过中断描述符表IDT获取中断服务例程(ISR)链表入口。 3.调用do_irq()程序,获取actio原创 2010-07-08 19:32:00 · 500 阅读 · 0 评论 -
Linux内核设计与实现
通过这几天的努力,我终于把《Linux内核设计与实现》这本书的内容做成了脑图,并把重要概念都建了链接放到了百度空间。 在这里要特别感谢亲爱的娜娜,没有她的鼓励,这份读书笔记只能是在纸上写写画画,恐怕成不了网络资源。 Linux内核设计与实现脑图链接 网页出来比较慢,需要等候一会儿才能播放。原创 2010-07-08 19:40:00 · 649 阅读 · 0 评论