电脑版
首页

搜索 繁体

第182章黑客传说作系统计划xia(1/2)

本站新(短)域名:xiguashuwu.com

第182章 cao2作系统计划(下)

许毅并不打算编写基于Linuxhe心代码的cao2作系统,因为他认为,虽然Linux遵循GPL开源协议,但实际上是存在隐蔽的知dao产权陷阱的。实际上Linux的原作者LinusTo女alds始终都没有放弃对he心程序版权的要求,也就是说,只要Linus愿意,他可以在任何时间收回Linux的开放协议,将其重新变为独家的专利,事实上Linus将Linux转向GPL协议也经历了这样一个过程。这里,很明显存在一个非常重要的问题…如果有朝一日,Linus将cao2作系统的内he重新封闭起来,那基于那个he心的所有ruan件产业都得率上一个大跟tou。

这并不是危言耸听,仔细分析,Linuxhe心的一bu分被判定存在侵权的可能xing的确存在。事实上,Linux的代码侵ju有多zhong潜在的可能xing,而且Linux的开发机制和代码审heliu程并不像自从问世起就遭受版权问题磨练的FneeBSD等开放源代氩僮飨低衬茄严谨。緽R>

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

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

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

许毅并不指望刚开始就能编chu一个超越Linux或者Windows的cao2作系统来,他现在没有这个能力,他只是决定先zuochu一个实现了简单功能地cao2作系统,一个能够独立在luo机上运行的cao2作系统。

Linux系统下有一整tao可以用来进行cao2作系统开发的工ju,非常方便。许毅首先用汇编写一个Bootloaden程序。这个小程序很重要,正如其名,Boot即启动的意思。Loaden意为装载qi,Linux下的波otloaden是gnub或lilo,windows则是一个名为ntldn的程序。这个程序的作用是用来把cao2作系统内he的二进制代码从磁盘复制到内存中(只有在内存中才能得到执行)。还用来设置一些系统初始化的信息。因为许毅打算编写的cao2作系统是32位地,所以它还有一个功能…将系统从16位的实模式tiao转进入32位的保护模式。(电脑刚启动的时候是16痊的,被称为实模式RM)

电脑刚启动的时候,程序的指针IP是指向BIOS程序地,所以首先执行的是BIOS系统(这是一个固化在FLASHrui片中的小程序),它负责监测系统地所有资源,并把状态,如内存大小、ying盘有多少等等,存入内存中指定的位置,在BIOS的最后,它会检查所有可以启动的磁盘设备,如果找到要启动的磁盘(BIOS中的启动顺序)的第0磁dao,第一个扇区地511和512字节写着0x55和0xaa数据(可启动标志)。BIOS就会将该扇区的512字节内容复制进内存的ox7c00chu1,并tiao转到该chu1执行。这也就是为什么所有磁盘(包括ruan盘和ying盘)的第0磁dao的第一扇区为启动扇区的原因,如果该扇区chu现了wu理损坏,那么这个磁盘将永远无法作为启动盘使用。

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

由于许毅用的编译qi是GCC,而GCC并不能直接生成16位的代码,所以许毅只能用汇编语言来编写这个波otloaden了,等机qi进入32位的保护模式之后,许毅再用C语言来开发其他内he代码。

实际上,有了这个程序,就能够将系统启动了。可以在里面直接通过中断来cao2作显卡,例如直接往显存地址中移进

热门小说推荐

最近更新小说