作品简介

如果你想知道在操作系统启动后,CPU、内存、文件系统等在内部是如何工作的。

如果你只知道Linux的基本命令或者一些零散的知识,想形成完整的脉络。

如果你在遇到操作系统或硬件相关的问题时,不知道如何处理。

那么就应该读一读这本书,系统地掌握操作系统的基础知识!

1.原富士通一线Linux内核开发工程师基于十余年经验执笔,专业实用

2.聚焦Linux核心功能,简明易懂地讲解操作系统是怎样工作的

3.198张示意图帮助理解,详略得当,为读懂大部头开路

4.结合大量实验程序,边动手操作边学习,真实体验系统运行过程

本书结合大量实验程序和图表,通俗易懂地介绍了Linux操作系统的运行原理和硬件的基础知识,涉及进程管理、进程调度器、内存管理、存储层次、文件系统和外部存储器等。实验程序使用C语言和Python编写,读者可亲自动手运行程序,来确认系统的行为。另外,以图解的方式介绍各知识点,简明且直观,能够帮助读者加深理解。读者只需对Linux基本命令有所了解,即可轻松阅读。

本书适合应用程序开发人员、系统设计师、运维管理人员和技术支持人员等人士阅读。

武内觉(作者),2005年~2017年就职于日本富士通公司,负责商用Linux,特别是Linux内核的开发与支持工作。2017年后在Cybozu公司担任技术顾问。

曹栩(译者),出生于中国广东省。毕业于天津理工大学。曾从事系统维护工作,长期参与开源贡献。目前在日本求学,专攻通信协议与网络安全方向。

作品目录

  • 版权声明
  • 推荐序
  • 前言
  • 注意事项
  • 第 1 章 计算机系统的概要
  • 第 2 章 用户模式实现的功能
  • 2.1 系统调用
  • 2.2 系统调用的包装函数
  • 2.3 C 标准库
  • 2.4 OS 提供的程序
  • 第 3 章 进程管理
  • 3.1 创建进程
  • 3.2 fork() 函数
  • 3.3 execve() 函数
  • 3.4 结束进程
  • 第 4 章 进程调度器
  • 4.1 关于实验程序的设计
  • 4.2 实验程序的实现
  • 4.3 实验
  • 4.4 思考
  • 4.5 上下文切换
  • 4.6 进程的状态
  • 4.7 状态转换
  • 4.8 空闲状态
  • 4.9 各种各样的状态转换
  • 4.10 吞吐量与延迟
  • 4.11 现实中的系统
  • 4.12 存在多个逻辑 CPU 时的调度
  • 4.13 实验方法
  • 4.14 实验结果
  • 4.15 吞吐量与延迟
  • 4.16 思考
  • 4.17 运行时间和执行时间
  • 4.18 进程睡眠
  • 4.19 现实中的进程
  • 4.20 变更优先级
  • 第 5 章 内存管理
  • 5.1 内存相关的统计信息
  • 5.2 内存不足
  • 5.3 简单的内存分配
  • 5.4 虚拟内存
  • 5.5 页表
  • 5.6 实验
  • 5.7 为进程分配内存
  • 5.8 实验
  • 5.9 利用上层进行内存分配
  • 5.10 解决问题
  • 5.11 虚拟内存的应用
  • 5.12 文件映射
  • 5.13 请求分页
  • 5.14 写时复制
  • 5.15 Swap
  • 5.16 多级页表
  • 5.17 标准大页
  • 第 6 章 存储层次
  • 6.1 高速缓存
  • 6.2 高速缓存不足时
  • 6.3 多级缓存
  • 6.4 关于高速缓存的实验
  • 6.5 访问局部性
  • 6.6 总结
  • 6.7 转译后备缓冲区
  • 6.8 页面缓存
  • 6.9 同步写入
  • 6.10 缓冲区缓存
  • 6.11 读取文件的实验
  • 6.12 写入文件的实验
  • 6.13 调优参数
  • 6.14 总结
  • 6.15 超线程
  • 第 7 章 文件系统
  • 7.1 Linux 的文件系统
  • 7.2 数据与元数据
  • 7.3 容量限制
  • 7.4 文件系统不一致
  • 7.5 日志
  • 7.6 写时复制
  • 7.7 防止不了的情况
  • 7.8 文件系统不一致的对策
  • 7.9 文件的种类
  • 7.10 字符设备
  • 7.11 块设备
  • 7.12 各种各样的文件系统
  • 7.13 基于内存的文件系统
  • 7.14 网络文件系统
  • 7.15 虚拟文件系统
  • 7.16 Btrfs
  • 第 8 章 外部存储器
  • 8.1 HDD 的数据读写机制
  • 8.2 HDD 的性能特性
  • 8.3 HDD 的实验
  • 8.4 实验程序
  • 8.5 顺序访问
  • 8.6 随机访问
  • 8.7 通用块层
  • 8.8 I/O 调度器
  • 8.9 预读
  • 8.10 实验
  • 8.11 SSD
  • 8.12 总结
  • 后记
  • 作者简介
  • 看完了
展开全部