转载-疯狂linux内核
OLillian
这个作者很懒,什么都没留下…
展开
-
Linux内核入门(四)—— 内核汇编语言规则
任何一个用高级语言编写的操作系统,其内核源代码中总有少部分代码是用汇编语言编写的。读过Unix Sys V源代码的读者都知道,在其约3万行的核心代码中用汇编语言编写的代码约2000行,分成不到20个扩展名为.s和.m的文件,其中大部分是关于中断与异常处理的底层程序,还有就是与初始化有关的程序以及一些核心代码中调用的公用子程序。 用汇编语言编写核心代码中的部分代码,大体上是出于如下几个方面转载 2012-02-16 17:08:36 · 1826 阅读 · 0 评论 -
Linux kernel中断---上半步 与 下半部
中断处理是分为两个部分:中断处理程序是上半部,它接收到一个中断,就立即执行,但只做有严格时限的工作;而另外被叫做下半部的另外一个部分主要做被允许能稍后完成的工作。这个下半部正是今天的重点。 下半部的任务就是执行与中断处理密切相关但中断处理程序本生身不执行的任务。最好情况当然是中断处理程序把所有的工作都交給下半部执行,而自己啥都不做。因为我们总是希望中断处理程序尽可能快的返回。但转载 2012-03-05 20:11:55 · 2385 阅读 · 0 评论 -
linux设备模型 —— sysfs
1 sysfs初探"sysfs is a ram-based filesystem initially based on ramfs. It provides a means to export kernel data structures, their attributes, and the linkages between them to userspace.” --- documenta转载 2012-02-29 19:46:18 · 1510 阅读 · 0 评论 -
schedule()函数(重点)
好了,前面的准备工作都做完了,我们就进入进程调度的主体程序——schedule()函数。函数schedule()实现调度程序。它的任务是从运行队列的链表rq中找到一个进程,并随后将CPU分配给这个进程。schedule()可以由几个内核控制路径调用,可以采取直接调用或延迟调用(可延迟的)的方式。下面,我们就来详细介绍。1 直接调用 如果current进程因不能获得必须的资源而要转载 2012-02-29 16:30:54 · 1109 阅读 · 0 评论 -
进程退出
很多进程终止了他们本该执行的代码,从这种意义上说,他们已经“死”了。当这种情况发生时,必须通过内核以便内核释放进程所拥有的资源。进程终止的一般方式是调用exit()库函数,该函数释放C函数库所分配的资源,执行编程者所注册的每个函数,并结束从系统回收进程所执行的那个系统调用。内核可以有选择地强迫整个线程组死掉。这发生在以下两种典型情况下:当进程接收到一个不能处理或忽视的信号时,或者当转载 2012-02-29 18:31:54 · 994 阅读 · 0 评论 -
进程调度的概念
从本博开始,我们就要慢慢深入到进程管理乃至整个内核的核心概念——进程调度里边了。这里,先把相关概念理一理。 刚接触Linux,我们就讲了,它是一个分时系统,却由具备实时系统的特性。所以与任何分时系统一样,通过一个进程到另一个进程的快速切换,达到表面上看来多个进程同时执行的神奇效果。我们已经在前面的博文中讲过了进程切换的本身已,从本博开始,我们将进入进程管理最最最重要的部分——进程的调度,主转载 2012-02-29 13:12:30 · 1508 阅读 · 0 评论 -
Linux内核入门(三)—— C语言基本功
linux是一个复杂的软件系统,其内核源代码往往会用到一些在应用程序设计中部常见语言成分和编程技巧,这些都是分析内核源代码的基本功,希望大家能重点掌握。 首先,gcc编译器从语言里吸收了“inline”和“const”。inline函数的大量使用,有利于提高运行效率,由此相当一部分代码从.c文件移入了.h文件。 gcc增加了一种新的基本数据类型“long long int”用于转载 2012-02-16 16:12:19 · 3674 阅读 · 0 评论 -
Linux内核入门(一)——体系架构
Linux是一套免费使用和自由传播的类Unix操作系统,它最先用于基于x86系列CPU的计算机上。这个系统是由世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。我们不去介绍操作系统的历史了,也不管操作系统这门学科上对操作系统的分类了,闲话少说,Linux操作系统只是一个非常新的操作系统。它不拘泥于某种特定的操作系统类型转载 2012-02-16 11:50:40 · 2134 阅读 · 0 评论 -
Linux内核入门(五)——必要的硬件知识
要想弄懂Linux内核的工作原理,就必须懂点基本的硬件知识。这里我们主要介绍Intel 80x86系列CPU保护模式下最核心的部件中几个寄存器的作用,这些寄存器在Linux内核运行时起着至关重要的作用。至于其他那些各式各样的硬件设备,我们在讲解设备驱动时会针对具体的驱动程序来介绍的。首先,大家先看看CPU的主要架构: EU(通用寄存器、运算器和控制器)执行部件:完成指令所要求的功能。转载 2012-02-16 17:32:30 · 2694 阅读 · 0 评论 -
对Linux内核中进程上下文和中断上下文的理解
内核空间和用户空间是操作系统理论的基础之一,即内核功能模块运行在内核空间,而应用程序运行在用户空间。现代的CPU都具有不同的操作模式,代表不同的级别,不同的级别具有不同的功能,在较低的级别中将禁止某些操作。Linux系统设计时利用了这种硬件特性,使用了两个级别,最高级别和最低级别,内核运行在最高级别(内核态),这个级别可以进行所有操作,而应用程序运行在较低级别(用户态),在这个级别,处理器控制着对转载 2012-03-05 19:23:45 · 816 阅读 · 0 评论