原文链接
全文两万字、五十一张图片,建议先收藏再看。
- 操作系统(Operating System,OS):是管理计算机硬件与软件资源的系统软件,同时也是计算机系统的内核与基石。操作系统需要处理管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。
- shell:它是一个程序,可从键盘获取命令并将其提供给操作系统以执行。在过去,它是类似 Unix 的系统上唯一可用的用户界面。如今,除了命令行界面(CLI)外,我们还具有图形用户界面(GUI)。
- GUI (Graphical User Interface):是一种用户界面,允许用户通过图形图标和音频指示符与电子设备进行交互。
- 内核模式(kernel mode): 通常也被称为 超级模式(supervisor mode),在内核模式下,正在执行的代码具有对底层硬件的完整且不受限制的访问。它可以执行任何 CPU 指令并引用任何内存地址。内核模式通常保留给操作系统的最低级别,最受信任的功能。内核模式下的崩溃是灾难性的;他们将停止整个计算机。超级用户模式是计算机开机时选择的自动模式。
- 用户模式(user node):当操作系统运行用户应用程序(例如处理文本编辑器)时,系统处于用户模式。当应用程序请求操作系统的帮助或发生中断或系统调用时,就会发生从用户模式到内核模式的转换。在用户模式下,模式位设置为1。从用户模式切换到内核模式时,它从1更改为0。
- 计算机架构(computer architecture) :在计算机工程中,计算机体系结构是描述计算机系统功能,组织和实现的一组规则和方法。它主要包括指令集、内存管理、I/O 和总线结构
- SATA(Serial ATA):串行 ATA (Serial Advanced Technology Attachment),它是一种电脑总线,负责主板和大容量存储设备(如硬盘及光盘驱动器)之间的数据传输,主要用于个人电脑。
- 复用(multiplexing):也称为共享,在操作系统中主要指示了时间和空间的管理。对资源进行复用时,不同的程序或用户轮流使用它。他们中的第一个开始使用资源,然后再使用另一个,依此类推。
- 大型机(mainframes):大型机是一类计算机,通常以其大尺寸,存储量,处理能力和高度的可靠性而著称。它们主要由大型组织用于需要大量数据处理的关键任务应用程序。
- 批处理(batch system): 批处理操作系统的用户不直接与计算机进行交互。每个用户都在打孔卡等脱机设备上准备工作,并将其提交给计算机操作员。为了加快处理速度,将具有类似需求的作业一起批处理并成组运行。程序员将程序留给操作员,然后操作员将具有类似要求的程序分批处理。
- OS/360:OS/360,正式称为IBM System / 360操作系统,是由 IBM 为 1964 年发布的其当时新的System/360 大型机开发的已停产的批处理操作系统。
- 多处理系统(Computer multitasking):是指计算机同时运行多个程序的能力。多任务的一般方法是运行第一个程序的一段代码,保存工作环境;再运行第二个程序的一段代码,保存环境;……恢复第一个程序的工作环境,执行第一个程序的下一段代码。
- 分时系统(Time-sharing):在计算中,分时是通过多程序和多任务同时在许多用户之间共享计算资源的一种系统
- 相容分时系统(Compatible Time-Sharing System):最早的分时操作系统,由美国麻省理工学院计算机中心设计与实作。
- 云计算(cloud computing):云计算是计算机系统资源(尤其是数据存储和计算能力)的按需可用性,而无需用户直接进行主动管理。这个术语通常用于描述 Internet 上可供许多用户使用的数据中心。如今占主导地位的大型云通常具有从*服务器分布在多个位置的功能。如果与用户的连接相对较近,则可以将其指定为边缘服务器。
- UNIX 操作系统:UNIX 操作系统,是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统。
- UNIX System V:是 UNIX 操作系统的一个分支。
- BSD(Berkeley Software Distribution):UNIX 的衍生系统。
- POSIX:可移
植操作系统接口,是 IEEE 为要在各种 UNIX 操作系统上运行软件,而定义API的一系列互相关联的标准的总称。 - MINIX:Minix,是一个迷你版本的类 UNIX 操作系统。
- Linux:终于到了大名鼎鼎的 Linux 操作系统了,太强大了,不予以解释了,大家都懂。
- DOS (Disk Operating System):磁盘操作系统(缩写为DOS)是可以使用磁盘存储设备(例如软盘,硬盘驱动器或光盘)的计算机操作系统。
- MS-DOS(MicroSoft Disk Operating System) :一个由美国微软公司发展的操作系统,运行在Intel x86个人电脑上。它是DOS操作系统家族中最著名的一个,在Windows 95以前,DOS是IBM PC及兼容机中的最基本配备,而MS-DOS则是个人电脑中最普遍使用的DOS操作系统。
- MacOS X,怎能少的了苹果操作系统?macOS 是苹果公司推出的基于图形用户界面操作系统,为 Macintosh 的主操作系统
- Windows NT(Windows New Technology):是美国微软公司 1993 年推出的纯 32 位操作系统核心。
- Service Pack(SP):是程序的更新、修复和(或)增强的集合,以一个独立的安装包的形式发布。许多公司,如微软或Autodesk,通常在为某一程序而做的修补程序达到一定数量时,就发布一个Service Pack。
- 数字版权管理(DRM):他是工具或技术保护措施(TPM)是一组访问控制技术,用于限制对专有硬件和受版权保护的作品的使用。
- x86:x86是一整套指令集体系结构,由 Intel 最初基于 Intel 8086 微处理器及其 8088 变体开发。采用内存分段作为解决方案,用于处理比普通 16 位地址可以覆盖的更多内存。32 位是 x86 默认的位数,除此之外,还有一个 x86-64 位,是x86架构的 64 位拓展,向后兼容于 16 位及 32 位的 x86架构。
- FreeBSD:FreeBSD 是一个类 UNIX 的操作系统,也是 FreeBSD 项目的发展成果。
- X Window System:X 窗口系统(X11,或简称X)是用于位图显示的窗口系统,在类 UNIX 操作系统上很常见。
- Gnome:GNOME 是一个完全由*软件组成的桌面环境。它的目标操作系统是Linux,但是大部分的 BSD 系统亦支持 GNOME。
- 网络操作系统(network operating systems):网络操作系统是用于网络设备(如路由器,交换机或防火墙)的专用操作系统。
- 分布式网络系统(distributed operating systems):分布式操作系统是在独立,网络,通信和物理上独立计算节点的集合上的软件。它们处理由多个CPU服务的作业。每个单独的节点都拥有全局集合操作系统的特定软件的一部分。
- 程序计数器(Program counter):程序计数器 是一个 CPU 中的寄存器,用于指示计算机在其程序序列中的位置。
- 堆栈寄存器(stack pointer):堆栈寄存器是计算机 CPU 中的寄存器,其目的是跟踪调用堆栈。
- 程序状态字(Program Status Word): 它是由操作系统维护的8个字节(或64位)长的数据的集合。它跟踪系统的当前状态。
- 流水线(Pipeline): 在计算世界中,管道是一组串联连接的数据处理元素,其中一个元素的输出是下一个元素的输入。流水线的元素通常以并行或按时间分割的方式执行。通常在元素之间插入一定数量的缓冲区存储。
- 超标量(superscalar):超标量 CPU 架构是指在一颗处理器内核中实行了指令级并发的一类并发运算。这种技术能够在相同的CPU主频下实现更高的 CPU 流量。
- 系统调用(system call): 指运行在用户空间的程序向操作系统内核请求需要更高权限运行的服务。系统调用提供用户程序与操作系统之间的接口。大多数系统交互式操作需求在内核态运行。如设备 IO 操作或者进程间通信。
- 多线程(multithreading):是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因为有硬件支持而能够在同一时间执行多个线程,进而提升整体处理性能。
- CPU 核心(core):它是 CPU 的大脑,它接收指令,并执行计算或运算以满足这些指令。一个 CPU 可以有多个内核。
- 图形处理器(Graphics Processing Unit):又称显示核心、视觉处理器、显示芯片或绘图芯片;它是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上运行绘图运算工作的微处理器。
- 存储体系结构:顶层的存储器速度最高,但是容量最小,成本非常高,层级结构越向下,其访问效率越慢,容量越大,但是造价也就越便宜。
- 高速缓存行(cache lines):其实就是把高速缓存分割成了固定大小的块,其大小是以突发读或者突发写周期的大小为基础的。
- 缓存命中(cache hit):当应用程序或软件请求数据时,会首先发生缓存命中。首先,*处理单元(CPU)在其最近的内存位置(通常是主缓存)中查找数据。如果在缓存中找到请求的数据,则将其视为缓存命中。
- L1 cache:一级缓存是 CPU 芯片中内置的存储库。L1缓存也称为主缓存,是计算机中最快的内存,并且最接近处理器。
- L2 cache: 二级缓存存储库,内置在 CPU 芯片中,包装在同一模块中,或者建在主板上。L2 高速缓存提供给 L1 高速缓存,后者提供给处理器。L2 内存比 L1 内存慢。
- L3 cache: 三级缓存内置在主板上或CPU模块内的存储库。L3 高速缓存为 L2 高速缓存提供数据,其内存通常比 L2 内存慢,但比主内存快。L3 高速缓存提供给 L2 高速缓存,后者又提供给 L1 高速缓存,后者又提供给处理器。
- RAM((Random Access Memory):随机存取存储器,也叫主存,是与 CPU 直接交换数据的内部存储器。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储介质。RAM工作时可以随时从任何一个指定的地址写入(存入)或读出(取出)信息。它与 ROM 的最大区别是数据的易失性,即一旦断电所存储的数据将随之丢失。RAM 在计算机和数字系统中用来暂时存储程序、数据和中间结果。
- ROM (Read Only Memory):只读存储器是一种半导体存储器,其特性是一旦存储数据就无法改变或删除,且内容不会因为电源关闭而消失。在电子或电脑系统中,通常用以存储不需经常变更的程序或数据。
- EEPROM (Electrically Erasable PROM):电可擦除可编程只读存储器,是一种可以通过电子方式多次复写的半导体存储设备。
- 闪存(flash memory):是一种电子式可清除程序化只读存储器的形式,允许在操作中被多次擦或写的存储器。这种科技主要用于一般性数据存储,以及在电脑与其他数字产品间交换传输数据,如储存卡与U盘。
- SSD(Solid State Disks):固态硬盘,是一种主要以闪存作为永久性存储器的电脑存储设备。
- 虚拟地址(virtual memory):虚拟内存是计算机系统内存管理的一种机制。它使得应用程序认为它拥有连续可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。与没有使用虚拟内存技术的系统相比,使用这种技术的系统使得大型程序的编写变得更容易,对真正的物理内存(例如RAM)的使用也更有效率。
- MMU (Memory Management Unit):内存管理单元,有时称作分页内存管理单元。它是一种负责处理*处理器(CPU)的内存访问请求的计算机硬件。它的功能包括虚拟地址到物理地址的转换(即虚拟内存管理)、内存保护、*处理器高速缓存的控制等。
- context switch:上下文切换,又称环境切换。是一个存储和重建 CPU 状态的机制。要交换 CPU 上的进程时,必需先行存储当前进程的状态,然后再将进程状态读回 CPU 中。
- 驱动程序(device driver):设备驱动程序,简称驱动程序(driver),是一个允许高级别电脑软件与硬件交互的程序,这种程序创建了一个硬件与硬件,或硬件与软件沟通的接口,经由主板上的总线或其它沟通子系统与硬件形成连接的机制,这样使得硬件设备上的数据交换成为可能。
- 忙等(busy waiting):在软件工程中,忙碌等待也称自旋,是一种以进程反复检查一个条件是否为真的条件,这种机制可能为检查键盘输入或某个锁是否可用。
- 中断(Interrupt):通常,在接收到来自外围硬件(相对于*处理器和内存)的异步信号,或来自软件的同步信号之后,处理器将会进行相应的硬件/软件处理。发出这样的信号称为进行中断请求(interrupt request,IRQ)。硬件中断导致处理器通过一个运行信息切换(context switch)来保存执行状态(以程序计数器和程序状态字等寄存器信息为主);软件中断则通常作为 CPU 指令集中的一个指令,以可编程的方式直接指示这种运行信息切换,并将处理导向一段中断处理代码。中断在计算机多任务处理,尤其是即时系统中尤为有用。
- 中断向量(interrupt vector):中断向量位于中断向量表中。中断向量表(IVT)是将中断处理程序列表与中断向量表中的中断请求列表相关联的数据结构。中断向量表的每个条目(称为中断向量)都是中断处理程序的地址。
- DMA (Direct Memory Access):直接内存访问,直接内存访问是计算机科学中的一种内存访问技术。它允许某些电脑内部的硬件子系统(电脑外设),可以独立地直接读写系统内存,而不需*处理器(CPU)介入处理 。
- 总线(Bus):总线(Bus)是指计算机组件间规范化的交换数据的方式,即以一种通用的方式为各组件提供数据传送和控制逻辑。
- PCIe (Peripheral Component Interconnect Express):官方简称PCIe,是计算机总线的一个重要分支,它沿用现有的PCI编程概念及信号标准,并且构建了更加高速的串行通信系统标准。
- DMI (Direct Media Interface):直接媒体接口,是英特尔专用的总线,用于电脑主板上南桥芯片和北桥芯片之间的连接。
- USB(Universal Serial Bus):是连接计算机系统与外部设备的一种串口总线标准,也是一种输入输出接口的技术规范,被广泛地应用于个人电脑和移动设备等信息通讯产品,并扩展至摄影器材、数字电视(机顶盒)、游戏机等其它相关领域。
- BIOS(Basic Input Output System):是在通电引导阶段运行硬件初始化,以及为操作系统提供运行时服务的固件。它是开机时运行的第一个软件。
- 硬实时系统(hard real-time system):硬实时性意味着你必须绝对在每个截止日期前完成任务。很少有系统有此要求。例如核系统,一些医疗应用(例如起搏器),大量国防应用,航空电子设备等。
- 软实时系统(soft real-time system):软实时系统可能会错过某些截止日期,但是如果错过太多,最终性能将下降。一个很好的例子是计算机中的声音系统。
- 进程(Process):程序本身只是指令、数据及其组织形式的描述,进程才是程序(那些指令和数据)的真正运行实例。若进程有可能与同一个程序相关系,且每个进程皆可以同步(循序)或异步的方式独立运行。
- 地址空间(address space):地址空间是内存中可供程序或进程使用的有效地址范围。也就是说,它是程序或进程可以访问的内存。存储器可以是物理的也可以是虚拟的,用于执行指令和存储数据。
- 进程表(process table):进程表是操作系统维护的数据结构,该表中的每个条目(通常称为上下文块)均包含有关进程的信息,例如进程名称和状态,优先级,寄存器以及它可能正在等待的信号灯。
- 命令行界面(command-line interpreter):是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。
- 进程间通信(interprocess communication):指至少两个进程或线程间传送数据或信号的一些技术或方法。
- 超级用户(superuser):也被称为管理员帐户,在计算机操作系统领域中指一种用于进行系统管理的特殊用户,其在系统中的实际名称也因系统而异,如 root、administrator 与supervisor。
- 目录(directory): 在计算机或相关设备中,一个目录或文件夹就是一个装有数字文件系统的虚拟容器。在它里面保存着一组文件和其它一些目录。
- 路径(path name):路径是一种电脑文件或目录的名称的通用表现形式,它指向文件系统上的一个唯一位置。
- 根目录(root directory):根目录指的就是计算机系统中的顶层目录,比如 Windows 中的 C 盘和 D 盘,Linux 中的 /。
- 工作目录(Working directory):它是一个计算机用语。用户在操作系统内所在的目录,用户可在此目录之下,用相对文件名访问文件。
- 文件描述符(file descriptor):文件描述符是计算机科学中的一个术语,是一个用于表述指向文件的引用的抽象化概念。
- inode:索引节点的缩写,索引节点是 UNIX 系统中包含的信息,其中包含有关每个文件的详细信息,例如节点,所有者,文件,文件位置等。
- 共享库(shared library):共享库是一个包含目标代码的文件,执行过程中多个 a.out 文件可能会同时使用该目标代码。
- DLLs (Dynamic-Link Libraries):动态链接库,它是微软公司在操作系统中实现共享函数库概念的一种实现方式。这些库函数的扩展名是 .DLL、.OCX(包含ActiveX控制的库)或者.DRV(旧式的系统驱动程序)。
- 客户端(clients):客户端是访问服务器提供的服务的计算机硬件或软件。
- 服务端(servers):在计算中,服务器是为其他程序或设备提供功能的计算机程序或设备,称为服务端
- 主从架构(client-server):主从式架构也称客户端/服务器架构、C/S 架构,是一种网络架构,它把客户端与服务器区分开来。每一个客户端软件的实例都可以向一个服务器或应用程序服务器发出请求。有很多不同类型的服务器,例如文件服务器、游戏服务器等。
- 虚拟机(Virtual Machines):在计算机科学中的体系结构里,是指一种特殊的软件,可以在计算机平台和终端用户之间创建一种环境,而终端用户则是基于虚拟机这个软件所创建的环境来操作其它软件。
- Java 虚拟机(Java virtual Machines):Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
- 目标文件(object file):目标文件是包含目标代码的文件,这意味着通常无法直接执行的可重定位格式的机器代码。目标文件有多种格式,相同的目标代码可以打包在不同的目标文件中。目标文件也可以像共享库一样工作。
- C preprocessor:C 预处理器是 C 语言、C++ 语言的预处理器。用于在编译器处理程序之前预扫描源代码,完成头文件的包含, 宏扩展, 条件编译, 行控制等操作。
- 设备控制器(device controller):设备控制器是处理 CPU 传入信号和传出信号的系统。设备通过插头和插座连接到计算机,并且插座连接到设备控制器。
- ECC(Error-Correcting Code):指能够实现错误检查和纠正错误技术的内存。
- I/O port: 也被称为输入/输出端口,它是由软件用来与计算机上的硬件进行通信的内存地址。
- 内存映射I/O(memory mapped I/O,MMIO): 内存映射的 I/O 使用相同的地址空间来寻址内存和 I/O 设备,也就是说,内存映射I/O 设备共享同一内存地址。
- 端口映射I/O(Port-mapped I/O ,PMIO):在 PMIO中,内存和I/O设备有各自的地址空间。端口映射I/O通常使用一种特殊的CPU指令,专门执行I/O操作。
- DMA(Direct Memory Access):直接内存访问,它是计算机系统的一项功能,它允许某些硬件系统能够独立于 CPU 访问内存。如果没有 DMA,当 CPU 执行输入/输出指令时,它通常在读取或写入操作的整个过程中都被完全占用,因此无法执行其他工作。使用 DMA 后,CPU 首先启动传输信号,然后在进行传输时执行其他操作,最后在完成操作后从 DMA 控制器(DMAC)接收中断。完成执行。
- 周期窃取(cycle stealing):许多总线能够以两种模式操作:每次一字模式和块模式。一些 DMA 控制器也能够使用这两种方式进行操作。在前一个模式中,DMA 控制器请求传送一个字并得到这个字。如果 CPU 想要使用总线,它必须进行等待。设备可能会偷偷进入并且从 CPU 偷走一个总线周期,从而轻微的延迟 CPU。它类似于直接内存访问(DMA),允许I / O控制器在无需 CPU 干预的情况下读取或写入RAM。
- 突发模式(burst mode):指的是设备在不进行单独事务中重复传输每个数据所需的所有步骤的情况下,重复传输数据的情况。
- 中断向量表(interrupt vector table):用来形成相应的中断服务程序的入口地址或存放中断服务程序的首地址称为中断向量。中断向量表是中断向量的集合,中断向量是中断处理程序的地址。
- 精确中断(precise interrupt):精确中断是一种能够使机器处于良好状态下的中断,它具有如下特征
PC (程序计数器)保存在一个已知的地方
PC 所指向的指令之前所有的指令已经完全执行
PC 所指向的指令之后所有的指令都没有执行
PC 所指向的指令的执行状态是已知的
- 非精确中断(imprecise interrupt):不满足以上要求的中断,指令的执行时序和完成度具有不确定性,而且恢复起来也非常麻烦。
- 设备独立性(device independence):我们编写访问任何设备的应用程序,不用事先指定特定的设备。比如你编写了一个能够从设备读入文件的应用程序,那么这个应用程序可以从硬盘、DVD 或者 USB 进行读入,不必再为每个设备定制应用程序。这其实就体现了设备独立性的概念。
- UNC(Uniform Naming Convention) :UNC 是统一命名约定或统一命名约定的缩写,是用于命名和访问网络资源(例如网络驱动器,打印机或服务器)的标准。例如,在 MS-DOS 和 Microsoft Windows 中,用户可以通过键入或映射到类似于以下示例的共享名来访问共享资源。
- 挂载(mounting) :挂载是指操作系统会让存储在硬盘、CD-ROM 等资源设备上的目录和文件,通过文件系统能够让用户访问的过程。
- 错误处理(Error handling):错误处理是指对软件应用程序中存在的错误情况的响应和恢复过程。
- 同步阻塞(synchronous):同步是阻塞式的,CPU 必须等待同步的处理结果。
- 异步响应(asynchronous):异步是由中断驱动的,CPU 不用等待每个操作的处理结果继而执行其他操作
- 缓冲区(buffering):缓冲区是内存的临时存储区域,它的出现是为了加快内存的访问速度而设计的。对于经常访问的数据和指令来说,CPU 应该访问的是缓冲区而非内存
- Programmed input–output,PIO:它指的是在 CPU 和外围设备(例如网络适配器或 ATA 存储设备)之间传输数据的一种方法。
- 轮询(polling):轮询是指通过客户端程序主动通过对每个设备进行访问来获得同步状态的过程。
- 忙等(busy waiting):当一个进程正处在某临界区内,任何试图进入其临界区的进程都必须等待,陷入忙等状态。连续测试一个变量直到某个值出现为止,称为忙等。
- 可重入(reentrant):如果一段程序或者代码在任意时刻被中断后由操作系统调用其他程序或者代码,这段代码调用子程序并能够正确运行,这种现象就称为可重入。也就是说当该子程序正在运行时,执行线程可以再次进入并执行它,仍然获得符合设计时预期的结果。
- 主设备编号(major device number)、副设备编号(minor device number) :所有设备都有一个主,副号码。主号码是更大,更通用的类别(例如硬盘,输入/输出设备等),而次号码则更具体(即告诉设备连接到哪条总线)。
- 多重缓冲区(double buffering):它指的是使用多个缓冲区来保存数据块,每个缓冲区都保留数据块的一部分,读取的时候通过读取多个缓冲区的数据进而拼凑成一个完整的数据。
- 环形缓冲区(circular buffer):它指的是首尾相连的缓冲区,常用来实现数据缓冲流。
- 假脱机(Spooling) :假脱机是多程序的一种特殊形式,目的是在不同设备之间复制数据。 在现代系统中,通常用于计算机应用程序和慢速外围设备(例如打印机)之间的中介。
- 守护进程(Daemon):在计算机中,守护程序是作为后台进程运行的计算机程序,而不是在交互式用户的直接控制下运行的程序。
- 逻辑块寻址(logical block addressing, LBA):逻辑块寻址是一种通用方案,用于指定存储在计算机存储设备上的数据块的位置。
- RAID:全称是 Redundant Array of Inexpensive Disks ,廉价磁盘或驱动器的冗余阵列,它是一种数据存储虚拟化的技术,将多个物理磁盘驱动器组件组合成一个或多个逻辑单元,以实现数据冗余,改善性能。
- MBR(Master Boot Record):主引导记录(MBR)是任何硬盘或软盘的第一扇区中的信息,用于标识操作系统的放置方式和位置,以便可以将其加载到计算机的主存储器或随机存取存储器中。
- FCFS (First-Come, First-Served):先进先出的调度算法,也就是说,首先到达 CPU 的进程首先进行服务。
- SSF (Shortest Seek First) 最短路径优先算法,这是对先进先出算法的改进,这种算法因为减少了总的磁臂运动,从而缩短了平均响应时间。
- 稳定存储(stable storage):它是计算机存储技术的一种分类,该技术可确保任何给定的写操作都具有原子性。
- 时钟(Clocks):也被称为 timers。通常,时钟是指调节所有计算机功能的时序和速度的微芯片。芯片中是一个晶体,当通电时,晶体会以特定的频率振动。任何一台计算机能够执行的最短时间是一个时钟或时钟芯片的一次振动。
- QR Code:二维码的一种,它的全称是快速响应矩阵图码,能够快速响应。一般应用于手机读码操作,国内火车票上的二维码就是 QR 码
- 显卡(Video card),是个人电脑最基本组成部分之一,用途是将计算机系统所需要的显示信息进行转换驱动显示器,并向显示器提供逐行或隔行扫描信号,控制显示器的正确显示,是连接显示器和个人电脑主板的重要组件,是人机对话的重要设备之一。
- GDI (Graphics Device Interface):图形接口,是微软视窗系统提供的应用程序接口,也是其用来表征图形对象、将图形对象传送给诸如显示器、打印机之类输出设备的核心组件。
- 设备上下文(device context):设备上下文是 Windows 数据结构,其中包含有关设备(例如显示器或打印机)的图形属性的信息。所有绘图调用都是通过设备上下文对象进行的,该对象封装了用于绘制线条,形状和文本的 Windows API。设备上下文可用于绘制到屏幕,打印机或图元文件。
- 位图(bitmap):在计算机中,位图是从某个域(例如,整数范围)到位的映射。也称为位数组或位图索引。
- 电阻式触摸屏(Resistive touchscreens):电阻式触摸屏基于施加到屏幕上的压力来工作。电阻屏由许多层组成。当按下屏幕时,外部的后面板将被推到下一层,下一层会感觉到施加了压力并记录了输入。电阻式触摸屏用途广泛,可以用手指,指甲,手写笔或任何其他物体进行操作。
- 电容式触摸屏(capacitive touchscreen):电容式触摸屏通过感应物体(通常是指尖上的皮肤)的导电特性来工作。手机或智能手机上的电容屏通常具有玻璃表面,并且不依赖压力。当涉及到手势(如滑动和捏合)时,它比电阻式屏幕更具响应性。电容式触摸屏只能用手指触摸,而不能用普通的手写笔,手套或大多数其他物体来响应。
- 死锁(deadlock):死锁常用于并发情况下,死锁 是一种状态,死锁中的每个成员都在等待另一个成员(包括其自身)采取行动。
相信你一定看过这个图
- 可抢占资源(preemptable resource):可以从拥有它的进程中抢占而并不会产生任何副作用。
- 不可抢占资源(nonpreemptable resource):与可抢占资源相反,如果资源被抢占后,会导致进程或任务出错。
- 系统检查点(system checkpointed):系统检查点是操作系统(OS)的可启动实例。检查点是计算机在特定时间点的快照。
- 两阶段加锁(two-phase locking, 2PL):经常用于数据库的并发控制,以保证可串行化
这种方法使用数据库锁在两个阶段:
扩张阶段:不断上锁,没有锁被释放
收缩阶段:锁被陆续释放,没有新的加锁
- 活锁(Livelock):活锁类似于死锁,不同之处在于,活锁中仅涉及进程的状态彼此之间不断变化,没有进展。举一个现实世界的例子,当两个人在狭窄的走廊里相遇时,就会发生活锁,每个人都试图通过移动到一边让对方通过而礼貌,但最终却没有任何进展就左右摇摆,因为他们总是同时移动相同的方式。
- 饥饿(starvation):在死锁或者活锁的状态中,在任何时刻都可能请求资源,虽然一些调度策略能够决定一些进程在某一时刻获得资源,但是有一些进程永远无法获得资源。永远无法获得资源的进程很容易产生饥饿。
- 沙盒(sandboxing):沙盒是一种软件管理策略,可将应用程序与关键系统资源和其他程序隔离。它提供了一层额外的安全保护,可防止恶意软件或有害应用程序对你的系统造成负面影响。
- VMM (Virtual Machine Monitor):也被称为 hypervisor,在同一个物理机器上创建出来多态虚拟机器的假象。
- 虚拟化技术(virtualization):是一种资源管理技术,将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),进行抽象、转换后呈现出来并可供分割、组合为一个或多个电脑配置环境。
- 云(cloud):云是目前虚拟机最重要、最时髦的玩法。
- 解释器(interpreter):解释器是一种程序,能够把编程语言一行一行解释运行。每次运行程序时都要先转成另一种语言再运行,因此解释器的程序运行速度比较缓慢。它不会一次把整个程序翻译出来,而是每翻译一行程序叙述就立刻运行,然后再翻译下一行,再运行,如此不停地进行下去。
- 半虚拟化(paravirtualization):半虚拟化的目的不是呈现出一个和底层硬件一摸一样的虚拟机,而是提供一个软件接口,软件接口与硬件接口相似但又不完全一样。
- 全虚拟化(full virtualization):全虚拟化是硬件虚拟化的一种,允许未经修改的客操作系统隔离运行。对于全虚拟化,硬件特征会被映射到虚拟机上,这些特征包括完整的指令集、I/O操作、中断和内存管理等。
- 客户操作系统(guest operating system) : 客户操作系统是安装在计算机上操作系统之后的操作系统,客户操作系统既可以是分区系统的一部分,也可以是虚拟机设置的一部分。客户操作系统为设备提供了备用操作系统。
- 主机操作系统(host operating system):主机操作系统是计算机系统的硬盘驱动器上安装的主要操作系统。在大多数情况下,只有一个主机操作系统。
- 应用编程接口(Application Programming Interface,API):应用程序编程接口(API)是软件组件或系统的编程接口,它定义其他组件或系统如何使用它。
- 虚拟机接口(Virtual Machine Interface, VMI):它是一个高速接口,同一主机上的虚拟机(VM)可用于相互之间以及主机内核模块之间进行通信。
- 输入输出内存管理单元(Input–output memory management unit, I/O MMU):在计算机中,输入输出内存管理单元(IOMMU)是将直接内存访问(DMA)I / O 总线连接到主存的内存管理单元(MMU)。
- 设备穿透(device pass through):它允许将物理设备直接分配给特定虚拟机。
- 设备隔离(device isolation): 保证设备可以直接访问其分配到的虚拟机的内存而不影响其他虚拟机的完整性。
- 基础设施即服务(IAAS (Infrastructure As A Service)):基础架构即服务(IaaS)是一种即时计算基础架构,可通过 Internet 进行配置和管理。它是四种云服务类型之一,另外还有软件即服务(SaaS),平台即服务(PaaS)和无服务器。
- 平台即服务(PAAS (Platform As A Service)):平台即服务(PaaS)或应用程序平台即服务(aPaaS)或基于平台的服务是云计算服务的一种,它提供了一个平台,使客户可以开发,运行和管理应用程序,而无需构建和维护该应用程序。
- 软件即服务(SAAS(Software As A Service)): 它是一个提供特定软件服务访问的平台,是一种软件许可和交付模型,在该模型中,软件是基于订阅许可的,并且是集中托管的。
- 实时迁移(live migration):实时迁移是指在不断开客户端或应用程序连接的情况下,在不同的物理机之间移动正在运行的虚拟机或应用程序的过程,一般经常采用的方式是内存预复制迁移
- 写入时复制(copy on write):写入时复制是一种计算机程序设计领域的优化策略。其核心思想是,如果有多个调用者(callers)同时请求相同资源(如内存或磁盘上的数据存储),他们会共同获取相同的指针指向相同的资源,直到某个调用者试图修改资源的内容时,系统才会真正复制一份专用副本(private copy)给该调用者,而其他调用者所见到的最初的资源仍然保持不变
- 主从模型(master-slave):主/从是一种不对称通信或控制的模型,其中一个设备进程控制一个或多个其他设备或进程并充当其通信中心。在某些系统中,从一组合格的设备中选择一个主设备,而其他设备则充当从设备的角色。
- 分布式系统(distributed system):分布式系统,也称为分布式计算,是一种具有位于不同机器上的多个组件的系统,这些组件可以通信和协调动作,以便对最终用户显示为单个一致的系统。
- 局域网(LANs, Local Area Networks):局域网(LAN)是一种计算机网络,可将住宅,学校,实验室,大学校园或办公大楼等有限区域内的计算机互连。
- 广域网(WAN,Wide Area Network):又称广域网、外网、公网。是连接不同地区局域网或城域网计算机通信的远程网。通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个地区、城市和国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。
- 以太网(Ethernet):以太网是一种计算机局域网的技术,它规定了包括物理层的连线、电子信号和介质访问层协议的内容。
- 桥接器(bridge):当指代计算机时,网桥是连接两个 LAN(局域网)或同一 LAN 的两个网段的设备。与路由器不同,网桥是独立于协议的。他们转发数据包时无需分析和重新路由消息。
- 主机(host):在网络硬件中,主机又被称为网络主机,网络主机是连接到计算机网络的计算机或其他设备。主机可以充当服务器,向网络上的用户或其他主机提供信息资源,服务和应用程序。主机被分配至少一个网络地址。
- 路由器(router):路由器是在计算机网络之间转发数据包的联网设备。通过互联网发送的数据(例如网页或电子邮件)以数据包的形式出现。
- 面向连接的服务(Connection-oriented service):面向连接的服务是一种在数据通信开始之前在通信实体之间建立专用连接的服务。要使用面向连接的服务,用户首先建立一个连接,使用它,然后释放它。TCP 就是一种面向连接的服务,在发送数据包之前需要经过握手操作。
- 无连接的服务(Connectionless service):无连接服务是两个节点之间的数据通信,其中发送方在不确保接收方是否可以接收数据的情况下发送数据。此处,每个数据包都具有目标地址,并且与其他数据包无关地独立路由。UDP 就是一种无连接的服务,发送数据包不需要经过握手连接。
- 服务质量(quality of service, QoS):服务质量是对服务整体性能的描述或度量,尤其是网络用户看到的性能。
- 确认包(acknowledgement packet):在数据网络,电信和计算机总线中,确认(ACK)是作为通信协议一部分在通信过程,计算机或设备之间传递以表示确认或消息接收的信号。
- 请求-响应服务(request-reply service):请求-响应是计算机彼此通信的基本方法之一,其中第一台计算机发送对某些数据的请求,第二台计算机对请求进行响应。
- 协议栈(protocol stack):所有现代网络都使用所谓的协议栈把不同的协议一层一层叠加起来。每一层解决不同的问题。
- IP地址:标示互联网上每一台主机有两种方式,一种是 IPv4 ,一种是 IPv6。
- 超链接(hyperlink):超链接是可以单击以跳到新文档或当前文档中新部分的单词,短语或图像。几乎在所有网页中都可以找到超链接,从而允许用户单击页面之间的方式。文本超链接通常为蓝色并带有下划线。
- Web 页面(Web page):网页是一个适用于万维网和网页浏览器的文件。
- Web浏览器:Web浏览器(通常称为浏览器)是一种用于访问 Internet 上的信息的软件应用程序。当用户请求特定网站时,Web 浏览器从 Web 服务器检索必要的内容,然后在用户的设备上显示结果网页。
- 漏洞(vulnerability):漏洞是一种系统不安全级别的错误。
- 漏洞利用(exploit):漏洞利用是计算机安全术语,指的是利用程序中的某些漏洞,来得到计算机的控制权。
- 病毒(virus):计算机病毒是一种计算机程序,在执行时会通过修改其他计算机程序并插入自己的代码来自我复制。复制成功后,可以说受影响的区域已被计算机病毒感染。
- CIA(Confidentiality,Integrity,Availability):安全系统的三个指标,即机密性、完整性和可用性。
- 黑客(cracker):黑客是指经常通过网络闯入他人计算机系统的人。绕过计算机程序中的密码或许可证;或以其他方式故意破坏计算机安全性。黑客可能会出于恶意,出于某些利他目的或原因,或者是因为存在挑战而牟取暴利。表面上已经进行了一些破解和输入,以指出站点安全系统中的弱点。
- 端口扫描(portscan):端口扫描程序是一种旨在探测服务器或主机是否存在开放端口的应用程序。管理员可以使用这种应用程序来验证其网络的安全策略,攻击者可以使用这种应用程序来识别主机上运行的网络服务并利用漏洞。
- 僵尸网络(botnets):僵尸网络是指骇客利用自己编写的分布式拒绝服务攻击程序将数万个沦陷的机器,即骇客常说的傀儡机或肉鸡。
- 域(domain):网域名称,简称域名、网域,是由一串用点分隔的字符组成的互联网上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位。
- 盐(solt):在密码学中,盐是随机数据,用作哈希数据,密码或密码的单向函数的附加输入。
- 逻辑炸弹(logic bomb) :是一些嵌入在正常软件中并在特定情况下执行的恶意程式码。这些特定情况包括更改档案、特别的程式输入序列、特定的时间或日期等。恶意程式码可能会将档案删除、使电脑主机当机或是造成其他的损害。
- 定时炸弹(time bomb):在计算机软件中,定时炸弹是已编写的计算机程序的一部分,因此它会在达到预定的日期或时间后开始或停止运行。
- 登陆欺骗(login spoofing):登录欺骗是用于窃取用户密码的技术。它会向用户显示一个普通的登录提示,提示用户名和密码,这实际上是一个恶意程序,通常在攻击者的控制下称为特洛伊木马。
- 后门程序(backdoor):软件后门指绕过软件的安全性控制,从比较隐秘的通道获取对程序或系统访问权的黑客方法。
- 防火墙(firewall):防火墙在计算机科学领域中是一个架设在互联网与企业内网之间的信息安全系统,根据企业预定的策略来监控往来的传输。
文章参考:
https://en.wikipedia.org/wiki/Copy-on-write
https://en.wikipedia.org/wiki/Live_migration
https://www.techopedia.com/definition/15763/host-operating-system
https://en.wikibooks.org/wiki/Operating_System_Design/Concurrency/Livelock
https://www.studytonight.com/operating-system/first-come-first-serve
https://blog.csdn.net/liuchuo/article/details/51986201
https://docs.openstack.org/ceilometer/6.1.5/architecture.html
https://www.techopedia.com/definition/16626/error-handling
https://simple.wikipedia.org/wiki/Device_controller
https://blog.csdn.net/zhangjg_blog/article/details/20380971
https://www.techopedia.com/definition/4763/address-space
https://en.wikipedia.org/wiki/Direct_Media_Interface
https://en.wikipedia.org/wiki/Bus_(computing)
https://en.wikipedia.org/wiki/Interrupt_vector_table
https://en.wikipedia.org/wiki/Busy_waiting
https://en.wikipedia.org/wiki/Context_switch
https://en.wikipedia.org/wiki/Read-only_memory
https://www.techopedia.com/definition/6306/cache-hit
https://zhuanlan.zhihu.com/p/37749443
https://en.wikipedia.org/wiki/Pipeline_(computing)
https://en.wikipedia.org/wiki/Stack_register
https://en.wikipedia.org/wiki/Distributed_operating_system
https://en.wikipedia.org/wiki/Time-sharing
https://zh.wikipedia.org/wiki/UNIX
https://zh.wikipedia.org/wiki/UNIX_System_V
https://en.wikipedia.org/wiki/Network_operating_system
https://zh.wikipedia.org/zh/X86-64
https://zh.wikipedia.org/zh/X86
https://en.wikipedia.org/wiki/Cloud_computing
https://www.techopedia.com/definition/24356/mainframe
https://zh.wikipedia.org/wiki/SATA
https://blog.codinghorror.com/understanding-user-and-kernel-mode/
https://en.wikipedia.org/wiki/Protection_ring
来源 | 五分钟学算法
作者 | 程序员cxuan