摘要: 实验批处理 Windows下批处理 脚本代码如下所示: @echo off set "n= 1"&set "flag=a" :begin set /a n+=1 if %n% equ 0 (set "m=") else (set "m=skip=%n%") for /f "%m% delims=" 阅读全文
posted @ 2019-11-13 11:25 肖子玉20199327 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 可执行程序工作原理 ELF目标文件格式 ELF概述 目标文件 “目标文件”:也叫ABI,编译器生成的文件,“目标”决定编译器使用的机器指令集,它和“目标平台”二进制兼容的。 a.out是最古老的目标文件格式,后发展为COFF格式,现在linux常用的格式为ELF和PE。 ELF ELF:可执行并可链 阅读全文
posted @ 2019-11-10 20:34 肖子玉20199327 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 内核模块编译 实验原理 Linux模块是一些可以作为独立程序来编译的函数和数据类型的集合。之所以提供模块机制,是因为Linux本身是一个单内核。单内核由于所有内容都集成在一起,效率很高,但可扩展性和可维护性相对较差,模块机制可弥补这一缺陷。 Linux模块可以通过静态或动态的方法加载到内核空间,静态 阅读全文
posted @ 2019-11-03 22:47 肖子玉20199327 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 进程的描述与创建 进程的描述—提纲挈领 操作系统内核实现操作系统的三大管理功能: 1. 进程管理——最核心的功能; 2. 内存管理; 3. 文件系统; PCB——进程控制块 进程控制块(PCB)(系统为了管理进程设置的一个专门的数据结构,用它来记录进程的外部特征,描述进程的运动变化过程。系统利用PC 阅读全文
posted @ 2019-11-03 16:57 肖子玉20199327 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 实验 删除后克隆menu 创建根目录启动 测试 再test.c中添加新的函数 更新根目录,出了点小问题,虽然不知道啥原因,但解决了 更新后启动内核并检查 进行调试 查看代码 阅读全文
posted @ 2019-10-27 20:52 肖子玉20199327 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 添加内核并调试 阅读全文
posted @ 2019-10-23 11:41 肖子玉20199327 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 系统调用的三层机制 用户态与内核态 为了减少有限资源的访问和使用冲突,提供机制对用户程序进行权限划分。 内核态:在高的执行级别下,代码可以执行特权指令,访问任意的物理内存,对所有的指令包括特权指令都可以执行; 用户态:低级别指令,代码能够掌控的范围受限; CPU的执行级别 CPU有四种执行级别,分别 阅读全文
posted @ 2019-10-20 22:23 肖子玉20199327 阅读(146) 评论(1) 推荐(0) 编辑
摘要: MenuOS的构造 操作系统的两把宝剑: 中断上下文的切换——保存现场和恢复现场; 进程上下文的切换; 关键目录 1. arch:与体系结构相关的子目录列表,存放CPU体系结构的相关代码; 2. block:存放Linux存储系统中关于块设备管理的代码; 3. crypto:存放常见的加密算法的C语 阅读全文
posted @ 2019-10-06 20:10 肖子玉20199327 阅读(177) 评论(2) 推荐(0) 编辑
摘要: 操作系统是如何工作的 计算机的三大法宝: 1.存储程序计算机; 2.函数调用堆栈机制; 3.中断机制; 函数调用堆栈 堆栈的作用 1.记录函数调用框架; 2.传递函数参数,方法:从左到右; 3.保存返回值的地址; 4.提供函数内部局部变量的存储空间; 相关寄存器和操作 ESP:堆栈指针; EBP:基 阅读全文
posted @ 2019-09-29 22:22 肖子玉20199327 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 计算机工作原理 1.冯诺依曼体系结构 五大组件:运算器、存储器、控制器、输入与输出设备核心思想:存储程序;计算机内部采用二进制来表示指令和数据。 2.汇编基础 CPU通用寄存器 数据寄存器AX:累加寄存器BX:基地址寄存器CX:计数器寄存器DX:数据寄存器指针寄存器SP:堆栈指针寄存器BP:基指针寄 阅读全文
posted @ 2019-09-22 21:56 肖子玉20199327 阅读(190) 评论(1) 推荐(0) 编辑