在计算机中尚不存在操作系统的年代, 程序员需要编写出处理相关的所有程序。用机器语言编写程序,然后再使用开关将程序输入,这一过程非常麻烦。基于此,就有人开发出了仅具有加载和运行功能的监控程序,这就是操作系统的原型。操作系统也被称为基础软件,它是计算机运行时不可或缺的控制程序,以及在控制程序下运转的为其他软件运行提供操作环境的软件的统称。虽然它使用依旧比较麻烦,但比起之前工作量得到了很大的缓解 。操作系统的硬件控制功能,通常是通过一些小的函数集合体的形式来提供的。这些函数及调用函数的行为统称为系统调用也就是应用对操作系统的功能进行调用的意思。另外需要强调的是,操作系统和高级编程语言会使硬件抽象化,在向其他人解释的时候一定要注意,不要说错了哦。
高级编程语言中,也存在着可以直接调用系统调用的编程语言。但用这样的方式做成的应用,移植性并不是很好,如直接调用Windows系统调用的应用,在Linux上显然无法运行通过调用操作系统提供的系统调用,程序员没必要编写直接控制硬件的程序,而且使用高级编程语言,有时甚至无需思考系统调用的存在,这是因为操作系统和高级编程语言能够使硬件抽象化。文件是操作系统对磁盘媒介空间的抽象化,如果直接对硬件进行操作的话,那就变成了通过磁盘用的I/O指定扇区位置对数据进行读写。
在这里插入图片描述。掌握基本的硬件知识,并借助操作系统进行抽象化,可以大大提高编程效率。在操作系统这个运行环境下,应用并不是直接控制硬件,而是通过操作系统间接控制硬件的。操作系统收到应用发出的指令后,首先对指令进行解析,然后再对硬件进行控制。操作系统的硬件控制功能,通常是一些小的函数集合体的形式来提供的,这些函数及调用函数的行为统称为系统调用,也就是应用对操作系统的功能进行调用的意思。用高级编程语言编写的应用在编译后,就转换成了利用系统调用的本地代码。