本文是字节跳动青训营的学习笔记——Linux基础
学习Linux的价值
- Linux是现代化应用程序交付的首选平台,无论是部署在裸机、虚拟化还是容器化环境
- 公司内部服务(TCE、FaaS、SCM)统一使用Debian Linux系统
- 熟悉Linux基础指令,能便于熟练运维前端常用服务(Nginx、Node.js)
- 加深对操作系统概念和实现的理解,夯实基础知识
计算机硬件
在一个完整的
冯·诺依曼计算体系中,计算机主要由五大基本单元组成:控制器、运算器、存储器、输入单元和输出单元。
计算机操作系统
操作系统(Operation System, OS):管理和控制计算机系统中的硬件和软件资源,用于在用于系统硬件之间传递信息。
总结下来计算机操作系统就有两大功能:管理计算机资源和提供用户接口
操作系统的启动流程分为传统模式(基于BIOS模式的启动流程)和当前主流模式(基于UEFI的启动流程)
其中,BIOS或者UEFI就是一段固化在主板上的程序,计算机启动时会默认运行(执行和解析)这段程序,当这段程序解析以后会进行一系列的初始化的动作,以然后去寻找一个
Bootloader(即操作系统引导程序)并运行这段程序,然后通过这段Bootloader程序去加载和运行OS。
- BIOS在启动过程中会有一个BIOS自检,这个过程会对硬件进行一些检查,导致开机时间变长。而UEFI就优化了这个自检的过程,使系统启动速度有明显的提升。
- BIOS启动会配合一个MBR分区,无法引导启动超过2.2T的磁盘,但是UEFI一般配合GPT分区 ,支持引导超过2.2T的磁盘。
Linux系统概览
linux版本
Linux版本:常规Linux版本分为内核版本和发行版本。
两种版本的关系可以简单理解为:linux内核版本+常用软件=linux发行版本
linux发行版本的几个系列
使用shell命令查看linux系统内核版本
# 查看linux版本的两种方法
# 方法一
uname -a
# 方法二
cat /proc/version
cat /etc/os-release # 查看linux系统是哪个发行版本的
linux系统应用领域
- IT服务器(操作系统、虚拟化和云计算)
- 嵌入式和智能设备
- 个人办公桌面
- 学术研究与软件研发
Linux系统结构
linux基本组成
linux系统一般由四个主要部分组成:内核、shell、文件系统、应用程序。
内核:提供操作系统的一些底层能力,包括内存管理、进程管理、文件系统管理和硬件资源管理。
shell:实质上就是一个命令解释器,在shell中输入一些指令与linux进行交互,从而达到使用和管理linux中的一些资源的目的。
文件系统:负责把用户文件存在磁盘中。
应用程序:在linux上运行的一些程序。
linux体系结构
linux体系结构在大体上分为
用户空间和内核空间。
体系结构子目录包含许多其他子目录,这些子目录专注于内核的特定方面,如:引导、内核、内存管理等。
linux系统结构——进程管理
进程管理:
- 进程是正在执行的一个程序或命令
- 进程有自己的地址空间,占用一定的系统资源
- 一个CPU核同一时间只能运行一个进程
- 进程由它的进程ID(PID)和它的父进程的进程ID(PPID)唯一识别
当linux启动的时候会拉起一个
PID为0的进程,当0进程(所有进程的上级)启动以后会拉起1进程(所有用户进程的父进程)和2进程(所有内核进程的父进程)。在后续所有的用户进程启动的时候都是以1进程为模板创建的新进程。
查看进程的命令
# 查看启动的nginx进程
ps -ef | grep ngix
# 以查询到的进程PID为93824为例
# 查看某个进程
top -p 93824
# 关闭指定进程
kill 93824
# 全部进程动态实时视图
top
实际上,linux系统是通过
进程调度的方式实现同一时间运行多个程序。
进程调度是指操作系统按某种策略或规则选择进程占用CPU进行运行的过程。可以简单理解为:CPU将其运行时间做了切分,比如以100ms为一个单位,每100msCPU就会拉取一个
待执行进程进入执行状态,当进程执行完成或者本次执行时间到期后,CPU会自动切换到下一个进程。