2022年3月14日

Linux0.11 head.s

摘要: # # 32位指令,在这就进入到保护模式了 # 在本模块中,内核的起始地址为0xC0000000,用户程序的起始地址为0x00000000 # 我对原来的Linux0.11中的内存相关进行了修改,对于一个进程使用1GB的内核空间和3GB的用户空间 # .code32 # # 此处运行在绝对地址0x0 阅读全文

posted @ 2022-03-14 14:22 sudochen 阅读(70) 评论(0) 推荐(0) 编辑

Linux0.11 setup.s

摘要: 综述 setup程序利用BIOS终端读取硬件参数,并将这些数据保存到0x90000开始处,此处原本是bootsect的地址,bootsect跳转至setup模块后其所在的地址空间就没什么用了,主要读取的参数如下: 读取完参数后将system模块从0x10000整体向下移动到0x0000处,接下来加载 阅读全文

posted @ 2022-03-14 10:35 sudochen 阅读(110) 评论(0) 推荐(0) 编辑

Linux0.11 bootsect.s

摘要: 概述 如下图是Linux内核完全注释的一副图,表示各个模式在系统的运行大概情况,我们首先分析bootsect.s程序 # # BIOS系统调用 # 80386在实模式下虽然是16位的地址,但是经过段映射后可以形成20位的地址共寻址1MB的地址空间 # BOIS会在地址0处建立1KB字节的中断向量表, 阅读全文

posted @ 2022-03-14 10:04 sudochen 阅读(93) 评论(0) 推荐(0) 编辑

导航