- 博客(3)
- 收藏
- 关注
原创 操作系统——实现简单的键盘驱动
首先,下面是头文件保护机制,防止同一个头文件被多次包含,避免编译错误。当然,在最后也要写上#endif。然后要引入头文件:type.h 提供了基本类型定义(如uint8_t、uint32_t等)。port.h 用于与硬件I/O端口通信。interrupt.h 提供了中断管理的基类和相关支持函数,下面出现的KeyboardDriver是interrupt.h中的InterruptHandler的子类。
2024-11-27 18:34:58
1781
原创 保护模式的内存寻址:GDT
GDT的主要组成部分:1. 段描述符段描述符的结构如下:2. 段选择子段选择子是16位,结构如下:- 索引(13位)- 表指示符(1位):指定段选择子是指向GDT还是LDT。0表示指向GDT,1表示指向LDT。- 特权级(2位)3. 段寄存器(GDTR)全局描述符寄存器,长度48位,低16位是GDT长度限制,高32位是GDT在内存中的地址。this是当前对象的指针,将其强制转换为 uint8_t*是为了按字节来访问和操作段描述符的各个字节。
2024-10-29 13:31:05
1528
原创 在虚拟机中运行简单内核
以下是传递给 g++ 编译器的参数,主要用于确保生成 32 位代码并禁用一些 C++ 特性。-m32: 指定生成 32 位代码-fno-use-cxa-atexit: 禁用 C++ 的 atexit 功能。-nostdlib: 不链接标准库。-fno-builtin: 禁用内置函数。-fno-rtti: 禁用运行时类型识别。-fno-exceptions: 禁用异常处理。-fno-leading-underscore: 禁用在符号前添加下划线的行为。
2024-10-27 22:16:55
1653
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人