操作系统和高级编程语言时硬件抽象化及Windows操作系统的特征

简介: 操作系统和高级编程语言时硬件抽象化及Windows操作系统的特征

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


       通过使用操作系统的系统调用,程序员不必直接编写控制硬件的程序,而且,通过使用高级编程语言,有时也无需考虑调用的存在,系统调用往往是自动触发的,操作系统和高级编程语言能够使硬件抽象化


硬件抽象化的具体实例:


#include<stdio.h>
void main(){
    //打开文件
    FILF *fp = fopen("MyFile.txt","w");
    //写入文件
    fputs("你好",fp);
    //关闭文件
    fclose(fp);
}


上述代码使用C编写的程序,fputs()是用来往文件中写入字符串的函数,fclose()是用来关闭文件的函数


       磁盘就如同树的年轮,磁盘的读写是以扇区为单位的,通过磁道来寻址,如果直接对硬件读写的话,那么就会变为通过向磁盘用的I/O指定扇区位置来对数据进行读写了


       但是,在上面代码中,扇区压根就没有出现过传递给fopen0函数的参数,是文件名 MyFile.txt 和指定文件写入的 w 。传递给fputs0的参数,是往文件中写入的字符串“你好”和fp,传递给fclose0的参数,也仅仅是fp,也就是说磁盘通过打开文件这个操作,把磁盘抽象化了,打开文件这个操作就可以说是操作硬件的指令。



  代码清单中fp的功能,变量fp中被赋予的是fopen()函数的返回值,该值被称为 文件指针。应用打开文件后,操作系统就会自动申请分配用来管理文件读写的内存空间。内存地址可以通过fopen()函数的返回值获得。用fopen()打开文件后,接下来就是通过制定的文件指针进行操作,正因为如此,fputs() 和 fclose 参数中指定了文件指针


       由此我们可以得出一个结论,应用程序时通过系统调用,磁盘抽象来实现对硬盘的控制的


二、Windows操作系统的特征


       Windows 操作系统是世界上用户数量最庞大的群体,下面列举了一些Windows 操作系统的特性:


● Windows 操作系统有两个版本:32位和64位


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


● 提供了采用图形用户界面的用户界面


● 通过 WYSIWYG 实现打印输出,WYSIWYG 其实就是What You See Is What You Get,值得是显示器上显示的图形和文本都是可以原样输出到打印机打印的


● 提供多任务功能,即能够同时开启多个任务


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


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


32位操作系统


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


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


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


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


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


       当前主流的32位版 Windows API也称为 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,可以制作出运行该硬件的新应用


目录
相关文章
|
11天前
|
Linux 编译器 开发者
Linux设备树解析:桥接硬件与操作系统的关键架构
在探索Linux的庞大和复杂世界时🌌,我们经常会遇到许多关键概念和工具🛠️,它们使得Linux成为了一个强大和灵活的操作系统💪。其中,"设备树"(Device Tree)是一个不可或缺的部分🌲,尤其是在嵌入式系统🖥️和多平台硬件支持方面🔌。让我们深入了解Linux设备树是什么,它的起源,以及为什么Linux需要它🌳。
Linux设备树解析:桥接硬件与操作系统的关键架构
|
1月前
|
数据安全/隐私保护 虚拟化 Windows
如何在 VM 虚拟机中安装 Windows Server 2012 操作系统保姆级教程(附链接)
如何在 VM 虚拟机中安装 Windows Server 2012 操作系统保姆级教程(附链接)
55 0
|
1月前
|
数据安全/隐私保护 虚拟化 Windows
如何在 VM 虚拟机中安装 Windows Server 2003 操作系统保姆级教程(附链接)
如何在 VM 虚拟机中安装 Windows Server 2003 操作系统保姆级教程(附链接)
47 0
|
1月前
|
数据安全/隐私保护 虚拟化 Windows
如何在 VM 虚拟机中安装 Windows 7 操作系统保姆级教程(附链接)
如何在 VM 虚拟机中安装 Windows 7 操作系统保姆级教程(附链接)
80 0
如何在 VM 虚拟机中安装 Windows 7 操作系统保姆级教程(附链接)
|
1月前
|
数据安全/隐私保护 虚拟化 Windows
如何在 VM 虚拟机中安装 Windows XP 操作系统保姆级教程(附链接)
如何在 VM 虚拟机中安装 Windows XP 操作系统保姆级教程(附链接)
109 0
|
2月前
|
弹性计算 运维 安全
阿里云服务器Windows和Linux操作系统区别对比
阿里云服务器Windows和Linux操作系统区别对比,性能有差异吗?有,同配置下Linux性能要优于Windows,但这与阿里云无关,仅仅是linux和windows之间的区别。另外,阿里云提供的windows和linux操作系统均为正版授权,用户不需要额外支付许可费用,如何选择?看用户自己的应用程序情况。
|
29天前
|
监控 API 数据库
Python语言Windows操作系统
Python语言Windows操作系统
|
29天前
|
物联网 Windows
安装windows 10操作系统
安装windows 10操作系统
43 1
|
1月前
|
存储 缓存 NoSQL
|
1月前
|
存储 Ubuntu 网络安全