第375章 没有操作系统怎么办?



    现代计算机开机后,会执行一段固化在只读存储器(ROM)中的程序。
   这段程序叫做“BasicInputOutputSystem”,简称“BIOS”,中文含义是“基本输入输出系统”。
   BIOS主要有三个功能:硬件自检、设置CMOS里的参数,以及加载操作系统。
   很多人都会把BIOS和CMOS搞混。
   事实上,COMS只是一个存储器的型号,在计算机中,一般用于保存基本的硬件参数。
   CMOS断电后,里面存储的内容就会消失,因此一般会在主板上,安装一块纽扣电池,专门用来给CMOS供电……
   现在LED阵列上显示的,就是BIOS自检没有通过,所给出的错误信息。
   【KeyboardInterfaceError】
   【PressF1toResume】
   这两行的意思很简单,就是在提醒用户:你没有键盘,或者键盘坏了……
   江寒看到这一幕,却十分欣喜。
   能看到这个错误提示,意味着内存、CPU等主要部件,都通过了自检程序的校验。
   接下来,只要给这台计算机再搭载一个键盘,就可以愉快地玩耍啦。
   那么,如何搞到键盘呢?
   如果不想费事的话,其实可以在商品列表中买一个。
   价格并不贵,最便宜的型号,只需要100多万积分就能买一个。
   与动辄几千万、几个亿的显示器相比,这点积分根本就不算什么。
   但可惜的是,江寒手头有点紧张,买完主要硬件后,剩余的积分连最便宜的键盘也买不起了。
   好吧,键盘这个玩意,其实结构非常简单。
   江寒稍微思考了一下,就决定自己DIY一个。
   既能节约学以致用积分,顺便还能学到一点东西……
   江寒先回到现实,拿起笔记本,在网上查找了起来。
   很快,他就收集到了许多关于键盘的文献。
   在极客社区里,DIY键盘只是入门级别的小东西。
   原理简单、电路简单、结构……
   如果不追求手感的话,结构也是很简单的。
   江寒细心研究了一下,很快就吃透了机械键盘的原理和实现方式,连电路结构都默背了下来。
   随后,他就再次进入虚拟空间,买了一些空白图纸,把键盘的各部分电路,都画了出来。
   然后把图纸回收掉,再去图纸列表里,花费了一点积分,让系统帮忙自动构建了出来。
   有了电路后,剩下的部分就简单了。
   买几块硬塑板,制造一个小箱子,当做键盘的外壳,再买一堆按钮开关,来代替按键……
   江寒很快就搞定了键盘的主体结构。
   接下来,他就将电路封装进了箱子里,然后将每个按钮开关,都用细导线连接到了电路的IO部分。
   这样,一个山寨气息浓烈的箱式键盘,到此就基本大功告成了。
   江寒将键盘的输出线,连接到了主板的AT接口上,然后重启了一下286计算机。
   随着“滴”的一声,自检顺利地通过了,没有再出现和键盘有关的错误提示。
   这说明键盘本身没有任何问题,无论是质量上的,还是设计上的。
   江寒欣然一笑。
   今天的运气还算不错,第一次做键盘就取得了成功。
   当然,他也没忘了在心里感谢一下,那些在网上共享资料的,都是好人哪……
   可惜的是,江寒并没有高兴太久。
   计算机通过了BIOS自检后,LED上的画面继续滚动,但很快又停了下来。
   【operatingsystemnotfound】
   看到这个提示,江寒不由得叹了口气。
   这个提示的意思是:“找不到操作系统。”
   自己花了那么多积分,才买来的20MB大容量硬盘,居然连个DOS都不给预装。
   上哪说理去?
   对于计算机来说,没有操作系统,可以说寸步难行。
   那么,怎么解决这个问题呢?
   江寒思索了起来。
   万事开头难。
   先不说自己有没有能力,自行编写一个操作系统。
   就算真能克服种种困难,把操作系统写出来,也得有办法加载到硬盘中去才行。
   震惊商城里倒是也能买到各种操作系统的源代码。
   但购买点数够不够,只是一方面。
   同样的问题,买来之后怎么写入到硬盘里。
   在计算机没有安装任何操作系统时,如何将程序写入到硬盘呢?
   江寒想起一个很久以前听过的笑话。
   如果你买了一台全新的裸机,手头上又没有系统安装盘,你可以这样做:
   找一部电话机,最好是带按键的,除了0和1,其他的按钮全都坏掉也无所谓。
   然后找一根电话线,插在电话上,另一头用打火机烧一下,撸掉多余的包皮,接在硬盘的数据线接口上。
   接下来,就可以用电话上的0和1两个键,输入机器码编写操作系统、调试运行了。
   看,很简单吧?
   那么问题来了:如果连BIOS都没有,根本无法驱动硬盘,又该怎么办呢?
   也好办。
   首先,找一个螺丝刀,把硬盘拆开,再找一根针,在硬盘的盘片上戳。
   这样硬盘里就被写上数据了……
   当然,以上纯属扯淡。
   真正的裸机编程,肯定要比这个复杂一些。
   比如,可以仿照之前操作“雨菲一型”的办法,设计一组开关。
   先切断存储器和数据总线的链接,然后操作开关,就可以在内存中写入机器指令了。
   要不然,做一台纸带机,用在纸带上打孔的方式,来代替手动按开关,将程序输入到电脑里,也是可行的。
   但这些办法做起来都太费事了。
   如果有更简单的办法,又何必这么麻烦呢?
   江寒重启了一下286,然后在自检的过程中,按住了“DELETE”键。
   这样,自检结束后,就跳过了系统自举阶段,进入了BIOS的设置程序中。
   BIOS设置界面非常简单,江寒很快在其中找到了一个关于ROMBASIC的选项。
   是一款十分古老的处理器,只集成了13万个晶体管,最大主频仅有20MHz。
   但就是这么落后的机器,却包含了一些十分有意思的功能。
   在这种早期主板的ROM芯片中,常常会固化一个BASIC解释程序。
   当相关的选项开启时,如果系统启动时找不到可引导的系统,将会进入ROMBASIC解释程序。
   而不像后来的先进计算机那样,只给出一个错误信息,之后就什么也干不了了。
   这个选项默认处于“关闭”状态,江寒将其设置为“开启”,然后按“F10”保存、退出。
   系统重新启动,很快屏幕上就出现了“IBMPersonalComputerBasic1.0”、“copyright1981”字样。
   屏幕中还出现了一个一闪一闪的“_”,这就是提示符光标了。
   屏幕的最下方,还有一行命令提示:“1、list,2、load,3、run……
   现在就可以利用这个不到10KB的BASIC解释程序,来干点什么了。
   这个BASIC语言解释器,可以说相当简陋,很多功能都没有内建,连浮点运算都不支持。
   但厉害的是,却可以通过IO指令,直接读取端口和内存,以及调用一些系统中断。
   这就给了用户很大的操作空间。
   江寒先退出虚拟空间,去CSDN上找了几份关于ROMBASIC的教程,并下载了一份MSDOS3.31的软盘镜像文件。
   没错,对于来说,跑太高版本的DOS,还是有些力不从心的。
   而DOS3.31的功能和复杂度,刚好处于一个微妙的平衡点。
   既不像6.22那样,占用太多可用内存;又不会像更早期的版本那样太过简陋,能干的事情太少。……
   接下来,江寒就把MSDOS3.31对软盘镜像解压了一下,然后用一款非常牛掰的、能支持DOS软件的反汇编工具,对安装程序进行了静态分析。
   再结合网上找来的那些资料,他很快就理解了MSDOS的运行机制,并搞清楚了硬盘主引导记录(MBR)的格式。
   接下来,江寒就回到了虚拟空间,然后在ROMBASIC里,编写了一段程序。
   这段程序执行时,会调用BIOS的INT13H中断,对磁盘进行读写。
   虽然做起来很麻烦,但至少突破了最大的阻碍,可以把数据写入硬盘了……
  


︾ ︾ ︾ ︾ ︾ ︾

==》免费全网热播短剧9999+ : 98YE.Com 《==

︽ ︽ ︽ ︽ ︽ ︽


打开《漫豆包: Mdb55.Com 》,看同款小说改编漫画~~~

前往微信或app阅读最新章节

本站所有小说均来源于会员自主上传,如侵犯你的权益请联系我们,我们会尽快删除。
新书网提供最新免费小说阅读服务,同时为您推荐热门都市小说、言情小说、玄幻小说、科幻小说等优秀作品
作品自动收集于网络,若侵犯权利请联系admin###nilove.net ,我们将三个工作日内删除处理。
版权所有 © XinShuW.COM All Rights Reserved 浙ICP备15012425号-2