摘要: 进程的切换和系统的一般执行过程 书本重要知识回顾 1.进程调度的时机 ①中断处理过程直接调用schedule(),或者当内核返回用户态时根据need_resched标志调用schedule()。 ②内核线程是一个特殊的进程,只有内核态没有用户态,可以直接调用schedule()进行进程切换,也可以在 阅读全文
posted @ 2018-12-08 10:35 20189213桂方平 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 可执行程序工作原理 书本重要知识总结 1.ELF文件 ELF(Excutable and Linking Format)即可执行的和可链接的格式,是一个目标文件格式的标准。通过readelf h hello查看可执行文件hello的头部( a查看全部信息, h只查看头部信息),头部里面注明了目标文件 阅读全文
posted @ 2018-12-01 10:59 20189213桂方平 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 进程的描述和进程的创建 1.课本基础知识汇总 操作系统内核实现操作系统的三大管理功能:即进程管理、内存管理、文件系统。 对进程的描述: 在操作系统原理中,通过进程控制块PCB描述进程; 在Linux内核中,通过一个数据结构struct task_struct来描述进程。 对进程状态的描述: 在操作系 阅读全文
posted @ 2018-11-25 20:10 20189213桂方平 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 系统调用的三层机制(下) 给MenuOS增加time和time_asm命令 首先是删除menu目录,并用git clone重新克隆一个新版本的menu: 进入menu,由于已经提供了一个脚本rootfs,运行make rootfs脚本就可以自动编译并自动生成根文件系统,并同时运行MenuOS系统: 阅读全文
posted @ 2018-11-18 21:05 20189213桂方平 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 第二章:个人技术和流程 书本内容回顾 概述 一个团队需要一定的流程来管理开发活动,每个工程师在软件生命周期所做的工作也应该有一个流程,在这一章里会介绍PS(Personal Software Pro cess,个人软件开发流程)。 单元测试 单元测试的作用:让自己负责的模块功能定义尽量明确,模块内部 阅读全文
posted @ 2018-11-10 10:31 20189213桂方平 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 第四章:系统调用的三层机制(上) 系统调用的"三层皮" 分别指的是:用户态函数(API)、system_call(中断服务程序入口)以及sys_xyz()系统调用处理函数封装例程。它们各自的作用如下: API 第一层是指Libc中定义的API,这些API封装了系统调用,使用int0x80触发一个系统 阅读全文
posted @ 2018-11-08 12:56 20189213桂方平 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 第二章:信息的表示和处理 1.二进制与十六进制: ①十六进制数字:0 – F,例子:25A4B ② 二进制数字:0 – 1,例子:0001 0111 0011 1010 0100 1100 ③相互转换:十进制→ 十六进制:Mod(10,16)(倒序排列) 2.字和数据大小: ① 字长决定了系统虚拟地 阅读全文
posted @ 2018-11-04 18:19 20189213桂方平 阅读(502) 评论(0) 推荐(0) 编辑
摘要: 《Linux内核原理与分析》第四周学习总结: 1.课本知识总结: 本章内容并不多,首先是介绍了一些Linux内核源代码的目录结构,并基于Linux内核源代码构造一个简单的操作系统MenuOS,同时在MenuOS启动过程中跟踪分析Linux内核的启动过程。 操作系统的“两把宝剑”:中断上下文、进程上下 阅读全文
posted @ 2018-11-02 14:29 20189213桂方平 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 《Linux内核原理与分析》第三周学习总结 无论是视频资源还是《庖丁解牛Linux 》第2章,主要讲述的都是操作系统是如何工作的,并介绍了如何在mykernel基础上构造一个简单的操作系统内核。 1.函数调用堆栈: 堆栈的由来:堆栈并不是一开始就有的,计算机没有高级语言的时候,只有机器语言时候,因为 阅读全文
posted @ 2018-10-28 11:16 20189213桂方平 阅读(214) 评论(1) 推荐(0) 编辑
摘要: 第一章 概论 1.1 软件=程序+软件工程 程序=数据结构+算法 软件企业=软件+商业模式 程序(算法、数据结构)是基本功,但是在算法和数据结构之上;软件工程决定了软件的质量;商业模式影响了了一个软件企业的成败。 软件开发分为几个不同的阶段:玩具阶段、业余爱好阶段、探索阶段、成熟的产业阶段。 1.2 阅读全文
posted @ 2018-10-25 17:22 20189213桂方平 阅读(354) 评论(3) 推荐(0) 编辑