莴笋小说 > 都市言情 > 黑客传说

第182章 操作系统计划 下

推荐阅读: 婚不由己:冷妻情深不负捡个邪神当女儿秦法无敌女配逆袭之宿主千万不要黑化都市少年医生人世天劫从相亲开始实现梦想重生八零:首长霸宠俏萌妻重生之嫁给前任他哥狂恋你全职法师之我有一个商店仙逝今生友情传吴东周美珠修仙者出山,我震惊了全世界纵天神帝全球迷雾求生重生之零售大亨大腿救命狂少天巫狂豪都市行大郎该吃药了挖矿农女:绝色夫郎拐进门帝少宠婚成瘾:宝贝,不许撩建座基地渡末世灭了天道后我成了死对头的师妹科技玩转修行界贩妖记混在抗战网游争霸:玩家vs汉末群雄团宠大佬三岁半校园重生:最强女特工西游:老六天蓬气哭如来回到唐朝当首辅我有一个魔化技能无衣传霸道校草,呆萌丫头免费咬团宠农门女将军又凶又萌齐帅齐昆仑塌房少女重建指南我将埋葬众神亲爱的少帅大人萧阑传穿书后我渣了反派大佬斗罗系统之通天之路双星山海传思量穿越乱世之仙道阵灵水浒之风云再起我从星空废墟中归来九阳帝神夺嫡雷神皇总裁爹地惹不起我生在宇宙大爆炸之前诡异命纹:开局铭刻十大阎罗官路沉沦快穿撩人:失足boss拯救计划绝尘逍遥录山河剑心超级修真保镖嫡长女深情总裁宠不停我能看到所有BOSS掉落养狐为妃:高冷摄政王夫君无限之开荒者未来狩则快穿追妻:男神,喝汤吗赛博朋克Ro诡秘复苏回到明朝做昏君我的穿越者大军无敌大神豪败家系统歌尽桃花我的精神病明星女友异世之小小法师重生之网络争霸萌娘精灵宝可梦他迟早要和她离婚谎言美人[快穿]想要当店长的我却成了剑豪我有无数技能点都市之蓝拳圣使剑神重生陈牧三国之暴君颜良重生最强穿越至尊狂兵都市游你好,南先生隐婚独宠:BOSS的心尖娇妻全民中医最强三界神话流浪之城子色青春宋画意战少胤我在东欧当倒爷我是赘婿鸿蒙大天尊重生之总有家人想害我你被恋爱脑病毒控制了洪荒之大金乌晚清之乱臣贼子江山作聘之美人为馅少夫人她惊艳全球了超级文明终结者惊世凤鸣:至尊大小姐大唐绿帽王当我嫁给隐藏大佬后天命凰妃穿越后我靠种田成了全民团宠夜夜贪欢:神秘老公不见面精灵世界:我为海洋之主骑马与砍杀我的倾城大小姐只因你不爱我武定诸天女王别这样!我,真不是随便的人!李天命沐晴晴玄幻:我要死了,能见一面吗?雷神皇我的绝美老板
    许毅并不打算编写基于linux核心代码的操作系统因为他认为虽然linux遵循gpl开源协议但实际上是存在隐蔽的知道产权陷阱的。实际上linux的原作者linustonva1ds始终都没有放弃对核心程序版权的要求也就是说只要linus愿意他可以在任何时间收回linux的开放协议将其重新变为独家的专利事实上linus将linux转向gpl协议也经历了这样一个过程。这里很明显存在一个非常重要的问题——如果有朝一日linus将操作系统的内核重新封闭起来那基于那个核心的所有软件产业都得率上一个大跟头。

    这并不是危言耸听仔细分析linux核心的一部分被判定存在侵权的可能性的确存在。事实上linux的代码侵具有多种潜在的可能性而且linux的开机制和代码审核流程并不像自从问世起就遭受版权问题磨练的fneebsd等开放源代氩僮飨低衬茄辖鳌?br>

    自己动手丰衣足食最可*的还是自己编写。

    许毅知道自己一个人的能力有限所以他要做的工作主要是一个引导作用。就同linus一样挑一个头让大家一起参与到这个项目中来。不过目前到底有多少国人在研究这个许毅也不清楚不过总体估计。人数应该不会太多而且大多数人应该还处于一个非常低的水平很多技术并没有掌握。他在网络上搜索了一下相关网站中文方面几乎没有任何一个有关这类信息的网站。只有一个汇编网站稍微提到了一下这方面的资料。这也就意味着并不是许毅现在提出这样一个项目大家立刻就能参与到这个计划中来更为重要的是还兼任着一个教学地目的培养大家的兴趣让大家通过研究相关代码增长这方面的知识。

    和苏兰一起将波士顿玩了个遍之后许毅再次安静了下来他觉得这件事应该着手进行了。不能再拖。

    许毅并不指望刚开始就能编出一个越linux或者indos的操作系统来他现在没有这个能力他只是决定先做出一个实现了简单功能地操作系统一个能够独立在裸机上运行的操作系统。

    linux系统下有一整套可以用来进行操作系统开的工具非常方便。许毅先用汇编写一个boot1oaden程序。这个小程序很重要正如其名boot即启动的意思。loaden意为装载器linux下的boot1oaden是gnub或1i1oindos则是一个名为nt1dn的程序。这个程序的作用是用来把操作系统内核的二进制代码从磁盘复制到内存中(只有在内存中才能得到执行)。还用来设置一些系统初始化的信息。因为许毅打算编写的操作系统是32位地所以它还有一个功能——将系统从16位的实模式跳转进入32位的保护模式。(电脑刚启动的时候是16痊的被称为实模式rm)

    电脑刚启动的时候程序的指针ip是指向bios程序地所以先执行的是bios系统(这是一个固化在flash芯片中的小程序)它负责监测系统地所有资源并把状态如内存大小、硬盘有多少等等存入内存中指定的位置在bios的最后它会检查所有可以启动的磁盘设备如果找到要启动的磁盘(bios中的启动顺序)的第o磁道第一个扇区地511和512字节写着ox55和oxaa数据(可启动标志)。bios就会将该扇区的512字节内容复制进内存的ox7coo处并跳转到该处执行。这也就是为什么所有磁盘(包括软盘和硬盘)的第o磁道的第一扇区为启动扇区的原因如果该扇区出现了物理损坏那么这个磁盘将永远无法作为启动盘使用。

    简单来说boot1oaden程序地作用就是充当中间联络人将操作系统“请”到内存当中去执行。

    由于许毅用的编译器是gcc而gcc并不能直接生成16位的代码所以许毅只能用汇编语言来编写这个boot1oaden了等机器进入32位的保护模式之后许毅再用netbsp;实际上有了这个程序就能够将系统启动了。可以在里面直接通过中断来操作显卡例如直接往显存地址中移进去一个字母中显示器中就会打印出这个字母这相当于是一个最为简单的操作系统了只不地这个操作系统能够完成的功能非常简单只是在显示器中显示一个字母b而已。但是这个就已经可以在裸机上成功运行了。要想复杂一点就是另外编写内核代码用一个跳转语句跳到内核代码的入口地址这样就可以进入其他操作了。(通常是一个大循环这样除百是人工退出不然它就会一直这样运行着)