自制操作系统---eposide 1

本文从计算机启动的源头出发,详细解析了从按下启动按钮到BIOS加载硬件驱动,再到操作系统启动的全过程。包括主板与CPU的交互、BIOS系统的运作机制以及如何通过修改硬盘分区来实现简易的系统加密。最后,通过一段汇编代码实例展示了如何调用显卡驱动在屏幕上显示字符,深入浅出地讲解了操作系统加载的基本原理。

引导入门:
站在一个外行的角度,所谓操作系统,其实是不存在的(你在说什么 ?), 是的,不存在的,不管你信不信,你都要接受这个现实,你可以想象一下,电脑是如何启动的:

  1. 按动启动按钮,这里可能由一个简单的电路来实现接收按钮的按下操作,这可不是普通的船型开关,所以在电脑启动前,电脑必须加电的,船型开关,比如家里的电灯就不需要,直接上下拨动就表示开或者关
  2. 最先加电的是主板,它会尝试和CPU进行联络,确保CPU一切正常后,它会通过CPU的电路先将BIOS中存储的一部分硬件驱动加载到内存中去, 所谓驱动,其实就是一些机器码,你可以想像得到,这时候没有java没有C没有任何编程语言,只有电路。
  3. 加载好了之后,主板尝试启动BIOS系统,它确实是一个系统,在内存中已经加载好了,这时候指令寄存器会确保跳转到内存中正确的位置进行启动
  4. BIOS启动后,根据已经加载的硬件驱动,进行硬件的查找,比如显卡,键盘,鼠标,硬盘或者软驱,它会在找不到一些硬件的时候报错,当然有些坑爹的BIOS会在找不到键盘的时候进行如下提示:keyboard not found , press f1 to continue
  5. 然后,BIOS会根据用户设置的启动方式,按照启动顺序挨着盘地在可以搜索到的盘中查找操作系统,它查找操作系统的方式和我们正常人可不一样,当看到一个盘的时候,它把它的第一个柱面的第一个扇区拷贝到内存中去,然后查看第512个字节的位置,如果是一个启动盘,则它会继续执行里面的内容,这也就是所谓的启动区了,如果不是,pass,下一个
  6. 如果找到启动区,BIOS的就会把接力棒交给启动区去执行了,这时候启动区仍然可以调用BIOS已经加载好在内存中的驱动,这就是为啥我们写操作系统的时候,可以调用显卡驱动的原因。
  7. 那么如何让BIOS启动的时候,报系统找不到的错误呢?so easy, 修改硬盘的第一个柱面第一个扇区的最后两个字符,甚至只修改一个就行,只要不是 0x55,0xaa 就可以,这样玩风险很大,玩不好挂掉整个硬盘不要怪我。不过你也可以为此专门只做只有你自己才可以打开的操作系统,你可以写个小程序,专门修改这个位置的字符,就达到了加密的目的,当你想启动系统的时候 ,再把它改过来。
  8. 正式接管系统之后,你可以做任何事情了,这时候想效用一下显卡显示个字符之类的都是小菜一叠。

    下面就是直接调用显卡驱动,在屏幕上面显示一个字符的汇编源程序

MOV AL,'H'
MOV AH,0Xe
MOV BX,15
INT 0X10

RESB 0x1fe-$
DB 0x55,0xaa

这段程序的解释:
既然我们的操作系统,是写在BIOS已经加载好了之后,这时候我们已经可以加载BIOS为我们准备的显卡驱动了(显卡驱动?不是要等操作系统安装后安装吗?这里是什么?其实,每个显卡在设计的时候,都会遵循一个默认的显卡驱动,这个驱动可能很简单不会发挥出你显卡真正的威力,但是这是必要的,因为BIOS启动的时候,需要显示的东西,要通过这个显卡驱动完成,所以说这个显卡驱动,每个显卡都一样,你总不会说出了一款显卡,就要在BIOS里面加入新的驱动吧。)

我们这个程序,其实就是调用显卡驱动完成的,没有什么神奇的地方,后面的RESB 0x1fe- 符号,其实是计算前面已经有多少个字节的意思,所以 0x1fe正好就到了该写那两个字符的位置了,你懂的。
DB意思就是写一个字符,后面跟了 0x55 0xaa 就是表示写两个字符的意思,你懂的。

那么我们调用显卡显示字符,其实就是4行:

MOV AL,'H' ;
MOV AH,0Xe ;显示一个文字
MOV BX,15  ;调用显卡BIOS
INT 0X10   ;调用显卡BIOS

怎们样,简单不?这里甚至可以调用颜色呢:MOV BX,15 中传入的颜色值

今天写到这里,先上班了。

乐播投屏是一款简单好用、功能强大的专业投屏软件,支持手机投屏电视、手机投电脑、电脑投电视等多种投屏方式。 多端兼容与跨网投屏:支持手机、平板、电脑等多种设备之间的自由组合投屏,且无需连接 WiFi,通过跨屏技术打破网络限制,扫一扫即可投屏。 广泛的应用支持:支持 10000+APP 投屏,包括综合视频、网盘与浏览器、美韩剧、斗鱼、虎牙等直播平台,还能将央视、湖南卫视等各大卫视的直播内容一键投屏。 高清流畅投屏体验:腾讯独家智能音画调校技术,支持 4K 高清画质、240Hz 超高帧率,低延迟不卡顿,能为用户提供更高清、流畅的视觉享受。 会议办公功能强大:拥有全球唯一的 “超级投屏空间”,扫码即投,无需安装。支持多人共享投屏、远程协作批注,PPT、Excel、视频等文件都能流畅展示,还具备企业级安全加密,保障会议资料不泄露。 多人互动功能:支持多人投屏,邀请好友加入投屏互动,远程也可加入。同时具备一屏多显、语音互动功能,支持多人连麦,实时语音交流。 文件支持全面:支持 PPT、PDF、Word、Excel 等办公文件,以及视频、图片等多种类型文件的投屏,还支持网盘直投,无需下载和转格式。 特色功能丰富:投屏时可同步录制投屏画面,部分版本还支持通过触控屏或电视端外接鼠标反控电脑,以及在投屏过程中用画笔实时标注等功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值