
內容簡介
本書主要以結構化方法介紹如何在開發或操作中使用Linux。本書還提供了使用這個開源操作係統改進工作流程的技巧,並講解了如何獲得現代終端、shell和命令的實際操作經驗,如何使用Linux網絡,如何管理工作負載,如何實現現代Linux可觀測性。本書還講述了如何使用容器、systemd、現代文件係統以及諸如Flatcar和Bottlerocket等不可變發行版以現代方式運行Linux應用程序。本書適合開發人員、軟件架構師和站點可靠性工程師閱讀。
作者簡介
Michael Hausenblas是AWS的解決方案工程主管,也是CNCF的雲原生大使。他負責Prometheus、Grafana和OpenTelemetry的上遊服務與托管服務。此前,Michael曾在Red Hat、Mesosphere(現為D2iQ)和MapR(現為HPE的一部分)工作,且在應用研究領域有十幾年的實踐經驗。
目錄
O'Reilly Media,Inc.介紹
前言
第1章 Linux簡介
1.1 什麼是現代環境
1.2 Linux故事(到目前為止)
1.3 為什麼要使用操作係統
1.4 Linux發行版
1.5 資源的可見性
1.6 Linux高級概述
1.7 總結
第2章 Linux內核
2.1 Linux架構
2.2 CPU架構
2.2.1 x86架構
2.2.2 ARM架構
2.2.3 RISC-V架構
2.3 內核組件
2.3.1 進程管理
2.3.2 內存管理
2.3.3 網絡
2.3.4 文件係統
2.3.5 設備驅動程序
2.3.6 係統調用
2.4 內核擴展
2.4.1 模塊
2.4.2 一種擴展內核的現代方法:eBPF
2.5 總結
第3章 shell和腳本
3.1 基礎知識
3.1.1 終端
3.1.2 shell
3.1.3 現代命令
3.1.4 常見的任務
3.2 人性化的shell
3.2.1 Fish shell
3.2.2 Z-shell
3.2.3 其他現代shell
3.2.4 我應該使用哪個shell
3.3 終端多路複用器
3.3.1 screen
3.3.2 tmux
3.3.3 其他多路複用器
3.3.4 我應該使用哪個多路複用器
3.4 腳本
3.4.1 腳本基礎知識
3.4.2 編寫可移植的bash腳本
3.4.3 檢測和測試腳本
3.4.4 端到端示例:GitHub用戶信息腳本
3.5 總結
第4章 訪問控製
4.1 基礎知識
4.1.1 資源和所有權
4.1.2 沙盒
4.1.3 訪問控製類型
4.2 用戶
4.2.1 管理本地用戶
4.2.2 用戶集中管理
4.3 權限
4.3.1 文件權限
4.3.2 進程權限
4.4 高級權限管理
4.4.1 功能
4.4.2 seccomp配置文件
4.4.3 訪問控製列表
4.5 良好實踐
4.6 總結
第5章 文件係統
5.1 基礎知識
5.2 虛擬文件係統
5.2.1 邏輯卷管理器
5.2.2 文件係統操作
5.2.3 常用文件係統布局
5.3 偽文件係統
5.3.1 procfs
5.3.2 sysfs
5.3.3 devfs
5.4 常規文件
5.4.1 通用文件係統
5.4.2 內存文件係統
5.4.3 寫時複製文件係統
5.5 總結
第6章 應用、包管理和容器
6.1 基礎知識
6.2 Linux啟動過程
6.3 systemd
6.3.1 單元
6.3.2 使用systemctl進行管理
6.3.3 使用journalctl進行監控
6.3.4 示例:scheduling greeter
6.4 Linux應用程序供應鏈
6.5 軟件包和包管理器
6.5.1 RPM包管理器
6.5.2 Debian deb
6.5.3 特定語言的包管理器
6.6 容器
6.6.1 Linux命名空間
6.6.2 Linux cgroups
6.6.3 寫時複製文件係統
6.6.4 Docker
6.6.5 其他容器工具
6.7 現代包管理器
6.8 總結
第7章 網絡
7.1 基礎知識
7.2 TCP/IP協議棧
7.2.1 鏈路層
7.2.2 互聯網層
7.2.3 傳輸層
7.2.4 套接字
7.3 DNS
7.3.1 DNS記錄
7.3.2 DNS查詢
7.4 應用層網絡
7.4.1 萬維網
7.4.2 安全外殼
7.4.3 文件傳輸
7.4.4 網絡文件係統
7.4.5 與Windows共享
7.5 高級網絡主題
7.5.1 whois
7.5.2 動態主機配置協議
7.5.3 網絡時間協議
7.5.4 wireshark和tshark
7.5.5 其他高級工具
7.6 總結
第8章 可觀測性
8.1 基礎知識
8.1.1 可觀測性策略
8.1.2 術語
8.1.3 信號類型
8.2 日誌
8.2.1 Syslog
8.2.2 journalctl
8.3 監控
8.3.1 設備I/O和網絡接口
8.3.2 集成的性能監視器
8.3.3 工具化
8.4 高級可觀測性
8.4.1 追蹤和剖析
8.4.2 Prometheus和Grafana
8.5 總結
第9章 進階主題
9.1 進程間通信
9.1.1 信號
9.1.2 命名管道
9.1.3 UNIX域套接字
9.2 虛擬機
9.2.1 基於內核的虛擬機
9.2.2 Firecracker
9.3 現代Linux發行版
9.3.1 Red Hat Enterprise Linux CoreOS
9.3.2 Flatcar Container Linux
9.3.3 Bottlerocket
9.3.4 RancherOS
9.4 精選安全主題
9.4.1 Kerberos
9.4.2 可插拔認證模塊
9.5 其他現代和未來產品
9.5.1 NixOS
9.5.2 桌麵上的Linux
9.5.3 嵌入式係統上的Linux
9.5.4 雲IDE中的Linux
9.6 總結
附錄A 有用的解決方案
附錄B 現代Linux工具
前言
第1章 Linux簡介
1.1 什麼是現代環境
1.2 Linux故事(到目前為止)
1.3 為什麼要使用操作係統
1.4 Linux發行版
1.5 資源的可見性
1.6 Linux高級概述
1.7 總結
第2章 Linux內核
2.1 Linux架構
2.2 CPU架構
2.2.1 x86架構
2.2.2 ARM架構
2.2.3 RISC-V架構
2.3 內核組件
2.3.1 進程管理
2.3.2 內存管理
2.3.3 網絡
2.3.4 文件係統
2.3.5 設備驅動程序
2.3.6 係統調用
2.4 內核擴展
2.4.1 模塊
2.4.2 一種擴展內核的現代方法:eBPF
2.5 總結
第3章 shell和腳本
3.1 基礎知識
3.1.1 終端
3.1.2 shell
3.1.3 現代命令
3.1.4 常見的任務
3.2 人性化的shell
3.2.1 Fish shell
3.2.2 Z-shell
3.2.3 其他現代shell
3.2.4 我應該使用哪個shell
3.3 終端多路複用器
3.3.1 screen
3.3.2 tmux
3.3.3 其他多路複用器
3.3.4 我應該使用哪個多路複用器
3.4 腳本
3.4.1 腳本基礎知識
3.4.2 編寫可移植的bash腳本
3.4.3 檢測和測試腳本
3.4.4 端到端示例:GitHub用戶信息腳本
3.5 總結
第4章 訪問控製
4.1 基礎知識
4.1.1 資源和所有權
4.1.2 沙盒
4.1.3 訪問控製類型
4.2 用戶
4.2.1 管理本地用戶
4.2.2 用戶集中管理
4.3 權限
4.3.1 文件權限
4.3.2 進程權限
4.4 高級權限管理
4.4.1 功能
4.4.2 seccomp配置文件
4.4.3 訪問控製列表
4.5 良好實踐
4.6 總結
第5章 文件係統
5.1 基礎知識
5.2 虛擬文件係統
5.2.1 邏輯卷管理器
5.2.2 文件係統操作
5.2.3 常用文件係統布局
5.3 偽文件係統
5.3.1 procfs
5.3.2 sysfs
5.3.3 devfs
5.4 常規文件
5.4.1 通用文件係統
5.4.2 內存文件係統
5.4.3 寫時複製文件係統
5.5 總結
第6章 應用、包管理和容器
6.1 基礎知識
6.2 Linux啟動過程
6.3 systemd
6.3.1 單元
6.3.2 使用systemctl進行管理
6.3.3 使用journalctl進行監控
6.3.4 示例:scheduling greeter
6.4 Linux應用程序供應鏈
6.5 軟件包和包管理器
6.5.1 RPM包管理器
6.5.2 Debian deb
6.5.3 特定語言的包管理器
6.6 容器
6.6.1 Linux命名空間
6.6.2 Linux cgroups
6.6.3 寫時複製文件係統
6.6.4 Docker
6.6.5 其他容器工具
6.7 現代包管理器
6.8 總結
第7章 網絡
7.1 基礎知識
7.2 TCP/IP協議棧
7.2.1 鏈路層
7.2.2 互聯網層
7.2.3 傳輸層
7.2.4 套接字
7.3 DNS
7.3.1 DNS記錄
7.3.2 DNS查詢
7.4 應用層網絡
7.4.1 萬維網
7.4.2 安全外殼
7.4.3 文件傳輸
7.4.4 網絡文件係統
7.4.5 與Windows共享
7.5 高級網絡主題
7.5.1 whois
7.5.2 動態主機配置協議
7.5.3 網絡時間協議
7.5.4 wireshark和tshark
7.5.5 其他高級工具
7.6 總結
第8章 可觀測性
8.1 基礎知識
8.1.1 可觀測性策略
8.1.2 術語
8.1.3 信號類型
8.2 日誌
8.2.1 Syslog
8.2.2 journalctl
8.3 監控
8.3.1 設備I/O和網絡接口
8.3.2 集成的性能監視器
8.3.3 工具化
8.4 高級可觀測性
8.4.1 追蹤和剖析
8.4.2 Prometheus和Grafana
8.5 總結
第9章 進階主題
9.1 進程間通信
9.1.1 信號
9.1.2 命名管道
9.1.3 UNIX域套接字
9.2 虛擬機
9.2.1 基於內核的虛擬機
9.2.2 Firecracker
9.3 現代Linux發行版
9.3.1 Red Hat Enterprise Linux CoreOS
9.3.2 Flatcar Container Linux
9.3.3 Bottlerocket
9.3.4 RancherOS
9.4 精選安全主題
9.4.1 Kerberos
9.4.2 可插拔認證模塊
9.5 其他現代和未來產品
9.5.1 NixOS
9.5.2 桌麵上的Linux
9.5.3 嵌入式係統上的Linux
9.5.4 雲IDE中的Linux
9.6 總結
附錄A 有用的解決方案
附錄B 現代Linux工具
最後修改:2024 年 09 月 03 日
© 允許規範轉載
