篇Linux网络开发基础 章Linux操作系统概述 1.1Linux发展历史 1.1.1Linux的诞生和发展 1.1.2Linux名称的由来 1.2Linux的发展要素 1.2.1UNIX操作系统 1.2.2Minix操作系统 1.2.3POSIX标准 1.3Linux与UNIX的异同 1.4操作系统类型选择和内核版本的选择 1.4.1常见的不同公司发行的Linux异同 1.4.2内核版本的选择 1.5Linux的系统架构 1.5.1Linux内核的主要模块 1.5.2Linux的文件结构 1.6GNU通用公共许可证 1.6.1GPL许可证的历史 1.6.2GPL的自由理念 1.6.3GPL的基本条款 1.6.4关于GPL许可证的争议 1.7Linux软件开发的可借鉴之处 1.8小结 第2章Linux编程环境 2.1Linux环境下的编辑器 2.1.1Vim使用简介 2.1.2使用Vim建立文件 2.1.3使用Vim编辑文本 2.1.4Vim的格式设置 2.1.5Vim配置文件.vimrc 2.1.6使用其他编辑器 2.2Linux下的GCC编译器工具集 2.2.1GCC简介 2.2.2编译程序的基本知识 2.2.3单个文件编译成执行文件 2.2.4编译生成目标文件 2.2.5多文件编译 2.2.6预处理 2.2.7编译成汇编语言 2.2.8生成和使用静态链接库 2.2.9生成动态链接库 2.2.10动态加载库 2.2.11GCC常用选项 2.2.12编译环境的搭建 2.3Makefile文件简介 2.3.1一个多文件的工程例子 2.3.2多文件工程的编译 2.3.3Makefile的规则 2.3.4Makefile中使用变量 2.3.5搜索路径 2.3.6自动推导规则 2.3.7递归make 2.3.8Makefile中的函数 2.4用GDB调试程序 2.4.1编译可调试程序 2.4.2使用GDB调试程序 2.4.3GDB常用命令 2.4.4其他的GDB 2.5小结 第3章文件系统简介 3.1Linux下的文件系统 3.1.1Linux下文件的内涵 3.1.2文件系统的创建 3.1.3挂接文件系统 3.1.4索引节点inode 3.1.5普通文件 3.1.6设备文件 3.1.7虚拟文件系统VFS 3.2文件的通用操作方法 3.2.1文件描述符第4章 程序、进程和线程 94 第2篇 Linux用户层网络编程 第5章 TCP/IP协议族简介 138 第6章应用层网络服务程序简介 167 第7章 TCP网络编程基础 181 第8章服务器和客户端信息的获取 209 第9章数据的IO和复用 236 0章基于UDP协议的接收和发送 265 1章高级套接字 290 2章套接字选项 328 3章原始套接字 374 4章服务器模型选择 410 5章 IPv6简介 437 第3篇 Linux内核网络编程 6章 Linux内核中网络部分结构以及分布 464 7章 filter框架内报文处理 478 第4篇综合案例 8章一个简单Web服务器的例子SD 512 9章一个简单网络协议栈的例子SIP 558 第20章一个简单防火墙的例子SIPFW 620 |