1.1.1 概述:
计算机系统通常可以分为硬件、操作系统、应用程序和用户(或广义上的人/其他系统)。
硬件——如中央处理器、内存、输入/输出设备——为系统提供基本的计算资源。应用程序——如字处理程序、软件、编译器、浏览器——确定了用户为解决计算问题而使用这些资源的方式。操作系统控制硬件,并协调各个用户应用程序的硬件使用。
不过更严谨地说,操作系统管理着硬件、软件(应用程序)和数据,并为用户提供访问这些资源的接口。当计算机系统运行时候,操作系统提供正确手段以便使用这些资源。但是要注意的是,操作系统本身并不能实现任何有用的功能,只是提供了一个便于其他程序执行有用工作的环境。
为了更全面地理解操作系统的作用,接下来将会从两个视角探讨操作系统:用户视角和系统视角。
1.1.2 用户视角
用户对计算机的看法因所使用的界面而异。许多计算机用户坐在PC前,PC由显示器、键盘和鼠标组成。这样的系统是为了一个用户设计的,其资源是垄断的。在单用户(PC)视角下,操作系统旨在最大化用户的易用性和应用程序的响应速度。虽然资源被单一用户垄断,但现代操作系统仍需高效管理这些资源以支持多任务处理,确保用户切换任务时的流畅体验。对于大型主机或服务器(系统视角)而言,资源利用率和公平性则是首要目标。
近年来,智能手机跟平板电脑等移动计算机已成为时尚。这些设备正在取代某些用户的台式机跟笔记本电脑。通常,他们通过蜂窝或其他无线技术和网络相连。移动计算机的用户界面通常是触摸屏,用户通过触碰或者滑动来进行交互,同时现在很多移动设备还支持语音识别界面来进行交互,例如Apple的Siri。
有的计算机几乎没有或根本没有用户界面。例如,有些家电跟汽车使用的嵌入式计算机可能只有数字键盘,只能通过观察指示灯是否亮起来显示状态,而且这些设备主要是为了在没有用户干预的情况下运行。
1.1.3 系统视角
从计算机的角度来看,操作系统是与硬件紧密相连的程序。因此,可以将操作系统看作资源分配器。为了解决问题,计算机系统可能需要许多资源:CPU时间、内存空间、存储空间、I/O设备等。面对许多甚至存在冲突的资源请求、操作系统需要考虑如何为各个用户和程序分配资源,以便计算机系统能够有效且公平的运行。
操作系统的另一个略微不同的视角是,强调控制各个I/O设备和用户的程序需求。操作系统是个控制程序。控制程序管理用户程序的执行,防止计算机资源的错误或不当使用,它特别注重I/O设备的运行和控制。
1.1.4 操作系统的定义
我们应该如何定义操作系统呢?通常来说,我们目前没有一个关于操作系统的准确定义。操作系统的存在是因为它们提供了合理的方式来解决创建可用计算机系统的问题。为了实现这一目的,人们构造了计算机硬件。但是由于硬件本身并不容易使用,因此开发了应用程序。这些应用程序需要一些共同操作,如控制I/O设备。这些控制和分配I/O设备资源的共同功能则被组织成一个软件模块:操作系统
另外,目前还没有一个被人广泛接受的定义说明究竟说明属于操作系统。一种简单观点是,操作系统包括当你预定一个“操作系统”时销售发送的一切。当然,不同的系统大小以及功能都不一样。一个比较公认的定义是,操作系统是一种运行在计算机上的程序——通常称之为内核。除了内核之外,还有其他两类程序:系统程序和应用程序。前者是与系统运行有关的程序,但不是内核的一部分;后者是于系统运行无关的所有其他程序。
当我们看看移动设备的操作系统时,就会发现构成操作系统的特性的数量正在增加。移动操作系统通常不只有内核,也有中间件——为应用程序开发人员提供其他功能的软件框架。例如,最常见的两个移动操作系统——Apple的iOS和Google的Android,除了内核外,都有中间件来支持数据、多媒体和图形等。
总之,就我们的目的而言,操作系统包括一直运行的内核、简化应用程序开发并提供功能的中间件框架,以及在系统运行时帮助管理系统的系统程序。