操作系统如何工作

Software developers solving a problem.
计算机或其他设备的操作系统使其能够同时处理多项任务。 gilaxia/盖蒂图片社

当您打开计算机时,您会很高兴地认为一切尽在您的掌控之中。有可靠的鼠标,您可以随意在屏幕上移动,随时调出您的音乐库或互联网浏览器。尽管在台式机或笔记本电脑前,您很容易感觉自己像个指挥者,但内部却发生着许多事情,而幕后处理必要任务的真正角色是操作系统。

微软 Windows 为我们工作或个人使用的大多数计算机提供支持。Macintosh 计算机预装了 macOS。Linux 和 UNIX 操作系统在数字内容服务器中很受欢迎,但许多发行版(或称 distro)在日常使用中也越来越受欢迎。无论您选择哪种,没有操作系统,您将一事无成。

广告

其他设备有自己的操作系统。截至 2020 年代,谷歌的 Android 和苹果的 iOS 是最常见的智能手机操作系统,尽管一些制造商也开发了自己的操作系统,大部分基于 Android 操作系统。苹果的 iPad 使用 iPadOS,Apple Watch 使用 watchOS,Apple TV 使用 tvOS。还有各种其他设备拥有自己的操作系统——想想物联网设备、智能电视以及运行车载信息娱乐系统的系统。这甚至还不包括自动驾驶汽车所需的复杂系统

操作系统的目的是组织和控制硬件和软件,使设备以灵活但可预测的方式运行。在本文中,我们将告诉您一个软件必须具备哪些条件才能被称为操作系统,向您展示台式计算机中的操作系统如何工作,并为您提供一些如何控制周围其他操作系统的示例。

广告

什么是操作系统?

Windows 11
智能手机屏幕上显示 Windows 11 徽标,背景是微软网站。Windows 可能是最常见的操作系统。 Pavlo Gonchar/SOPA Images/LightRocket 经由盖蒂图片社

并非所有计算机都有操作系统。例如,控制您厨房微波炉的计算机就不需要操作系统。它只有一组任务要执行,预期输入非常直接(数字键盘和几个预设按钮),并且要控制的硬件简单且永不改变。对于这样的机器来说,一个复杂的操作系统将是不必要的负担,会显著增加开发和制造成本,并在不需要的地方增加复杂性。相反,微波炉中的计算机只是一直运行一个称为嵌入式系统的硬连线程序。

对于其他设备,操作系统提供了以下能力:

广告

  • 服务于多种目的
  • 以更复杂的方式与用户互动
  • 跟上不断变化的需求

所有台式计算机都有操作系统。最常见的是微软开发的 Windows 系列操作系统,苹果开发的 Macintosh 操作系统,以及由许多个人、公司和合作者共同开发的历史悠久的 UNIX 系列操作系统。还有数百种其他操作系统可用于特殊用途的应用程序,包括大型机、机器人、制造、实时控制系统等方面的专用系统。

在任何有操作系统的设备中,通常都有办法改变设备的运作方式。这绝非偶然;操作系统使用可移植代码而非永久物理电路的原因之一是,这样可以在不报废整个设备的情况下进行更改或修改。

对于台式计算机用户来说,这意味着您可以在需要更改时添加新的安全更新、系统补丁、新应用程序,甚至全新的操作系统,而不是报废旧电脑重新开始。只要您了解操作系统的工作原理以及如何访问它,在许多情况下,您就可以改变它的一些行为方式。

无论操作系统运行在什么设备上,它到底能做什么?

广告

操作系统功能

最简单来说,操作系统做两件事:

  1. 它管理系统的硬件和软件资源。在计算机、平板电脑和智能手机中,这些资源包括处理器内存、磁盘空间等。
  2. 它为应用程序提供了一种稳定、一致的方式来处理硬件,而无需了解硬件的所有细节。
操作系统控制您的计算机执行的每一项任务,并管理系统资源以优化性能。

第一项任务,即管理硬件和软件资源,非常重要,因为各种程序和输入方法会争夺中央处理单元(CPU)的注意力,并为自身目的请求内存、存储和输入/输出(I/O)带宽。在这种情况下,操作系统扮演着“好家长”的角色,确保每个应用程序都能获得必要的资源,同时与其他所有应用程序和谐共处,并最大限度地利用系统有限的容量,为所有用户和应用程序带来最大利益。

广告

第二项任务是提供一致的用户界面,这一点尤其重要,如果有一种特定类型的计算机使用该操作系统不止一台,或者构成计算机的硬件始终允许更改。一致的应用程序编程接口(API)允许软件开发人员在一台计算机上编写应用程序,并高度确信它将在同类型的另一台计算机上运行,即使两台机器的内存量或存储量不同。

即使特定计算机是独一无二的,操作系统也能确保在硬件升级和更新时应用程序继续运行。这是因为操作系统(而非应用程序)负责管理硬件及其资源的分配。开发人员面临的挑战之一是,如何使操作系统足够灵活,以运行来自数千家计算机设备制造商的硬件。今天的系统能够容纳数千种不同的打印机、磁盘驱动器和特殊外围设备,并且可以进行任意组合。

广告

操作系统类型

privacy notice appears on an iPhone 12
此隐私通知显示在运行 iOS 14.5.1 操作系统的 iPhone 12 上。iOS 是苹果产品使用的系统。 克里斯托弗·德恩巴赫/图片联盟 经由盖蒂图片社

在操作系统的广大家族中,有几种类型,根据它们控制的计算机类型和支持的应用程序种类进行分类。这些类别是:

  • 实时操作系统(RTOS)——实时操作系统用于控制机械、科学仪器和工业系统。RTOS 通常用户界面功能很少,也没有最终用户实用程序,因为系统交付使用时将是一个“密封盒”。重要的是,RTOS 要管理计算机资源,以便特定的操作每次都以完全相同的时间执行。在复杂的机器中,仅仅因为系统资源可用而使部件移动得更快,可能与系统繁忙而导致部件完全不动一样具有灾难性。
  • 单用户、单任务——顾名思义,这种操作系统旨在管理计算机,以便一个用户可以有效地一次只做一件事。MS-DOS 是单用户、单任务操作系统的良好示例。
  • 单用户、多任务——这是当今大多数人在其台式机和笔记本电脑上使用的操作系统类型。微软的 Windows 和苹果的 macOS 平台都是允许单个用户同时运行多个应用程序的操作系统示例。例如,Windows 用户完全可以在使用文字处理器编写笔记的同时从互联网下载文件并打印电子邮件正文。
  • 多用户——多用户操作系统允许多个不同的用户同时利用计算机的资源。操作系统必须确保平衡各个用户的需求,并且他们使用的每个程序都拥有充足且独立的资源,从而避免一个用户的问题影响整个用户社区。Unix、VMS 和大型机操作系统(例如 MVS)都是多用户操作系统的示例。
  • 分布式——这些操作系统同时管理多台计算机。分布式操作系统不是使用一台强大的计算机来解决大型问题,而是将问题分解成小块,分配给许多小型计算机。您可能会在大型服务器农场中发现这些系统,但爱好者和教育工作者也使用廉价机器甚至改造过的游戏机创建自己的分布式系统。

区分多用户操作系统和支持网络的单用户操作系统很重要。如果您在一个办公室工作,系统管理员控制着您工作计算机上可以或不能拥有的软件,那么您正在使用的是一个属于网络的单用户系统。您可能在一台与其他员工共享的打印机上打印文档,或者拥有一个文件服务器,存储您部门的文档。

广告

了解了不同类型的操作系统后,现在是时候看看操作系统提供的基本功能了。

广告

计算机操作系统

当您打开计算机电源时,第一个运行的程序通常是保存在计算机固件中、称为引导 ROM 的一组指令。对于典型的 PC,这可以是基本输入输出系统(BIOS),或者在较新的机器上,是统一可扩展固件接口(UEFI)。此代码会检查系统硬件以确保一切正常运行,对于 UEFI 而言,还会检查引导软件是否合法且安全。一旦测试成功完成,固件将继续引导过程

引导加载程序(或称启动加载程序)是一个小程序,它只有一个功能:将操作系统加载到内存中并使其开始运行。最基本的形式是,引导加载程序设置与计算机各种硬件子系统接口并控制它们的小型驱动程序。它设置了用于存放操作系统、用户信息和应用程序的内存分区。它建立了用于在计算机子系统和应用程序内部以及之间通信的无数信号、标志和信号量的数据库结构。然后,它将计算机的控制权移交给操作系统。

广告

从最普遍的意义上讲,操作系统的任务分为以下几类:

  • 处理器管理
  • 内存管理
  • 设备管理
  • 存储管理
  • 应用程序接口
  • 用户界面
  • 系统安全管理

这些任务定义了几乎所有操作系统的核心。接下来,我们来看看操作系统用来执行这些功能的工具。

广告

处理器管理

处理器管理的核心归结为两个相关问题:

  • 确保每个进程和应用程序获得足够的处理器时间以正常运行
  • 尽可能多地将处理器周期用于实际工作

操作系统在调度处理器执行工作时处理的软件基本单元。应用程序至少包含一个进程,每个进程中至少有一个线程。线程执行进程代码的一部分,操作系统甚至管理像线程这样小的单元,分配它们正常运行所需的资源。

广告

将进程视为应用程序是很诱人的,但这并不能完整描绘进程与操作系统和硬件的关系。您看到的应用程序(文字处理器、电子表格或游戏)确实是一个进程,但该应用程序可能会引发其他几个进程,例如与其他设备或计算机进行通信的任务。还有许多进程在运行,但您没有直接证据表明它们存在。例如,一个操作系统可以运行几十个后台进程来处理网络、内存管理、磁盘管理、病毒检查等等。

因此,进程是执行某些操作的软件,并且可以由用户、其他应用程序或操作系统控制。

操作系统控制和调度由 CPU 执行的是进程,而不是应用程序。在单任务系统中,调度很简单。操作系统允许应用程序开始运行,只暂停执行足够长的时间来处理中断和用户输入。

中断是硬件或软件发送给 CPU 的特殊信号。这就像计算机的某个部分突然举手要求 CPU 在一次活跃的会议中注意。有时操作系统会调度进程的优先级,使得中断被屏蔽——也就是说,操作系统忽略来自某些源的中断,以便某个特定任务可以尽快完成。有些中断(例如来自错误情况或内存问题的中断)非常重要,不能被忽略,例如向您指出笔记本电脑电池电量耗尽的消息。这些不可屏蔽中断(NMIs)必须立即处理,无论手头还有其他任务。

尽管中断给单任务系统中的进程执行增加了一些复杂性,但在多任务系统中,操作系统的任务变得更加复杂。现在,操作系统必须安排应用程序的执行,让您相信有几件事情同时发生。这很复杂,因为每个 CPU 一次只能做一件事。今天的多核处理器和多处理器机器可以处理更多工作,但每个处理器核心仍然一次只能管理一个任务。

为了营造同时发生多件事情的假象,操作系统必须每秒在不同进程之间切换数千次。具体如下:

  • 一个进程占用一定量的内存(RAM)。它还利用 CPU 和操作系统内存空间中的寄存器、堆栈和队列(计算机存储形式)。
  • 当两个进程进行多任务处理时,操作系统会为其中一个程序分配一定数量的 CPU 执行周期。
  • 在这些周期结束后,操作系统会复制该进程使用的所有寄存器、堆栈和队列,并记录该进程暂停执行的点。
  • 然后,它加载第二个进程使用的所有寄存器、堆栈和队列,并允许其运行一定数量的 CPU 周期。
  • 当这些完成后,它会复制第二个程序使用的所有寄存器、堆栈和队列,然后加载第一个程序。

广告

进程控制块

切换时跟踪进程所需的所有信息都保存在一个名为进程控制块的数据包中。进程控制块通常包含:

  • 标识进程的 ID 号
  • 指向程序及其数据中上次处理发生位置的指针
  • 寄存器内容
  • 各种标志和开关的状态
  • 指向进程所需内存的上限和下限的指针
  • 进程打开的文件列表
  • 进程的优先级
  • 进程所需所有 I/O 设备的状态

每个进程都有一个与之关联的状态。许多进程在获得某种输入之前不占用 CPU 时间。例如,一个进程可能正在等待用户的击键。在等待击键时,它不使用 CPU 时间。它处于“挂起”状态。当击键到达时,操作系统会改变其状态。当进程的状态从“待处理”变为“活动”,或者从“挂起”变为“运行”时,进程控制块中的信息必须像任何其他程序中的数据一样,用于指导操作系统任务切换部分的执行。

广告

这种进程交换在没有用户直接干扰的情况下发生,每个进程获得足够的 CPU 周期,以便在合理的时间内完成其任务。如果用户试图同时运行过多的进程,麻烦可能会开始。操作系统本身需要一些 CPU 周期来执行应用程序进程的所有寄存器、队列和堆栈的保存和交换操作。

每个进程都需要自己的内存分配,但操作系统必须平衡负载。您打开的应用程序越多,每个应用程序可操作的内存就越少。如果启动了足够多的进程,并且操作系统没有经过精心设计,系统就会开始使用更多可用的 CPU 周期在进程之间进行交换,而不是运行进程。当这种情况发生时,这被称为抖动,通常需要某种直接的用户干预来停止进程并使系统恢复正常。这很像您试图同时做太多事情。一旦达到极限,您就会感到不堪重负。计算机的抖动就是这样。

开发人员设计他们的系统以避免抖动,但您可以通过为计算机添加更多 RAM 并关闭不使用的应用程序来尽自己的一份力。这有助于您的操作系统更有效地管理资源并保持平稳运行。

到目前为止,我们讨论的所有调度都涉及单个 CPU。在具有两个或更多 CPU 的系统中,操作系统必须在 CPU 之间分配工作负载,尝试平衡所需进程的需求与不同处理器上的可用周期。非对称操作系统将一个处理器用于自身需求,并将其余 CPU 上的应用程序进程进行划分。对称操作系统在各个处理器之间分配工作,平衡需求与可用性,即使只有操作系统本身正在运行也是如此。它们共享可用内存。事实上,对称处理也适用于在同一芯片上使用多个处理器核心

根据您的计算机和操作系统,您现在可能正在使用对称处理

如果操作系统是唯一需要执行的软件,那么处理器并非唯一需要调度的资源。内存管理是确保所有进程平稳运行的下一个关键步骤。

广告

内存存储与管理

IT, Linux specialist
2017 年 3 月 8 日,IT 专家马里奥·豪斯坦在德国开姆尼茨工业大学计算机中心使用运行 Linux 操作系统的计算机工作。 扬·沃伊塔斯/图片联盟 经由盖蒂图片社

当操作系统管理计算机的内存时,需要完成两大任务:

  1. 每个进程都必须有足够的内存来执行,并且它既不能侵入另一个进程的内存空间,也不能被另一个进程侵入。
  2. 系统中不同类型的内存必须得到正确使用,以便每个进程都能最有效地运行。

第一项任务要求操作系统为不同类型的软件和单个应用程序设置内存边界。

广告

举例来说,我们来看一个拥有 1 兆字节(1,000 千字节)RAM 的虚拟小型系统。在引导过程中,我们虚拟计算机的操作系统会分配足够的内存以满足操作系统自身的需求。假设操作系统需要 300 千字节来运行。现在,操作系统会从 RAM 池的底部开始,加载控制计算机硬件子系统所需的各种驱动程序软件。在我们虚拟的计算机中,驱动程序占用 200 千字节。因此,一旦操作系统完全加载,就剩下 500 千字节用于应用程序进程。

当应用程序开始加载到内存中时,操作系统会为它们分配一定量的内存。当下一个应用程序启动时,操作系统会从其他已打开的应用程序中取出一些内存,以确保最新的应用程序有足够的空间运行。在确保这一点之后,更大的问题是,如果 500 千字节的应用程序空间被占满,该怎么办。

在大多数计算机中,可以添加超出原始容量的内存。例如,您可能将计算机的 RAM 从 8 GB 扩展到 16 GB。但是,应用程序存储在内存中的大部分信息在任何给定时刻都没有被使用。处理器一次只能访问一个内存位置,因此绝大多数 RAM 在任何时刻都是未使用的。操作系统不断地将未使用的部分换出,将正在使用的部分换入。这为每个进程提供了自己的空间,并防止它们相互损坏。这种技术称为虚拟内存管理

磁盘存储是操作系统必须管理的内存类型之一,它也是最慢的。按速度排名,计算机系统中的内存类型有:

  • 高速缓存:这是快速、相对较小的内存量,通过最快的连接提供给 CPU。缓存控制器会预测 CPU 接下来需要哪些数据,并将其从主内存拉入高速缓存,以加速系统性能。
  • 主内存:这是您购买计算机时以 GB 为单位测量的内存。
  • 辅助内存:这通常是计算机内部的硬盘驱动器 (HDD) 或固态驱动器 (SSD),在操作系统的控制下充当虚拟 RAM

操作系统必须平衡各种进程的需求与不同类型内存的可用性,根据进程调度,在可用内存之间以称为的块移动数据。

广告

设备管理

操作系统与几乎所有不在计算机主板上的硬件之间的路径都通过特殊程序——驱动程序。驱动程序的大部分功能是充当硬件子系统的电信号与操作系统和应用程序的高级编程语言之间的翻译器。驱动程序将操作系统定义为文件的数据转换为放置在存储设备上特定位置的比特流,或打印机中的一系列激光脉冲。

由于硬件差异巨大,驱动程序的功能方式也存在差异。大多数驱动程序在设备需要时运行,其功能与任何其他进程大致相同。操作系统经常为驱动程序分配高优先级块,以便硬件资源能够尽快释放并为进一步使用做好准备。

广告

驱动程序与操作系统分离的一个原因是,可以在不要求操作系统本身进行修改、重新编译和重新分发的情况下,向驱动程序(从而向硬件子系统)添加新功能。许多驱动程序是由子系统制造商而非操作系统发行商创建或付费的。这使他们有机会更新和增强整个系统的输入/输出能力。

操作系统发行商也创建设备驱动程序来更新计算机。虽然从发布 Windows 和 macOS 的大型盈利公司那里获得最新驱动程序更容易,但 Linux 机器和其他开源操作系统通常依赖于其社区中愿意贡献时间和编码技能的开发人员来为系统和外围设备提供驱动程序。

管理输入和输出主要涉及管理队列缓冲区,它们是特殊的存储设施,从设备(可能是键盘或串行端口)接收比特流,保存这些比特,并以处理器能够处理的速度将其释放给处理器。当许多进程正在运行并占用处理器时间时,此功能尤为重要。操作系统指示缓冲区继续从设备接收输入,但在使用输入的进程挂起时停止向处理器发送数据。然后,当需要输入的进程再次变为活动状态时,操作系统命令缓冲区发送数据。此过程允许键盘或调制解调器高速处理外部用户或计算机,即使有时处理器无法使用来自这些源的输入。

管理计算机系统的所有资源占据了操作系统的大部分功能,对于实时操作系统而言,这可能几乎是所需的全部功能。然而,对于其他操作系统来说,为应用程序和人类提供一种相对简单、一致的方式来利用硬件的力量,是它们存在的一个关键原因。

广告

应用程序接口

正如驱动程序为应用程序提供了利用硬件子系统的方式,而无需了解硬件操作的所有细节一样,应用程序编程接口(API)允许应用程序程序员使用计算机和操作系统的功能,而无需直接跟踪 CPU 操作中的所有细节。让我们以创建用于存储数据的硬盘文件为例,看看这为何如此重要。

编写应用程序以记录科学仪器数据的程序员可能希望允许科学家指定创建文件的名称。操作系统可以提供一个名为 `MakeFile` 的 API 函数来创建文件。在编写程序时,程序员会插入一行类似这样的代码:

广告

MakeFile [1, %Name, 2]

在此示例中,该指令告诉操作系统创建一个文件,该文件将允许随机访问其数据(由 1 表示——另一个选项可能是 0,表示串行文件),将具有用户键入的名称(%Name),并且其大小将根据文件中存储的数据量而变化(由 2 表示——其他选项可能是 0,表示固定大小文件,1 表示随着数据添加而增长但在数据移除时不缩小的文件)。现在,让我们看看操作系统如何将此指令转化为实际行动。

操作系统向磁盘驱动器发送查询,以获取第一个可用空存储位置。

有了这些信息,操作系统会在文件系统中创建一个条目,显示文件的起始和结束位置、文件名称、文件类型、文件是否已归档、哪些用户有权查看或修改文件,以及文件的创建日期和时间。

由于程序员编写程序时使用了磁盘存储的 API,因此程序员不必跟上每种可能的硬盘和磁带驱动器的指令代码、数据类型和响应代码。操作系统通过连接到各种硬件子系统的驱动程序,处理硬件不断变化的细节。程序员只需为 API 编写代码,并相信操作系统会完成其余工作。不幸的是,通过 API 访问软件可能会给黑客提供利用应用程序的便利,甚至可能获得对计算机的其他访问权限。这并不意味着 API 是坏的,但开发人员必须确保避免创建漏洞并在发现漏洞时及时修补它们。

尽管如此,近年来 API 已经成为计算机行业竞争最激烈的领域之一。公司意识到,使用其 API 的程序员最终将把这种使用转化为控制并从行业特定部分获利的能力。开发人员知道,免费向公众提供阅读器或查看器等应用程序将鼓励消费者使用其软件,尽管他们可能期望其他开发人员支付版税,以允许其软件提供消费者请求的功能。许多其他公司则将其API 免费向公众提供

广告

用户界面

正如 API 为应用程序使用计算机系统资源提供了一致的方式一样,用户界面(UI)为用户与计算机之间的交互带来了结构。在过去十年中,用户界面方面几乎所有的发展都集中在图形用户界面(GUI)上,其中苹果的 macOS 和微软的 Windows 获得了大部分关注和市场份额。

大多数(但并非所有!)Linux 发行版都包含 GUI。对于基于 GUI 的 Linux 发行版,发布该发行版的组织会选择操作系统的桌面环境。然而,Linux 用户可以根据自己的意愿更改环境。Cinnamon、GNOME、KDE 和 Xfce 是 Linux 常用的一些桌面环境。

UNIX 通常与命令行界面(CLI)或 Shell 相关联,它比 GUI 更灵活、更强大。Shell 界面只显示文本,需要键入命令词,这对于习惯于点击操作的用户来说可能令人生畏。Korn ShellC Shell 是基于文本的界面,增加了重要的实用程序,但它们的主要目的是让用户更轻松地操作操作系统功能。但 UNIX 用户也可以使用 GUI。对于开发人员而言,其中一个好处是能够一次打开多个 Shell 窗口以同时处理多项任务。

Windows、macOS 和 Linux 都为那些想要或需要访问命令行的人提供了 shell 或终端应用程序。

重要的是要记住,在所有这些示例中,用户界面是一个或一组程序,作为操作系统本身之上的一个层。操作系统的核心功能——即计算机系统的管理——位于操作系统的内核中。操作系统内核与用户界面、实用程序和其他软件之间的联系定义了当今操作系统的许多差异,并将在未来进一步定义它们。

操作系统开发

对于桌面系统,网络访问已成为一项预期的功能,以至于在许多方面,如果不提及操作系统与其他计算机和服务器的连接,就很难讨论操作系统。操作系统开发人员已将互联网作为提供关键操作系统更新和错误修复的标准方法。尽管可以通过DVD 或闪存驱动器接收这些更新,但这已变得罕见。

关于操作系统未来的一个问题涉及特定软件分发理念能否共同为企业和消费者创建一个可用的操作系统。

Linux,作为根据开源原则创建和分发的操作系统,对整个操作系统领域产生了重大影响。大多数系统、驱动程序和实用程序都是由商业组织编写的,它们分发其软件的可执行版本——这些版本通常无法被研究或修改,即闭源。开源要求分发原始源代码,这些源代码可以被研究、改编和在此基础上构建,其成果再次自由分发。在桌面计算机领域,这导致了无数有用应用程序的开发和分发,例如图像处理程序GIMP、流行的办公套件LibreOffice 和流行的 Web 服务器Apache

许多消费设备,如手机,故意向用户隐藏对操作系统的访问权限,主要是为了确保操作系统不会被无意中损坏或移除。在许多情况下,它们会留下一个“开发者模式”或“程序员模式”以允许进行更改,如果您能够找到它的话。通常这些系统可能会以一种只能进行有限范围更改的方式进行编程。

更多信息

相关文章

更多精彩链接

  • Ackerman, Evan. "Apex.OS: An Operating System for Autonomous Cars." IEEE Spectrum. Jan. 30, 2020. (Nov. 5, 2021) https://spectrum.ieee.org/apexos-operating-system-open-source-autonomous-cars
  • Apple, Inc. "Mac OS X: An Introduction for Support Providers." 2001. (Nov. 5, 2021) https://stuff.mit.edu/afs/athena/project/macosx/Mac_OS_X_Intro_for_Support.pdf
  • Apache Software Foundation. "HTTP Server Project." Oct. 7, 2021. (Nov. 5, 2021) https://httpd.apache.ac.cn/
  • Barton, Elizabeth. "Folding@home: How Distributed Computing is Unraveling the Mysteries of Protein Folding." HCPLive. April 27, 2010. (Nov. 5, 2021) https://www.hcplive.com/view/protein_folding_playstation_3
  • "Boot Process for a Mac with Apple Silicon." Apple Platform Security. Apple Inc. Feb. 18, 2021. (Nov. 5, 2021) https://support.apple.com/guide/security/boot-process-secac71d5623/web
  • Both, David. "The Central Processing Unit (CPU): Its Components and Functionality." Red Hat. July 23, 2020. (Nov. 5, 2021) https://#/sysadmin/cpu-components-functionality
  • Brandom, Russell and Robertson, Adi. "Supreme Court Sides with Google in Oracle's API Copyright Case." The Verge. April 5, 2021. (Nov. 5, 2021) https://www.theverge.com/2021/4/5/22367851/google-oracle-supreme-court-ruling-java-android-api
  • Brooks, Gray. "Benefits of APIs" Digital.gov. March 12, 2013. (Nov. 5, 2021) https://digital.gov/2013/03/12/benefits-of-apis/
  • Bryanpwo. "How to Install Desktop Environments Next to Your Existing Ones." Discovery. EndeavourOS. March 24, 2021. (Nov. 5, 2021) https://discovery.endeavouros.com/general-system-settings/how-to-install-desktop-environments-next-to-your-existing-ones/2021/03/
  • Bryant, Randal E., and O'Hallaron, David R. "Virtual Memory." In Computer Systems: A Programmer's Perspective, 3rd Ed. Boston: Pearson Education. 2016. (Nov. 5, 2021) http://www.csapp.cs.cmu.edu/2e/ch9-preview.pdf
  • "Main Memory." University of Illinois Chicago. 2006. (Nov. 5, 2021) https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/8_MainMemory.html
  • Cisco Press. "Applying Cisco Troubleshooting Tools." Nov. 16, 2001. (Nov. 5, 2021) https://www.ciscopress.com/articles/article.asp?p=24109&seqNum=11
  • "Classification of Operating Systems." In CIS 111: Introduction to Operating Systems. Olympic College. (Nov. 5, 2021) http://cis2.oc.ctc.edu/oc_apps/Westlund/xbook/xbook.php?unit=01&proc=page&numb=3
  • Denning, Peter J. "Multitasking Without Trashing." Communications of the ACM. 60(4), 32-34. September 2017. (Nov. 5, 2021) https://cacm.acm.org/magazines/2017/9/220424-multitasking-without-thrashing/fulltext#body-5
  • Document Foundation. "LibreOffice: The Document Foundation." (Nov. 5, 2021) https://www.libreoffice.org/
  • Duarte, Gustavo. "How computers boot up." Gustavo Duarte: Software, Computers and Business. June 5, 2008. (Nov. 4, 2021) http://duartes.org/gustavo/blog/post/how-computers-boot-up
  • Electronic Frontier Foundation. "Oracle v. Google." (Nov. 5, 2021) https://www.eff.org/cases/oracle-v-google
  • "ENIAC - The History of the First Computer." Hyperaxion. March 11, 2020. (Nov. 5, 2021) https://hyperaxion.com/technology/eniac-first-computer/
  • "File Sharing Over a Network in Windows 10." Microsoft Support. (Nov. 5, 2021) https://support.microsoft.com/en-us/windows/file-sharing-over-a-network-in-windows-10-b58704b2-f53a-4b82-7bc1-80f9994725bf
  • "Get More Done with Multitasking in Windows 11." Microsoft Support. (Nov. 5, 2021) https://support.microsoft.com/en-us/windows/get-more-done-with-multitasking-in-windows-11-b4fa0333-98f8-ef43-e25c-06d4fb1d6960
  • GIMP Team. "GIMP: GNU Image Manipulation Program." (Nov. 5, 2021) https://www.gimp.org/
  • Holmes, Jake and Alaniz, Anthony. "Every Car Infotainment System Available in 2020." Road Show by Cnet. Oct. 28, 2019. (Nov. 5, 2021) https://www.cnet.com/roadshow/news/car-infotainment-system-automotive-tech-guide/
  • "HPE OpenVMS." OpenVMS. Hewlett Packard Enterprise. (Nov. 5, 2021) https://buy.hpe.com/us/en/software/operating-systems/openvms/openvms-operating-systems/hpe-openvms/p/3364735
  • IBM. "C Shell Command Descriptions." 2020. (Nov. 5, 2021) https://www.ibm.com/docs/en/aix/7.1?topic=commands-c-shell-command-descriptions
  • IBM Cloud Education. "Application Programming Interface (API)." IBM Cloud Learn Hub. Aug. 19, 2020. (Nov. 5, 2021) https://www.ibm.com/cloud/learn/api
  • "Interrupts." ComputerScience.GCSE.GURU. (Nov. 5, 2021) https://www.computerscience.gcse.guru/theory/interrupts
  • Jones, M. "Inside the Linux 2.6 Completely Fair Scheduler." IBM Developer. Dec. 15, 2009. (Nov. 5, 2021) https://developer.ibm.com/tutorials/l-completely-fair-scheduler/?mhsrc=ibmsearch_a&mhq=symmetric%20process
  • Jones, M. "Inside the Linux Boot Process." IBM Developer. May 31, 2006. (Nov. 5, 2021) https://developer.ibm.com/articles/l-linuxboot/
  • Kalinsky, David. "Basic concepts of real-time operating systems." LinuxDevices.com. Nov. 18, 2003. (Nov. 4, 2021) https://web.archive.org/web/20090309085506/http://www.linuxdevices.com/articles/AT4627965573.html
  • Kelm, Robert. "What is Embedded System Design? Defining an Electrical Engineering Field." All About Circuits. Aug. 6, 2018. (Nov. 5, 2021) https://www.allaboutcircuits.com/technical-articles/what-is-embedded-design-embedded-system-design-firmware/
  • Ku, Andrew. "Microsoft Surface Review, Part 1: Performance and Display Quality." Tom's Hardware. Nov. 5, 2012. (Nov. 5, 2021) https://www.tomshardware.com/reviews/surface-benchmarks-windows-rt,3335-3.html
  • Linux.com Editorial Staff. "All About Linux Swap Space." Linux.com. Sept. 7, 2007. (Nov. 5, 2021) https://www.linux.com/news/all-about-linux-swap-space/
  • Lunduke, Bryan. "Without a GUI—How to Live Entirely in a Terminal." Linux Journal. June 28, 2019. (Nov. 5, 2021) https://linuxjournal.cn/content/without-gui-how-live-entirely-terminal
  • Lydia. "Advantages and Disadvantages of API for Business." OpenVPN. (Nov. 5, 2021) https://openvpn.net/blog/advantages-and-disadvantages-of-api-for-business/
  • "Mainframe Concepts." z/OS Basic Skills. IBM. 2010. (Nov. 5, 2021) https://www.ibm.com/docs/en/zos-basic-skills?topic=today-what-is-mainframe-its-style-computing
  • "Networking." IBM Cloud Learn Hub. IBM. March 17, 2021. (Nov. 5, 2021) https://www.ibm.com/cloud/learn/networking-a-complete-guide
  • Open Source Initiative. "The Open Source Definition." March 22, 2007. (Nov. 5, 2021) https://open-source.org.cn/osd
  • "Operating Systems: Homework I Solution." University of Massachusetts (archived on Internet Archive). (Nov. 5, 2021) https://web.archive.org/web/20190320223658/http:/ecs.umass.edu/ece/andras/courses/ECE397A/homeworks/hw1soln.html
  • Pal, Trishla. "Memory Management in Operating Systems - Simple Explanation." Technobyte. (Nov. 5, 2021) https://technobyte.org/memory-management-os-simple-explanation/
  • PCMag. "BIOS." (Nov. 5, 2021) https://www.pcmag.com/encyclopedia/term/bios
  • PCMag. "Boot Loader." (Nov. 5, 2021) https://www.pcmag.com/encyclopedia/term/boot-loader
  • PCMag. "Kernel." (Nov. 5, 2021) https://www.pcmag.com/encyclopedia/term/kernel
  • PCMag. "Operating System." (Nov. 5, 2021) https://www.pcmag.com/encyclopedia/term/operating-system
  • PCMag. "Process." (Nov. 5, 2021) https://www.pcmag.com/encyclopedia/term/process
  • PCMag. "Suspend and Resume." (Nov. 5, 2021) https://www.pcmag.com/encyclopedia/term/suspend-and-resume
  • Prakash, Abhishek. "Linux Jargon Buster: What is Desktop Environment in Linux?" It's FOSS. Sept. 3, 2020. (Nov. 5, 2021) https://itsfoss.com/what-is-desktop-environment/
  • "Processes and Threads." Windows App Development. Microsoft. Jan. 7, 2021. (Nov. 5, 2021) https://docs.microsoft.com/en-us/windows/win32/procthread/processes-and-threads
  • "Public API Lists." GitHub. (Nov. 5, 2021) https://github.com/public-api-lists/public-api-lists
  • Raspberry Pi Foundation. "Distributed Computing with Raspberry Pi." (Nov. 5, 2021) https://projects.raspberrypi.org/en/pathways/octapi
  • "Real-Time Operating System." Azure. Microsoft. Feb. 14, 2020. (Nov. 5, 2021) https://azure.microsoft.com/en-us/resources/real-time-operating-system/
  • Riley, Kurt. "Korn Shell Scripting: A Beginner's Guide." IBM Developer. June 17, 2008. (Nov. 5, 2021) https://developer.ibm.com/articles/au-kornshellscripting/
  • Russinovich, Mark E. and David A. Solomon. "Processes, Threads and Jobs." Microsoft Windows Internals, Fourth Edition: Microsoft Windows Server 2003, Windows XP and Windows 2000. (Nov. 4, 2021) https://web.archive.org/web/20060701201904/http://download.microsoft.com/download/5/b/3/5b38800c-ba6e-4023-9078-6e9ce2383e65/C06X1116607.pdf
  • ScienceDirect. "Buffer Management." (Nov. 5, 2021) https://www.sciencedirect.com/topics/computer-science/buffer-management
  • ScienceDirect. "Non-Maskable Interrupt." (Nov. 5, 2021) https://www.sciencedirect.com/topics/computer-science/non-maskable-interrupt
  • ScienceDirect. "Symmetric multiProcessor." (Nov. 5, 2021) https://www.sciencedirect.com/topics/computer-science/symmetric-multiprocessor
  • "Secure Boot." Windows Hardware Developer. Microsoft. Jan. 11, 2021. (Nov. 5, 2021) https://docs.microsoft.com/en-us/windows-hardware/design/device-experiences/oem-secure-boot
  • Silberschatz, Abraham; Galvin, Peter Baer; and Gagne, Greg.. Operating System Concepts. 10th ed. Wiley. (Nov. 5, 2021) https://www.wiley.com/en-us/Operating+System+Concepts%2C+10th+Edition-p-9781119320913
  • Todino, Grace; Strang, John; Peek, Jerry. "Versions of UNIX." Learning the UNIX Operating System, 4th edition. O'Reilly Media. 1997. (Nov. 5, 2021) https://learning.oreilly.com/library/view/learning-the-unix/1565923901/pr01s02.html
  • "UEFI FAQs." Unified Extensible Firmware Interface Forum. (Nov. 5, 2021) https://uefi.org/faq
  • Mullins, Robert. "Distributed Computing." University of Cambridge Department of Computer Science and Technology. 2012. (Nov. 5, 2021) https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/distributed-computing/
  • Vivian, Amy. "What is a driver?" Windows Hardware Developer. Microsoft. Aug. 8, 2021. (Nov. 5, 2021) https://docs.microsoft.com/en-us/windows-hardware/drivers/gettingstarted/what-is-a-driver-
  • W3Schools. "What is Command Line Interface (CLI)?" (Nov. 5, 2021) https://w3schools.org.cn/whatis/whatis_cli.asp
  • WDD Staff. "Operating System Interface Design Between 1981-2009." Web Designer Depot. March 11, 2009. (Nov. 15, 2021) https://www.webdesignerdepot.com/2009/03/operating-system-interface-design-between-1981-2009/
  • "What is a Real-Time Operating System (RTOS)?" National Instruments. Sept. 3, 2020. (Nov. 5, 2021) https://www.ni.com/en-us/innovations/white-papers/07/what-is-a-real-time-operating-system—rtos—.html
  • "What is Distributed Computing." TXSeries for Multiplatforms. IBM. 2015. (Nov. 5, 2021) https://www.ibm.com/docs/en/txseries/8.2?topic=overview-what-is-distributed-computing
  • White, Ron and Timothy Edward Downs. How Computers Work: The Evolution of Technology, 10th ed. Indianapolis, Ind.: Que. 2015. (Nov. 6, 2021) https://learning.oreilly.com/library/view/how-computers-work/9780133096798/
  • Williams, Lawrence. "Paging in Operating System(OS)." Guru99. Nov. 1, 2021. (Nov. 5, 2021) https://www.guru99.com/paging-in-operating-system.html
  • Yoshino, Ben. "The C Shell Tutorial." Duke University Computer Science. March 7, 1994. (Nov. 5, 2021) https://www2.cs.duke.edu/csl/docs/csh.html

广告

加载中...