Linux内核
文章平均质量分 87
絮雨清风
分布式文件存储
展开
-
Linux内核分析2:一个简单的时间片轮转多道程序内核代码分析
Lab2:一个简单的时间片轮转多道程序内核代码席金玉 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ”1、话说Linux操作系统 Linux是一种开源电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。Linux是一个一体化内核(monolithic原创 2016-03-05 11:38:58 · 996 阅读 · 0 评论 -
Linux内核源码目录
Linux内核源码目录,相关内核代码分析,对内核代码的修改转载 2016-06-24 12:43:40 · 892 阅读 · 0 评论 -
Linux内核——中断和异常课件总结
参考资料:李春杰老师的中断和异常课件原创 2016-06-07 12:20:39 · 408 阅读 · 0 评论 -
Linux内核分析:Linux内核学习总结
这学期选了孟老师的《Linux内核分析》这门课,在学习之前听说这门课很难,通过也不是很容易,但我还是选了这门课。课程不容易学,含金量才会大,才会有收获。现在,学习这门课已经两个月了,我的收获很大,特别是以前接触《计算机组成原理》,《操作系统》这两门课时遇到的很难理解的地方,通过孟老师的Linux内核讲解,使我对以前的盲点有了豁然开朗的感觉。我感觉孟老师开始的网上课堂很不错,有种另辟蹊径的感觉,课程原创 2016-04-21 21:22:59 · 486 阅读 · 0 评论 -
进程间通信的方式及比较
资料来源:http://www.cnblogs.com/raymon/archive/2012/02/18/2357608.html进程间通信的方式及比较 进程间通信就是在不同进程之间传播或交换信息,那么不同进程之间存在着什么双方都可以访问的介质呢?进程的用户控件是互相独立的,一般而言是不能互相访问的,唯一区别的是共享内存区。但是,系统空间却是“公共场所”,所以内核显转载 2016-04-30 21:08:29 · 638 阅读 · 0 评论 -
Linux内核分析8:理解进程调度时机、进程调度、进程切换
2770static void __sched __schedule(void)2771{2772 struct task_struct *prev, *next;2773 unsigned long *switch_count;2774 struct rq *rq;2775 int cpu;27762777need_resched:2778 preempt_disable();原创 2016-04-15 13:03:07 · 646 阅读 · 0 评论 -
虚拟内核和进程地址空间
参考资料:http://www.rxyj.org/articles/42101.html 32位的CPU的寻址空间是4G,所以虚拟内存的最大值为4G。而windows操作系统把这4G分成2部分,即2G的用户空间和2G的系统空间。系统空间:各个进程所共享的,他存放的是操作系统及一些内核对象等,系统空间是为系统预留的;用户空间:分配给各个进程使用的,进程的地址空间翻译 2016-04-09 20:32:43 · 1243 阅读 · 0 评论 -
int $0x80系统调用的idea
1、基础知识 用户态和内核态 一般现代CPU都有几种不同的指令执行级别,Linux总共划分为4个指令执行级别:内核运行在0级别上,1,2级别默认不运行,用户程序运行在3级别上。 在内核指令执行级别上,代码可以执行特权指令,访问任意的物理地址。 在用户指令执行级别上,代码的掌控范围会受到限制。只能在对应级别允许的范围内活动原创 2016-03-28 16:45:49 · 1902 阅读 · 0 评论 -
Linux内核分析7:Linux内核装载和启动一个可执行程序的分析
1、编译链接的过程和ELF可执行文件格式1.1 编译链接的过程 源文件生成可执行文件的过程主要包括三个部分:预处理:主要是编译器对各种预处理命令进行处理,包括头文件的包含、宏定义的扩展、条件编译的选择等;编译:把作为中间结果的汇编代码翻译成了机器代码,即目标代码,不过它还不可以运行;链接:链接是处理可重定位文件,把它们的各种符号引用和符号定义转换为可执行文件中的原创 2016-04-08 23:44:59 · 497 阅读 · 0 评论 -
Linux内核分析5:分析system_call中断处理过程
席金玉+ 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程一、系统调用步骤程序调用库的封装函数;调用软中断int $0x80进入内核;在内核中首先执行system_call()函数,接着根据系统调用号在系统调用表中查找到对应的系统调用服务例程;执行该服务例程;执行完毕后,转入ret_from_sys_call例程,从系统调用返回。二、系统调用分析 系原创 2016-03-23 19:34:22 · 2083 阅读 · 0 评论 -
fork()子进程过程分析
在讲fork()子进程之前,我们需要重申几个概念,以便更好理解fork()子进程。 我们都知道程序在计算机上执行的时候是以进程为单位执行的,进程是可执行程序运行的基本单位。进程执行过程中就需要OS为其分配可供执行的资源。其中最难理解的就是内存资源的分配,OS到底是怎么样为新创建的进程合理地分配内存资源的?这就产生了虚拟地址空间的概念1、虚拟地址空间 对原创 2016-04-04 18:24:18 · 3034 阅读 · 1 评论 -
Linux内核分析3:跟踪分析Linux内核的启动过程
席金玉+ 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ”一、计算机的启动过程1、加电自检:完成系统的硬件检测,其中包括内存检测、系统总线检测等工作,之后进行各项程序的加载。2、加载内核引导程序:在POST完成后,就要加载内核引导程序了,那它保存在哪里呢?磁盘里!哈哈,BIOS会读取0磁头,0磁道,一原创 2016-03-10 21:56:36 · 775 阅读 · 0 评论 -
Linux内核分析6:分析Linux内核创建一个新进程的过程
1、阅读理解task_struct数据结构 为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需要了解的进程信息。Linux内核通过一个被称为进程描述符的task_struct结构体来管理进程,图为task_struct结构体包含了一个进程所需的所有部分信息: 结构体task_struc原创 2016-04-01 17:11:57 · 731 阅读 · 0 评论 -
Linux内核分析4:扒开系统调用三层皮
实验:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用一、系统调用的相关知识系统调用:系统调用只是一个特殊的中断。我们通过库函数和系统调用打交道,库函数把系统调用封装起来。1、储备知识——内核态和用户态内核态:在高执行级别下,代码可以执行特权指令,访问任意的物理内存,这种CPU执行级别就对应着内核态。用户态:在用户态级别下,代码的掌控范围原创 2016-03-16 14:12:56 · 726 阅读 · 1 评论 -
Linux内核分析:中断和异常(1)
Linux内核分析——中断与异常(1)分析中断,本质上是一种特殊的电信号,由硬件设备发向处理器,处理器接收到中断后,会马上向操作系统反应此信号的到来,然后就由OS负责处理这些新到来的数据,中断可以随时发生,才不用操心与处理器的时间同步问题。不同的设备对应的中断不同,他们之间的不同从操作系统级来看,差别就在于一个数字标识-----中断号,即中断请求(IRQ)。讨论中断就不得不提及异常,异常和中断原创 2016-07-06 17:46:39 · 1343 阅读 · 0 评论