计算机操作系统
一、操作系统的定义
操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的程序,是计算机的基石;
操作系统本质上是一个运行在计算机上的软件程序,用于管理计算机硬件和软件资源。运行在电脑上的所有应用程序都通过操作系统来调用系统内存以及磁盘等;
操作系统存在屏蔽了硬件层的复杂性。操作系统就像是硬件使用的负责人,统筹着各种相关事项;
操作系统的内核(Kernel)是操作系统的核心部分,它负责系统的内存管理,硬件设备的管理,文件系统的管理以及应用程序的管理。内核是连接应用程序和硬件的桥梁,决定着系统的性能和稳定性。
二、核心概念
CPU 中央处理器
中央处理器 CPU(Central Processing Unit)是一台计算机的运算核心(Core)+ 控制核心(Control Unit),是计算机的大脑,包括控制器和运算器。CPU 的根本任务是执行指令,对计算机来说最终都是一串由 0 和 1 组成的序列。
操作系统的内核(Kernel)属于操作系统层面,主要负责系统管理例如内存管理,它屏蔽了对硬件的操作;而 CPU 属于硬件层面,主要提供运算,处理各种指令的能力。
CPU 核心
CPU 核心 (core) 是 CPU 的大脑,它接收指令,并执行计算或运算以满足这些指令。一个 CPU 可以有多个内核。
GPU 图形处理器
图形处理器 (Graphics Processing Unit) 又称显示核心、视觉处理器、显示芯片或绘图芯片。与 CPU 不同,GPU 擅长同时处理跨内核的简单任务。顾名思义,它最初是为解决图形而开发的。这就是为什么在图形环境中 使用 GPU 或 GPU 支持 都与快速渲染和顺滑交互有关。近年来随着 GPU 加速计算的普及,仅靠 GPU 一己之力也使得越来越多的计算成为可能。
在电脑或手机上启动应用时,是 CPU 和 GPU 为应用供能,通常情况下应用是通过操作系统提供的机制在 CPU 和 GPU 上运行。
进程与线程
进程(Process)是资源分配的最小单位,线程(Thread)是 CPU 调度的最小单位。点击查看详情
多线程
多线程 (multithreading) 是指从软件或硬件上实现多个线程并发执行的技术。
多处理系统
多处理系统 (Computer multitasking) 是指计算机同时运行多个程序的能力。
文件
文件是操作系统对物理磁盘的抽象。
shell
shell 是一个程序,可从键盘获取命令并将其提供给操作系统以执行。
GUI
GUI 是一种用户界面,允许用户通过图形图标和音频指示符与电子设备进行交互。
计算机架构
在计算机工程中,计算机体系结构 (computer architecture) 是描述计算机系统功能,组织和实现的一组规则和方法。它主要包括指令集、内存管理、I/O 和总线结构。
程序计数器
程序计数器 (Program counter) 是一个 CPU 中的寄存器,用于指示计算机在其程序序列中的位置。
缓存命中
当应用程序或软件请求数据时,会首先发生缓存命中 (cache hit)
RAM 与 ROM
- RAM (Random Access Memory) 即随机存取存储器,也叫主存,是与 CPU 直接交换数据的内部存储器;
- ROM (Read Only Memory) 只读存储器是一种半导体存储器,其特性是一旦存储数据就无法改变或删除。
驱动程序
驱动程序 (device driver) 是一个允许高级别电脑软件与硬件交互的程序。
USB
USB (Universal Serial Bus) 是连接计算机系统与外部设备的一种串口总线标准,也是一种输入输出接口的技术规范。
虚拟内存
虚拟内存(地址空间)是操作系统对物理内存的抽象。
地址空间
地址空间 (address space) 是内存中可供程序或进程使用的有效地址范。
进程间通信
进程间通信 (interprocess communication) 指至少两个进程或线程间传送数据或信号的一些技术或方法。
路径
路径 (path name) 是一种电脑文件或目录的名称的通用表现形式,它指向文件系统上的一个唯一位置。
目录
在计算机或相关设备中,一个目录 (directory) 或文件夹就是一个装有数字文件系统的虚拟容器。
根目录
根目录 (root directory) 指的就是计算机系统中的顶层目录,比如 Windows 中的 C 盘和 D 盘,Linux 中的 /
工作目录
工作目录 (Working directory) 即用户在操作系统内所在的目录,用户可在此目录之下,用相对文件名访问文件。
文件描述符
文件描述符 (file descriptor) 是一个用于表述指向文件的引用的抽象化概念。
客户端与服务端
- 客户端 (clients) 是访问服务器提供的服务的计算机硬件或软件;
- 服务端 (servers) 是为其他程序或设备提供功能的计算机程序或设备。