摘要:
进程的切换和系统的一般执行过程 中断 中断在本质上都是软件或者硬件发生了某种情形而通知处理器的行为,处理器进而停止正在运行的指令流(当前进程),对这些通知做出相应反应,即转去执行预定义的中断处理程序(内核代码)。 中断分为 硬中断 和 软中断 。 硬中断 就是CPU的两根引脚(可屏蔽中断和不可屏蔽中 阅读全文
摘要:
可执行程序工作原理 编译链接的过程 示例程序hello.c include void main() { printf("Hello world\n"); } gcc过程: ESC iso E代表预处理,生成.i文件,主要是删除.c里的注释文件。 S代表编译,生成.s文件,主要是将代码翻译成汇编语言。 阅读全文
摘要:
实验内容:分析Linux内核创建一个新进程的过程 初始化Menu Os,输入fork可以看到menuos触发了一个fork系统调用 再开一个shell,进入调试模式,设置几个断点sys_clone,do_fork,dup_task_struct,copy_process,copy_thread,re 阅读全文
摘要:
本周学习了庖丁解牛Linux内核分析第五章:系统调用的三层机制(下),是上一章的延续 实验内容:使用gdb跟踪分析一个系统调用内核函数 上周实验我选择的getpid这个系统系统调用,这次准备使用gdb跟着系统调用内核函数sys_getpid 先更新一下menu文件夹 然后修改一下test.c,把上周 阅读全文
摘要:
这次实验是内核编译与系统调用,大致流程就是下载一个linux内核源代码,然后对其中的系统调用文件进行添加修改,再进行编译,最后,更换虚拟机的内核,再在其上进行系统调用。通过本实验,使我对系统调用与内核编译机制的理解更加深刻,在本次实验中也遇到了很多问题,好在最后一一解决了。 前置准备: 1.确保虚拟 阅读全文
摘要:
第五周学习内容 庖丁解牛Linux内核分析第四章:系统调用的三层机制(上) Linux内核分析实验四 学到的一些知识 4.1用户态、内核态、中断 宏观上Linux操作系统的体系架构分为用户态和内核态 Intel x86 CPU有4种不同的执行级别,分别是0、1、2、3,数字越小,特权越高,而Linu 阅读全文
摘要:
第四周学习内容 庖丁解牛Linux内核分析第三章:MenuOS的构造 Linux内核分析实验三 学到的一些知识 操作系统两大宝剑:1.中断上下文的切换 保存现场和恢复现场 2.进程上下文的切换 Linux内核版本号命名规则:A.B.C.D,A代表大幅度转变的内核,B指一些重大修改的内核,C是内核的真 阅读全文
摘要:
第三周学习内容 庖丁解牛Linux内核分析第二章:操作系统是如何工作的 Linux内核分析实验二 学到的一些知识 计算机的三大法宝:存储程序计算机,函数调用堆栈,中断 堆栈是C语言程序运行时必须使用的记录函数调用路径和参数存储的空间,堆栈具体的作用有:记录函数调用框架,传递函数参数,保存返回值的地址 阅读全文
摘要:
本周总结: 本周的学习内容主要是庖丁解牛Linux的第一章,然后看完书后,又跟着云班课加深学习了一下第一章的内容。第一章主要讲述了linux里的汇编指令的一些指令,比如movl,pushl,popl等等,这些指令都是围绕数据结构中的栈做文章的。贯穿这一章的是esp、ebp,eip指针寄存器。简单来说 阅读全文
摘要:
开篇概述 我利用假期的时间自学了实验楼上的Linux基础入门前八个实验的课程,学习过程中遇到了一些小问题。但经过查资料等方式最终还是解决了问题。现将学到的一些知识点总结下来。方便日后复习查看。 1.零散知识点 Linux之父是Linus Torvalds Ken Thompson和Dennis Ri 阅读全文