课程介绍
学习 Linux 的价值
- Linux 是现代化应用程序交付的首选平台,无论是部署在裸机、虚拟化还是容器化环境
- 公司内部服务(TCE、FaaS、SCM)统一使用 Debian Linux 系统
- 熟悉 Linux 基础指令,熟练运维前端常用服务(Nginx,Node.js)
Linux 为什么选企鹅作为 Logo
- 企鹅是南极洲的标志性动物,根据国际公约,南极洲为全人类共同所有不属于当今世界上的任何国家。
- Linux 选择企鹅图案作标志,其含意也是表明:开源的 Linux,为全人类共同所有,任何公司无权将其私有。
1. 计算机硬件
由五大基本单元组成
名称 | 作用 | 说明 | 举例 |
---|---|---|---|
控制器 | 协调和指挥计算机中其他部件进行工作 | 常规意义上认为与运算器共同组成CPU单元 | |
运算器 | 算术和逻辑运算 | 常规意义上认为与运算器共同组成CPU单元 | |
存储器单元 | 内存和外存 | 磁盘、光驱都是属于外存 | |
输入单元 | 鼠标、键盘 | ||
输出单元 | 显示器、音响 |
2. 计算机操作系统
简介
-
管理和控制计算机系统中的硬件和软件资源,用于在用户与系统硬件之间传递信息
-
承上启下,提供两大能力:
- 管理计算机资源
- 处理器管理
- 存储器管理
- 设备管理
- 文件管理
- 提供用户接口
- 命令接口
- 图像用户接口
- 程序接口
- 管理计算机资源
-
常见操作系统
- iOS
- Linux
- Windows
- Anroid
- HarmonyOS
启动流程
- BIOS/UEFI
- 简单理解为固化在主板上的一段程序
- 作用:让计算机开机的时候就可以去执行和解析这段程序,当程序初始化的时候然后找到操作系统引导程序 Bootloader,最终运行OS
- 区别:UEFI是BIOS的优化版本
3. Linux 系统概览
版本
- 内核版本
- 发行版本
Linux内核 + 常用软件 = Linux发行版本
比较主流的Linux发行版本分支:
应用领域
- IT 服务器(操作系统、虚拟化和云计算)
- 嵌入式和智能设备
- 个人办公桌面
- 学术研究与软件研发
4. Linux 系统结构
主要部分
- 内核:提供操作系统的底层能力,如内存管理、进程管理、文件系统管理和硬件资源管理
- shell(命令解释器):通过输入指令实现与Linux的交互,达到管理和使用Linux里面的资源目的
- 文件系统:负责管理持久数据的子系统,即把用户的文件存入磁盘中去
- 应用程序:Linux之上运行的程序
体系结构
- 内核是硬件与软件之间的中间层
- 内核是一个资源管理程序
- 内核提供一组面向系统的指令
内核漫画
进程管理
- 进程是正在执行的一个程序或命令
- 进程有自己的地址空间,占用一定的系统资源
- 一个CPU核同一时间只能运行一个进程
- 进程由它的进程ID(PID)和它父进程的ID(PPID)唯一识别
通过父进程拉起一个子进程,将父进程作为模板创建一个新的进程,将子进程自己的系统资源和内容映射到新创建的进程之中,并不是通过接口创建新的进程。总结来说,Linux的进程结构是树形结构:
进程调度
- 进程调度是指操作系统按某种策略或规则选择进程占用CPU进行运行的过程
- R(TASK_RUNNING),可执行状态
- S(TASK_INTERRUPTIBLE),可中断的睡眠状态
- D(TASK_UNINTERRUPTIBLE),不可中断的睡眠状态
- T(TASK_STOPPED or TASK_TRACED),暂停状态或跟踪状态
- Z(TASK_DEAD - EXIT_ZOMBIE),退出状态,进程成为僵尸进程
- X(TASK_DEAD - EXIT_DEAD),出状态,进程即将被销毁
进程调度原则
- 一个CPU 核同一时间只能运行一个进程
- 每个进程有近乎相等的执行时间
- 对于逻辑 CPU 而言进程调度使用轮询的方式执行,当轮询完成则回到第一个进程反复
- 进程执行消耗时间和进程量成正比
进程的系统调用
内核空间(Kernal Space):系统内核运行的空间 用户空间(User Space): 应用程序运行的空间
文件系统
-
文件系统负责管理持久化数据的子系统,负责把用户的文件存在磁盘硬件中
-
Linux中一切皆文件
虚拟文件系统(VFS)
- 用层提供一个标准的文件操作接口
- 件系统提供一个标准的文件接入接口
文件读取流程
用户权限
用户账户
- 用户账户
- 普通用户账户:在系统中进行普通作业
- 超级用户账户:在系统中对普通用户和整个系统进行管理
- 组账户
- 标准组:可以容纳多个用户
- 私有组:只有用户自己
文件权限
文件权限关于用户有三个概念:
- 所有者:文件的所有者
- 所在组:文件的所有者所在的组
- 其他人:除文件所有者及所在组外的其他人
每个用户对于文件都有不同权限,包括读(R)、写(w)、执行(X)