开发操作系统,要什么样的电脑配置?开发系统内核有多难?有知识方面的人...
发布网友
发布时间:2024-10-05 01:36
我来回答
共1个回答
热心网友
时间:2024-10-25 13:01
一丢丢硬件基础、出奇的逻辑能力、汇编、C。
理论上拥有以上4点你就可以开发出自己的操作系统了,牛逼点C都可以不用,单纯的用汇编(亦或者用其他语言,比如C++),再牛逼点,,你只要有个记事本软件,理论上只要是计算机上的一切东西你都能写出来,比如用0和1写一个视频,用0和1写一个操作系统。
嗯,上面说的牛逼呢。。。看你怎么理解吧。。
OK,现在步入正题。
一丢丢硬件基础是指你需要理解计算机的运作原理,CPU的大概结构等,最主要的是要理解计算机是只认识1和0就OK了。
出奇的逻辑能力呢是因为一个操作系统是设计到很多算法的,单纯的CPU能提供给你的指令只有加减、比较、求反等,所以很多系统算法以及实现是要你脑洞大开才能搞出来的。
汇编是因为CPU只认识0和1,而你用记事本去编的话又太扯淡了,所以你要用汇编,因为汇编代码编译后就是机器码,每个汇编指令和机器码都是一一对应的。
C是因为汇编其实说白了就是高级点的机器语言,如果完全拿他来写操作系统的话会死人的,所以要用一门稍微高级点的语言来写,为啥我说用C呢,因为C对系统的依赖最小(比如你学C++语言的时候肯定第一次接触的就是printf("hello word\n"),但是因为这个函数是操作系统提供给你的,所以你用来写操作系统的时候这个代码都跑不起来),而你的系统没开发完成之前系统都没得,用别的语言跑不起来,C因为依赖不多,所以用起来方便。
动工之前再了解下电脑启动的原理,按下电源键后主板BIOS设置的程序会去看下启动盘第一个扇区最后两个字节是不是55 AA(这个应该是最先设计出电脑的人随便设置的两个数字,我也不知道为啥是这两个),如果是55 AA,那么计算机就认为这个扇区是一个启动程序,CPU就会加载这个扇区的程序并启动,这个时候这个启动程序就能启动更多的依赖让别的程序也运行起来,最终就成了我们的操作系统了。。。
现在你就可以去动工了,第一步把你的硬盘的启动分区的第一个扇区设置成55 AA吧。。