程序员必知的 89 个操作系统核心概念

标签: dev | 发表时间:2023-07-29 00:00 | 作者:
出处:https://itindex.net/relian
   
点击左上方蓝色“    一口Linux”,选择“    设为星标


第一时间看干货文章 
☞【干货】 嵌入式驱动工程师学习路线☞【干货】 一个可以写到简历的Linux物联网综合项目☞【干货】 Linux嵌入式知识点-思维导图-免费获取☞【干货】 我的新书《从零开始学ARM》正式上线


 1

来自:Java 建设者

1. 操作系统(Operating System,OS):是管理计算机硬件与软件资源的系统 软件,同时也是计算机系统的 内核与基石。操作系统需要处理 管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。

2. shell:它是一个程序,可从键盘获取命令并将其提供给操作系统以执行。在过去,它是类似 Unix 的系统上唯一可用的用户界面。如今,除了命令行界面(CLI)外,我们还具有图形用户界面(GUI)。

3. GUI (Graphical User Interface):是一种 用户界面,允许用户通过图形图标和音频指示符与电子设备进行交互。

4. 内核模式(kernel mode): 通常也被称为 超级模式(supervisor mode),在内核模式下,正在执行的代码具有对底层硬件的完整且不受限制的访问。它可以执行任何 CPU 指令并引用任何内存地址。内核模式通常保留给操作系统的最低级别,最受信任的功能。内核模式下的崩溃是灾难性的;他们将停止整个计算机。超级用户模式是计算机开机时选择的自动模式。

5. 用户模式(user node):当操作系统运行用户应用程序(例如处理文本编辑器)时,系统处于用户模式。当应用程序请求操作系统的帮助或发生中断或系统调用时,就会发生从用户模式到内核模式的转换。在用户模式下,模式位设置为 1。从用户模式切换到内核模式时,它从 1 更改为 0。

6. 计算机架构(computer architecture):在计算机工程中,计算机体系结构是描述计算机系统功能,组织和实现的一组规则和方法。它主要包括指令集、内存管理、I/O 和总线结构

7. SATA(Serial ATA):串行 ATA (Serial Advanced Technology Attachment),它是一种电脑总线,负责主板和大容量存储设备(如硬盘及光盘驱动器)之间的数据传输,主要用于个人电脑。

8. 复用(multiplexing):也称为共享,在操作系统中主要指示了时间和空间的管理。对资源进行复用时,不同的程序或用户轮流使用它。他们中的第一个开始使用资源,然后再使用另一个,依此类推。

9. 大型机(mainframes):大型机是一类计算机,通常以其大尺寸,存储量,处理能力和高度的可靠性而著称。它们主要由大型组织用于需要大量数据处理的关键任务应用程序。

10. 批处理(batch system): 批处理操作系统的用户不直接与计算机进行交互。每个用户都在打孔卡等脱机设备上准备工作,并将其提交给计算机操作员。为了加快处理速度,将具有类似需求的作业一起批处理并成组运行。程序员将程序留给操作员,然后操作员将具有类似要求的程序分批处理。

11. OS/360:OS/360,正式称为 IBM System / 360 操作系统,是由 IBM 为 1964 年发布的其当时新的 System/360 大型机开发的已停产的批处理操作系统。

12. 多处理系统(Computer multitasking):是指计算机同时运行多个程序的能力。多任务的一般方法是运行第一个程序的一段代码,保存工作环境;再运行第二个程序的一段代码,保存环境;…… 恢复第一个程序的工作环境,执行第一个程序的下一段代码。

13. 分时系统(Time-sharing):在计算中,分时是通过多程序和多任务同时在许多用户之间共享计算资源的一种系统

14. 相容分时系统(Compatible Time-Sharing System):最早的分时操作系统,由美国麻省理工学院计算机中心设计与实作。

15. 云计算(cloud computing):云计算是计算机系统资源(尤其是数据存储和计算能力)的按需可用性,而无需用户直接进行主动管理。这个术语通常用于描述 Internet 上可供许多用户使用的数据中心。如今占主导地位的大型云通常具有从中央服务器分布在多个位置的功能。如果与用户的连接相对较近,则可以将其指定为边缘服务器。

16. UNIX 操作系统:UNIX 操作系统,是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统。

17. UNIX System V:是 UNIX 操作系统的一个分支。

18. BSD(Berkeley Software Distribution):UNIX 的衍生系统。

19. POSIX:可移植操作系统接口,是 IEEE 为要在各种 UNIX 操作系统上运行软件,而定义 API 的一系列互相关联的标准的总称。

20. MINIX:Minix,是一个迷你版本的类 UNIX 操作系统。

21. Linux:终于到了大名鼎鼎的 Linux 操作系统了,太强大了,不予以解释了,大家都懂。

22. DOS (Disk Operating System):磁盘操作系统(缩写为 DOS)是可以使用磁盘存储设备(例如软盘,硬盘驱动器或光盘)的计算机操作系统。

23. MS-DOS(MicroSoft Disk Operating System):一个由美国微软公司发展的操作系统,运行在 Intel x86 个人电脑上。它是 DOS 操作系统家族中最著名的一个,在 Windows 95 以前,DOS 是 IBM PC 及兼容机中的最基本配备,而 MS-DOS 则是个人电脑中最普遍使用的 DOS 操作系统。

24. MacOS X,怎能少的了苹果操作系统?macOS 是苹果公司推出的基于图形用户界面操作系统,为 Macintosh 的主操作系统

25. Windows NT(Windows New Technology):是美国微软公司 1993 年推出的纯 32 位操作系统核心。

26. Service Pack(SP):是程序的更新、修复和(或)增强的集合,以一个独立的安装包的形式发布。许多公司,如微软或 Autodesk,通常在为某一程序而做的修补程序达到一定数量时,就发布一个 Service Pack。

27. 数字版权管理(DRM):他是工具或技术保护措施(TPM)是一组访问控制技术,用于限制对专有硬件和受版权保护的作品的使用。

28. x86:x86 是一整套指令集体系结构,由 Intel 最初基于 Intel 8086 微处理器及其 8088 变体开发。采用内存分段作为解决方案,用于处理比普通 16 位地址可以覆盖的更多内存。32 位是 x86 默认的位数,除此之外,还有一个 x86-64 位,是 x86 架构的 64 位拓展,向后兼容于 16 位及 32 位的 x86 架构。

29. FreeBSD:FreeBSD 是一个类 UNIX 的操作系统,也是 FreeBSD 项目的发展成果。

30. X Window System:X 窗口系统(X11,或简称 X)是用于位图显示的窗口系统,在类 UNIX 操作系统上很常见。

31. Gnome:GNOME 是一个完全由自由软件组成的桌面环境。它的目标操作系统是 Linux,但是大部分的 BSD 系统亦支持 GNOME。

32. 网络操作系统(network operating systems):网络操作系统是用于网络设备(如路由器,交换机或防火墙)的专用操作系统。

33. 分布式网络系统(distributed operating systems):分布式操作系统是在独立,网络,通信和物理上独立计算节点的集合上的软件。它们处理由多个 CPU 服务的作业。每个单独的节点都拥有全局集合操作系统的特定软件的一部分。

34. 程序计数器(Program counter):程序计数器 是一个 CPU 中的 寄存器,用于指示计算机在其程序序列中的 位置

35. 堆栈寄存器(stack pointer):堆栈寄存器是计算机 CPU 中的寄存器,其目的是 跟踪调用堆栈

36. 程序状态字(Program Status Word): 它是由操作系统维护的 8 个字节(或 64 位)长的数据的集合。它跟踪系统的当前状态。

37. 流水线(Pipeline): 在计算世界中,管道是一组串联连接的数据处理元素,其中一个元素的输出是下一个元素的输入。流水线的元素通常以并行或按时间分割的方式执行。通常在元素之间插入一定数量的缓冲区存储。

38. 超标量(superscalar):超标量 CPU 架构是指在一颗处理器内核中实行了指令级并发的一类并发运算。这种技术能够在相同的 CPU 主频下实现更高的 CPU 流量。

39. 系统调用(system call):  指运行在用户空间的程序向操作系统内核请求需要更高权限运行的服务。系统调用提供用户程序与操作系统之间的接口。大多数系统交互式操作需求在内核态运行。如设备 IO 操作或者进程间通信。

40. 多线程(multithreading):是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因为有硬件支持而能够在同一时间执行多个线程,进而提升整体处理性能。

41. CPU 核心(core):它是 CPU 的大脑,它接收指令,并执行计算或运算以满足这些指令。一个 CPU 可以有多个内核。

42. 图形处理器(Graphics Processing Unit):又称显示核心、视觉处理器、显示芯片或绘图芯片;它是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上运行绘图运算工作的微处理器。

  1. 存储体系结构:顶层的存储器速度最高,但是容量最小,成本非常高,层级结构越向下,其访问效率越慢,容量越大,但是造价也就越便宜。

44. 高速缓存行(cache lines):其实就是把高速缓存分割成了固定大小的块,其大小是以突发读或者突发写周期的大小为基础的。

45. 缓存命中(cache hit):当应用程序或软件请求数据时,会首先发生缓存命中。首先,中央处理单元(CPU)在其最近的内存位置(通常是主缓存)中查找数据。如果在缓存中找到请求的数据,则将其视为缓存命中。

46. L1 cache:一级缓存是 CPU 芯片中内置的存储库。L1 缓存也称为 主缓存,是计算机中 最快的内存,并且最接近处理器。

47. L2 cache: 二级缓存存储库,内置在 CPU 芯片中,包装在同一模块中,或者建在主板上。L2 高速缓存提供给 L1 高速缓存,后者提供给处理器。L2 内存比 L1 内存慢。

48. L2 cache: 三级缓存内置在主板上或 CPU 模块内的存储库。L3 高速缓存为 L2 高速缓存提供数据,其内存通常比 L2 内存慢,但比主内存快。L3 高速缓存提供给 L2 高速缓存,后者又提供给 L1 高速缓存,后者又提供给处理器。

49. RAM((Random Access Memory):随机存取存储器,也叫主存,是与 CPU 直接交换数据的内部存储器。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的 临时数据存储介质。RAM 工作时可以随时从任何一个指定的地址写入(存入)或读出(取出)信息。它与 ROM 的最大区别是数据的 易失性,即一旦断电所存储的数据将随之丢失。RAM 在计算机和数字系统中用来暂时存储程序、数据和中间结果。

50. ROM (Read Only Memory):只读存储器是一种半导体存储器,其特性是 一旦存储数据就无法改变或删除,且内容不会因为电源关闭而 消失。在电子或电脑系统中,通常用以存储不需经常变更的程序或数据。

51. EEPROM (Electrically Erasable PROM):电可擦除可编程只读存储器,是一种可以通过电子方式多次复写的半导体存储设备。

52. 闪存(flash memory):是一种电子式可清除程序化只读存储器的形式,允许在操作中被多次擦或写的存储器。这种科技主要用于一般性数据存储,以及在电脑与其他数字产品间交换传输数据,如储存卡与 U 盘。

53. SSD(Solid State Disks):固态硬盘,是一种主要以闪存作为永久性存储器的电脑存储设备。

54. 虚拟地址(virtual memory):虚拟内存是计算机系统 内存管理的一种机制。它使得应用程序认为它拥有连续可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。与没有使用虚拟内存技术的系统相比,使用这种技术的系统使得大型程序的编写变得更容易,对真正的物理内存(例如 RAM)的使用也更有效率。

55. MMU (Memory Management Unit):内存管理单元,有时称作分页内存管理单元。它是一种负责处理中央处理器(CPU)的内存访问请求的计算机硬件。它的功能包括 虚拟地址到物理地址的转换(即虚拟内存管理)、内存保护、中央处理器高速缓存的控制等

56. context switch:上下文切换,又称环境切换。是一个存储和重建 CPU 状态的机制。要交换 CPU 上的进程时,必需先行存储当前进程的状态,然后再将进程状态读回 CPU 中。

57. 驱动程序(device driver):设备驱动程序,简称驱动程序(driver),是一个允许高级别电脑软件与硬件交互的程序,这种程序创建了一个硬件与硬件,或硬件与软件沟通的接口,经由主板上的总线或其它沟通子系统与硬件形成连接的机制,这样使得硬件设备上的数据交换成为可能。

58. 忙等(busy waiting):在软件工程中,忙碌等待 也称自旋,是一种以进程反复检查一个条件是否为真的条件,这种机制可能为检查键盘输入或某个锁是否可用。

59. 中断(Interrupt):通常,在接收到来自外围硬件(相对于中央处理器和内存)的异步信号,或来自软件的同步信号之后,处理器将会进行相应的硬件/软件处理。发出这样的信号称为进行 中断请求(interrupt request,IRQ)。硬件中断导致处理器通过一个 运行信息切换(context switch)来保存执行状态(以程序计数器和程序状态字等寄存器信息为主); 软件中断则通常作为 CPU 指令集中的一个指令,以可编程的方式直接指示这种运行信息切换,并将处理导向一段中断处理代码。中断在计算机多任务处理,尤其是即时系统中尤为有用。

60. 中断向量(interrupt vector):中断向量位于中断向量表中。 中断向量表(IVT)是将中断处理程序列表与中断向量表中的中断请求列表相关联的数据结构。中断向量表的每个条目(称为中断向量)都是中断处理程序的地址。

61. DMA (Direct Memory Access):直接内存访问,直接内存访问是计算机科学中的一种内存访问技术。它允许某些电脑内部的硬件子系统(电脑外设),可以独立地直接读写系统内存,而不需中央处理器(CPU)介入处理 。

62. 总线(Bus):总线(Bus)是指计算机组件间规范化的交换数据的方式,即以一种通用的方式为各组件提供数据传送和控制逻辑。

63. PCIe (Peripheral Component Interconnect Express):官方简称 PCIe,是计算机总线的一个重要分支,它沿用现有的 PCI 编程概念及信号标准,并且构建了更加高速的串行通信系统标准。

64. DMI (Direct Media Interface):直接媒体接口,是英特尔专用的总线,用于电脑主板上南桥芯片和北桥芯片之间的连接。

65. USB(Universal Serial Bus):是连接计算机系统与外部设备的一种 串口总线标准,也是一种输入输出接口的技术规范,被广泛地应用于个人电脑和移动设备等信息通讯产品,并扩展至摄影器材、数字电视(机顶盒)、游戏机等其它相关领域。

66. BIOS(Basic Input Output System):是在通电引导阶段运行硬件初始化,以及为操作系统提供运行时服务的固件。它是开机时运行的第一个软件。

67. 硬实时系统(hard real-time system):硬实时性意味着你必须绝对在每个截止日期前完成任务。很少有系统有此要求。例如核系统,一些医疗应用(例如起搏器),大量国防应用,航空电子设备等。

68. 软实时系统(soft real-time system):软实时系统可能会错过某些截止日期,但是如果错过太多,最终性能将下降。一个很好的例子是计算机中的声音系统。

69. 进程(Process):程序本身只是指令、数据及其组织形式的描述,进程才是程序(那些指令和数据)的真正运行实例。若进程有可能与同一个程序相关系,且每个进程皆可以同步(循序)或异步的方式独立运行。

70. 地址空间(address space):地址空间是内存中可供程序或进程使用的有效地址范围。也就是说,它是程序或进程可以访问的内存。存储器可以是物理的也可以是虚拟的,用于执行指令和存储数据。

71. 进程表(process table):进程表是操作系统维护的 数据结构,该表中的每个条目(通常称为上下文块)均包含有关 进程的信息,例如进程名称和状态,优先级,寄存器以及它可能正在等待的信号灯。

72. 命令行界面(command-line interpreter):是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。

73. 进程间通信(interprocess communication):指至少两个进程或线程间传送数据或信号的一些技术或方法。

74. 超级用户(superuser):也被称为管理员帐户,在计算机操作系统领域中指一种用于进行系统管理的特殊用户,其在系统中的实际名称也因系统而异,如 root、administrator 与 supervisor。

75. 目录(directory):  在计算机或相关设备中,一个目录或文件夹就是一个装有数字文件系统的虚拟 容器。在它里面保存着一组文件和其它一些目录。

76. 路径(path name):路径是一种电脑文件或目录的名称的通用表现形式,它指向文件系统上的一个唯一位置。

77. 根目录(root directory):根目录指的就是计算机系统中的顶层目录,比如 Windows 中的 C 盘和 D 盘,Linux 中的 /

78. 工作目录(Working directory):它是一个计算机用语。用户在操作系统内所在的目录,用户可在此目录之下,用相对文件名访问文件。

79. 文件描述符(file descriptor):文件描述符是计算机科学中的一个术语,是一个用于表述指向文件的引用的抽象化概念。

80. inode:索引节点的缩写,索引节点是 UNIX 系统中包含的信息,其中包含有关每个文件的详细信息,例如节点,所有者,文件,文件位置等。

81. 共享库(shared library):共享库是一个包含目标代码的文件,执行过程中多个 a.out 文件可能会同时使用该目标代码。

82. DLLs (Dynamic-Link Libraries):动态链接库,它是微软公司在操作系统中实现 共享函数库概念的一种实现方式。这些库函数的扩展名是 .DLL、.OCX(包含 ActiveX 控制的库)或者. DRV(旧式的系统驱动程序)。

83. 客户端(clients):客户端是访问服务器提供的服务的计算机硬件或软件。

84. 服务端(servers):在计算中,服务器是为其他程序或设备提供功能的计算机程序或设备,称为 服务端

85. 主从架构(client-server):主从式架构也称 客户端/服务器架构、 C/S架构,是一种网络架构,它把客户端与服务器区分开来。每一个客户端软件的实例都可以向一个服务器或应用程序服务器发出请求。有很多不同类型的服务器,例如文件服务器、游戏服务器等。

86. 虚拟机(Virtual Machines):在计算机科学中的体系结构里,是指一种特殊的软件,可以在计算机平台和终端用户之间创建一种环境,而终端用户则是基于虚拟机这个软件所创建的环境来操作其它软件。

87. Java 虚拟机(Jaav virtual Machines):Java 虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 Java 虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。

88. 目标文件(object file):目标文件是包含 目标代码的文件,这意味着通常无法直接执行的可重定位格式的机器代码。目标文件有多种格式,相同的目标代码可以打包在不同的目标文件中。目标文件也可以像共享库一样工作。

89. C preprocessor:C 预处理器是 C 语言、C++ 语言的预处理器。用于在编译器处理程序之前预扫描源代码,完成头文件的包含, 宏扩展, 条件编译, 行控制等操作。

end


一口Linux 


关注,回复【 1024 】海量Linux资料赠送

精彩文章合集


文章推荐

☞【专辑】 ARM☞【专辑】 粉丝问答☞【专辑】 linux入门☞【专辑】 计算机网络☞【专辑】 Linux驱动☞【干货】 嵌入式驱动工程师学习路线☞【干货】 Linux嵌入式所有知识点-思维导图


相关 [程序员 操作系统 核心] 推荐:

程序员必知的 89 个操作系统核心概念

- - IT瘾-dev
☞【干货】 嵌入式驱动工程师学习路线☞【干货】 一个可以写到简历的Linux物联网综合项目☞【干货】 Linux嵌入式知识点-思维导图-免费获取☞【干货】 我的新书《从零开始学ARM》正式上线. 来自:Java 建设者. 操作系统(Operating System,OS):是管理计算机硬件与软件资源的系统 软件,同时也是计算机系统的 内核与基石.

程序员的自我修养——操作系统篇

- - 博客园_知识库
  也许,只需这一篇文章,便能让你全面的认识操作系统.   在阅读本文之前,推荐阅读“ 自己动手制作4位计算机”. 进程的有哪几种状态,状态转换图,及导致转换的事件. 死锁的概念,导致死锁的原因,导致死锁的四个必要条件,处理死锁的四个方式,预防死锁的方法、避免死锁的方法. Windows内存管理的方式(块式、页式、段式、段页式)..

Android操作系统安全

- - CSDN博客推荐文章
        Android在迅猛发展的同时,其安全问题一直没有引起足够的重视,但在2010年6月研究人员发布Android平台的KernelRootkit以来,Android平台的安全问题引来了越来越多的关注,而同时,Android平台的恶意软件也开始流行起来.        根据以上的Android系统架构分析,可以发现在三个层面可能存在恶意软件.

【探讨一下】做个有核心竞争力的程序员,手中有粮,心中不慌

- Quantum - ITeye论坛最新讨论
   经常在一些技术论坛里看到,有人抱怨说做开发好多年了,技术没有多大长进,薪水也没有提升;. 经常会碰到一些做技术外包的同学,说我天天coding,coding,今天换这个东家、明天换那个东家,代码也写了几十万行,但几年下来,个人竞争力却没多大提升;.   也时常听到一些在大公司里工作的开发人员抱怨,虽然拿着不错的薪水,在公司里成天就像一个螺丝钉一样,被安排在一个细小的领域里,几年下来,抠来抠去,就那点东西,实在微不足道,同行面前拿不出手,没有成就感;.

Mozilla将开发独立操作系统

- ccyuling - Solidot
Mozilla宣布了一个新项目“Boot to Gecko”,旨在为开放互联网开发一种完整独立的操作系统,成为ChromeOS或Android的某种竞争对手. 源代码将发布在Github上(暂时只有README). Mozilla此举是为了推广开放Web技术,Boot to Gecko针对的不是笔记本,而是智能手机,为Android兼容设备提供基质.

五家移动操作系统盘点

- 离歌 - 互联网的那点事
这篇文章,我起草有一段日子了,现在我觉得该是时候完成它. 伴随着iPhone更新的传言、RIM的诽谤、对触摸板的既爱又恨等这些话题的出现,我认为现在就是发表看法的最好时机. 博客之间近来出现了一场大型的拔河较力,热论某些公司的命运或者某些手机操作系统的优势,又或者仅仅只是移动通讯技术的整体发展方向.

Joyent 发布 SmartOS 开源操作系统

- ArBing - vpsee.com
以 OpenSolaris 为基础架构的云计算公司 Joyent 上周发布了他们自己的操作系统 SmartOS,并在 github 上公开了其所有的源代码,很高兴看到又一个云计算厂商加入到开源的队伍. 和其他依赖 Linux 的云计算系统不同,Joyent 提供的 SmartOS 基于 illumos(SUN 被 Oracle 收购后,OpenSolaris 分裂出来的版本).

Cosmos--基于C#的操作系统

- Amom - Solidot
Shawn the R0ck 写道 "不论从MIT开放课程6.828操作系统工程(Operating System Engineering)还是实际工程中的Unix-like系统,使用C语言和少量的汇编已经是铁律一般的工程原则,虽然也有不少hacker尝试基于Lisp的OS比如试验性项目LOSAK,但都还没有大规模的工程应用.

Ubuntu发布移动版操作系统

- - Ubuntusoft
Ubuntu刚刚在其官方主页发布了移动版操作系统. 该系统完全开源免费,并且分为“普通版”和“高级版”两个版本. 其中“普通版”对手机配置的要求较低,但是功能有限. 系统采用全手势操作,屏幕每个边缘都会对应不同操作,比如短暂的在屏幕左端边缘滑动手指便可呼出程序菜单,从屏幕左端滑到右端则可以显示目前打开的应用程序,短暂的在屏幕右侧滑动手指则是类似“返回键”的功能等等.

9 个免费的云操作系统

- - 开源中国社区最新新闻
云操作系统 允许你在任何地方访问你的数据. 最基本的它可作为你的在线磁盘,用来存储任何的数据. 使用云操作系统你可以创建办公项目、编辑文档以及几乎任何你在桌面上能完成的其他事情. 这里我们像你推荐 9 个免费的云操作系统. 使用 ZeroPC 你可以访问为你提供的 1G 免费存储空间,可以连接多种不同的云计算服务,诸如:Google Drive, DropBox, 4Shared, SkyDrive 等等.