应用程序和操作系统的分别?

应用程序不管是用什么语言写的到最后都要被翻译成cpu能够执行的语言,那要操作系统干什么?既然应用程序都要被翻译成机器语言,那为什么各系统间的应用程序不能通用?比如windows的应用程序不能放到苹果或linux系统上?谁能给我解释一下?

我真的很香知道,请知道 的人告诉我下!!!
拜谢!!!

呵呵,操作系统是管理硬件的。
假如没有操作系统,那么你的程序就要访问硬件来操作,比如你要访问硬盘什么的,都需要你自己去直接打交道。
而有了操作系统帮你管理,你的程序只需要调用一个操作系统给你的API,即应用程序借口就可以完成整个到硬件的过程。
比如我们用的最简单的函数
printf输出到屏幕这个函数。你只需要一个函数就能完成在屏幕是上输出字符串。
现在你想象下假如没有操作系统,你知道怎么在屏幕上输出一个字符串吗?
这可就麻烦咯!呵明白了没!
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-01-26
因为不同厂商的CPU的硬件指令不同,就算同一家厂商的CPU也会有不同的硬件指令,比如CPU架构不同,CPU可以执行的指令也会有所不同。
在硬件上,不单单只有CPU,比如硬盘,内存等,包括外部打印机、扫描仪等,对这些硬件的设备操作指令也不同,而且还有不同的厂商。
当程序员去编写程序的时候,某些情况下,既要了解硬件指令,又要去编写软件程序,(很早以前是这样的,当时还没有这么多设备,不过当时写程序也是非常累的事,效率相对也很低),那么操作系统由此诞生了,也是硬件的管理由操作系统来管理,程序员只需专心编写自己的软件程序即可了,大大提高了开发速度。至于底层工作就由操作系统来完成,比如你说的应用程序代码编译成CPU能够执行的指令,即机器码(有些语言还有中间码,实现跨平台,如Java、C#,然后再即时翻译成机器码)。当然操作系统还有很多工作要做,比如内存管理,I/O管理,CPU管理,也就是进程的管理,安全权限等等非常多的事。
至于各系统间的应用程序不能通用,也是因为在应用程序的编译上不同,驱动程序不同,系统编程接口不同,包括编程语言本身机制不同等等多种原因,为什么会不同,这跟厂商的利益也大有关系,不想被某一家一统天下,当然也有因为不同的环境、不同的要求,所以要解决这些问题要求也不能完全通用。
总之原因有相当多,等你学习之后,自然会慢慢明白的。
你的问题具体解答,可以考虑这么几门课程或相关书籍,“计算机原理,计算机体系结构,操作系统,汇编语言,C++或Java“ 如果针对不同的系统,你也可以看看windows 内核或Linux内核相关书籍,但这些书籍有些枯燥,特别刚开始时,可能也会觉得有难度,只要你肯用心,是能够征服的,一旦你能够熟练掌握,那么你的计算机知识将有质的飞跃。本回答被网友采纳
相似回答