Linux内核
|宇文拓>
每天进步一点点
展开
-
Linux内核分析(二)时间片轮转多道程序系统内核的简单实现和代码分析
作者:于波原创作品转载请注明出处参考:《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 这篇博客是Linux内核分析课程第二周课程的作业,要求是完成一个简单的时间片轮转多道程序系统内核,并分析理解操作系统是如何完成进程启动和进程切换的。一、实验环境介绍 实验环境的搭建过程...原创 2018-09-08 10:20:28 · 383 阅读 · 0 评论 -
Linux内核分析(三)Linux内核启动过程分析
作者:于波声明:原创作品,转载请注明出处参考:《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 这是网易云课堂《Linux内核分析》课程第三周的作业,要求分析Linux内核从start_kernel到init进程启动的过程。 一、实验环境搭建: 首先按照课程帮助在自己的机器上...原创 2018-09-08 10:24:24 · 1501 阅读 · 0 评论 -
Linux内核分析(四)Linux系统调用初探
系统调用是操作系统为用户态进程提供的一组可以与硬件设备进行交互的接口,可以帮助应用程序开发者从处理底层硬件的细节中解放出来。所以系统调用的上层就是我们的应用程序,而下层就是操作系统管理下的各种硬件设备和其他资源。应用程序是通过中断的方式向内核发出一个明确的请求的。本文的目的就是用一个直观的例子展示一下系统调用的过程。 先来看一个使用系统调用的小程序,这个程序用追加模式打开一个文件,在里面...原创 2018-09-08 10:28:26 · 212 阅读 · 0 评论 -
Linux内核分析(五)Linux系统调用中断处理过程
上一篇博文我们用汇编的方式实现了对系统调用open的引用,这一次我们来深入到系统调用处理的内部,来看看Linux到底是如何处理系统调用的。 系统调用函数system_call的代码可以在arch/x86/kernel/entry_32.S中,完整的代码如下:(每行前面的数字是代码在源文件中的行号) 490 ENTRY(system_call) 491 R...原创 2018-09-08 10:29:59 · 927 阅读 · 0 评论 -
Linux内核分析(六)Linux新进程创建处理过程
Linux创建新进程使用fork系统调用,系统调用的前期和一般的系统调用并没有什么特别的区别,而区别在于fork处理过程do_fork的内部。do_fork的处理过程可总结为:1. 复制父进程的程序控制块;2. 修改复制过来的进程控制块,将控制块中的属性值改为子进程自己的值,比如,栈指针指向自己的栈地址,并初始化栈顶指针,打开的文件列表初始化等等,而EIP的值将被设置为ret_from_f...原创 2018-09-08 10:31:39 · 223 阅读 · 0 评论 -
Linux内核分析(七)系统调用execve处理过程
本文的内容包括:1. 用execve系统调用加载和执行一个可执行程序的代码演示2. 用gdb跟踪系统调用execve的执行过程3. execve系统调用处理过程分析 一、如何用execve系统调用加载一个可执行程序下面的代码可以展示如何用execlp函数启动一个新的进程,execlp是对系统调用execve的一层封装。 其中第19行的输出是故意加上的。执行结果如下,...原创 2018-09-08 10:35:15 · 4034 阅读 · 0 评论 -
Linux内核分析(八)Linux中的进程调度与进程切换
本文将包括以下内容:1. Linux中进程调度的时机2. Linux的进程调度函数schedule()处理过程分析3. 进程上下文切换过程分析 一、Linux中进程调度的时机 进程调度函数schedule在Linux的源代码文件中有非常多的地方会调用,包括各种设备驱动程序(网络设备,文件系统,声卡等等)中,用cscope可以找到500+处调用。而我们今天将只关注内核部...原创 2018-09-08 10:38:38 · 608 阅读 · 0 评论 -
Linux内核学习总结
Linux内核是一个提供硬件抽象层、文件系统管理、多任务管理等功能的系统软件,主要模块包括:CPU和进程管理、存储管理、文件系统、设备管理和驱动、网络通信、系统调用等。而本课程主要聚焦在CPU和进程管理模块,帮助我们理解程序在Linux系统中是如何运行、切换和调度的,以及进程调度与系统调用的关系。 一、课程内容总览 计算机程序的执行中,一个非常重要的概念就是函数调用堆栈,博文通...原创 2018-09-08 10:44:35 · 2194 阅读 · 0 评论