“我们知道没有插电的电脑就是一堆废铁,那么插了电的电源是什么呢?”答案是:“一堆会电的废人”。这是因为没有软件的运行,电脑的功能就无法发挥。就好像没有了灵魂的身躯也不过是行尸走肉,重点在于软件(灵魂)。所以下面我们要了解一下软件上是什么。
电脑软件
一般来说,目前的电脑系统将软件分为两大类,一类是系统软件,另一类是应用程序。但我还是认为我们还是要了解一下什么是程序,尤其是机器语言程序,了解了之后我们就会明白电脑为什么需要操作系统。
应用程序
机器语言程序与编译型程序
我们以前知道电脑只认识0和1而已,而且电脑最重要的运算与逻辑判断是在CPU内部,而CPU具有指令集,。因此,我们需要CPU帮忙时,就得要参考指令集的内容,然后编写让CPU读得懂的脚本给CPU执行,这样就能够让CPU运行。
CPU
这样的流程也有几个麻烦的地方:
需要了解机器语言:机器只认识0与1,因此你必须学习直接写给机器看的语言,这个相当难。
需要了解所以硬件的相关功能函数:因为你的程序是写给程序看的,当然你的参考机器本身的功能,然后针对各功能区编写程序代码。例如你要让DVD影片能够播放,那你就得参考DVD光驱的硬件信息才行。
机器语言
程序不具有可移植性:每个CPU都有独特的指令集,同样的,每个硬件都有其功能函数。因此,你为电脑A写的程序,理论上没有办法在B的电脑上面运行,而且程序代码的修改非常困难。因为是机器码,并不是人类看得懂的程序语言。
程序语言
程序具有专一性:因为这样的程序必须要争对硬件功能函数来编写,如果开发了一个浏览器程序,想要再开发文件管理科程序时,还是得从参考硬件的功能函数来继续编写。
那怎么解决那?为了解决这个问题,电脑科学家设计出一种让人看得懂的语言,然后创造一种编译器将这些人类写的程序语言转译成机器看得懂的机器码,如此一来我们修改与编写程序就变得容易多了。目前常见的编译器有C+、java等。机器语言与高级程序语言的差别如下图所示:
java语言
从图中我们可以看到高级程序语言是很容易查看的。所以将程序的修改问题处理完毕。问题是,在这样的环境下面我们还是要考虑整体的硬件系统来设计程序。
举例来说,当你要运行的数据写入内存中,你就要自行分配一个内存出来让自己的数据能够填上去,所以你还是要了解到内存的地址是如何定位。眼泪还是不知不觉地流了出来,怎么写程序这么麻烦?
内存
为了要解决硬件方面老是需要重复编写句柄的问题,所以就有操作系统(OS)的出现,什么是操作系统?下面我就来谈一谈。
领取专属 10元无门槛券
私享最新 技术干货