HelloOs总结
专栏简介
BLSxiaopanlaile
这个作者很懒,什么都没留下…
展开
-
HelloOs总结之后语
HelloOs总结之后语七、后语七、后语 在总结之初,我还一度认为自己可能坚持不下来,到这儿觉得也没想象的那样难。虽然不喜欢讲大道理,但这次总结确实让我对一个道理(或者说是人类的认知天性)有了一个更深的体会:人的大脑比较喜欢做简单、目标明确、思路清晰的事情,如果如果一件事本身比较大、比较复杂,一时间找不到思路,可以事情分解成很小很小的一部分,每次当大脑值专注于一部分事情。慢慢的,慢慢的,事情就不像原来想象的那般不可克服了。 到这儿,整个HelloOs算是基本总结完了。虽然完了,但这只是操作系统原创 2020-08-15 08:37:50 · 146 阅读 · 0 评论 -
HelloOs总结之辅助性功能实现
HelloOs总结之辅助性功能实现六、辅助性功能实现6.1 通用链表6.2 string类操作函数6.3 PrintF打印函数6.4 信号量、锁的实现6.5 debug调试相关六、辅助性功能实现 这一章主要讲些HelloOs中的主要辅助性功能的实现。相对来说,它们不算是HelloOs的主线部分,但是其大都是作为辅助部分穿插在各个章节,下面对这些部分做一简要介绍。 6.1 通用链表 链表作为线性表的一种,在操作系统内核中有着重要的作用。关于链表最基本的理论内容,数据结构书中都有基原创 2020-08-15 08:34:31 · 231 阅读 · 0 评论 -
HelloOs总结之进程管理(下)
HelloOs总结之进程管理(下)5.2 系统调用5.2 系统调用 上面我们实现的进程其实都是内核态进程(更准确的说,应该是内核态线程),它们出生就含着金钥匙,拥有至高无上的权利,可以驾驶着CPU这驾风驰电掣的烈马,任意驰骋。这种情况在内核线程势可以的,因为内核一般都是经过精心设计的。 但是如果对于用户程序也给他这样的权利,那就有点过分了,因为你也不知道哪个用户态进程会是个“叛徒”,会把你的计算机分分钟搞死。所以我们需要进行隔离。但是,对于普通的 “老百姓进程”,它们有的时候还是需要访问一些重要的设原创 2020-08-15 08:18:38 · 157 阅读 · 0 评论 -
HelloOs总结之进程管理(上)
HelloOs总结之进程管理(上)五、进程管理5.1 进程5.1.1 进程描述5.1.2 进程调度五、进程管理 站在CPU的角度上说,它是不认识线程啊、进程啊、程序啊啥的。它所能感知到的就是一条条指令,按照指令的规则往下执行,这也就是执行流(或者叫做指令流)。而线程和进程的概念是在操作系统上才有的,按照我的理解,操作系统按照用户的要求把一个个独立的执行流封装起来,然后按照一定的规则在CPU上进行调度,这个封装的过程也就是进程。或者换一种说法,操作系统为了更方便的进行“执行流”的管理和调度,把这个执行原创 2020-08-15 08:13:15 · 205 阅读 · 0 评论 -
HelloOs总结之内存管理(下)
HelloOs总结之内存管理(下)4.3.2 Slab系统 4.3.2 Slab系统 如上面所述,伙伴系统作为一个基础的内存分配算法,其很好的解决了外部碎片的问题,但是如果用户要求分配很小的内存空间,比如说几十个字节,那么如果直接使用buddy系统分配一个页框(也就是最小块4KB),那么会有大量的内部碎片。这时候就引出了另一种分配方案:Slab系统。 所谓Slab系统,通俗地讲,就是专门为某一模块预先申请一定数量的内存备用,当这个模块想要使用内存的时候,就不需要从系统中分配内存了原创 2020-08-14 22:24:08 · 188 阅读 · 0 评论 -
HelloOs总结之内存管理(中)
HelloOs总结之内存管理(中)4.3 基本内存管理4.3.1 伙伴(Buddy)算法 4.3 基本内存管理 按照我的理解,一般来说,操作系统关于内存的管理主要有两个大的方面:一个是内存映射和保护(前面章节有论述),另一个就是基本的内存管理,包括内存分配、回收等等。如果说前者大部分是硬件在起作用,后者则几乎全是软件的责任了。 在我一开始学习操作系统时,当时觉得内存分配好神奇,你要多少内存,操作系统就给你多少内存(当然,不超过操作系统分配给进程的内存限制)。就像上大学时,父母给我原创 2020-08-14 22:16:08 · 189 阅读 · 0 评论 -
HelloOs总结之内存管理(上)
HelloOs总结之内存管理(上)四、内存管理4.1 内存规划4.2 MMU4.3 基本内存管理四、内存管理 终于到了最难搞的两个部分了。下面我想说点废话,请忽略以下文字。人,真的有懒惰心理、畏惧心理、拖延心理。尤其在没有什么直接奖励的情况下。说实话,这个部分已经拖了好久了,并不是因为没有时间,老实说,有的时候我宁愿看美剧,也不愿意总结这个部分的内容。(嘿嘿,可能大部分人都有这种想法吧。毕竟看美剧不累,总结这个,要花脑子。)我是越来越觉得,总结一个内容真的是很花精力,当然一个人活得知识或者说成长最原创 2020-08-14 22:02:27 · 260 阅读 · 0 评论 -
HelloOs总结之启动及中断
启动及中断三、启动及中断3.1 启动部分3.1.1 boot简介3.1.2 boot代码分析3.2 中断和异常3.2.1 异常向量和工作模式3.2.2 中断切换上下文3.2.3 中断处理程序部分 三、启动及中断3.1 启动部分3.1.1 boot简介 对于大多数的嵌入式系统来说(包括计算机、平板、手机以及类似的电子设备)来说,其启动过程大都不是一个过程,尤其是带有操作系统的设备。一般来说,对于大部分高级的电子设备(带有操作系统),启动过程大都包含一个boot阶段,然后才是跳到操作原创 2020-08-14 17:50:12 · 457 阅读 · 0 评论 -
HelloOs总结之环境说明
HelloOs总结之环境说明二、环境说明2.1 虚拟化仿真软件skyeye2.2 硬件开发平台说明2.3 编译环境2.4 安装说明 二、环境说明2.1 虚拟化仿真软件skyeye 工欲善其事必先利其器,不过说实话,这次HelloOs的使用的开发总体上并不是非常满意。因为自己的开发板留在学校,而且为了和《一步一步写嵌入式操作系统》书上同步,选用了skyeye这样一个虚拟的开发平台。 关于skyeye,具体的我不说明了,可以参考《一步一步写嵌入式操作系统》。我只简单的描述一点。即sk原创 2020-08-14 17:03:38 · 221 阅读 · 0 评论 -
HelloOs总结之前言
HelloOs总结之前言HelloOs总结系列说明一、前言1.1 HelloOS的由来1.2 HelloOS的模块划分1.3 文章的划分HelloOs总结系列说明 上半年的很长一段时间都花在了自己实现的一个小的操作系统HelloOs上,完成之后这段时间一直在写HelloOS的总结,想着把过程中的心得体会写下来放在网上,希望能便人便己。 这是HelloOs总结系列的第一篇-前言部分。 一、前言1.1 HelloOS的由来 在本科期间一直想看看Linux源码来着,听说这里面充原创 2020-08-14 16:45:31 · 217 阅读 · 0 评论