自制操作系统---eposide 3 (特别篇)

来源:互联网 发布:淘宝客pid在哪里查看 编辑:程序博客网 时间:2024/05/02 04:50

特别篇:
这篇文章主要是进行一些答疑解惑的,为下一步进行操作系统开发奠定坚实基础。
BIOS:前面一直说BIOS,BIOS到底是个什么东西呢?BIOS的全称为 Basic Input and Output System。听名字就懂了,基本输入输出系统,它保存在主板的ROM里面,一般是不可以更改的,但是有的时候,我们启动电脑的时候,是可以进行一些修改的,我觉得可能是保存在BIOS的其他存储芯片里面的,不过也有可能整个BIOS是写在一个存储芯片里面,现在芯片都这么便宜,几块钱能买好几兆的呢,所以至于它是只读还是读写,要看制造主板厂家的设计了。
BIOS启动的设置是可以在启动的开始后按DEL来进入的,这点估计好多人都是知道的,有些BIOS还为此做了花花绿绿的各种选项,当保存退出后,下次启动BIOS,它就会按照设置好的项目进行系统的启动,比如说,你设置了各种硬件的启动顺序,那么它在启动的时候,就按照这个顺序启动,其实这没什么难的,它已经把扫描各种硬件的函数写好了,然后在启动顺序里面,只要修改函数的调用先后就可以了,可以想象的到的。
那么BIOS是怎样启动的呢?前面已经说了,在内存的0x7C00之前,都是BIOS的位置,BIOS会在电脑启动的时候,通过CPU的读写指令,将自己的ROM中的程序,拷贝到内存中去,当然要先检测CPU是否存在, 如果不存在,这一切都是白扯,然后BIOS会按照自己的执行顺序,调用这些在内存中的程序,完成启动。
在启动完成BIOS的最后阶段,它是会去检测用户按了哪些按键的,比如DEL,由于键盘的驱动已经在内存中了,这时候,如果用户按了某个按键,是会触发BIOS的中断项目的,如果触发中断,BIOS就回去看看用户按了哪个键,从而做出反应,有些主板厂家的DEL键是这个意思,有些是那个意思,就是因为这些按键对应的动作不一样,所以结果是不一样的。
在BIOS启动的最后阶段,如果用户不进行任何按键,那么它就去按照用户设定的启动顺序,去扫描软盘、光盘、硬盘、甚至是U盘,来尝试加载里面保存的系统,当然它要做一些判断的,判断的原则就是:这个盘的第0个柱面的第0个扇区里面的东西,这个扇区有多大呢?512个字节,也就是说,512个8位,这些东西要统统加载大内存中去,然后才能做出分析,如果这512个字节的最后两位为 0x55 0xaa 的话, 那么恭喜你,你进入了男生权利,如果不是呢?那么就下一位,直到最后,如果没有找到合适的启动盘,那么就失败退场,你会看到一行英文字母显示:没有操作系统盘之类的。
那么进入男生权利后呢?当然要进行里面程序的执行了,如果你的这个扇区里面有操作系统,但是可惜的是,最后两位不是 0x55 0xaa, 那么可惜不是你,她不会把系统交接给你,知道一见钟情的重要性了吧,你即使有比Windows还要牛逼1w倍的操作系统在里面,但是如果你第一个扇区不合格,对不起,拜拜。
进入男生权利后呢?别忘了你刚刚在内存中加载的磁盘只有512个字节,这可是远远比一个正常的操作系统要小很多的地方啊,所以下面引入另外一个话题:

IPL:initial program loader 的缩写,通常叫做启动程序加载器,如果你的程序的第512个字节最后两位是 0x55 0xaa 的话,那么你这个程序基本上就是一个 IPL了,是不是很简单啊。对的,就是这么简单,但是不简单的事情是,你需要在这512个字节中做很多操作,因为你将要面对的是,这个扇区的下一个扇区,下下个扇区,他们都是你的兄弟不能放下不管吧,你要做很多事情,不能光想着自己,哦对了,你这个扇区如果装有IPL的话,就叫做启动区了,英文是boot sector , 启动区的意思,启动区装有启动程序,专门用来启动整个系统的,当然如果你的系统写的小用不着后面的扇区里面的程序,那你完全可以不加载后面的东西,不过一般操作系统没有那么小,512字节,如果是汉字的话,只能写256个汉字,如果是程序呢?更少,那就是说,你的任务很艰巨,你要将后面的兄弟带起来。
内存:如果去掉内存,计算机基本是运行不起来的,和CPU是一样的,内存为何如此重要,从操作系统的启动过程其实就可以看到的,如果没有内存,BIOS中的程序是没有地方加载的,也就更无法识别鼠标键盘显示器等外部设备了,所以内存很重要,我们现在使用的内存都达到了上G的大小,但是其实BIOS需要的内存非常小,只有 0x7C00 的大小,也就是 31744 个字节,也就是31k的大小。
键盘鼠标硬件:在BIOS都加在好的时候,它其实是会去检测键盘鼠标的,这是怎样检测的呢?说来其实不难,都知道高电平低电平把,当CPU要检测键盘的时候,CPU会调用BIOS中某个中断,当调用某个中断的时候,BIOS就会启动检测那个硬件的电路,将这些信息反馈会CPU,CPU会调用汇编里面什么JNE之类的指令,发现不存在设备,就会报错。

PS

在网上查了一下,好多刷BIOS显卡驱动的, 说什么好呢?小学生又来捣乱了?这分明是胡扯呢,BIOS的意思是什么?基本输入输出,它就是在系统引导的时候,初始化显卡用的,刷得再好,在系统启动的时候,BIOS加载的显卡驱动已经用不到了,交付给操作系统了,所以想要发挥显卡的高级功能,装个显卡驱动岂不是更好吗?网上说刷BIOS的人,都是根本不懂电脑的小白在瞎搞。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 江苏高考选修有d怎么办 西安地铁卡丢了怎么办 酒后头痛怎么办快速缓解疼痛 孕妇感冒头痛怎么办快速缓解疼痛 投稿后发现文章有错误怎么办 如有一方不同意离婚怎么办 孩子上课时注意力不集中怎么办 幼儿上课时注意力不集中怎么办 孩子读初中不爱读书怎么办 老师需要刺激孩子家长怎么办 错觉视界第11关怎么办 爱逃学的学生老师怎么办 论文投稿发现有错误怎么办 孩子上初中数学物理不好怎么办 火山小视频误踢怎么办 铁棍山药弄到手很痒怎么办 山药皮过敏很痒怎么办 貔貅被家人摸了怎么办? 摸了山药很痒怎么办 山药搞得皮肤痒怎么办 手上弄了山药痒怎么办 老板就是个富二代怎么办 中考准考证密码忘了怎么办 准考证号和密码忘了怎么办 安运继续教育考试不及格怎么办 微信的视频打不开怎么办 公众号被取消了怎么办 合同上不写工资怎么办 已经上班了想考个大专文凭怎么办 微信小程序违规暂停服务怎么办 程序锁密码忘了怎么办 忘了应用锁密码怎么办 毕业后发现论文有错误怎么办 柯丽尔打胶片时胶片卡住了怎么办 闽教英语要收费怎么办 高一学生英语差怎么办 高一英语基础差怎么办 老师教育学生学生跑出教室怎么办 研究生课题难出论文怎么办 一审过了上诉期怎么办 民事判决赔偿不给钱怎么办