六、Linux 实操配套理论

2026-07-18wei👁 16 阅读9 分钟阅读📝 3942 字💬 0 评论
六、Linux 实操配套理论

六、Linux 实操配套理论

⭐⭐⭐⭐⭐ Linux 运维、Java 后端、云计算、Docker、K8s 面试高频章节

本章重点:

  • Linux 用户接口
  • Shell
  • 系统调用
  • Linux 内核基础架构
  • 虚拟化技术
  • 容器技术
  • Docker 底层原理(Namespace、Cgroups、UnionFS)

一、Linux 用户接口(User Interface)

什么是用户接口?

用户接口(User Interface,UI):

用户与操作系统进行交互的方式。

简单来说:

我们不能直接操作 Linux 内核。

而是:

用户  用户接口  Linux 内核  硬件 

Linux 主要有两种接口:

  • 图形界面(GUI)
  • 命令行(Shell)

服务器环境:

基本都是:

Shell。


二、GUI(图形界面)

GUI:

Graphical User Interface。

例如:

Ubuntu:

桌面  鼠标  窗口 

优点:

  • 易上手
  • 操作简单

缺点:

  • 占资源
  • 不适合服务器

因此:

企业服务器:

一般不会安装 GUI。


三、Shell(★★★★★)

Shell:

Linux 最重要的用户接口。

定义:

Shell 是用户与 Linux 内核之间的命令解释器。

例如:

输入:

bash
ls 

Shell:

解析:

ls  系统调用  Linux Kernel  读取目录  返回结果 

所以:

Shell:

不是内核。

只是:

命令解释器。


为什么叫 Shell(外壳)?

Linux:

用户  Shell(外壳)  Kernel(内核)  硬件 

Shell:

包裹着:

内核。

因此:

叫:

Shell。


四、Shell 的工作过程(★★★★★)

例如:

输入:

bash
mkdir test 

执行流程:

用户输入命令  Shell解析  系统调用  Kernel  创建目录  返回结果 

整个过程中:

真正完成工作的:

是:

Linux Kernel。

Shell:

只是:

负责解释命令。


五、常见 Shell

Linux:

支持:

很多 Shell。

例如:

Shell 特点
Bash 默认,最常用
Zsh 功能丰富,支持自动补全
Sh 最早版本
Fish 用户体验友好

企业:

99%:

使用:

Bash。

查看:

bash
echo $SHELL 

例如:

/bin/bash 

六、Shell 常用命令(★★★★★)

查看目录

bash
pwd 

查看文件

bash
ls ls -l ls -a 

切换目录

bash
cd cd .. cd ~ 

创建目录

bash
mkdir demo 

删除目录

bash
rm -rf demo 

创建文件

bash
touch hello.txt 

查看文件

bash
cat hello.txt more hello.txt less hello.txt 

查找文件

bash
find locate 

查看进程

bash
ps -ef 

实时:

bash
top 

查看磁盘

bash
df -h 

查看内存

bash
free -h 

网络

bash
ping ifconfig ip addr 

七、系统调用(★★★★★)

Shell:

本身:

不能创建文件。

例如:

输入:

bash
touch hello.txt 

实际上:

执行:

Shell  open()  write()  close() 

这些:

都是:

系统调用。


常见系统调用

Linux:

c
open() read() write() close() fork() exec() mmap() socket() 

Java:

例如:

java
new File() 

最终:

也会:

调用:

Linux:

open() 

八、Linux 内核(Kernel)(★★★★★)

Linux:

真正核心:

就是:

Kernel。

Kernel:

一直运行。

负责:

  • CPU 调度
  • 内存管理
  • 文件系统
  • 网络
  • 驱动
  • 安全

没有 Kernel:

Linux:

无法运行。


九、Linux 内核架构(★★★★★)

Linux:

属于:

宏内核(Monolithic Kernel)。

整体结构:

用户程序  Shell  系统调用  Linux Kernel ├── 进程管理├── 内存管理├── 文件系统├── 网络协议栈├── 设备驱动└── 安全模块  硬件 

为什么叫宏内核?

因为:

绝大多数:

功能:

都在:

Kernel 内部。

例如:

文件系统 网络 驱动 调度 

都属于:

Kernel。

优点:

  • 性能高
  • 系统调用快

缺点:

  • 一个模块出错可能影响整个内核
  • 调试复杂

微内核(了解)

例如:

QNX Minix 

特点:

只保留:

最基本:

功能。

其他:

放到:

用户空间。

优点:

稳定。

缺点:

性能较低。


宏内核 vs 微内核

项目 宏内核 微内核
性能 较低
稳定性 一般 更高
Linux
Windows(现代) 混合架构 -

十、虚拟化(Virtualization)(★★★★★)

什么是虚拟化?

一台电脑:

模拟:

多台电脑。

例如:

物理服务器  VMware  Ubuntu CentOS Windows 

三个:

互不影响。


为什么需要?

以前:

一台服务器:

只能:

运行:

一个系统。

资源:

浪费。

虚拟化:

可以:

一台服务器  多个虚拟机 

资源利用率:

提高。


十一、虚拟机(Virtual Machine)

例如:

Windows  VMware  CentOS 

CentOS:

认为:

自己:

拥有:

CPU

内存

磁盘

实际上:

都是:

虚拟出来的。


虚拟化组成

物理硬件  Hypervisor(虚拟化层)  VM1 VM2 VM3 

常见 Hypervisor

软件 类型
VMware ESXi 企业级
VMware Workstation 桌面
KVM Linux 原生
Xen 云平台
Hyper-V Windows

十二、虚拟机特点

优点:

  • 完整操作系统
  • 隔离性强
  • 安全

缺点:

  • 启动慢
  • 占内存
  • 占磁盘

例如:

CentOS:

可能:

需要:

2GB RAM 

十三、容器(Container)(★★★★★)

容器:

不是:

模拟电脑。

而是:

共享:

宿主机:

Linux Kernel。

例如:

Docker  Container1 Container2 Container3 

都:

共用:

Kernel。


为什么快?

虚拟机:

应用  Guest OS  Hypervisor 

容器:

应用  Docker  Linux Kernel 

没有:

Guest OS。

所以:

启动:

几秒。

甚至:

几百毫秒。


十四、Docker 底层原理(★★★★★)

Docker:

为什么:

容器之间:

互不影响?

因为:

Linux:

提供:

两个核心技术。


① Namespace(命名空间)

Namespace:

负责:

隔离。

例如:

容器A:

PID=1 

容器B:

PID=1 

互相:

看不到。

隔离:

包括:

  • PID
  • Network
  • Mount
  • IPC
  • UTS
  • User

因此:

每个容器:

认为:

自己:

独占:

整个系统。


② Cgroups(Control Groups)

Namespace:

解决:

隔离。

Cgroups:

解决:

资源限制。

例如:

Docker:

限制:

CPU 2核 
Memory 2GB 

超过:

不能使用。


③ UnionFS(联合文件系统)

Docker:

镜像:

为什么:

那么小?

因为:

采用:

UnionFS。

例如:

Ubuntu Layer  JDK Layer  Tomcat Layer  App Layer 

多个:

镜像:

共享:

相同层。

因此:

节省空间。


十五、虚拟机与容器区别(★★★★★)

项目 虚拟机 容器
操作系统 独立 Guest OS 共享宿主机 Kernel
启动速度 分钟级 秒级甚至毫秒级
内存占用
隔离性 更强 较强
性能 略低 接近原生
部署速度

口诀:

虚拟机模拟整台电脑,容器共享内核运行应用。


十六、Linux 与 Docker 的关系

Docker:

并不是:

操作系统。

而是:

Linux:

上的:

容器引擎。

工作流程:

Docker CLI  Docker Daemon  Linux Kernel  Namespace  Cgroups  容器 

因此:

Docker:

底层:

依赖:

Linux Kernel。


十七、本章知识关系图(★★★★★)

用户  Shell  系统调用  Linux Kernel ├── CPU管理├── 内存管理├── 文件系统├── 网络└── 驱动  硬件 

容器:

Docker  Namespace(隔离)  Cgroups(资源限制)  Linux Kernel 

虚拟机:

Hypervisor  Guest OS  应用 

十八、本章重点总结(必背)

Linux 用户接口

  • GUI
  • Shell(最重要)

Shell

作用:

  • 解释命令
  • 调用系统调用
  • 与 Kernel 交互

Linux 内核

负责:

  • CPU 调度
  • 内存管理
  • 文件系统
  • 网络协议
  • 驱动管理
  • 安全控制

Linux:

属于:

宏内核(Monolithic Kernel)


虚拟化

Hypervisor  多个虚拟机  多个 Guest OS 

容器

Docker  多个容器  共享 Linux Kernel 

Docker 三大底层技术

技术 作用
Namespace 资源隔离
Cgroups CPU、内存等资源限制
UnionFS 镜像分层与共享

口诀:

Namespace 做隔离,Cgroups 控资源,UnionFS 管镜像。


面试/考试高频问题

Q1:Shell 和 Linux 内核是什么关系?

答: Shell 是 Linux 的命令解释器,负责接收用户命令并调用系统调用;Linux Kernel 是操作系统内核,负责真正执行进程管理、内存管理、文件系统和设备管理等核心功能。Shell 本身并不直接操作硬件。

Q2:为什么 Linux 属于宏内核?

答: 因为 Linux 将进程管理、内存管理、文件系统、网络协议栈和设备驱动等大部分功能都运行在内核空间,系统调用效率高、性能好,因此属于宏内核(Monolithic Kernel)。

Q3:虚拟机和容器有什么区别?

答: 虚拟机通过 Hypervisor 虚拟完整的硬件环境,每个虚拟机都拥有独立的 Guest OS;容器则共享宿主机 Linux Kernel,仅隔离应用及其运行环境,因此容器启动更快、资源占用更少、性能更接近原生。

Q4:Docker 为什么启动这么快?

答: Docker 容器不需要启动完整操作系统,而是直接共享宿主机 Linux Kernel,仅创建隔离环境,因此启动速度通常只需几秒甚至几百毫秒。

Q5:Docker 底层依赖哪些 Linux 技术?

答:

  • Namespace:实现进程、网络、文件系统等资源隔离。
  • Cgroups:限制 CPU、内存、磁盘 IO 等资源使用。
  • UnionFS:实现镜像分层存储,提高镜像复用率,减少磁盘占用。

面试口诀: Namespace 做隔离,Cgroups 控资源,UnionFS 管镜像。

wei
技术博客作者
3942 字 · 0 评论
2026-07-18

评论 (0)

暂无评论,来写第一条吧

登录后发表评论

分类

友链

关于本站

用 SpringBoot + Nuxt3 搭建的个人技术博客,记录编程之路的思考与收获。

© 2026 好啵博客 · Built with ❤️ & SpringBoot + Nuxt3