第 01 天:Linux 是什么?内核、发行版及其生态系统

第 01 天:Linux 是什么?内核、发行版及其生态系统

推荐超级课程:

目录

  • [第 01 天:Linux 是什么?内核、发行版及其生态系统](#第 01 天:Linux 是什么?内核、发行版及其生态系统)
    • [为什么要学习 Linux?](#为什么要学习 Linux?)
      • [为什么 Linux 对您(DevOps/SRE/云工程师)很重要](#为什么 Linux 对您(DevOps/SRE/云工程师)很重要)
    • [什么是 Linux?](#什么是 Linux?)
      • [Linux 简史](#Linux 简史)
    • [Linux 的核心组件](#Linux 的核心组件)
      • [(a) 硬件层](#(a) 硬件层)
      • [(b) 内核(Linux 操作系统的核心)](#(b) 内核(Linux 操作系统的核心))
      • [(c) Shell(命令行界面 - CLI)](#(c) Shell(命令行界面 - CLI))
      • [(d) 用户应用程序和系统实用程序](#(d) 用户应用程序和系统实用程序)
    • [Linux vs. Windows特点比较](#Linux vs. Windows特点比较)
    • [Linux 发行版(Distros)](#Linux 发行版(Distros))
      • [流行 Linux 发行版(按类别)](#流行 Linux 发行版(按类别))
    • [Linux 生态系统](#Linux 生态系统)
    • 动手实践和实验
      • 实验准备
      • [第 1 部分:实验 - 启动两个不同的 Linux 实例](#第 1 部分:实验 - 启动两个不同的 Linux 实例)
      • [第 2 部分:连接、探索和识别](#第 2 部分:连接、探索和识别)
      • [第 3 部分:实验和回顾问题](#第 3 部分:实验和回顾问题)
      • [第 4 部分:编写并运行一个简单的脚本](#第 4 部分:编写并运行一个简单的脚本)
      • [第 5 部分:DevOps/SRE/云工程师挑战](#第 5 部分:DevOps/SRE/云工程师挑战)
      • 问题答案
    • 关键术语词汇表
    • 面试准备问题

为什么要学习 Linux?

Linux 是现代技术的支柱。您每天其实都在与它互动,只是通常你没有意识到而已。从为科学研究提供动力的超级计算机,到运行互联网的服务器,再到家中的智能设备,Linux 无处不在。它是开发人员、系统管理员和网络安全专业人员的首选操作系统。了解 Linux 是任何从事技术职业的人都必备的技能。

为什么 Linux 对您(DevOps/SRE/云工程师)很重要

Linux 是现代基础设施的基础,使其成为 DevOps、站点可靠性工程师 (SRE) 和云工程师不可或缺的工具系统:

  • DevOps: Linux 为 CI/CD 流水线(例如 Jenkins、GitLab)和容器平台(例如 Docker、Kubernetes)提供支持。如Bash 脚本可以自动化部署工作流程。

  • SRE: Linux 的稳定性和可配置性确保了可靠、可扩展的系统。SREs 使用 Linux 应用系统进行监控(例如 Prometheus)、日志记录和高可用性设置等。

  • 云工程师: 主要云平台(AWS、GCP、Azure)都运行在 Linux 实例上。精通 Linux 是管理虚拟机、优化成本和配置云服务的关键。

  • 自动化和可扩展性: Linux 的命令行工具和脚本编写能力实现了自动化,而其轻量级的特性支持在数千台服务器上进行扩展。

  • 行业主导地位: 超过 96% 的前 100 万个 Web 服务器和 100% 的前 500 台超级计算机运行的是 Linux操作系统(数据截至 2025 年)。

  • 个人职业生涯需求: 大多数云原生工具(例如 Kubernetes、Terraform)都是 Linux 原生开发的,几乎所有雇主都期望对于 DevOps/SRE/云岗位上的人员是需要他们精通 Linux技术的。

什么是 Linux?

  • Linux 是一个由 Linus Torvalds 于 1991 年创建的免费、开源、类 Unix 的操作系统内核

  • 它构成了许多被称为"Linux 发行版"(distros)的操作系统的核心。

  • Linux 用于服务器、桌面、嵌入式系统、超级计算机、物联网 (IoT) 设备和移动设备(Android)。

Linux 简史

  • 1983 年: Richard Stallman 启动 GNU 项目,旨在创建一个免费、类 Unix 的操作系统。

  • 1991 年: Linus Torvalds 发布了第一个 Linux 内核(版本 0.01),作为个人项目。

  • 1993 年: 最古老的 Linux 发行版之一 Debian 成立。

  • 1994 年: Linux 内核 1.0 发布,标志着一个稳定的里程碑。

  • 2000 年代: Linux 在服务器、超级计算机和嵌入式系统中获得关注。

  • 2010 年代: Linux 为 Android、云平台(AWS、Azure)和容器(Docker)提供支持。

  • 2025 年: Linux 运行在超过 80% 的云工作负载上,是 AI 和 IoT 生态系统的基础。

目前 Linus Torvalds 仍然通过 Linux 内核邮件列表 (LKML) 监督 Linux 内核的开发。

Linux 的核心组件

Linux 的结构是分层的,从硬件到用户应用程序。以下是一个高级概述:

复制代码
+----------------------------------------------------+
| User Applications (Vim, Docker, Apache, etc.)     |
+----------------------------------------------------+
| Shell (Bash, Zsh, Fish, etc.)                     |  <-- 操作系统的一部分
+----------------------------------------------------+
| System Libraries (glibc, libc, OpenSSL, etc.)     |  <-- 操作系统的一部分
+----------------------------------------------------+
| System Utilities (ls, grep, systemctl, etc.)      |  <-- 操作系统的一部分
+----------------------------------------------------+
| Linux Kernel (Process, Memory, FS, Network)       |  <-- 操作系统的核心
+----------------------------------------------------+
| Hardware (CPU, RAM, Disk, Network, Peripherals)   |
+----------------------------------------------------+

(a) 硬件层

  • 物理组件(CPU、RAM、磁盘、网络接口等)。
  • 操作系统通过内核中的设备驱动程序与硬件交互。

(b) 内核(Linux 操作系统的核心)

  • 直接管理系统资源:
    • 进程管理: 调度进程并处理多任务。
    • 内存管理: 高效地分配和解除分配 RAM。
    • 设备驱动程序: 软件和硬件之间的接口。
    • 文件系统管理: 处理数据存储和检索。
    • 网络管理: 管理系统间通信。
  • 内核空间 vs. 用户空间:
    • 内核空间: 内核运行的特权模式,对硬件和系统资源拥有无限制的访问权。这允许直接控制 CPU、内存和 I/O 设备,但它是隔离的,以防止崩溃影响整个系统。
    • 用户空间: 针对用户应用程序和实用程序的受限模式。这里的应用程序不能直接访问硬件,以维护安全性和稳定性------防止有缺陷的应用程序使内核崩溃或危及系统。
    • 为何分离? 它增强了安全性(例如,权限提升攻击更困难)和可靠性(用户应用程序故障不会导致操作系统崩溃)。在 DevOps/SRE 环境中,这种设计实现了安全的容器化(例如,Docker 进程在用户空间运行,但利用 cgroups 等内核功能进行隔离)。
    • 系统调用: 空间之间的桥梁------用户应用程序通过系统调用请求内核服务(例如,open() 读取文件,fork() 创建进程)。这些操作暂时将 CPU 切换到内核模式,执行请求,然后返回结果。示例:运行 ls 时,用户空间中的 Shell 调用内核函数来列出目录内容。
  • 内核版本: 编号为 X.Y.Z(例如 5.15.0),其中 X=主版本,Y=次版本,Z=补丁。
  • 单体内核: 核心服务在内核空间运行以获得性能,这对于低延迟的云和容器应用程序至关重要。

© Shell(命令行界面 - CLI)

  • 一个命令解释器,将用户命令转换为内核系统调用。
  • 示例:Bash(大多数发行版的默认 Shell)、Zsh、Fish、Dash、Ksh。
  • 对于 DevOps 脚本和自动化至关重要。
运行命令时发生了什么?(示例:ls

当您输入 ls(列出目录内容)等命令并按下 Enter 键时,Shell 会协调一个涉及用户空间和内核空间的多步骤过程。以下是分步分解:

  1. 用户输入: 您在终端中输入 ls 并按下 Enter。终端捕获此输入。
  2. Shell 解析: Shell(例如 Bash)读取命令,解析它(检查参数、别名或内置命令),并确定它是一个外部程序(/bin/ls)。
  3. 路径解析: Shell 搜索 $PATH 环境变量以查找可执行文件(例如,找到 /bin/ls)。
  4. 进程创建: Shell 使用系统调用 (fork()) 来为 ls 创建一个子进程。
  5. 内核执行: 内核切换到内核模式,将 /bin/ls 加载到内存中(通过 execve() 系统调用),并在用户空间开始执行。
  6. 命令执行: ls 在用户空间运行,进行系统调用(例如,opendir() 打开目录,readdir() 读取条目)以通过内核与文件系统交互。
  7. 输出生成: ls 格式化输出(例如,文件名),并使用内核系统调用 (write()) 将其写入标准输出 (stdout)。
  8. 进程终止: ls 退出,子进程结束(exit() 系统调用),Shell 重新获得控制权,显示提示符。

这个过程突出了 Shell-内核的交互流程,确保了命令的安全高效的执行。

在 DevOps 中,理解这一点有助于更好地调试脚本和自动化。

flowchart TD A[用户输入 'ls' 并按 Enter] --> B[Shell 解析命令] B --> C[解析路径:查找 /bin/ls] C --> D[系统调用:fork - 创建子进程] D --> E[内核通过 execve 加载并执行 ls] E --> F[ls 在用户空间运行:调用 opendir, readdir] F --> G[系统调用:将输出写入终端] G --> H[ls 退出:exit 系统调用] H --> I[Shell 重新获得控制权:显示提示符]

(d) 用户应用程序和系统实用程序

  • 用户应用程序: 最终用户程序,如网页浏览器、文本编辑器 (Vim)、DevOps 工具 (Docker、Ansible) 和服务器 (Apache)。通过 Shell 或 GUI 通过系统调用与操作系统交互。
  • 系统实用程序: 用于系统交互的核心命令(例如 ls、grep、systemctl),由 GNU 项目提供。
  • 文件系统: 以分层结构组织数据;一切皆文件。
  • 进程: 程序的运行实例,由内核管理。
  • Init 系统: 管理系统启动和服务 (systemd, SysVinit)。

Linux vs. Windows特点比较

特性 Linux Windows 优势说明
源代码 开源 专有 开源允许检查、修改和分发,促进了对 DevOps 工作流程至关重要的透明度和协作。
文件系统 分层 (/) 驱动器盘符 (C:) Linux 的分层文件系统是一致的,是云环境中脚本和自动化的理想选择。
大小写敏感 严格的大小写敏感性防止歧义,对于健壮的 CI/CD 脚本至关重要。
用户 多用户 侧重单用户 Linux 的多用户设计确保了 SRE 的安全、稳定的服务器操作。
包管理 apt, yum 等 .exe, .msi 软件包管理器简化了软件和依赖项管理,这对于云自动化至关重要。
成本 免费(无许可费) 付费许可 降低了云集群中大规模部署的成本。
资源使用 轻量级 资源密集型 容器和可扩展基础设施具有更高的效率。
安全性 强大的权限,公开审查 频繁的漏洞 最大限度地减少恶意软件风险,并支持快速、透明的补丁,无需重新启动。
稳定性 高正常运行时间(数年不崩溃) 容易重启 确保生产环境中的 99.99%+ 可靠性。

Linux 发行版(Distros)

Linux 发行版 是一个完整的操作系统包,包括 Linux 内核GNU 工具、软件包管理器和应用程序。

不同的汽车制造商(例如丰田、法拉利)使用相似的发动机(内核),但制造用于不同目的的不同车辆(例如家用车 vs. 赛车)。每个都是一个不同的发行版。

流行 Linux 发行版(按类别)

  • 新手友好: Ubuntu、Linux Mint、Fedora
  • 企业/服务器: RHEL、CentOS Stream、Ubuntu Server
  • 侧重安全: Kali Linux、Parrot Security OS
  • 轻量级/嵌入式: Alpine Linux、Raspberry Pi OS
  • 高级/可定制: Arch Linux、Gentoo

对于 DevOps/SRE/云工程师:

  • Ubuntu ServerCentOS Stream:因稳定性和支持而被广泛用于云环境。
  • Alpine Linux:因其最小的占用空间而在轻量级容器中很受欢迎。
  • RHEL:因其长期支持和合规性而在企业中很常见。

Linux 生态系统

Linux 生态系统涵盖了使 Linux 多功能且强大的工具、技术和理念,它超越了内核和发行版。

  • GNU 项目: 提供用户态工具(例如 bash、ls、GCC),使发行版可用。因此,术语为 GNU/Linux
  • 桌面环境: GNOME、KDE、XFCE(与侧重服务器的角色关系不大)。
  • 容器技术: Docker、Podman 和 Kubernetes,对 DevOps 至关重要。
  • 云平台: AWS、GCP 和 Azure 依赖 Linux 实例。

生态系统中的软件包管理

软件包管理器是 Linux 生态系统的基石,它自动化了跨发行版的软件处理。

软件包管理器是一种自动化 Linux 中软件的安装、更新、配置和移除的工具,确保了高效的依赖项管理------这对于 DevOps 自动化和可重现的构建至关重要。

软件包管理器如何工作?
  1. 仓库(Repos): 从官方在线仓库(例如,Ubuntu 从 archive.ubuntu.com)获取软件。
  2. 安装软件: 下载软件包,解析依赖项,并自动配置。
  3. 更新软件: 单个命令即可将所有软件包更新到最新版本。
  4. 移除软件: 清理软件和未使用的文件,不留残余。
软件包管理器如何从仓库获取软件

软件包管理器检查仓库列表(例如,Ubuntu 中的 /etc/apt/sources.list),下载软件包/依赖项,并安装它们。

Ubuntu 仓库条目示例:

plaintext 复制代码
Types: deb
URIs: [http://ports.ubuntu.com/ubuntu-ports/](http://ports.ubuntu.com/ubuntu-ports/)
Suites: noble noble-updates noble-backports noble-security
Components: main universe restricted multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
为什么安装 Ubuntu 后要运行 apt update

Ubuntu 安装完成后,系统中可能包含过时的软件包。

因此运行以下命令可以进行包工具的更新:

bash 复制代码
apt install sudo
sudo apt update  # 更新仓库中的软件包列表
sudo apt upgrade -y  # 安装最新版本
Linux 中流行的软件包管理器
Linux 发行版 软件包管理器 命令示例
Ubuntu, Debian apt sudo apt install nginx
Fedora, RHEL, CentOS dnf (或 yum) sudo dnf install nginx
Arch Linux pacman sudo pacman -S nginx
OpenSUSE zypper sudo zypper install nginx
基本的软件包管理器命令
APT (Debian, Ubuntu)
bash 复制代码
sudo apt update         # 更新软件包列表
sudo apt upgrade -y     # 升级已安装的软件包
sudo apt install nginx  # 安装软件包
sudo apt remove nginx   # 移除软件包
sudo apt autoremove     # 移除未使用的依赖项
sudo apt search nginx   # 搜索软件包
DNF (Fedora, RHEL, CentOS)
bash 复制代码
sudo dnf check-update   # 检查更新
sudo dnf update         # 更新所有软件包
sudo dnf install nginx  # 安装软件包
sudo dnf remove nginx   # 移除软件包
Pacman (Arch Linux)
bash 复制代码
sudo pacman -Syu        # 同步并更新所有软件包
sudo pacman -S nginx    # 安装软件包
sudo pacman -R nginx    # 移除软件包
Zypper (OpenSUSE)
bash 复制代码
sudo zypper refresh     # 刷新软件包列表
sudo zypper update      # 更新所有软件包
sudo zypper install nginx  # 安装软件包
sudo zypper remove nginx   # 移除软件包
使用软件包管理器的最佳实践
  • 始终在安装前更新:sudo apt update && sudo apt upgrade -y
  • 清理:sudo apt autoremove
  • 启用自动安全更新 (Ubuntu):sudo apt install unattended-upgrades && sudo dpkg-reconfigure unattended-upgrades

Linux 系统的可视化工具

Linux 系统 Linux 内核 GNU 工具 桌面环境 软件包管理器 应用程序 硬件管理 Bash, Coreutils, GCC GNOME, KDE, XFCE apt, yum, dnf, pacman Firefox, LibreOffice, Docker

开源理念

Linux 建立在开源理念之上:

  • 自由: 任何人都可以使用、修改和分发代码。
  • 协作: 全球开发人员贡献力量,使 Linux 健壮且创新。
  • 透明度: 开放代码确保了信任和安全,这对于企业和云环境至关重要。

Linux 内核采用 GNU 通用公共许可证 (GPL) 授权,确保衍生作品保持免费。这推动了 DevOps 工具和云基础设施的创新。

讨论问题: 为什么像 Google、AWS 和 Red Hat 这样的公司要投资于开源 Linux 项目?

关于 DevOps/SRE/云工程师的 Linux 常见误区

  • 误区 1:Linux 对云工作来说过于复杂。 像 Ubuntu Server 这样的发行版和像 Docker 这样的工具简化了云管理。
  • 误区 2:Linux 没有用于生产环境。 超过 80% 的云工作负载和大多数 Kubernetes 集群运行在 Linux 上。
  • 误区 3:Linux 缺乏对 DevOps 工具的支持。 像 Jenkins、Terraform 和 Kubernetes 这样的工具都是支持 Linux 并基于其开发的,并且得到广泛支持。

动手实践和实验

实验准备

如果您没有 AWS 账户:

  • 虚拟机: 使用 VirtualBox/VMware 和 Ubuntu Server 或 CentOS Stream ISO 镜像。
  • 免费云替代方案: Oracle Cloud 免费套餐或 Google Cloud 的免费试用。
  • 本地终端: macOS/Linux 用户可以在本地练习命令。

SSH 故障排除:

  • "权限被拒绝 (Permission Denied)" :运行 chmod 400 my-key.pem 并验证用户名(Amazon Linux 为 ec2-user,Ubuntu 为 ubuntu)。
  • 连接超时 (Connection Timeout):确保安全组允许 SSH(端口 22)并检查公共 IP。

第 1 部分:实验 - 启动两个不同的 Linux 实例

  1. 启动您的第一个实例(基于 RHEL):

    • 登录 AWS 管理控制台,导航到 EC2 控制面板。
    • 点击**"启动实例"**并选择 Amazon Linux 2 AMI。
    • 选择 t2.micro 实例类型并创建新的密钥对(.pem 文件)。请安全地保存此文件。
    • 完成启动过程,等待实例状态变为"Running"。
  2. 启动您的第二个实例(基于 Debian):

    • 重复上述步骤,选择 Ubuntu Server AMI。
    • 为了简单起见,使用相同的密钥对
    • 完成启动过程,等待实例状态变为"Running"。

第 2 部分:连接、探索和识别

  1. 连接到 Amazon Linux 2:

    • 运行 chmod 400 my-key.pem
    • 连接:ssh -i "my-key.pem" ec2-user@<amazon_linux_ip_address>
  2. 连接到 Ubuntu:

    • 打开新的终端标签/窗口。
    • 连接:ssh -i "my-key.pem" ubuntu@<ubuntu_ip_address>

第 3 部分:实验和回顾问题

  1. 命令行基础:

    • 在任一实例上运行 pwdlsman ls
    • 问题: pwd 告诉您什么?man 为什么有用?
  2. 识别发行版:

    • 在两个实例上运行 cat /etc/os-release 并进行比较。
    • 问题: 输出中的主要区别是什么?
  3. 识别软件包管理器:

    • 在 Amazon Linux 2 上运行 sudo yum update,在 Ubuntu 上运行 sudo apt update
    • 问题: 发生了什么?用一句话解释区别,并参考上面的软件包管理器部分。
  4. 发行版与内核:

    • 问题: 用您自己的话解释 Linux 内核Linux 发行版之间的区别。
  5. GNU 项目的作用:

    • 问题: GNU 项目在 Linux 生态系统中的作用是什么?

第 4 部分:编写并运行一个简单的脚本

  1. 在任一实例上,创建 hello.sh

    bash 复制代码
    nano hello.sh
  2. 添加以下内容:

    bash 复制代码
    #!/bin/bash
    echo "Hello, Linux World!"
    echo "My current directory is: $(pwd)"
    echo "My distribution is:"
    cat /etc/os-release | grep PRETTY_NAME
  3. 保存(Ctrl+OEnterCtrl+X),使其可执行(chmod +x hello.sh),然后运行(./hello.sh)。

  4. 问题: 每行代码的作用是什么?比较两个实例上的输出。

第 5 部分:DevOps/SRE/云工程师挑战

  • 任务: 在任一实例上运行 uname -r 检查内核版本。将其与 kernel.org 上的最新稳定版本进行比较。为什么像 AWS 这样的云提供商可能会使用较旧的内核?
  • 提示: 考虑稳定性、与云工具的兼容性以及企业支持。

问题答案

  1. 命令行基础:

    • pwd 显示您在文件系统中的当前位置。
    • man 提供命令的文档和示例。
  2. 发行版识别:

    • 输出显示不同的名称/ID(例如,NAME="Amazon Linux"ID="amzn" 对比 NAME="Ubuntu"ID="ubuntu"),证明它们是不同的发行版。
  3. 软件包管理器:

    • sudo yum update 在 Amazon Linux 上成功,在 Ubuntu 上失败。
    • sudo apt update 在 Ubuntu 上成功,在 Amazon Linux 上失败。
    • 解释: 不同的发行版使用不同的软件包管理器(基于 RHEL 的使用 yum/dnf,基于 Debian 的使用 apt)。
  4. 发行版与内核:

    • 内核 管理硬件资源;发行版将内核与工具、软件包管理器和软件捆绑在一起,构成一个完整的操作系统。
  5. GNU 项目的作用:

    • 提供用户工具(例如 bash、核心工具)来补充内核,以创建功能齐全的操作系统。

关键术语词汇表

  • 内核 (Kernel): 操作系统的核心,用于管理硬件和系统资源。
  • 发行版 (Distribution/Distro): 围绕 Linux 内核构建的完整操作系统,包括工具和应用程序。
  • Shell: 用于与操作系统交互的命令行界面(例如 bash)。
  • 软件包管理器 (Package Manager): 用于安装、更新和管理软件的工具(例如 apt, yum)。
  • GNU: 提供补充 Linux 内核的基本工具的项目。
  • 开源 (Open Source): 源代码可自由获取、修改和分发的软件。
  • 仓库 (Repository): 软件软件包的在线存储,供软件包管理器使用。
  • 系统库 (System Libraries): 应用程序用于常见功能的共享代码(例如 glibc)。
  • 系统实用程序 (System Utilities): 用于系统交互的核心命令(例如 ls, grep)。

面试准备问题

通过这些常见的 DevOps、SRE 和云角色的面试问题来测试您学到的Linux知识。

目标是借鉴今天的课程内容,能够自信地回答它们:

  1. Linux 内核是什么,它与 Linux 发行版有何不同?

    (提示:侧重于内核在硬件管理中的作用 vs. 发行版添加用户工具。)

  2. 解释内核空间 vs. 用户空间。为什么这种分离对系统安全性和稳定性很重要?

    (提示:讨论系统调用和容器隔离等实际影响。)

  3. 说出三个流行的 Linux 发行版及其在云环境中的典型用例。

    (提示:提及用于通用云的 Ubuntu Server、用于容器的 Alpine 以及用于企业的 RHEL。)

  4. 像 apt 和 yum 这样的软件包管理器是如何工作的?为什么它们对 DevOps 工作流程至关重要?

    (提示:涵盖仓库、依赖项解析和自动化优势。)

  5. GNU 项目在 Linux 中的作用是什么?为什么全名通常是 "GNU/Linux"?

    (提示:解释像 bash 和 ls 这样的用户态工具。)

  6. 描述开源理念以及它如何使像 AWS 这样的公司在使用 Linux 时受益。

    (提示:强调自由、协作和透明度。)

  7. 在生产 SRE 角色中,您为什么可能更喜欢 Linux 而不是 Windows 作为服务器基础设施?

    (提示:参考比较表中的稳定性、成本和可扩展性。)

  8. 您如何检查 Linux 实例上的内核版本,为什么云提供商可能会使用较旧的版本?

    (提示:使用 uname -r 并讨论稳定性/测试。)

相关推荐
小白跃升坊6 分钟前
基于1Panel的AI运维
linux·运维·人工智能·ai大模型·教学·ai agent
跃渊Yuey24 分钟前
【Linux】线程同步与互斥
linux·笔记
杨江25 分钟前
seafile docker安装说明
运维
舰长11527 分钟前
linux 实现文件共享的实现方式比较
linux·服务器·网络
好好沉淀33 分钟前
Docker开发笔记(详解)
运维·docker·容器
zmjjdank1ng41 分钟前
Linux 输出重定向
linux·运维
路由侠内网穿透.44 分钟前
本地部署智能家居集成解决方案 ESPHome 并实现外部访问( Linux 版本)
linux·运维·服务器·网络协议·智能家居
树℡独1 小时前
ns-3仿真之应用层(三)
运维·服务器·ns3
VekiSon1 小时前
Linux内核驱动——基础概念与开发环境搭建
linux·运维·服务器·c语言·arm开发
zl_dfq1 小时前
Linux 之 【进程信号】(signal、kill、raise、abort、alarm、Core Dump核心转储机制)
linux