操作系统和应用的关系

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

程序员的工作就是编写各种各样的应用来提高业务效率。而应用的运行环境,也就是操作系统。不过,一定不能忽略操作系统,否则就无法编写应用。这是因为,程序员是通过利用操作系统提供的功能来编写应用的。

操作系统(Operating System)也称为基础软件。操作系统是计算机运行时不可或缺的控制程序,以及在控制程序下运转的为其他软件运行提供操作环境的软件的统称。另外,在操作系统上运行的应用也称为“应用程序”。

操作系统的历史

在计算机中尚不存在操作系统的年代,完全没有任何程序,因此程序员就需要编写出处理相关的所有程序。用机器语言编写程序,然后再使用开关将程序输入,这一过程非常麻烦。于是,有人开发出了仅具有加载和运行功能的 监控程序,这就是操作系统的原型。通过事先启动监控程序,程序员就可以根据需要将各种程序加载到内存中运行。虽然依旧比较麻烦,但比起在没有任何程序的状态下进行开发,工作量得到了很大的缓解。
在这里插入图片描述

随着时代的发展,人们在利用监控程序编写程序的过程中,发现很多程序都有共通的部分。例如,通过键盘输入文字数据、往显示器输出文字数据等。这些处理,在任何程序下都是一样的。而如果每编写一个新的程序都要记述相同的处理的话,那真的是太浪费时间了。因此,基本的输入输出部分的程序就被追加到了监控程序中。初期的操作系统就这样诞生了。

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

在这里插入图片描述

要意识到操作系统的存在

虽然对程序员来说,掌握硬件的基本知识是必需的,不过,在操作系统诞生以后,就没有必要再编写直接控制硬件的程序了。这样一来,制作应用的程序员就逐渐同硬件隔离开来了。也就是说,程序员是很少关注现实世界(硬件)的。

由于操作系统诞生后,程序员无需再考虑硬件的问题,因此程序员的数量也增加了。哪怕是自称“对硬件一窍不通”的人,也可能会制作出一个有模有样的应用。不过,要想成为一个全面的程序员,有一点需要清楚的是,掌握基本的硬件知识,并借助操作系统进行抽象化,可以大大提高编程效率。否则,遇到问题时,你就无法找到解决办法。操作系统确实为程序员提供了很多方便。不过,仅仅享受方便是不行的,还要了解为什么自己能够这么方便。了解了这一点,就可以尽情地享受方便了。

应用的可执行文件指的是,计算机的CPU 可以直接解释并运行的本地代码。不过这些代码是无法直接控制计算机中配置的时钟IC 及显示器用的I/O 等硬件的。在操作系统这个运行环境下,应用并不是直接控制硬件,而是通过操作系统来间接控制硬件的。变量定义中涉及的内存的申请分配,以及time() 和printf() 这些函数的运行结果,都不是面向硬件而是面向操作系统的。操作系统收到应用发出的指令后,首先会对该指令进行解释,然后会对时钟IC(实时时钟)和显示器用的I/O 进行控制。
在这里插入图片描述

系统调用和高级编程语言的移植性

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

C 语言等高级编程语言并不依存于特定的操作系统。这是因为人们希望不管是Windows 还是Linux,都能使用几乎相同的源代码。因此,高级编程语言的机制就是,使用独自的函数名,然后再在编译时将其转换成相应操作系统的系统调用(也有可能是多个系统调用的组合)。也就是说,用高级编程语言编写的应用在编译后,就转换成了利用系统调用的本地代码。

移植性指的是同样的程序在不同操作系统下运行时需要花费的时间等,费时越少说明移植性越好。
在高级编程语言中,也存在可以直接调用系统调用的编程语言。不过,利用这种方式做成的应用,移植性并不友好(也俗称为有恶意行为的应用)。例如,直接调用Windows 系统调用的应用,在Linux 上显然是无法运行的。

操作系统和高级编程语言使硬件抽象化

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

Windows 操作系统的特征

Windows 操作系统的主要特征如下所示:

(1)32 位操作系统(也有64 位版本)

这里的32 位表示的是处理效率最高的数据大小。

(2)通过API 函数集来提供系统调用

Windows 是通过名为API 的函数集来提供系统调用的。API 是联系作成应用的程序员和操作系统之间的接口。所以称为API(Application Programming Interface,应用程序接口)。API 通过多个DLL 文件来提供。各API 的实体都是用C 语言编写的函数。

(3)提供采用了图形用户界面的用户界面

GUI(Graphical User Interface,图形用户界面)指的是通过点击显
示器中显示的窗口及图标等即可进行可视化操作的用户界面。

(4)通过WYSIWYG 实现打印输出

WYSIWYG 是What You See Is What You Get 的略写。意思是,显示器上显示的文本及图形等(What You See),是(Is)可以原样输出到打印机上打印(What You Get)的。

WYSIWYG 指的是显示器上显示的内容可以直接通过打印机打印输出。在Windows 中,显示器和打印机是被作为同等的图形输出设备处理的,而该功能也就为WYSIWYG 的实现提供了条件。

(5)提供多任务功能

多任务指的是同时运行多个程序的功能。Windows 是通过 时钟分割技术来实现多任务功能的。
时钟分割指的是在短时间间隔内,多个程序切换运行的方式。在用户看来,就是多个程序在同时运行。也就是说,Windows 会自动切换多个程序的运行。此外,Windows 中还具有以程序中的函数为单位来进行时钟分割的多线程功能。
在这里插入图片描述

(6)提供网络功能及数据库功能

Windows 中,网络功能是作为标准功能提供的。数据库(数据库服务器)功能有时也会在之后进行追加。网络功能和数据库功能,虽并不是操作系统本身不可欠缺的功能,但因为它们和操作系统很接近,所以被统称为 中间件而不是应用。意思是处于操作系统和应用的中间(middle)。操作系统和中间件合在一起,也称为系统软件。应用不仅可以利用操作系统,也可以利用中间件的功能。
相对于操作系统一旦安装就不能轻易替换,中间件则可以根据需要进行任意的替换。不过,大多数情况下,中间件变更后应用往往也需要变更,因此中间件的变更也不是那么容易。

(7)通过即插即用实现设备驱动的自动设定

即插即用(Plug-and-Play)指的是新的设备连接(Plug)后立刻就可以使用(Play)的机制。新的设备连接到计算机后,系统就会自动安装和设定用来控制该设备的 设备驱动程序。
设备驱动是操作系统的一部分,提供了同硬件进行基本的输入输出的功能。键盘、鼠标、显示器、磁盘装置等,这些计算机中必备的硬件的设备驱动,一般都是随操作系统一起安装的。如果之后再追加新的网卡(NICA)等硬件的话,就需要向操作系统追加该硬件专用的设备驱动。

NIC(Network Interface Card)是计算机连接网络(LAN)时使用的设备。也称为网卡或者LAN 卡。

有时DLL 文件也会同设备驱动文件一起安装。这些DLL 文件中存储着用来利用该新追加硬件的API(函数集)。通过API,可以制作出运用该新硬件的应用。可以任意追加设备驱动和API 的机制使Windows 操作系统变得非常灵活。这里所说的灵活,是指可以事后再对新追加的硬件进行处理。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值