之前的v0.0.5版本里的堆,直接是从内核结束位置开始,不断向高地址方向分配内存,因此还不具备释放内存的能力,要让堆具备动态分配和动态释放内存的能力,就需要建立一套相关的堆算法...
之前的版本没有开启Paging分页机制,所以之前的zenglOX里,线性地址就等于实际的物理地址,由于编程时,程序里的变量,函数等使用的都是线性地址,在编译后,程序里的这些地址值很多都是固定的,尤其是全局变量的地址,但是在后面的多任务环境下...
8259可编程中断控制器即PIC,是构成x86体系架构的最重要的芯片之一,没有它,处理器就无法接收到外部设备产生的中断请求信号。8259可以有效管理周边外设产生的中断信号,并将该信号输出给CPU...
GDT即Global Descriptor Table(全局描述符表),之所以要用到该表,是和IA-32平台的内存管理机制密切相关的...
之前的v0.0.1版本什么输出也没有,在bochs下还可以通过gdb远程调试,知道内核在做些什么,但是放在virtualbox里就不知道内核在做什么了,所以如果能让内核在屏幕上输出显示一些字符串的话,对内核的调试开发都会有很大的帮助...
要开发自己的操作系统,首先就要搭建一个自己的调试开发环境,这里以Ubuntu系统(作者的是ubuntu 12.04.3)为例,来说明如何搭建交叉编译环境,有了交叉编译环境,才可以将系统内核编译为目标机子上...