会员
周边
众包
新闻
博问
闪存
赞助商
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
himu-qaq
操作系统:内核基础实现(三)内存分配的初步实现
摘要: 本随笔对应项目代码(更新中):https://github.com/himuhuan/HimuOS 位图的实现 KrBitMap 结构用作任意长度的常规用途一维位图的标头. 内核使用位图作为一种经济方式来跟踪一组可重用项。 struct KrBitMap { uint32_t Length; PRI
阅读全文
posted @ 2024-11-06 16:26 Himu
阅读(10)
评论(0)
推荐(0)
编辑
操作系统:内核的基本实现(二)中断
摘要: 中断 操作系统是中断驱动的。 中断的分类 外中断 INTR 引脚进入的 可屏蔽中断:由外部设备引起,CPU可以选择性处理。 NMI 引脚进入不可屏蔽中断:发生了致命错误,即将导致宕机,一般软件无法处理的错误。 一般每一种可屏蔽中断都能分配到中断向量号,但是,不可屏蔽中断一律都由中断向量 2 处理。
阅读全文
posted @ 2024-10-28 16:38 Himu
阅读(10)
评论(0)
推荐(0)
编辑
操作系统:内核的基本实现(一)屏幕输出与C语言支持
摘要: 使用 C 语言 cdecl 约定 HimuOS Kernel 遵守 cdecl 约定,在32位操作系统上, 函数实参在线程栈上按照从右至左的顺序依次压栈 (x86 cdecl 的参数总是在栈上) 函数结果保存在寄存器EAX/AX/AL中 浮点型结果存放在寄存器ST0中 编译后的函数名前缀以一个下划线
阅读全文
posted @ 2024-10-10 15:56 Himu
阅读(11)
评论(0)
推荐(0)
编辑
操作系统:保护模式(五)特权
摘要: 特权机制 特权 特权级数值越大,级别越小。 通常,因为操作系统是为所有程序服务的,可靠性最高,而且必须对软硬件有完全的控制权,所以它的主体部分必须拥有特权级0,并处于整个环形结构的中心。也正是因为这样,操作系统的主体部分通常又被称做内核(Kernel、 Core)。 特权级1和2通常赋予那些可靠性不
阅读全文
posted @ 2024-10-01 17:19 Himu
阅读(19)
评论(0)
推荐(0)
编辑
操作系统:保护模式(二)内存模型
摘要: 平坦内存模型 现代操作系统一般不会使用过于复杂的分段机制,而是采用平坦内存模型 + 分页模型来管理内存。 平坦内存模型(Flat Memory Model),这是现代操作系统(如 Linux 和 Windows)常用的内存模型。在这种模型中,所有段的段基址都为 0,段界限为 4GB,使得整个内存空间
阅读全文
posted @ 2024-10-01 17:15 Himu
阅读(29)
评论(0)
推荐(0)
编辑
操作系统:保护模式(一)GDT 与分段机制
摘要: GDT 与分段机制 CPU开机时运行于实模式,寻址方式是段寄存器 \(\times\) 10+偏移寄存器=物理地址,主要原因是因为 8086 地址线和数据线不匹配导致的。但是这种寻址方式既不安全也不支持现代操作系统所需的、多任务支持、cpu 特权模式等。 在实模式下,对于基址,变址寻址的寄存器有明确
阅读全文
posted @ 2024-10-01 17:12 Himu
阅读(14)
评论(0)
推荐(0)
编辑
操作系统:保护模式 (四)内核的加载
摘要: 用 GNU C 套件开发生成的内核本质上是一个 ELF 文件头可执行文件。这意味着: 生成内核时,需要手动将可重定向文件链接时指定代码段所在线性地址 (高位 0xc0000000-0xc03fffff) Loader 将原始 kernel 映像从磁盘读出,存放到内核可用内存的 (较高处) 内核本身不
阅读全文
posted @ 2024-09-26 22:41 Himu
阅读(12)
评论(0)
推荐(0)
编辑
操作系统:保护模式 (三)分页机制
摘要: 分页机制 对于编译器而言,地址本身是连续的,被称作线性地址。在只分段的情况下,CPU 认为线性地址等同于物理地址,这种传统模型有以下缺陷: 分段模式要求每个段的内存是连续的,因此当需要分配大块内存时,可能会因为内存碎片的问题导致无法找到足够大的连续空间。这在程序运行过程中,特别是随着内存分配和释放的
阅读全文
posted @ 2024-09-24 15:09 Himu
阅读(30)
评论(0)
推荐(0)
编辑
自用:常见算法竞赛/刷题问题 & 模板
摘要: 以下是我平常刷题遇到的部分常见问题,随手记录一下。(不定时更新) 基本算法 二分与最大值最小化 注意,这里的有序是广义的有序,如果一个数组中的左侧或者右侧都满足某一种条件,而另一侧都不满足这种条件,也可以看作是一种有序(如果把满足条件看做1 ,不满足看做 0,至少对于这个条件的这一维度是有序的)。换
阅读全文
posted @ 2024-05-26 16:22 Himu
阅读(29)
评论(0)
推荐(0)
编辑
导航
博客园
首页
联系
订阅
管理
公告