学习Linux的价值
-
Linux是现代应用程序交付的首选平台,无论是部署在裸机,虚拟化还是容器化环境 -
公司内部服务统一使用Debian Linux系统 -
熟悉Linux基础指令,熟练运维 前端常用服务(Nginx,Node.js) -
加深对操作系统概念和实现的理解,夯实基础
- 操作系统: 管理和控制计算机系统中的硬件和软件资源,用于在用户与系统硬件之间传递信息,起到承上启下的作用
- Linux系统一般有4个主要部分:内核 shell 文件系统 应用程序
进程管理
- 进程是正在执行的一个程序或者命令
- 进程有自己的地址空间,占用一定的系统资源
- 一个CPU核同一时间只能运行一个进程
- 进程由它的进程ID(PID)和它父进程的进程ID(PPID)唯一识别
- Linux系统启动一个进程后,它是通过一个父进程拉起一个子进程,也就是说它会将父进程当成一个模板来创建一个新的进程,然后将子进程的系统和资源移至新进程
- Linux的进程结构式一个树形的结构
graph TD
Pid0 --> Pid1
Pid0 --> Pid2
Pid1 --> Pid456
Pid2 --> Pid444
查看进程信息
#查看启动的nginx进程
ps -ef | grep nginx
#查看某一个进程
top -p 93824
#关闭指定的进程
kill 93824
#全部进程动态实时视图
top
问题思考
系统中运行的程序远远大于CPU的核数,那Linux系统是如何实现同时运行这么多程序的
- 答案是进程调度
进程调度
- 进程调度是指操作系统按某种策略或规则选择进程占用CPU进行运行的过程
进程调度原则
-
一个CPU核同一时间只能运行一个进程
-
每个进程有近乎相等的执行时间
-
对于逻辑CPU而言进程调度使用轮询的方式执行,当轮询完成则回到第一个进程反复
-
进程执行消耗时间和进程量成正比
-
内核空间: 系统内核运行的空间
-
用户空间: 应用程序运行的空间
文件系统
- 文件系统是操作系统中负责管理持久数据的子系统,负责把用户的文件存在磁盘硬件中,持久化的保存文件
- 树结构的目录结构
问题思考
Linux有这么多不同的文件系统,如何实现对用户提供统一调用接口的
- 答案是虚拟文件系统
虚拟文件系统
- 对应用层提供一个标准的文件操作接口
- 对文件系统提供一个标准的文件接入接口
#df 命令报告文件系统磁盘空间利用率
df -T
#mount 命令是挂载文件系统调用的,不带任何参数运行,会打印包含文件系统类型在内的磁盘分区的信息
mount
文件权限
- 文件权限关于用户有三个概念
- 所在者: 文件的所有者
- 所在组: 文件的所有者所在的组
- 其他人: 除文件所有者及所在组外的其他人
- 每个用户对于文件都有不同的权限,包括读 R 写 W 执行
- 例如 drwxr-xr-x d文件类型 rwxr-所有者 xr-所在组 x-其他人