Linux 基础
① 课程介绍
② 学习Linux的价值
- Linux是现代化应用程序交付的首选平台,无论是部署在逻辑,虚拟化还是容器化环境。
- 公司内部服务(TCE、FaaS、SCM)统一使用Debian Linux系统。
- 熟悉Linux基础指令,熟练运维前常用服务(Nginx,Node.js)。
- 加深对操作系统概念和实现的理解,夯实基础知识。
③ 课前准备
- 一台安装Debian Linux系统的计算机
④ 讲课内容明白图
一、计算机硬件
①计算机由五大基本单元组成
- 控制器
- 运算器
- 存储器单元
- 输入单元
- 输出单元
二、计算机操作系统
① 操作系统(OS)
- 管理和控制计算机系统中的硬件和软件资源,用于在用户与系统硬件之间传递信息。
② 思考一下:
小李认为,操作系统本身是一个程序,但不是进程,至少和大部分进程不在一个层面,进程只能在操作系统的基础之上运行的。
进程的调度、权限管理都需要操作系统完成,如果操作系统是一个和其他进程类似的进程,那么在运行非操作系统进程时,如果想切换回操作系统,非操作系统进程只能反过来调度操作系统,这显然是不合理的。
换句话说,操作系统在计算机启动后就开始运行了(如果引导程序也算作操作系统的一部分),进程本身是在操作系统启动后,经操作系统注册和设置后才能运行的。因此操作系统在大部分程序(进程)之前出现,所以开机后操作系统先于其他进程已开始运行。
③ 操作系统启动流程图:
三、Linux系统概览
① Linux 发展简史
- 1969年,Unix诞生于贝尔实验室
- 1984年,贝尔实验室将Unix商业化
- 1984年,Tanenbaum开发Minux操作系统用于教学并开放源码
- 1984年,Richard M.Stallman发起自由软件(FSF)与GNU项目,起草GPL(通用公共许可)协议
- 1991年,Linus Torvalds受Minix影响实现初版的Linux内核
- 1992年,Linux内核以GPL协议发行V1.0
② Linux版本
- 内核版本
- 发行版本
③ 查看Linux系统内核版本
④ 查看Linux系统版本
⑤ Linux系统应用领域
- IT服务器(操作系统,虚拟化和云计算)
- 嵌入式和智能设备
- 个人办公桌面
- 学术研究与软件研发
四、Linux 系统结构
① Linux 基本组成
② Linux 体系结构
③ 内核漫画
Linux 系统结构
① 进程管理
- 进程是正在执行的一个程序或指令
- 进程有自己的地址空间,占用一定的系统资源
- 一个CPU核同一时间只能运行一个进程
- 进程由它的进程ID(PID)和它父进程的进程ID(PPID)唯一识别
② 查看进程信息
③ 问题思考:
小李认为,Linux系统中采用了进程和线程的方式来实现同时运行大量程序的功能。 进程(process)是一个正在执行中的程序实例,它包含了程序代码、执行状态、 CPU 寄存器、打开文件的指针等信息。每个进程都有自己的地址空间,它们之间是相互隔离的。 系统运行每个进程时都会为它分配一定资源,如内存、IO 设备等。
线程(thread)是进程内的一条执行路径,它与其他线程共享进程的资源,如代码、数据、打开的文件等。线程比进程更轻量级,因此在创建和销毁时更加迅速,并且线程间切换的代价更小。
通过进程和线程的管理,Linux系统在一个CPU上,同时运行多个进程和线程,通过操作系统的调度和进程/线程间的协作,实现了多任务处理和抢占式调度,从而实现了系统资源的最大化利用和应用程序的高效执行
④ 进程调度
- 进程调度是指操作系统按某种策略或规则选择进程占用CPU进行运行的过程。
⑤ 进程调度原则
- 一个CPU核同一时间只能运行一个进程
- 每个进程有近乎相等的执行时间
- 对于逻辑CPU而言进程调度使用轮询的方式执行,当轮询完成则回到第一个进程反复
- 进程执行消耗时间和进程量成正比
⑥ 进程的系统调度
- 内核空间(Kernal Space):系统内核运行的空间
- 用户空间(User Space):应用程序运行的空间
Linux系统结构
① 文件系统
- 文件系统负责管理持久化数据的子系统,负责把用户的文件存到磁盘硬件中。
② 文件系统示意图
- Linux文件系统是采用树状的目录结构,最上层是/(根)目录
③ 问题思考
- Linux有很多不同的文件系统,如何实现对用户提供统一调用接口的?
小李认为,Linux内核为不同的文件系统提供了抽象层来实现文件系统的统一调用接口。这个抽象层称为虚拟文件系统(Virtual File System,VFS)。用户使用的所有文件系统都必须遵循VFS的接口规范,以便能够被Linux内核统一管理。通过VFS的接口规范,用户就可以使用完全相同的接口调用来访问不同的文件系统,而不需要考虑文件系统类型。这使得Linux内核相当灵活,可以支持各种不同类型的文件系统。
④ 虚拟文件系统
- 虚拟文件系统(VFS)
- 对应用层提供一个标准的文件操作接口
- 对文件系统提供一个标准的文件接入接口
⑤ 查看文件系统类型和实现文件基本操作
⑥ 文件读取流程
Linux 系统结构
用户权限
① 用户账户
-
用户账户
-
普通用户账户:在系统中进行普通作业
-
超级用户账户:在系统中对普通用户和整个系统进行管理
-
用户组
-
标准组:可以容纳多个用户
-
私有组:只有用户自己
② 文件权限
文件权限关于用户有三个概念:
所有者:文件的所有者 所在组:文件的所有者所在的组 其他人:除文件所有者及所在组外的其他人
- 每个用户对于文件都有不同权限,包括读(R),写(W),执行(X)
③ 查看用户信息和用户权限操作
五、Linux 软件包管理
① 软件包
- 软件包:指一个应用程序,它可以是一个GUI应用程序,命令行工具或(其他软件程序需要的)软件库。
② 软件包管理
底层工具:用来处理安装和删除软件包文件等任务,DPKG,RPM
上层工具:主要用于数据的搜索任务和依赖解析任务,APT,YUM,DNF
③ 软件包管理工具
- RPM:为 RED HAT 操作系统的包管理系统
- DPKG:为Debian操作系统的包管理系统