摘要: 在linux操作系统分析课程中,我了解到操作系统的三⼤核⼼功能为进程管理、内存管理和⽂件系统。事实上,通过查阅资料,可以知道linux操作系统有五个子模块:进程调度,内存管理,虚拟文件系统,网络接口,进程间通信。其中,网络接口和进程间通信在课上涉及较少,故本文主要围绕进程管理,内存管理和文件系统展开 阅读全文
posted @ 2020-07-07 15:52 lwis 阅读(572) 评论(0) 推荐(0) 编辑
摘要: 一、以fork和execve系统调用为例分析中断上下文的切换 1.fork系统调用 fork系统调用可以建立一个新进程,把当前的进程分为父进程和子进程,新进程称为子进程,而原进程称为父进程。fork调用一次,返回两次,这两个返回分别带回它们各自的返回值,其中在父进程中的返回值是子进程的PID,而子进 阅读全文
posted @ 2020-06-13 20:32 lwis 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 一、实验原理 系统调⽤的库函数就是我们使⽤的操作系统提供的 API(应⽤程序编程接⼝),API 只是函数定义。系统调⽤是通过特定的软件中断(陷阱 trap)向内核发出服务请求,int $0x80和syscall指令的执⾏就会触发⼀个系统调⽤。C库函数内部使⽤了系统调⽤的封装例程,其主要⽬的是发布系统 阅读全文
posted @ 2020-05-25 13:37 lwis 阅读(467) 评论(0) 推荐(0) 编辑
摘要: 一、实验环境配置 1.操作系统环境 阿里云Ubuntu 16.04 2.内核环境配置 按照https://github.com/mengning/mykernel上的内容输入如下命令: wget https://raw.github.com/mengning/mykernel/master/myke 阅读全文
posted @ 2020-05-11 20:22 lwis 阅读(244) 评论(0) 推荐(0) 编辑