初期的操作系统 = 监控程序 + 基本的输入输出程序
操作系统功能的历史
在计算机尚不存在操作系统的年代,完全没有任何程序,因此程序员就需要编写出处理程序相关的所有程序。用机器误言编写程序再使用开关将程序输入,过于麻烦。于是有人开发出了仅具有加载和运行功能的监控程序,这就是操作系统的原型。
随着时代的发展,人们在利用监控程序编写程序的过程上时, 发现了很多程序有太多共通的部分。于是基本的输入输出程序,硬件控制程序,编程语言处理器能及各种实用程序,被加到了监控程序中。
所以操作系统本身并不是单独的程序,而是多个程序的集合体。
要意识到操作系统的存在
程序员制作的不是硬件,而是在利用操作系统功能的应用。
不过要想成为一个全面的程序员,掌握基本的硬件的硬件知识,并借助操作系统进行抽象化,可以大大提高编程效率。否则,遇到问题时,你就无法找到解决办法。
(计算机中都安装有保存日期和时间的实现时钟)
系统调用和高级编程语言的移植性
操作系统的硬件控制功能,通常是通过一些小的函数集合体的形式来提供的。这些函数及调用函数的行为统称为系统调用。也就是应用对操作系统的功能进行调用的意思。
高级编程语言的机制就是,使用独立的函数名,然后再编译时将其转换成相应操作系统的系统调用(也可能是多个系统调用的组合)。
操作系统和高级编程语言使用硬件抽象化
通过使用操作系统提供的系统调用,程序员就没有必要编写直接控制硬件的程序了。而且,通过使用高级编程语言,有时甚至也无需考虑系统调用的存在。这是因为操作系统和高级编程语言能够使硬件抽象化。
网络功能和数据库功能,虽并不是操作系统本身不可欠缺的功能,但因为它们和操作系统很接近,所以被统称为中间件而不是应用。
程序是操作系统、中间件、应用等所有软件的统称。
如果应用没有正常运行的话,那么很可能就不是硬件的问题,而是操作系统的使用方法出现了偏差。