当前位置:电脑软件 > 教育教学 > 电子阅读 > linux内核编程- (美)Claudia Salzberg Rodriguez等著pdf 中文完整版

linux内核编程- (美)Claudia Salzberg Rodriguez等著pdf 中文完整版

  • 大小:37.1MB
  • 语言:简体中文
  • 类别:电子阅读
  • 类型:国产软件
  • 授权:免费软件
  • 时间:2017/12/10
  • 官网:
  • 环境:Windows10, Windows8, Windows7, WinVista, Win2003, WinXP, Win2000
  • 安全检测:无插件360通过腾讯通过金山通过瑞星通过

普通下载

高速下载

需下载高速下载器,提速50%

相关软件

linux内核编程2011年6月由人民邮电出版社出版发行,是一本关于linux内核编程方面的学习教材。对于大多数计算机用户来说,使用Linux正变得越来越方便。有了各种各样的发布版、社区的支持,以及工业后盾,Linux的应用也找到了安全的港湾,出现在大学、行业应用以及数以千计的家庭用户中。使用大潮促进了技术支持和新功能需求的日益增长。这样一来,愈来愈多的程序员发现自己对Linux内核内幕感兴趣,因为大量现有的(还在快速增长的)应用需要支持不同的体系结构和种类繁多的新设备。内核向Power体系结构的成功移植,也助长了Linux操作系统在高端服务器和嵌入式系统中的全面繁荣。许多公司购买基于Power.PC的系统来运行Linux,因此越来越多的人需要知道Linux在该体系结构上的运行机理。小编推荐的这本linux内核编程以linux操作系统为基础,详细介绍了linux内核子系统,并辅以大量内核源代码和示例程序进行演示,引领读者深入linux内核。linux内核编程的主要内容包括:linux基础知识、内核探索工具集、进程的整个生命周期、内存区、页面、slab分配器、用于输入/输出的各种设备、文件系统、抢占、自旋锁、信号量、内核引导、构建linux内核,以及向内核添加代码等。同时还简单介绍了一些应用工具和实用程序,从而可以获取理解内核内幕所需的信息。每章末尾都给出一些练习,涉及内核运行的操作及工作原理。linux内核编程适合对linux内核感兴趣的各层次读者,无论对linux初学者还是linux程序开发人员,本书都是一本很有价值的参考书。
linux内核编程

免责声明:

来源于网络,仅用于分享知识,学习和交流!请下载完在24小时内删除。
禁用于商业用途!如果您喜欢《linux内核编程》,请购买正版,谢谢合作。
爱学习,请到3322软件站查找资源自行下载!

作者介绍:

Claudia Salzberg Rodriguez,就职于IBM Linux技术中心,负责内核及相关编程工具的开发。在担任程序员的10多年时间里,她一直针对Intel和PPC平台进行Linux嵌入式系统到高性能系统的开发。
Gordon Fischer, 曾为很多底层设备开发过Linux和Unix设备驱动程序,并针对Intel和PPC平台上的企业级系统中使用Linux内核。
Steven Smolski ,有近30年的半导体行业从业经验。从事过内存、处理器以及ASICS的研发和测试,为Linux、AIX以及Windows都编写过应用程序和驱动程序,还进行过嵌入式操作系统的开发。

精彩书评:

“本书详细比较了x86和PPC体系结构下的汇编程序,并介绍了分析工具。非常不错!”——亚马逊读者评论

linux内核编程目录:

第1章 概述
1.1 UNIX 的历史
1.2 标准和通用接口
1.3 自由软件和开放源码
1.4 Linux 发布版概览
1.41 Debian
1.42 Red Hat/Fedora
1.43 Mandriva
1.44 SUSE
1.45 Gentoo
1.46 Yellow Dog
1.47 其他发布版
1.5 内核版本信息
1.6 基于Power 的Linux
1.8 内核组织
1.9 Linux 内核概述
1.9.1 用户接口
1.9.2 用户标识符
1.9.4 进程
1.9.5 系统调用
1.9.6 Linux 调度程序
1.9.7 Linux 设备驱动程序
1.10 可移植性和体系结构的相关性
1.12 习题
第2章 内核探索工具集
2.1 内核中常见的数据类型
2.1.1 链表
2.1.2 查找
2.1.3 树
2.2 汇编
2.2.1 PowerPC
2.2.2 x86
2.3 汇编语言示例
2.3.1 x86 中的汇编示例
2.4 内联汇编
2.4.1 输出操作数
2.4.2 输入操作数
2.4.3 已修改过的寄存器(已修改的元素列表)
2.4.4 参数的编号方式
2.4.5 约束条件
2.4.6 asm
2.4.7 __volatile__
2.5.1 asmlinkage
2.5.2 UL
2.5.3 内联
2.6 内核探索工具一览
2.6.1 objdump/readelf
2.6.2 hexdump
2.6.3 nm
2.6.4 objcopy
2.6.5 ar
2.7.1 printk()
2.7.2 dmesg
2.7.3 /var/log/messages
2.8 其他奥秘
2.8.1 __init
2.8.2 likely()和unlikely()
2.8.3 IS_ERR 和PTR_ERR
2.8.4 通告程序链
2.9 小结
2.9.1 项目:Hellomod
2.9.2 第一步:构造Linux 模块的框架
2.9.3 第二步:编译模块
2.9.4 第三步:运行代码
2.10 习题
第3章 进程:程序执行的基本模型
3.1 程序
3.2 进程描述符
3.2.1 与进程属性相关的字段
3.2.2 与调度相关的字段
3.2.3 涉及进程间相互关系的字段
3.2.4 与进程信任状相关的字段
3.2.5 与进程权能相关的字段
3.2.6 与进程限制相关的字段
3.2.7 与文件系统及地址空间相关的字段
3.3 进程的创建:系统调用fork()、vfork 和clone()
3.3.1 fork()函数
3.3.2 vfork()函数
3.3.3 clone()函数
3.3.4 do_fork()函数
3.4 进程的生命周期
3.4.1 进程的状态
3.4.2 进程状态的转换
3.5 进程的终止
3.5.1 sys_exit() 函数
3.5.2 do_exit()函数
3.5.3 通知父进程和sys_wait4()
3.6 了解进程的动态:调度程序的基本构架
3.6.1 基本结构
3.6.2 从等待中醒来或者激活
3.7 等待队列
3.7.1 添加到等待队列
3.7.2 等待事件
3.7.3 唤醒进程
3.8 异步执行流程
3.8.1 异常
3.8.2 中断
3.9 小结 
3.9.1 项目:系统变量current
3.9.2 项目源码
3.9.3 运行代码
3.10 习题
第4章 内存管理
4.1 页
4.2 内存管理区
4.2.1 内存管理区描述符
4.2.2 内存管理区操作辅助函数
4.3 页面
4.3.1 请求页面的函数
4.3.2 释放页面的函数
4.3.3 伙伴系统
4.4 Slab 分配器
4.4.1 缓存描述符
4.4.2 通用缓存描述符
4.4.3 Slab 描述符
4.5 Slab 分配器的生命周期
4.5.1 与Slab 分配器有关的全局变量
4.5.2 创建缓存
4.5.3 创建slab 与cache_grow()
4.5.4 Slab 的销毁:退还内存与kmem_cache_destroy()
4.6 内存请求路径
4.6.1 kmalloc()
4.6.2 kmem_cache_alloc()
4.7 Linux 进程的内存结构
4.7.1 mm_struct
4.7.2 vm_area_struct
4.8 进程映像的分布及线性地址空间
4.9 页表
4.10 缺页
4.10.1 x86 缺页异常
4.10.2 缺页处理程序
4.10.3 PowerPC 缺页异常
4.11 小结
4.12 项目:进程内存映射
4.13 习题
第5章 输入/输出
5.1 总线、桥、端口和接口的硬件实现
5.2 设备
5.2.1 块设备概述
5.2.2 请求队列和I/O 调度
5.2.4 设备操作
5.2.5 字符设备
5.2.6 网络设备
5.2.7 时钟设备
5.2.8 终端设备
5.2.9 直接存储器存取
5.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.1.5 文件操作
6.1.6 文件描述符
6.1.7 磁盘块、磁盘分区以及实现
6.1.8 性能
6.2 Linux 虚拟文件系统
6.2.1 VFS 的数据结构
6.2.2 全局链表和局部链表的引用
6.3.1 fs_struct 结构
6.3.2 files_struct 结构
6.4.1 address_space 结构
6.4.2 buffer_head 结构
6.5 VFS 的系统调用和文件系统层
6.5.1 open()
6.5.2 close()
6.5.3 read()
6.5.4 write()
6.6 小结
第7章 进程调度和内核同步 
7.1 Linux 的调度程序
7.1.1 选择下一个进程
7.1.2 上下文切换
7.1.3 让出CPU
7.2 内核抢占
7.2.1 显式内核抢占
7.2.2 隐式用户抢占
7.2.3 隐式内核抢占
7.3 自旋锁和信号量
7.4 系统时钟:关于时间和定时器
7.4.1 实时时钟:现在几点了
7.4.2 读取PPC 的实时时钟
7.4.3 读取x86 的实时时钟
7.5 小结
7.6 习题
第8章 内核引导
8.1 BIOS 和Open Firmware
8.2 引导加载程序
8.2.1 GRUB
8.2.2 LILO
8.2.3 PowerPC 和Yaboot
8.3 与体系结构相关的内存初始化
8.3.1 PowerPC 的硬件内存管理
8.3.2 基于Intel x86 体系结构的硬件内存管理
8.3.3 PowerPC 和x86 的代码汇集
8.4 原始的RAM 盘
8.5 开始:start_kernel()
8.5.1 调用lock_kernel()
8.5.2 调用page_address_init()
8.5.3 调用printk(linux_banner)
8.5.4 调用setup_arch
8.5.5 调用setup_per_cpu_areas()
8.5.6 调用smp_prepare_boot_cpu()
8.5.7 调用sched_init()
8.5.8 调用build_all_zonelists()
8.5.9 调用page_alloc_init
8.5.10 调用parse_args()
8.5.11 调用trap_init()
8.5.12 调用rcu_init()
8.5.13 调用init_IRQ()
8.5.14 调用softirq_init()
8.5.15 调用time_init()
8.5.16 调用console_init()
8.5.17 调用profile_init()
8.5.18 调用local_irq_enable()
8.5.20 调用mem_init()
8.5.21 调用late_time_init()
8.5.22 调用calibrate_delay()
8.5.24 调用buffer_init()
8.5.25 调用security_scaffolding_startup()
8.5.26 调用vfs_caches_init()
8.5.27 调用radix_tree_init()
8.5.28 调用signal_init()
8.5.29 调用page_writeback_init()
8.5.30 调用proc_root_init()
 8.5.31 调用init_idle()
 8.5.32 调用rest_init()
 8.6 init 线程(或进程1)
8.7 小结
8.8 习题 
第9章 构建Linux 内核
9.1 工具链
9.1.1 编译程序
9.1.2 交叉编译
9.1.3 链接程序
9.1.4 ELF 二进制目标文件
9.2 内核源代码的构建
9.2.1 解释源代码
9.2.2 构建内核映像
第10章 向内核添加代码
10.1 浏览源代码
10.11 熟悉文件系统
10.12 filp 和fops
10.13 用户空间和内核空间
10.14 等待队列
10.15 工作队列及中断
10.16 系统调用
10.17 其他类型的驱动程序
10.18 设备模型和sysfs 文件系统
10.2 编写代码
10.2.1 设备基础
10.2.2 符号输出
10.2.4 轮询与中断
10.2.5 工作队列和tasklet
10.2.6 增加系统调用的代码
10.3 构建和调试
10.4 小结
10.5 习题 

下载说明:

方法一:
1、下载并解压,得出pdf文件
2、如果打不开本文件,别着急,这时候请务必在3322软件站选择一款阅读器下载哦
3、安装后,再打开解压得出的pdf文件
4、以上都完成后,接下来双击进行阅读就可以啦,朋友们开启你们的阅读之旅吧。
方法二:
1、可以在手机里下载3322软件站中的阅读器和百度网盘
2、接下来直接将pdf传输到百度网盘
3、用阅读器打开即可阅读

下载地址

linux内核编程- (美)Claudia Salzberg Rodriguez等著pdf 中文完整版

普通下载通道

网友评论

0条评论

评论需审核后才能显示

    分类列表