![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux内核学习
MrZhuangzhipeng
这个作者很懒,什么都没留下…
展开
-
linux内核学习(三)
1.可执行程序装载 2.进程调度相关 3.一条Linux指令的执行过程 装载可执行程序之前的工作: 我们一般都是使用shell来启动一个进程的,然后shell需要调用execv,再这之前需要给我们的应用程序准备一个环境。 在控制台中敲击ls之后会发生什么事情? 1.首先会有硬件中断,监听键盘事件 2.接下来shell程序会进程分析 3.然后fork(),fork的过程就是复制一个进程控制块,然后修改堆栈,pid等信息. 4.exec ...原创 2020-05-14 21:08:03 · 192 阅读 · 0 评论 -
Linux内核学习(二)
如何区分用户态和内核态呢? 从逻辑地址上来看的话,以32位地址举例,用户态位于3GB空间当中,而内核空间在3GB-4GB(并且是共享的). 进程的数据结构示例图,可以看到包含进程描述信息,内存管理,终端控制信息,文件描述符,文件系统以及信号相关的内容, 系统调用的执行过程: 1.用户程序中有一个系统调用 2.保护现场,然后陷入内核当中,接下来在内核中寻找查询系统调用表,找到对应的服务程序。 3.接下来服务程序执行完毕后恢复现场。 与正常...原创 2020-05-14 21:04:52 · 137 阅读 · 0 评论 -
linux内核学习记录(一)
B站中中科大的Linux内核分析(短小的6小时视频) 主要讲解了简单的汇编,程序的运行,系统调用的过程,程序执行,进程创建过程,进程调度,以及动态链接相关的内容。 1.体系结构 冯诺伊曼体系 2.汇编语言简介 mov(几种寻址方式),call, push,pop指令(组合指令) 3.一个实际汇编代码的执行过程 4.三大法宝:存储程序计算机,函数堆栈调用机制,中断机制 5.操作系统两把剑:中断上下文和进程上下文切换 6.几个重要的寄存器 ebp(基址寄...原创 2020-05-14 20:47:01 · 171 阅读 · 0 评论