认识计算机系列4

操作系统

操作系统介绍

利用计算机运行程序大部分都是为了提高处理效率。例如,Microsoft Word这样的文字处理软件是用来提高文本文件处理效率的程序,Microsoft Excel等表格计算软件是用来提高账务表格等处理效率的程序。为了提高特定处理效率的程序总称为“应用”。

程序员的工作就是编写各种各样的应用来提高业务效率。而应用的运行环境,也就是操作系统。

在计算机中尚不存在操作系统的年代,完全没有任何程序,因此程序员就需要编写出处理相关的所有程序。用机器语言编写程序,然后再使用开关将程序输入,这一过程非常麻烦。

于是,有人开发出了仅具有加载和运行功能的监控程序,这就是操作系统的原型,通过事先启动监控程序,程序员就可以根据需要将各种程序加载到内存中运行。随着时代的发展,人们在利用监控程序编写程序的过程中,发现很多程序都有共通的部分,例如,通过键盘输入文字数据、往显示器输出文字数据等。这些处理,在任何程序下都是一样的,因此,基本的输入输出部分的程序就被追加到了监控程序中。初期的操作系统就这样诞生了(如下图所示)

之后,随着时代的进一步发展,开始有更多的功能被追加到监控程序中之中,比如,为了方便程序员的硬件控制程序、编程语言处理器(汇编、编译、解析)以及各种实用程序等,结果就形成了和现在相差不大的操作系统。因此,操作系统本身并不是单独的程序,而是多个程序的集合体(如下图所示)

在操作系统诞生以后,就没有必要再编写直接控制硬件的程序了。这样一来,制作应用的程序员就逐渐同硬件隔离开了。应用并不是直接控制硬件而是由操作系统间接完成(应用面向操作系统而不是直接控制硬件),程序员就不需要过多的关注硬件。

操作系统的硬件控制功能,通常是通过一些小的函数集合体的形式来提供的。这些函数及调用函数的行为统称为系统调用(system call)也就是应用对操作系统的功能进行调用的意思。

函数的内部在不同的操作系统还会有不同的系统调用,高级编程语言(如java和c等)并不依存于特定的操作系统。这是因为人们希望不管是Windows还是Linux,都能使用几乎相同的源代码(外部)。因此,高级编程语言的机制就是,使用独自的函数名,然后再在编译时将其转换成相应操作系统的系统调用(也有可能是多个系统调用的组合)。也就是说,用高级编程语言编写的应用在编译后,就转换成了利用系统调用的本地代码。也存在可以直接调用系统调用的编程语言。不过,利用这种方式做成的应用,移植性并不友好,例如,直接调用Windows系统调用的应用,在Linux上显然是无法运行的,如下图,高级编程语言中同一套代码在不同的操作系统下会使用不同的系统调用。

通过使用操作系统提供的系统调用,程序员就没必要编写直接控制硬件的程序了。而且,通过使用高级编程语言,有时甚至也无需考虑系统调用的存在。这是因为操作系统和高级编程语言能够使硬件抽象化

例如:用程序向一个文件写入一个文本或者一串数字时,文件是操作系统对磁盘媒介空间的抽象化。如果直接对硬件进行操作的话,那就变成了通过向磁盘用的I/O指定扇区位置来对数据进行读写。至于用来管理文件读写的内存空间的内容实际在哪里,程序员则没必要关注。只要能意识到“用来操作磁盘媒介的某些信息在某个地方存储着”,就可以制作应用了。

操作系统的特性

以window为例,主要特征有:

1.32/64位操作系统版本,Windows处理数据的基本单位是32/64位(四字节或者八字节)

2.通过API函数集来提供系统调用(应用程序接口),API通过多个DLL(动态链接库,存放公共的函数)文件来提供。

3.提供采用了GUI的用户界面(图形用户界面)通过点击显示器中显示的窗口及图标等即可进行可视化操作的用户界面。

4.提供多任务功能,多任务指的是同时运行多个程序的功能。Windows是通过时钟分割技术来实现多任务功能的,时钟分割指的是在短时间间隔内,多个程序切换运行的方式,也就是说,Windows会自动切换多个程序的运行。

5.提供网络功能及数据库功能,由于并不是操作系统本身不可欠缺的功能,所以被统称为中间件而不是应用。

6.通过即插即用实现设备驱动的自动设定。是指新的设备连接(Plug)后立刻就可以使用(Play)的机制。新的设备连接到计算机后,系统就会自动安装和设定用来控制该设备的设备驱动程序。

程序是操作系统、中间件、应用等所有软件的统称。因此,通常程序员制作的应该都是应用,而不是操作系统。不过,既然是应用,那么就肯定会通过某种形式来利用操作系统的功能。

声明:本文是根据程序是如何跑起来的书籍的总结和提炼,如有侵权联系本人删除。

发布了1 篇原创文章 · 获赞 1 · 访问量 114
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 1024 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览