关于操作系统

这一篇还是转载的

操作系统环境

程序中包含着运行环境这一内容,可以说运行环境=操作系统+硬件,操作系统又可以被称为软件,它是由一系列的指令组成的。我们不介绍操作系统,我们主要来介绍一下硬件的识别。

电脑主要配置如下

  • 操作系统版本:说的就是应用程序运行在何种系统环境,现在市面上主要有三种操作系统环境,WindowsLinuxUnix,一般我们玩儿的大型游戏几乎都是在Windows上运行,可以说Windows是游戏的天堂。Windows操作系统也会有区分,分为32位操作系统和64位操作系统,互不兼容。
  • 处理器:处理器指的就是CPU,你的电脑的计算能力,通俗来讲就是每秒钟能处理的指令数,如果你的电脑觉得卡带不起来的话,很可能就是CPU的计算能力不足导致的。想要加深理解,请阅读博主的另一篇文章:程序员需要了解的硬核知识之CPU
  • 显卡:显卡承担图形的输出任务,因此又被称为图形处理器(GraphicProcessingUnitGPU),显卡也非常重要,比如我之前玩儿的剑灵开五档(其实就是图像变得更清晰)会卡,其实就是显卡显示不出来的原因。
  • 内存:内存即主存,就是你的应用程序在运行时能够动态分析指令的这部分存储空间,它的大小也能决定你电脑的运行速度,想要加深理解,请阅读博主的另一篇文章程序员需要了解的硬核知识之内存
  • 存储空间:存储空间指的就是应用程序安装所占用的磁盘空间,由图中可知,此游戏的最低存储空间必须要大于5GB,其实我们都会遗留很大一部分用来安装游戏。

从程序的运行环境这一角度来考量的话,CPU的种类是特别重要的参数,为了使程序能够正常运行,必须满足CPU所需的最低配置。

CPU只能解释其自身固有的语言。不同的CPU能解释的机器语言的种类也是不同的。机器语言的程序称为本地代码(nativecode),程序员用C等高级语言编写的程序,仅仅是文本文件。文本文件(排除文字编码的问题)在任何环境下都能显示和编辑。我们称之为源代码。通过对源代码进行编译,就可以得到本地代码。下图反映了这个过程。

Windows操作系统

克服了CPU以外的硬件差异

计算机的硬件并不仅仅是由CPU组成的,还包括用于存储程序指令的数据和内存,以及通过I/O连接的键盘、显示器、硬盘、打印机等外围设备。

WIndows软件中,键盘输入、显示器输出等并不是直接向硬件发送指令。而是通过向Windows发送指令实现的。因此,程序员就不用注意内存和I/O地址的不同构成了。Windows操作的是硬件而不是软件,软件通过操作Windows系统可以达到控制硬件的目的。

不同操作系统的API差异性

接下来我们看一下操作系统的种类。同样机型的计算机,可安装的操作系统类型也会有多种选择。例如:AT兼容机除了可以安装Windows之外,还可以采用Unix系列的Linux以及FreeBSD(也是一种Unix操作系统)等多个操作系统。当然,应用软件则必须根据不同的操作系统类型来专门开发。CPU的类型不同,所对应机器的语言也不同,同样的道理,操作系统的类型不同,应用程序向操作系统传递指令的途径也不同

应用程序向系统传递指令的途径称为API(Application Programming Interface)Windows以及Linux操作系统的API,提供了任何应用程序都可以利用的函数组合。因为不同操作系统的API是有差异的。所以,如何要将同样的应用程序移植到另外的操作系统,就必须要覆盖应用所用到的API部分。

键盘输入、鼠标输入、显示器输出、文件输入和输出等同外围设备进行交互的功能,都是通过API提供的。

这也就是为什么Windows应用程序不能直接移植到Linux操作系统上的原因,API差异太大了。

在同类型的操作系统下,不论硬件如何,API几乎相同。但是,由于不同种类CPU的机器语言不同,因此本地代码也不尽相同。

操作系统功能的历史

操作系统其实也是一种软件,任何新事物的出现肯定都有它的历史背景,那么操作系统也不是凭空出现的,肯定有它的历史背景。

在计算机尚不存在操作系统的年代,完全没有任何程序,人们通过各种按钮来控制计算机,这一过程非常麻烦。于是,有人开发出了仅具有加载和运行功能的监控程序,这就是操作系统的原型。通过事先启动监控程序,程序员可以根据需要将各种程序加载到内存中运行。虽然仍旧比较麻烦,但比起在没有任何程序的状态下进行开发,工作量得到了很大的缓解。

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

类似的想法可以共用,人们又发现有更多的应用程序可以追加到监控程序中,比如硬件控制程序编程语言处理器(汇编、编译、解析)以及各种应用程序等,结果就形成了和现在差异不大的操作系统,也就是说,其实操作系统是多个程序的集合体。

Windows操作系统的特征

Windows操作系统是世界上用户数量最庞大的群体,作为Windows操作系统的资深用户,你都知道Windows操作系统有哪些特征吗?下面列举了一些Windows操作系统的特性

  • Windows操作系统有两个版本:32位和64
  • 通过API函数集成来提供系统调用
  • 提供了采用图形用户界面的用户界面
  • 通过WYSIWYG实现打印输出,WYSIWYG其实就是WhatYouSeeIsWhatYouGet,值得是显示器上显示的图形和文本都是可以原样输出到打印机打印的。
  • 提供多任务功能,即能够同时开启多个任务
  • 提供网络功能和数据库功能
  • 通过即插即用实现设备驱动的自设定

这些是对程序员来讲比较有意义的一些特征,下面针对这些特征来进行分别的介绍

32位操作系统

这里表示的32位操作系统表示的是处理效率最高的数据大小Windows处理数据的基本单位是32位。这与最一开始在MS-DOS16位操作系统不同,因为在16位操作系统中处理32位数据需要两次,而32位操作系统只需要一次就能够处理32位的数据,所以一般在windows上的应用,它们的最高能够处理的数据都是32位的。

比如,用C语言来处理整数数据时,有8位的char类型,16位的short类型,以及32位的long类型三个选项,使用位数较大的long类型进行处理的话,增加的只是内存以及磁盘的开销,对性能影响不大。

现在市面上大部分都是64位操作系统了,64位操作系统也是如此。

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

Windows是通过名为API的函数集来提供系统调用的。API是联系应用程序和操作系统之间的接口,全称叫做Application Programming Interface,应用程序接口。

当前主流的32位版WindowsAPI也称为Win32 API,之所以这样命名,是需要和不同的操作系统进行区分,比如最一开始的16位版的Win16 API,和后来流行的Win64 API

API通过多个DLL文件来提供,各个API的实体都是用C语言编写的函数。所以,在C语言环境下,使用API更加容易,比如API所用到的MessageBox()函数,就被保存在了Windows提供的user32.dll这个DLL文件中。

提供采用了GUI的用户界面

GUI(Graphical User Interface)指得就是图形用户界面,通过点击显示器中的窗口以及图标等可视化的用户界面,举个例子:Linux操作系统就有两个版本,一种是简洁版,直接通过命令行控制硬件,还有一种是可视化版,通过光标点击图形界面来控制硬件。

通过WYSIWYG实现打印输出

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

借助WYSIWYG功能,程序员可以轻松不少。最初,为了是现在显示器中显示和在打印机中打印,就必须分别编写各自的程序,而在Windows中,可以借助WYSIWYG基本上在一个程序中就可以做到显示和打印这两个功能了。

提供多任务功能

多任务指的就是同时能够运行多个应用程序的功能,Windows是通过时钟分割技术来实现多任务功能的。时钟分割指的是短时间间隔内,多个程序切换运行的方式。在用户看来,就好像是多个程序在同时运行,其底层是CPU时间切片,这也是多线程多任务的核心。

CPU分片,也是时钟分割

提供网络功能和数据库功能

Windows中,网络功能是作为标准功能提供的。数据库(数据库服务器)功能有时也会在后面追加。网络功能和数据库功能虽然并不是操作系统不可或缺的,但因为它们和操作系统很接近,所以被统称为中间件而不是应用。意思是处于操作系统和应用的中间层,操作系统和中间件组合在一起,称为系统软件。应用不仅可以利用操作系统,也可以利用中间件的功能。

应用可以使用操作系统和中间件

相对于操作系统一旦安装就不能轻易更换,中间件可以根据需要进行更换,不过,对于大部分应用来说,更换中间件的话,会造成应用也随之更换,从这个角度来说,更换中间件也不是那么容易。

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

即插即用(Plug-and-Play)指的是新的设备连接(plug)后就可以直接使用的机制,新设备连接计算机后,计算机就会自动安装和设定用来控制该设备的驱动程序

设备驱动是操作系统的一部分,提供了同硬件进行基本的输入输出的功能。键盘、鼠标、显示器、磁盘装置等,这些计算机中必备的硬件的设备驱动,一般都是随操作系统一起安装的。

有时DLL文件也会同设备驱动文件一起安装。这些DLL文件中存储着用来利用该新追加的硬件API,通过API,可以制作出运行该硬件的心应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值