Linux 概述与架构

笔记/Linux/Linux 基础/Linux 概述与架构

对应 Linux 面试题 50 道 第 1–20 题。

什么是 Linux#

Linux 是免费开源、类 Unix 的多用户多任务操作系统,支持多线程与多 CPU,可运行 Unix 工具、应用程序与网络协议。Java Web 项目普遍部署在 Linux 服务器上。

Windows vs Linux vs Unix#

维度WindowsLinuxUnix
定位民用娱乐/办公开发部署/服务器商业服务器
授权商业开源免费商业授权
跨平台较好弱,多与硬件绑定
硬件要求中等较低较苛刻
用户群体普通用户开发者/企业银行、电信等

Linux 继承 Unix 设计思想,在普通 PC 上实现 Unix 特性,因开源更易普及。

内核与基本组件#

内核是系统核心,负责:

  1. 系统内存管理
  2. 应用程序管理
  3. 硬件设备管理
  4. 文件系统管理

完整 Linux 系统还包括:ShellGUI、系统实用程序与应用程序。

体系结构:用户空间与内核空间#

┌─────────────────────────────────────┐
│ 用户空间 (User Space) │
│ ┌─────────────┐ ┌──────────────┐ │
│ │ 用户应用程序 │ │ C 库 │ │
│ └─────────────┘ └──────────────┘ │
├─────────────────────────────────────┤
│ 内核空间 (Kernel Space) │
│ ┌──────────┐ ┌──────┐ ┌──────────┐ │
│ │系统调用接口│ │ 内核 │ │平台相关代码│ │
│ └──────────┘ └──────┘ └──────────┘ │
└─────────────────────────────────────┘

现代 CPU 有不同工作模式,为保护内核安全将系统分为两层。用户空间进入内核空间的方式:

  • 系统调用(如 read、write、open)
  • 硬件中断

Shell 与 CLI / GUI#

  • BASH(Bourne Again SHell):多数 Linux 默认 Shell,命令区分大小写,/ 为目录分隔符
  • CLI(命令行界面):键盘输入指令,省资源,熟记命令后效率高
  • GUI(图形界面):鼠标操作,直观但占用更多资源

与 DOS 的区别:DOS 命令不区分大小写;DOS 中 \ 是目录分隔符;DOS 遵循 8.3 文件命名。

启动流程与运行级别#

传统启动流程

  1. BIOS 自检
  2. MBR 引导(GRUB/LILO)
  3. 加载 Linux 内核
  4. 运行 init(PID=1,现代系统多为 systemd)
  5. 进入运行级别 / target
  6. 登录终端

运行级别(传统 SysV):

级别含义
0关机
1单用户模式
2字符多用户(无网络)
3字符多用户
4未分配
5图形多用户
6重启

systemd 用 target 替代,如 multi-user.target(类似 3)、graphical.target(类似 5)。

进程间通信(IPC)#

Linux 支持的 IPC 方式:

  1. 管道(pipe)、流管道、有名管道(FIFO)
  2. 信号(signal)
  3. 消息队列
  4. 共享内存
  5. 信号量
  6. 套接字(socket)

日志、交换空间与 root#

  • 日志/var/log/messages 汇总多进程日志,是排查入侵的重要入口
  • 交换空间(Swap):RAM 不足时将内存页换出到磁盘
  • root 帐户:超级用户,拥有完全控制权,生产环境应禁止远程直接登录

开源与 GNU#

开源允许免费分发源码,社区可修改、修复、再分发。GNU 项目推动自由软件运动:自由运行、学习修改、再分发、改进发布。

文章目录

文章目录