hrefspace

 找回密码
 立即注册
搜索
热搜: PHP PS 程序设计
查看: 2942|回复: 0

什么是操作系统?<一>

[复制链接]

582

主题

594

帖子

1885

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1885
发表于 2023-7-4 22:53:53 | 显示全部楼层 |阅读模式
很难给出操作系统的准确定义。操作系统是一种运行在内核态的软件——尽管这个说法并不总是符合事实。部分原因是操作系统有两个基本上独立的任务,即为应用程序员(实际上是应用程序)提供一个资源集的清晰抽象,并管理这些硬件资源,而不仅仅是一堆硬件。另外,还取决于从什么角度看待操作系统。
1.作为扩展机器的操作系统
在机器语言一级上,多数计算机的体系结构是很原始的,而且编程是很困难的,尤其是对输入/输出操作而言。为了更细致地考察这一点,我们以大多数电脑使用的更现代的SATA硬盘为例。层有一奔描述早起版本硬盘接口的书,他的页数超过450页。自2007年起,接口又被修改过很多次,因而比当时更加复杂。显然,没有任何理智的程序员想要在硬件层面上和硬盘打交道。相反,他们使用一些叫做硬盘驱动的软件来和硬件交互。这类软件提供了读写硬盘块的接口,而不用深入细节。操作系统包含很多用于控制输入/输出设备的驱动。
但就算是在这个层面,对于大多数应用来说还是太底层了。因此,所有操作系统都提供使用硬盘的又一层抽象:文件。使用该抽象,程序能创建、读写文件,而不用处理硬件实际工作中那些恼人的细节。
抽象是管理复杂性的一个关键。好的抽象可以把一个几乎不可能管理的任务划分为两个可管理的部分。其第一部分是有关抽象的定义和实现,第二部分是随时用这些抽象解决问题。几乎每个计算机用户都理解的一个抽象是文件,正如上文所提到的。文件是一种有效的信息片段,诸如数码照片、保存的电子邮件、歌曲或Web页面等。处理数码照片、电子邮件、歌曲以及Web页面等,要比处理SATA硬盘的细节容易,这些磁盘的具体细节与前面徐树过得软盘一样。操作系统的任务是创建好的抽象,并实现和管理它所创建的抽象对象。上述观点是非常正确的,所以值得用不同的表达方式来,即使怀着如此小心翼翼对设计Macintosh机器的工业设计师的尊重,还是不得不说,硬件是丑陋的。真实的处理器、内存条、磁盘和其他装置都是非常复杂的,对于那些为使用某个软件而不得不编写软件的人们而言,他们使用的是困难、可怕、特殊和不一致的接口。有事这是由于需要兼容旧的硬件,有时是为了节省成本,但是有时硬件设计师们并没有意识到他们给软件设计带来了多大的麻烦。操作系统的一个主要任务是隐藏硬件,呈现给程序良好、清晰、优雅、一致的抽象。操作系统将丑陋转变为美丽。
需要指出的是,操作系统的实际客户是应用程序。他们直接与操作系统及其抽象打交道。相反,最终用户与用户接口所提供的抽象打交道,或者是命令行shell或者是图形接口。而用户接口的抽象可以与操作系统提供的抽象类似,但也不总是这样。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|hrefspace

GMT+8, 2024-5-11 03:31 , Processed in 0.065898 second(s), 21 queries .

Powered by hrefspace X3.4 Licensed

Copyright © 2022, hrefspace.

快速回复 返回顶部 返回列表