如何在屏幕上输出hello world?
1.CPU发送指令(将ASCII放在显示器上)(通过CPU-内存总线)给内存
2.内存->CPU-内存总线传输数据到总线控制器->再到图形控制器->输出到屏幕
什么是操作系统
我们的操作系统是从:
应用软件->操作系统接口->操作系统->计算机硬件
操作系统是在计算机硬件的“衣服”,方便人操作硬件,管理几乎所有的硬件
电脑是如何启动的(1.读入内存2.初始化)
X86打开时,CS=0xFFFF,IP=0x0000
寻址:CS:IP 0xFFFF0(开机时唯一有代码的地方ROM BIOS)
然后检查RAM,键盘,显示器,磁盘等硬件
将磁盘的0磁道0扇区(引导扇区,第一个扇区,第一段代码 )读入0x7c00处(一个扇区512字节)
设置CS=0x07C0,IP=0x0000
然后就开始我们或者不同牌子的电脑厂家设置的开机启动流程了(开机界面)。
setup读取硬件参数,第一段为head.s将汇编转为32位,最后跳到main函数,将system挪动到00地址处,然后使用mem_init函数将没有使用的位置初始化为0,同时初始化键盘,鼠标等硬件。
接下来开始执行system模块,使用makefile参数系统镜像(Image)(依赖bootsect.s,setup.s,system,build),
将镜像挪动到0磁道0扇区处,开始读入操作系统,初始化,产生桌面
什么是引导扇区呢?
引导扇区是一段汇编代码:bootsect.s
为什么不用其他语言做引导扇区呢?
汇编对地址和机器码可以进行强行控制,避免意外发生。
高级语言对地址以及机器码的把握会有很多意外
网友评论