展开全部

主编推荐语

知名专家海纳带你万行代码复现Linux 0.12内核。

内容简介

本书由知名编译与操作系统专家海纳撰写,将沉淀20余年的Linux系统研究所得倾注书中。本书用不到1万行代码复现了Linux 0.12内核,打通了“古早”工具链障碍,模块实现环环相扣,带你穿透“迷雾”,窥见Linux系统设计的绚丽“天光”。

本书共8章,从逻辑上分为四部分。第一部分(第1和2章)是基础知识,介绍开发内核所需的基础知识,包括开发环境和调试环境的搭建,以及i386保护模式等。第二部分(第3~6章)是核心模块,逐步实现进程、中断、系统调用、内存管理、字符设备驱动和块设备驱动等模块。

第三部分(第7章)是文件系统,涵盖Minix文件系统、管理inode、管理普通文件、管理目录、文件链接、执行程序等内容。第四部分(第8章)是系统服务接口,介绍一些重要的函数,这部分不是内核的主要部分,但为了让shell程序正确地运行,这些函数也是必须实现的。

目录

  • 版权信息
  • 前言
  • 第1章 基础知识和环境准备
  • 1.1 操作系统概述
  • 1.1.1 功能和架构
  • 1.1.2 操作系统的发展历史
  • 1.2 配置环境
  • 1.2.1 配置开发环境
  • 1.2.2 配置运行环境
  • 1.3 第一个内核程序
  • 1.3.1 打印Hello World
  • 1.3.2 开机引导程序
  • 1.4 汇编语言
  • 1.4.1 内嵌汇编
  • 1.4.2 链接器的工作原理
  • 1.4.3 初识makefile
  • 1.5 小结
  • 第2章 保护模式
  • 2.1 进入保护模式前的准备
  • 2.1.1 加载并执行setup
  • 2.1.2 获取硬件信息
  • 2.2 内存管理
  • 2.2.1 A20地址线
  • 2.2.2 全局描述符
  • 2.2.3 页表的原理
  • 2.2.4 进入保护模式
  • 2.3 中断机制
  • 2.3.1 中断描述符表
  • 2.3.2 可编程中断控制器
  • 2.3.3 特权级
  • 2.4 时钟中断
  • 2.4.1 初始化中断控制芯片
  • 2.4.2 设置中断描述符表
  • 2.4.3 重设全局描述符表
  • 2.4.4 时钟中断实验
  • 2.5 小结
  • 第3章 进入内核
  • 3.1 开启分页管理
  • 3.1.1 设置页表
  • 3.1.2 设置栈指针
  • 3.2 实现格式化打印
  • 3.2.1 初始化终端和控制台
  • 3.2.2 操作显示控制器
  • 3.2.3 支持换行和回车
  • 3.2.4 格式化打印结果并输出
  • 3.3 设置内存和陷阱处理
  • 3.3.1 初始化内存管理
  • 3.3.2 初始化系统调用
  • 3.3.3 处理CPU异常
  • 3.4 小结
  • 第4章 创建进程
  • 4.1 创建INIT进程
  • 4.1.1 创建进程控制块
  • 4.1.2 切换特权级
  • 4.2 创建第二个进程
  • 4.2.1 准备进程控制块
  • 4.2.2 复制进程控制块
  • 4.2.3 实现进程切换
  • 4.3 第一个系统调用:fork
  • 4.3.1 系统调用和中断
  • 4.3.2 定义fork函数
  • 4.3.3 内存的写时复制
  • 4.3.4 处理页保护中断
  • 4.3.5 完善调度器
  • 4.4 小结
  • 第5章 支持字符设备
  • 5.1 支持键盘
  • 5.1.1 键盘的工作原理
  • 5.1.2 解析扫描码
  • 5.1.3 构建缓冲区
  • 5.1.4 完善屏幕回显功能
  • 5.1.5 回显字符
  • 5.2 优化输入功能
  • 5.2.1 控制台和远程终端
  • 5.2.2 系统调用read函数
  • 5.3 优化输出功能
  • 5.3.1 向标准输出写字符串
  • 5.3.2 ANSI转义序列
  • 5.3.3 支持转义序列
  • 5.4 修改终端状态
  • 5.4.1 支持方向键
  • 5.4.2 修改控制台标志位
  • 5.5 小结
  • 第6章 支持块设备
  • 6.1 硬盘的基本结构
  • 6.1.1 初始化硬盘信息
  • 6.1.2 硬盘分区表
  • 6.1.3 硬盘控制器编程
  • 6.1.4 设置硬盘中断
  • 6.2 管理缓冲区
  • 6.2.1 初始化缓冲区
  • 6.2.2 申请缓冲区
  • 6.2.3 缓冲区相关的读写操作
  • 6.3 硬盘驱动
  • 6.3.1 读写硬盘
  • 6.3.2 读硬盘分区表
  • 6.4 软盘驱动
  • 6.4.1 软盘的工作原理
  • 6.4.2 实现定时器
  • 6.4.3 DMA读写
  • 6.4.4 软盘控制器
  • 6.4.5 实现软盘操作函数
  • 6.5 小结
  • 第7章 文件系统
  • 7.1 Minix文件系统
  • 7.1.1 Minix文件系统的基本结构
  • 7.1.2 定义超级块
  • 7.1.3 初始化超级块
  • 7.2 管理inode
  • 7.2.1 文件的元信息
  • 7.2.2 管理位图
  • 7.2.3 删除文件
  • 7.2.4 进程支持文件操作
  • 7.2.5 目录结构
  • 7.3 管理普通文件
  • 7.3.1 根据路径查找inode
  • 7.3.2 打开文件
  • 7.3.3 文件的读操作
  • 7.3.4 读写普通文件
  • 7.4 管理目录
  • 7.4.1 创建目录和文件
  • 7.4.2 删除目录:rmdir
  • 7.4.3 新建文件
  • 7.5 文件链接
  • 7.5.1 创建硬链接
  • 7.5.2 创建软链接
  • 7.5.3 通过链接访问文件
  • 7.5.4 删除文件链接
  • 7.6 执行程序
  • 7.6.1 a.out格式
  • 7.6.2 执行程序:execve
  • 7.6.3 缺页中断
  • 7.6.4 实验:运行第一个可执行程序
  • 7.7 小结
  • 第8章 系统服务接口
  • 8.1 POSIX接口
  • 8.1.1 时间管理
  • 8.1.2 挂载文件系统
  • 8.2 管理进程
  • 8.2.1 信号处理
  • 8.2.2 管道通信
  • 8.2.3 进程同步
  • 8.2.4 进程退出
  • 8.3 构建C语言库
  • 8.4 小结
  • 附录 显示模式
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

机械工业出版社

机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。