随笔分类 -  linux kernel

进程的切换和系统的一般执行过程
摘要:1 进程切换的关键代码switch_to分析 1.1 进程调度与进程调度的时机分析 1.1.1 进程的分类 第一种分类: I/O-bound:频繁的进行I/O,通常会花费很多时间等待I/O操作的完成。 CPU-bound:计算密集型,需要大量的CPU时间进行计算。 第二种分类: 批处理进程(batch process):不必和用户交互,通常在后台进行;不必很快的响应;典型例子:编译程... 阅读全文
posted @ 2016-05-13 16:23 LeoSanford 阅读(348) 评论(0) 推荐(0)
可执行程序的装载
摘要:1.预处理、编译、链接和目标文件的格式 1.1可执行程序的来源 1.1.1一个简单的流程 .c(省略了预处理)汇编成汇编汇编代码asm,然后汇编成目标码.o,在链接成可执行文件,可执行文件加载到内存执行。 1.1.2用hello.c做简单的实验 1.2目标文件的格式elf(executable an 阅读全文
posted @ 2016-05-13 09:36 LeoSanford 阅读(276) 评论(0) 推荐(0)
进程的描述和进程的创建
摘要:1.进程的描述 1.1进程描述符 为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息。 1.2Linux进程状态转换 1.3进程链表 为了对给定类型的进程(比如所有在可运行状态下的进程)进行有效的搜索,内核维护了几个进程链表。 2进程的创建 2.1进程的创建概览及 阅读全文
posted @ 2016-05-10 15:56 LeoSanford 阅读(303) 评论(0) 推荐(0)
系统调用下
摘要:1.系统调用简易的伪代码 #systme call #asm pseudo code #系统调用处理过程的伪代码 .macro INTERRUPT_RETURN iret .endm .macro SAVE_ALL ... .endm .macro RESTORE_INT_REGS ... .endm ENTRY(system_call) SAVE_ALL ... 阅读全文
posted @ 2016-05-09 18:00 LeoSanford 阅读(143) 评论(0) 推荐(0)
系统调用上
摘要:1.用户态、内核态和中断处理过程 1.1 用户态和内核态简介 一般现代CPU都有几种不同的指令执行级别。在高执行级别下,代码可以执行特权指令,访问任意的物理地址,这种CPU执行级别就对应着内核态;而在相应的低级别执行状态下,代码的掌控范围会受到限制,只能在对应级别允许的范围内活动,这种CPU执行级别 阅读全文
posted @ 2016-05-09 13:15 LeoSanford 阅读(248) 评论(0) 推荐(0)
构造一个简单的linux系统
摘要:1.搭建环境 然后打开另一个shell窗口 2.分析start_kernel 可以在http://codelab.shiyanlou.com/xref/linux-3.18.6/init/main.c找到start_kernel所在函数的源代码。 关注需要关注的,删除不必要的代码: 执行start_ 阅读全文
posted @ 2016-04-25 21:58 LeoSanford 阅读(325) 评论(0) 推荐(0)
操作系统是怎么工作的——mykernel环境的搭建
摘要:可以参见:https://github.com/mengning/mykernel 首先感谢:http://www.euryugasaki.com/archives/1014 1.搭建实验环境(实验环境centos6.5) wget https://www.kernel.org/pub/linux/ 阅读全文
posted @ 2016-04-22 16:37 LeoSanford 阅读(674) 评论(0) 推荐(0)
操作系统是怎么工作的——函数的堆栈框架/嵌入式代码
摘要:1.函数堆栈框架 1.1框架模型 call指令: 1)将eip中的下一条指令的地址A保存在栈顶; 2)设置eip指向被调用程序的代码处。 ret指令:将地址A恢复到eip中 这样就将函数的调用变为顺序执行的指令流。 1.2框架形成 初始堆栈 1)call xxx(函数),执行call时, cs : eip原来的值指向call下一条指令,该值被保存到栈顶,然后cs ... 阅读全文
posted @ 2016-04-18 21:48 LeoSanford 阅读(471) 评论(0) 推荐(0)
计算机是如何工作的
摘要:1.冯诺依曼体系结构(存储程序计算机) 1.1 解释 从硬件角度可以抽象为一下模型: 从硬件角度可以抽象为一下模型: CPU与内存通过总线连接,CPU中有很多寄存器(总是指向内存的某一块区域),如IP(Instruction Pointer)。假如指向CS(Code Segment,代码段),CPU 阅读全文
posted @ 2016-04-13 00:02 LeoSanford 阅读(1346) 评论(0) 推荐(0)


levels of contents