六、Linux 实操配套理论

2026-07-18wei👁 44 阅读9 分钟阅读📝 2938 字💬 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
lsls -lls -a

切换目录

bash
cdcd ..cd ~

创建目录

bash
mkdir demo

删除目录

bash
rm -rf demo

创建文件

bash
touch hello.txt

查看文件

bash
cat hello.txtmore hello.txtless hello.txt

查找文件

bash
findlocate

查看进程

bash
ps -ef

实时:

bash
top

查看磁盘

bash
df -h

查看内存

bash
free -h

网络

bash
pingifconfigip addr

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

Shell:

本身:

不能创建文件。

例如:

输入:

bash
touch hello.txt

实际上:

执行:

Shellopen()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。

优点:

  • 性能高
  • 系统调用快

缺点:

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

微内核(了解)

例如:

QNXMinix

特点:

只保留:

最基本:

功能。

其他:

放到:

用户空间。

优点:

稳定。

缺点:

性能较低。


宏内核 vs 微内核

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

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

什么是虚拟化?

一台电脑:

模拟:

多台电脑。

例如:

物理服务器VMwareUbuntuCentOSWindows

三个:

互不影响。


为什么需要?

以前:

一台服务器:

只能:

运行:

一个系统。

资源:

浪费。

虚拟化:

可以:

一台服务器多个虚拟机

资源利用率:

提高。


十一、虚拟机(Virtual Machine)

例如:

WindowsVMwareCentOS

CentOS:

认为:

自己:

拥有:

CPU

内存

磁盘

实际上:

都是:

虚拟出来的。


虚拟化组成

物理硬件Hypervisor(虚拟化层)VM1VM2VM3

常见 Hypervisor

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

十二、虚拟机特点

优点:

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

缺点:

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

例如:

CentOS:

可能:

需要:

2GB RAM

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

容器:

不是:

模拟电脑。

而是:

共享:

宿主机:

Linux Kernel。

例如:

DockerContainer1Container2Container3

都:

共用:

Kernel。


为什么快?

虚拟机:

应用Guest OSHypervisor

容器:

应用DockerLinux 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:

限制:

CPU2核
Memory2GB

超过:

不能使用。


③ UnionFS(联合文件系统)

Docker:

镜像:

为什么:

那么小?

因为:

采用:

UnionFS。

例如:

Ubuntu LayerJDK LayerTomcat LayerApp Layer

多个:

镜像:

共享:

相同层。

因此:

节省空间。


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

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

口诀:

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


十六、Linux 与 Docker 的关系

Docker:

并不是:

操作系统。

而是:

Linux:

上的:

容器引擎。

工作流程:

Docker CLIDocker DaemonLinux KernelNamespaceCgroups容器

因此:

Docker:

底层:

依赖:

Linux Kernel。


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

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

容器:

DockerNamespace(隔离)Cgroups(资源限制)Linux Kernel

虚拟机:

HypervisorGuest 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
技术博客作者
2938 字 · 0 评论
2026-07-18

评论 (0)

暂无评论,来写第一条吧

登录后发表评论