笔者单立平多年从事嵌入式Linux网络系统产品开发,在这个过程中了解到嵌入式系统的开发涉及硬件驱动、操作系统内核和系统应用3个层次。最终的嵌入式产品需要将以上3个部分集成,形成一个完整的可执行文件,下载至嵌入式芯片中。《嵌入式Linux网络体系结构设计与TCP/IP协议栈》的目的就是以Linux内核的网络子系统为纵向线索,以Linux内核TCP/IP协议在网络子系统中的实现为实例,把与嵌入式网络应用开发相关的技术知识组织在一起,来讲解嵌入式Linux系统的应用开发技术、内核支持和硬件驱动程序开发的完整过程,以形成相关知识领域的完整体系结构,这样读者在研发过程中应用起来更得心应手。无论在做哪个部分的研发和学习:应用、内核、驱动程序,都能清楚地知道自己在做什么,上下之间如何联系。
单立平编著的《嵌入式Linux网络体系结构设计与TCP/IP协议栈》涵盖了Linux嵌入式系统开发中网络体系结构实现的主要内容。
全书共分12章,第1章概述Linux内核组件与内核技术特点,以及网络体系结构实现应用到的内核开发的基础知识。第2~5章在介绍了实现网络体系结构、协议栈、设备驱动程序的两个最重要的数据结构sk_buff和net_device的基础上,展示了Linux内核中为网络设备驱动程序设计和开发而建立的系统构架,最后以两个实例来具体说明如何着手开发网络设备驱动程序,数据在硬件设备上的接收和发送过程。第6章讨论了网络协议栈中数据链路层收发数据的设计和实现,以及硬件层与协议层之间的接口。第7章讲解了网络层IP协议的实现。第8~9章介绍传输层数据收发过程,重点介绍基于套接字的TCP/UDP传输实现。第10章讨论了Linux内核套接字层的实现,以及套接字层与应用层、传输层之间的接口。第11章介绍网络应用软件的开发技术,以及内核对网络应用的支持。第12章讲解在嵌入式系统开发中如何将硬件驱动程序、内核代码、应用程序集成在一起下载至芯片中,形成嵌入式可运行的系统,作为全书的总结。
《嵌入式Linux网络体系结构设计与TCP/IP协议栈》可以作为高等院校计算机、通信专业学生学习操作系统的参考书,也可以作为从事嵌入式、计算机行业的工程技术人员的参考书。
第1章 概述
1.1 Linux内核组件
1.2 Linux内核中的活动
1.2.1 进程和系统调用
1.2.2 硬件中断
1.2.3 tasklet
1.2.4 workqueue
1.2.5 软件中断
1.3 互斥机制
1.3.1 spin lock
1.3.2 读-写 spin lock
1.3.3 读-复制-更新(Read-Copy-Update,RCU)
1.4 内核模块(module)
1.4.1 管理内核模块
1.4.2 自动装载模块
1.4.3 模块功能的注册和取消
1.4.4 在模块装载时给模块传递参数
1.4.5 内核和模块的符号表
1.5 内存资源
1.5.1 高速缓冲区(memory cache)
1.5.2 高速缓存和哈希链表
1.6 时间管
1.7 嵌入式的挑战
1.8 本章总结
第2章 Linux网络包传输的关键数据结构——Socket Buffer
第3章 网络设备在内核中的抽象——struct net_device数据结构
第4章 网络设备在Linux内核中识别
第5章 网络设备驱动程序
第6章 数据链路层数据帧的收发
第7章 网络层传送
第8章 传输层UDP协议的实现
第9章 传输层TCP协议的实现
第10章 套接字层实现
第11章 应用层——网络应用套接字编程
第12章 嵌入式系统网络应用技术