操作系统真相还原_第8章:内存管理系统
创始人
2024-05-28 15:41:05
0

文章目录

  • 8.1 Makefile 简介
    • makefile基本语法
    • make参数
    • 伪目标
    • 自定义变量与系统变量
    • 隐含规则
    • 自动化变量与模式规则
  • 8.2 实现assert断言
    • 操作系统代码
    • 编译、链接并写入磁盘
    • 启动bochs执行
    • 物理内存使用情况
  • 8.3 实现字符串操作函数
    • 操作系统代码
    • 编译、链接并写入磁盘
    • 启动bochs执行
    • 物理内存使用情况
  • 8.4 位图实现
    • 操作系统代码
    • 可用物理内存
    • 物理内存使用情况
  • 8.5.1 内存池规划
    • 操作系统代码
    • 编译、链接并写入磁盘
    • 启动bochs执行
    • 物理内存使用情况
  • 8.5.1 物理页分配
    • 操作系统代码
    • 编译、链接并写入磁盘
    • 启动bochs执行
    • 物理内存使用情况

8.1 Makefile 简介

makefile基本语法

目标文件: 依赖文件
[Tab] 命令

目标文件:此规则中要生成的目标文件
依赖文件:此规则中要生成目标文件所要使用的文件
命令:此规则中要执行的动作(shell命令)
以上规则的意义是:要想生成目标文件,需要提前准备好依赖文件,若依赖文件列表中任一文件比目标文件新,则去执行规则中的命令

文件更新时间:
atime:读取文件数据的时间
ctime:文件数据或数据的改变时间
mtime:文件数据部分的修改时间(make语法中的命令执行参考该时间)
stat 文件名:查看上述三种时间数据

make参数

make 目标文件:执行指定目标文件处的语法
make:从上至下执行语句
当未指定使用的makefile文件时,会默认搜索名为makefile的文件

make:递归式推导目标
在makefile中的目标,是以递归方式逐层向上查找目标的,这一点能在多个目标相互依赖的情况下得到体现

伪目标

伪目标:当规则中不存在依赖文件时该目标文件就是伪目标,此时命令的执行不依赖于更新时间,而是直接执行
伪目标不能和真实目标文件同名,为了避免同名的情况,可使用".PHONY"来修饰为目标,格式为".PHONY:伪目标名"

常用手法:用于删除编译过程中产生的.o文件
.PHONY:clean
clean:
rm ./build/*.o

常用伪目标名称:

自定义变量与系统变量

自定义变量:
变量定义格式:变量名=值(字符串),多个值之间使用空格分开
变量引用格式:$(变量名)

系统变量:

隐含规则

在行尾添加反斜杠字符,则下一行的内容与反斜杠所在行同属一行
使用#表示注释,若行尾含有反斜杠,则下一行也被注释

自动化变量与模式规则

自动化变量:
make还支持一种自动化变量,此变量代表一组文件名
$@:表示规则中的目标文件集合
$<:表示依赖文件中的第1个文件
$^:表示所有的依赖文件
$?:表示所有比目标文件mtime更新的依赖文件

模式规则:
%用来匹配多个非空字符串,make会在当前路径进行模式匹配

8.2 实现assert断言

随着模块越来越多,程序出错的概率越来越大,为了方便调试在程序的关键部分设置"哨兵",让它来监督数据的正确性

操作系统代码


百度网盘链接:https://pan.baidu.com/s/1U8Gb0PZazvxFLJNIyHMizQ
提取码:dz4f

编译、链接并写入磁盘

启动bochs执行

./bochs/bin/bochs -f bochs/boot.disk

物理内存使用情况

系统信息(ards信息)位于0x500
mbr.s位于0x7C00~0x7E00,占用0.5KB
loader.s位于0x2000~0x2800,占用2KB
页目录表位于0x100000~0x101000,占用4KB
缓冲区位于0x70000~0x100000,占用192KB
内核位于0x3000

8.3 实现字符串操作函数

操作系统代码


百度网盘链接:https://pan.baidu.com/s/17IOgSbbumSr6acTMC50FYg
提取码:6rez

编译、链接并写入磁盘

启动bochs执行

./bochs/bin/bochs -f bochs/boot.disk

物理内存使用情况

系统信息(ards信息)位于0x500
mbr.s位于0x7C00~0x7E00,占用0.5KB
loader.s位于0x2000~0x2800,占用2KB
页目录表位于0x100000~0x101000,占用4KB
缓冲区位于0x70000~0x100000,占用192KB
内核位于0x3000

8.4 位图实现

操作系统代码

百度网盘链接:https://pan.baidu.com/s/1g1yCouZksePsKNpSaYSXTQ
提取码:koka

可用物理内存

物理内存使用情况

书中将位图放置于0x9F000,但在我的机器上此段内存不可用
于是我将位图放置于0x8F000
内存分布如下:
系统信息(ards信息)位于0x500
mbr.s位于0x7C00~0x7E00,占用0.5KB
loader.s位于0x2000~0x2800,占用2KB
内核位于0x3000
位图位于0x8F000
页目录表位于0x100000~0x101000,占用4KB
缓冲区位于0x70000~0x100000,占用192KB

8.5.1 内存池规划

操作系统代码



百度网盘链接:https://pan.baidu.com/s/1IO3KNknUOA8QL2q6S3tHGA
提取码:8z4d

编译、链接并写入磁盘

启动bochs执行

./bochs/bin/bochs -f bochs/boot.disk

物理内存使用情况

系统信息(ards信息)位于0x500
mbr.s位于0x7C00~0x7E00,占用0.5KB
loader.s位于0x2000~0x2800,占用2KB
内核位于0x3000
位图位于0x8F000
页目录表位于0x100000~0x101000,占用4KB
缓冲区位于0x70000~0x100000,占用192KB

8.5.1 物理页分配

操作系统代码



百度网盘链接:https://pan.baidu.com/s/1vWUCpGoVHA5Hpvz8CMDUfQ
提取码:o6l4

编译、链接并写入磁盘

启动bochs执行

./bochs/bin/bochs -f bochs/boot.disk

物理内存使用情况

系统信息(ards信息)位于0x500
mbr.s位于0x7C00~0x7E00,占用0.5KB
loader.s位于0x2000~0x2800,占用2KB
内核位于0x3000
位图位于0x8F000
页目录表位于0x100000~0x101000,占用4KB
缓冲区位于0x70000~0x100000,占用192KB

相关内容

热门资讯

常用商务英语口语   商务英语是以适应职场生活的语言要求为目的,内容涉及到商务活动的方方面面。下面是小编收集的常用商务...
六年级上册英语第一单元练习题   一、根据要求写单词。  1.dry(反义词)__________________  2.writ...
复活节英文怎么说 复活节英文怎么说?复活节的英语翻译是什么?复活节:Easter;"Easter,anniversar...
2008年北京奥运会主题曲 2008年北京奥运会(第29届夏季奥林匹克运动会),2008年8月8日到2008年8月24日在中华人...
英语道歉信 英语道歉信15篇  在日常生活中,道歉信的使用频率越来越高,通过道歉信,我们可以更好地解释事情发生的...
六年级英语专题训练(连词成句... 六年级英语专题训练(连词成句30题)  1. have,playhouse,many,I,toy,i...
上班迟到情况说明英语   每个人都或多或少的迟到过那么几次,因为各种原因,可能生病,可能因为交通堵车,可能是因为天气冷,有...
小学英语教学论文 小学英语教学论文范文  引导语:英语教育一直都是每个家长所器重的,那么有关小学英语教学论文要怎么写呢...
英语口语学习必看的方法技巧 英语口语学习必看的方法技巧如何才能说流利的英语? 说外语时,我们主要应做到四件事:理解、回答、提问、...
四级英语作文选:Birth ... 四级英语作文范文选:Birth controlSince the Chinese Governmen...
金融专业英语面试自我介绍 金融专业英语面试自我介绍3篇  金融专业的学生面试时,面试官要求用英语做自我介绍该怎么说。下面是小编...
我的李老师走了四年级英语日记... 我的李老师走了四年级英语日记带翻译  我上了五个学期的小学却换了六任老师,李老师是带我们班最长的语文...
小学三年级英语日记带翻译捡玉... 小学三年级英语日记带翻译捡玉米  今天,我和妈妈去外婆家,外婆家有刚剥的`玉米棒上带有玉米籽,好大的...
七年级英语优秀教学设计 七年级英语优秀教学设计  作为一位兢兢业业的人民教师,常常要写一份优秀的教学设计,教学设计是把教学原...
我的英语老师作文 我的英语老师作文(通用21篇)  在日常生活或是工作学习中,大家都有写作文的经历,对作文很是熟悉吧,...
英语老师教学经验总结 英语老师教学经验总结(通用19篇)  总结是指社会团体、企业单位和个人对某一阶段的学习、工作或其完成...
初一英语暑假作业答案 初一英语暑假作业答案  英语练习一(基础训练)第一题1.D2.H3.E4.F5.I6.A7.J8.C...
大学生的英语演讲稿 大学生的英语演讲稿范文(精选10篇)  使用正确的写作思路书写演讲稿会更加事半功倍。在现实社会中,越...
VOA美国之音英语学习网址 VOA美国之音英语学习推荐网址 美国之音网站已经成为语言学习最重要的资源站点,在互联网上还有若干网站...
商务英语期末试卷 Part I Term Translation (20%)Section A: Translate ...