电脑系统很难开发吗_电脑系统很难开发吗为什么
1.写一个操作系统内核有多难?大概的内容,步骤是什么
2.如果金山公司自己开发一个电脑的操作系统,这很难吗?
3.写一个操作系统内核有多难?大概的内容、步骤是什么?
4.研发一个操作系统要多少时间。多少人。
汇编和C语言
因为你知道最开始计算机运行在实模式下,整台机器由BIOS控制,所以你的任务主要就是先用汇编写一个loader(对的,就像lilo或者grub一样 ;p),用于从实模式跳到保护模式,然后加载你操作系统的内核,最后把控制权交给操作系统。当然你的loader需要是纯二进制,不能是其他的可执行文件格式例如ELF格式等等。
接下来就是操作系统内核的实现了,这个比较复杂,开始的页式储存等恐怕多半要用汇编完成,其后的多任务,文件系统或者是硬盘驱动就可以用纯C写了,要是你写一个宏内核还比较好实现些,微内核光看逻辑脑袋就大了,比较难实现的就在内核上。
具体的实现我也不明白,现在正在复读呢没空搞这个,曾经只写过一个由实模式跳转到保护模式的汇编程序,扩展了下下改成了500来行操作点显存还出了点问题,你要感兴趣自己动手试试吧,挺有意思的。
至于开发方式当然就是那么开发了,我汇编编译器用的nasm,C编译器用的gcc,其他的用到gdb和objdump等等,当然你也可以自己用自己喜欢的开发环境啦,适合就好。
至于虚拟机我都用qemu的,很多人都喜欢用bochs来运行调试自己写的操作系统,不过我编译bochs的时候不知道怎么少了一些库,于是就用了qemu了,编译大约十几分钟,别忘了./configure --help看看调试选项把它打开,要不然你的虚拟机只能运行不能调试你的操作系统的,调试的感觉和gdb差不多撒。
顺便做个广告,编辑器推荐vim,操作系统推荐使用slackware linux,感觉比fedora或者ubuntu等等发行版给力多了,分区格式推荐reiserfs,秒杀ext* ;p
顺便能不能多加点分呀 :D
写一个操作系统内核有多难?大概的内容,步骤是什么
这个问题有点意思。
用硬件做操作系统,难度肯定比软件的要大得多——但是我也不知道究竟大到什么地步了。
如果真的用硬件做成了操作系统,那么操作系统的扩展性怎么体现?比如我要在这个系统上安装一个软件(这里应该只能说是使它实现另外的功能了,因为不存在软件的说法了),那么就只能把这个操作系统的一部份拆开,然后再重新按照需要来重新组装。如果这个“软件”不需要了,要卸载,那么又只好先把这软件拆掉,然后把操作系统还要恢复原样。。。。这里面的工程量多大啊?
其实从另一个角度来说,现在的电脑软件其实也可以算是硬件的。因为所有的电脑软件存贮都是通过磁盘上的磁性微粒的南北极不同排列顺序来实现,它的运行也是通过芯片内电子的运动而实现。所有这些磁粒、电子都是真实存在的硬件,只不过是因为它体积太过微小导致我们肉眼无法看到而已。你说呢?换个法子来说,一根杠杆肯定不是软件吧?把它缩小的只有几个原子排成一排那么大,它仍然是硬件,是不是?如果成万亿根这样的杠杆组合起来,它也是硬件是不是?电脑里面磁盘上的磁微粒,其实就是超级细小的磁铁而已,就像你家里低音炮里面那磁铁一个样,只是大小的区别而已。它与原子比起来,那还是超级巨大的物体了。芯片里面的电子要更小,但它仍然是物理存在的硬件。。。
对计算机原理没多少理解的人可能看不懂我说的意思。把电脑软件说成是硬件,估计很多人要骂我白痴了,呵呵。有兴趣的欢迎一起讨论,喷糟的就算了,谢谢合作。
如果金山公司自己开发一个电脑的操作系统,这很难吗?
“一个好一点儿的计算机硕士毕业的学生。写一个操作系统的内核绝对是应该办到而且肯定可以办到的事儿。” ------这句话我们可以理解为”一个好的计算机硕士掌握的理论知识足够他搭建起一个简单的操作系统框架“。
我上操作系统课(大二)的第一天就问我的老师,学完了这门课可以自己实现一个操作系统了吗?老师说:”你可以基本掌握操作系统中要处理的主要问题,但是即使实现最简单的五脏俱全的操作系统还需要掌握很多很多东西,而且前提是你已经有很不错的代码能力。“
回到题目上来,我们要实现一个简单的操作系统,最先需要解决的是哪些问题?这个问题我相信翻开任何一本操作系统书都可以得到答案,一般都是操作系统书的前五,六章内容(第一章基本是操作系统概念及发展历史)。
包括:
进程管理
存储管理
文件系统
输入/输出
这些大部分是讨论理论类的书,比如我们上课用的书是西电汤子瀛老师的《计算机操作系统》,后来自己为了深入学习买了Andrew S. Tanenbaum的《Modern Operating Systems》。
如果想写个操作系统,除了理论知识外,动手之前最好先看看操作系统源代码,Linux的代码都是开源的,可以先学习学习。不过对于我们这种初学者千万不要看最新的Linux内核代码,因为那是很多人的杰作,可能一辈子都看不完。最好先看看国内同济大学赵炯基于0.11的《Linux完全注释》,即使只看懂30%也至会让自己懂很多之前不知道的东西。
理论类的书很少有提到Bootload问题的,就是加电之后从哪里开始执行的部分。仅仅是这个步骤也需要花不少时间去了解CPU知识,汇编语言知识等,相当不容易。不话说回来,这部分如果能处理好之后会发现组成原理,汇编语言,微机原理的知识被自己运用到了,成就感巨大。这部分内容,可以参看MIT的课程6.828 Operating System Engineering的课程,Google一下就能搜到不少大牛关于这门课的博客。如果英语不太好我记得华中科技大学有一个叫32位操作系统实践的课,资料都放到网上了,看起来很不错。
过了这一关,用《深入理解计算机系统》加上《现代操作系统》看一下虚拟存储器的内容,这两本书这部分说得都很棒。虚拟存储器的概念贯穿所有,如果能弄懂,对很多方面都有很大的帮助,不仅仅是操作系统这块。有了虚拟存储器概念之后对于链接,加载等知识理解就会深刻许多。 不过,这部分内容也需要对硬件部分有所了解,又是一坑。
之后回到进程上来之后,终于可以把工作重心从硬件部分转移过来了。但是我们又将面对进程创建,进程调度,进程通信三大问题,既然是简单实现,就先不考虑线程的事。算法书中会给很多,不过这些算法都是有一定的局限性,比如调度算法,对应的调度算法优劣差异很大,至于如何抉择就看个人需求。不过话说回来,操作系统里的”算法“和ACM里的算法在难度上差很多,还是比较容易实现的。
内容太多了,就不完全展开了,后面就看自己“耐力”了,写操作系统是需要坚持很长实践+大量知识积累的。有些问题还涉及到哲学的观点,这里推荐上海交大邹恒明教授的《操作系统之哲学原理》。除了理论方面的书,现在市面上也有直接教如何实现一个操作系统的,比如《Orange'S:一个操作系统的实现》和《30天自制操作系统》(仅有的几本“XX天XX”而不是烂书的书),起步阶段跟着这些书来还是很不错的。
总之,实现最最基本的功能也许可以做到。实现功能强大,鲁棒性强的操作系统极难。
写一个操作系统内核有多难?大概的内容、步骤是什么?
钱是问题。WPS
本身就卖不出去,哪里有钱去开发系统?
另外,这个开发系统是怎么开发?
完全从
0
开始?完全和微软的
Windows
不兼容(兼容是侵权的)。那么这个系统又有多大的市场?
开发操作系统一点都不困难,一个人就可以开发,只不过这个系统没有任何的功能,还要另外准备
2000
人,用5年时间来开发基本环境,之后再找
20000
人开发应用软件。这些成本都是可以计量的。问题在于这些软件还都不能侵权
研发一个操作系统要多少时间。多少人。
一般计算机的本科生(大一的会点C语言,有点耐心,3个月)就可以了。。。有一本日本人写的书叫《30天自制操作系统》一步一步带你写出一个操作系统内核(可以写到光盘上,从光盘启动,第一节就叫你如何实现一个“hello,world”),一般计算机的本科生(就是会一点点C语言的那种理工科生),有点耐心的话,每天2~3小时,三个月基本能够看完,跟着撸出一个操作系统内核。根本不需要什么硕士水平。不需要前面说的各种文档。事实上作者的目标甚至是中学生也能看得懂,感觉基本做到了(最后也就几十k的代码)。写完之后会很有成就感。
我的第一本计算机厚书就是《30天自制操作系统》。写出来有什么鼠标键盘输入,汉字显示(书中是日文显示,由于日文中有汉字,所以其实可以算汉字显示),多进程(多任务),段页式内存管理,各种驱动,定时器,文件系统(读硬盘,文件目录和内容读取等),窗口,音乐播放,内核保护,api,小游戏,播放,应有尽有。
如果大学能够跟着写完,绝对,毕业面试的时候能吹嘘一下。。。当然里面的c语言编译器不是自己写的(编译器工作量真不小)。。。我当初就是看不惯国内那些书在那里装比,没有真正的拿得出手的科研成果,然后在那里装比的各种著作。然后人家这本,哈哈,真的就能够跟着撸出一个操作系统内核,而且,绝对是效率不错,结构可以的东西。
VISTA ?
Windows 95只有1500万行代码,Windows 98有1800万行代码,Windows XP则发展到3500万行。而到了Vista系统,代码行数达到了惊人的5000万行,比XP多出了40%,重写60%也就是3000万行。
5年的开发周期耗资75亿美元
6000多名研发人员,超过3000万行源代码,加入2700多项新功能.可以说是世界上最大的软件工程
暴强!!!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。