现代系统的另一方面是一组系统程序。

如上图,最底层是硬件,然后是操作系统,接着是系统程序,最后是应用程序。

系统程序( System programs)也叫系统工具( system utilities),提供了一个方便的环境来开发程序和执行程序。

其中一小部分只是系统调用的简单接口,其他的很复杂,分为如下几类:

  • 文件管理:这些程序创建、删除、复制、重命名、但因、转储、列出和操作文件和目录
  • 状态信息:一些程序从系统哪里得到日期、事件、可用内存或者磁盘空间的数量、用户数或者类似的状态信息。还有的可以提供详细的性能、登录和调试信息。有的系统还支持注册表,它被用于存储和检索配置信息。
  • 文件修改:编辑器创建和修改文件内容
  • 程序语言支持:常用的程序设计语言(C、C++、Java、VB等)的编译程序、汇编程序、调试程序和解释程序通常与操作系统一起提供给用户
  • 程序装入和执行:一旦程序汇编或者编译好用,它必须装入内存才可以执行。系统可能要提供绝对加载程序、重定位加载程序、链接编辑器和覆盖式加载程序。系统还需要有高级语言或机器语言的调试程序
  • 通信:这些程序提供了在进程、用户和计算机系统之间创建虚拟连接的机制。他们允许用户在互相的屏幕上发送消息,浏览网页,发送email,远程登录,传送文件
  • 后台服务:所有通用系统都有在启动时启动某些系统程序进程的方法。其中一些进程在完成任务后终止,而另一些进程继续。 直到系统停止运行。持续运行的系统程序过程被称为服务、子系统或守护进程。一个例子是2.4.5节讨论的网络守护进程。在这个示例中,系统需要一个服务来监听网络连接,以便将这些请求连接到正确的进程。其他示例包括根据指定的时间表启动进程的进程调度程序、系统错误监视服务和打印服务器。典型的系统有几十个守护进程。此外,在用户环境中而不是在内核环境中运行重要的活动的操作系统可以使用守护进程来运行这些活动。

除了系统程序外,操作系统一般还提供了解决一般问题和执行一般操作的程序。这些应用程序( application programs)包括网页浏览器、字处理器、电子制表软件、数据库系统、编译器、打印和统计分许包以及游戏。

大多数用户所看到的操作系统的视图是由应用程序和系统程序定义的,而不是实际的系统调用。 考虑一个用户PC,当其电脑运行在 Mac OS X系统上时,用户会看到的GUI,是鼠标和窗口界面。或者,甚至在其中一个窗口中,用户可能拥有一个命令行UNIX shell。它们都使用相同的系统调用集,但是系统调用看起来不同,并且采取不同的方式。进一步混淆用户视图,考虑从Mac OS X到Windows的用户双引导。现在同一硬件上的同一用户有两个完全不同的接口和两组使用相同物理资源的应用程序。在相同的硬件上,用户可以按顺序或并发地接触多个用户接口。

results matching ""

    No results matching ""