09
22
07
08
一个操作系统的实现(7) 一个操作系统的实现(7)
输入输出系统键盘中断处理程序关键代码分析: 键盘中断处理程序 PUBLIC void keyboard_hanlder(int irq) { disp_str("str"); } 打开键盘中断 PUBLIC void init_ke
2022-07-08 Aiaa
05
一个操作系统的实现(6) 一个操作系统的实现(6)
进程与进程调度进程切换特权级变换:ring1-ringo 在以前的代码中,还没有使用过除ring0之外的其他特权级。对于有特权级变换的转移,如果由外层向内层转移时,需要从 TSS中取得从当前TSS中取出内层ss和esp作为目标代码的ss和e
2022-07-05 Aiaa
02
一个操作系统的实现(5) 一个操作系统的实现(5)
操作系统内核的雏形在Linux下用汇编写hello,world代码及分析: ; 编译链接方法 ; (ld 的‘-s’选项意为“strip all”) ; $ nasm -f elf hello.asm -o hello.o ; $ ld -
2022-07-02 Aiaa
06
26
一个操作系统的实现(4) 一个操作系统的实现(4)
走进保护模式引导扇区突破512个字节的限制代码逻辑: jmp short LABEL_START ; Start to boot. nop ; 这个 nop 不可少 ; 下面是 FAT12 磁盘的头 BS_OEMName DB 'Fo
2022-06-26 Aiaa
24
一个操作系统的实现(3) 一个操作系统的实现(3)
实现保护模式保护模式和实模式保护模式,是一种80286系列和之后的x86兼容CPU操作模式。保护模式有一些新的特色,设计用来增强多工和系统稳定度,像是 内存保护,分页系统,以及硬件支援的 虚拟内存。 保护模式与实模式相对应。在80286以前
2022-06-24 Aiaa
22
一个操作系统的实现(2) 一个操作系统的实现(2)
动手写一个最小的“操作系统”最小的操作系统代码org 07c00h ; 告诉编译器程序加载到7c00处 mov ax, cs mov ds, ax mov es, ax call DispStr ; 调用显示字符串例程 jmp $
2022-06-22 Aiaa
21
一个操作系统的实现 一个操作系统的实现
环境搭建在操作系统复现需要在Ubuntu操作系统下完成,选用了VMware安装Ubuntu虚拟机。 为了通过纯软件的方式模拟硬件,需要一个非常重要的模拟器:Bochs。另外还需要NASM汇编工具。 在VMware上安装UbuntuUbunt
2022-06-21 Aiaa
6 / 6