Linux操作系统实用教程
电子书推荐
-
Linux网络编程-宋敬彬+孙海滨等编著 评分:
Linux网络编程-宋敬彬+孙海滨等编著
上传时间:2013-03 大小:3.23MB
- 29.39MB
linux网络编程
2018-11-09linux网络编程,源码,基于ubuntu12.04,linux3.14内核
- 227KB
Linux环境下的网络编程.pdf
2021-09-06Linux环境下的网络编程.pdf
- 44KB
网络编程教程,很好的一本写linux网络编程书,这是我上传的源码
2010-07-10第一篇 基础知识篇 第一章 文件系统和进程系统 1.1 文件系统 1.1.1 文件系统的总体结构 1.1.2 文件结构和目录结构 1.2 文件系统的相关编程 1.3 进程系统 1.3.1 进程的概念 1.3.2 Linux中描述进程的核心数据结构。 1.3.3 和进程相关的系统调用 本章小结 第二章 进程间通信和同步 2.1 信号的处理 2.1.1 Linux中支持的信号 2.1.2 信号的捕获和处理 2.1.3 系统调用和信号的相互作用 2.1.4 pause和suspend函数 2.2 信号量 2.2.1 进程间的互斥 2.2.2 信号量的结构和信号量操作函数 . 2.2.3 应用示例 2.3 消息队列 2.3.1 消息队列的结构 2.3.2 消息队列的操作函数 2.3.3 应用示例 2.4 共享内存 2.4.1 共享内存的操作函数 2.4.2 应用示例 本章小结 第三章 TCP/IP协议 3.1 OSI参考模型、协议和服务 3.2 协议和服务 3. 2.1 TCB/IP 3.2.2 TCP和UDP的比较 3.2.3 Internet上两主机进程间通信数据的封装和解包 3.2.4 IP地址、网络地址和网络掩码 3.2.5 传输层端口 3. 3 域名系统 3.4 域名解析和名字服务器 3. 4. 1 TCP协议 3.4.2 TCP的确认和超时重发机制 3.4.3 TCP头部格式(HeaderFFormat) 3.4.4 TCP连接的状态转移过程 3.5 IP数据包格式 3.6 Internet消息控制协议 本章小结 第二篇 初级应用篇 第四章 基本套接字编程实践 4.1 基本套接字函数族 4.1.1 socket编程的基本流程 4.1.2 函数socket 4.1. 3 函数connect 4.1. 4 函数bind 4.1.5 函数listen 4.1.6 函数accept 4.1.7 函数read和write 4.1.8 函数close 4.2 应用示例 4.3 程序结果和异常说明 4.3.1 程序的运行结果 4.3. 2 程序的异常 本章小结 第五章 无阻塞套接字和单进程轮询服务器 5.1 无阻塞套接字 5.1.1 阻塞套接字的缺点 5.1. 2 阻塞和无阻塞的比较 5.1.3 无阻塞的实现 5.2 单进程轮询服务器工作方式 5. 3 应用示例 5.3.1 应用说明 5.3.2 应用源码 第六章 带外数据与多路复用、信号驱动的输入J输出模型 6.1 多路复用的输入/输出模型 6.1.1 多路复用模型的概念与select函数 6.1.2 应用示例 6.1.3 pselect函数对select的增强 6.2 信号驱动的输入/输出模型 6.3 系统I/O模型的总结 6.4 带外数据 6.4.1 带外数据的发送 6.4.2 带外数据的接收 6.4.3 带外数据接收方法的示例 本章小结 第七章 UDF数据报 7.1 UDP数据报的概述 7.2 UDP通信的过程 7.3 UDP的服务器和TCP服务器的比较 7.4 UDP的“连接” 7.5 应用示例 本章小结 第八章 域名系统和通用套接字选项 8.1 域名系统 8.1.1 域名系统的回顾 8.1.2 通过地址获取主机信息 8.1.3 通过主机名获取主机信息 8.1.4 获取本地主机的信息 8.1.5 通过服务名获取服务端口 8.1.6 通过端口号获取服务名 8.2 套接字选项 8.2.1 获取和设置套接字选项 8.2.2 通用套接字选项 本章小结 第三篇 应用提高篇 第九章 高级套接字函数编程实践 9.1 函数recv和send 9.1.1 函数send 9.1.2 函数recv 9.1.3 应用示例 9.1.4 应用源码和分析 9.2 函数readv和writev 9.2.1 函数说明 9.2.2 应用示例 9.3 函数比recvmsg和sendmsg 本章小结 第十章 守护进程和超级服务器inetd 10.1 守护进程的原理 10.2 编程实践 10.3 超级服务器inetd的工作原理 10.3.1 超级服务器的概念 10.3.2 超级服务器使用的配置文件 10.3.3 inetd处理并发服务的过程 本章小结 第十一章 数据结构的传输和xDR标准 11.1 数据结构的传送 11.1.1 数据结构传送的问题 11.1.2 简单的示例 11.2 XDR标准 11.2.1 XDR中包含的数据类型 11.2.2 XDR实现的原理 11.2.3 XDR的转换函数库 本章小结 第十二章 BPC远程过程调用原理和实践 12.1 RPC的原理 12.1.1 XDR的更进一步 12.1.2 本地函数调用的过程 12.1.3 用远程调用来虚拟本地调用 12.2 RPC的实现 12.2.1 远程过程的标识 12.2.2 端口的动态映射 12.2.3 RPC的报文 12.2.4 RPC开发工具 12.2.5 设计的原则 12.3 应用示例:网络记事本 12.3.1 编写本地应用 12.3.2 Rpcgen构建RPC应用 12.3.3 编写RPC说明文件 12.3.4 修改客户端程序 12.3.5 修改服务器端程序 12.3.6 调用的完整过程 12.3.7 程序的结果、分析和总结 本章小结 第四篇 高级编程篇 第十三章 UNIX域套接字和并发服务器的预创建技术 13.1 UNIX域套接字 13.1.1 UNIX域的地址结构 13.1.2 UNIX(套接字使用的示例 13.1.3 传递文件描述符 13.2 并发服务器的预创建技术 13.2.1 预创建固定服务器进程的数量 13.2.2 动态的管理子进程 13.2.3 重用服务器子进程 本章小结 第十四章 原始套接字编程实践 14.1 原始套接字 14.1.1 原始套接字的创建 14.1.2 原始套接字的使用 14.1.3 IP包头和ICMP报文的C语言描述 14.2 Ping应用程序 14.2.1 程序设计 14.2.2 程序源码 14.3 IP套接字选项 14.3.1 IP_TTL选项 14.3.2 IP_TOS选项 14.3.3 IP_OPTIONS选项 14.3.4 IP_HDRINCL选项 本章小结 第十五章 多线程编程 15.1 线程的概念 15.1.1 线程的概念 15.1.2 线程的分类 15.1.3 线程的创建和等待函数 15.1.4 线程的属性函数 15.2 线程间的同步 15.2.1 无名信号量 15.2.2 互斥锁、条件变量和条件信号 15.2.3 线程和信号 15.3 在网络程序中应用多线程 15.3.1 线程间参数的传递 15.3.2 线程安全函数的设计 15.3.3 多进程的并发服务器和多线程的并发服务器 15.3.4 客户端进程的多线程化 本章小结 第十六章 网络售票系统的简单模拟 16.1 系统的总体设计 16.1.1 应用的说明 16.1.2 数据格式的设计 16.1.3 服务器端的设计 16.1.4 客户端的设计 16.2 程序源码和解析 16.2.1 服务器端的源码 16.2.2 客户端的源码 本章小结
- 3.24MB
Linux网络编程.pdf
2009-10-13Linux网络编程.pdf,,,,,,,,
- 1.89MB
Linux网络编程(完美高清文字版).pdf
2011-12-22linux网络编程, 适合初学者学习网络编程 ,在linux环境下
- 1.65MB
Linux网络编程(pdf)
2010-07-03这是一本关于Linux/unix下网络编程的书,有关进程控制、网络传输、协议等
- 13.56MB
Linux网络编程(第二版)PPT
2015-04-14Linux网络编程 PPT文档 相关课程教学
- 1.65MB
Linux网络编程教程pdf完整版
2013-06-15这是一本linux 网络编程的书,虽然例子不是很多,但是还是比较有用,知识比较全面
- 3.24MB
Linux网络编程(最新修订版).pdf
2010-11-03Linux网络编程(最新修订版).pdf
- 40.0MB
linux网络编程-宋敬彬-part1
2014-03-03目 录 第1篇 Linux网络开发基础 第1章 Linux操作系统概述 2 1.1 Linux发展历史 2 1.1.1 Linux的诞生和发展 2 1.1.2 Linux名称的由来 1.2 Linux的发展要素 3 1.2.1 UNIX操作系统 4 1.2.2 Minix操作系统 4 1.2.3 POSIX 标准 4 1.3 Linux与UNIX的异同 5 1.4 操作系统类型选择和内核版本的选择 5 1.4.1 常见的不同公司发行的Linux异同 6 1.4.2 内核版本的选择 6 1.5 Linux的系统架构 7 1.5.1 Linux内核的主要模块 7 1.5.2 Linux的文件结构 9 1.6 GNU通用公共许可证 10 1.6.1 GPL许可证的历史 10 1.6.2 GPL的自由理念 10 1.6.3 GPL的基本条款 11 1.6.4 关于GPL许可证的争议 12 1.7 Linux软件开发的可借鉴之处 12 1.8 小结 13 第2章 Linux编程环境 14 2.1 Linux环境下的编辑器 14 2.1.1 vim使用简介 14 2.1.2 使用vim建立文件 15 2.1.3 使用vim编辑文本 16 2.1.4 vim的格式设置 18 2.1.5 vim配置文件.vimrc 19 2.1.6 使用其他编辑器 19 2.2 Linux下的GCC编译器工具集 19 2.2.1 GCC简介 19 2.2.2 编译程序的基本知识 21 2.2.3 单个文件编译成执行文件 22 2.2.4 编译生成目标文件 22 2.2.5 多文件编译 23 2.2.6 预处理 24 2.2.7 编译成汇编语言 24 2.2.8 生成和使用静态链接库 25 2.2.9 生成动态链接库 26 2.2.10 动态加载库 29 2.2.11 GCC常用选项 31 2.2.12 编译环境的搭建 33 2.3 Makefile文件简介 34 2.3.1 一个多文件的工程例子 34 2.3.2 多文件工程的编译 36 2.3.3 Makefile的规则 37 2.3.4 Makefile中使用变量 39 2.3.5 搜索路径 43 2.3.6 自动推导规则 44 2.3.7 递归make 44 2.3.8 Makefile中的函数 46 2.4 用GDB调试程序 47 2.4.1 编译可调试程序 48 2.4.2 使用GDB调试程序 49 2.4.3 GDB常用命令 52 2.4.4 其他的GDB 59 2.5 小结 60 第3章 文件系统简介 61 3.1 Linux下的文件系统 61 3.1.1 Linux下文件的内涵 61 3.1.2 文件系统的创建 62 3.1.3 挂接文件系统 64 3.1.4 索引节点inode 65 3.1.5 普通文件 66 3.1.6 设备文件 66 3.1.7 虚拟文件系统VFS 68 3.2 文件的通用操作方法 72 3.2.1 文件描述符 72 3.2.2 打开创建文件open()、create()函数 72 3.2.3 关闭文件close()函数 76 3.2.4 读取文件read()函数 77 3.2.5 写文件write()函数 79 3.2.6 文件偏移lseek()函数 80 3.2.7 获得文件状态fstat()函数 83 3.2.8 文件空间映射mmap()函数 85 3.2.9 文件属性fcntl()函数 88 3.2.10 文件输入输出控制ioctl()函数 92 3.3 socket文件类型 93 3.4 小结 93 第4章 程序、进程和线程 94 4.1 程序、进程和线程的概念 94 4.1.1 程序和进程的差别 94 4.1.2 Linux环境下的进程 95 4.1.3 进程和线程 96 4.2 进程产生的方式 96 4.2.1 进程号 96 4.2.2 进程复制fork() 97 4.2.3 system()方式 98 4.2.4 进程执行exec()函数系列 99 4.2.5 所有用户态进程的产生进程init 100 4.3 进程间通信和同步 101 4.3.1 半双工管道 101 4.3.2 命名管道 107 4.3.3 消息队列 108 4.3.4 消息队列的一个例子 114 4.3.5 信号量 116 4.3.6 共享内存 121 4.3.7 信号 124 4.4 Linux下的线程 127 4.4.1 多线程编程实例 127 4.4.2 Linux下线程创建函数pthread_create() 129 4.4.3 线程的结束函数pthread_join()和pthread_exit() 129 4.4.4 线程的属性 130 4.4.5 线程间的互斥 132 4.4.6 线程中使用信号量 133 4.5 小结 136 第2篇 Linux用户层网络编程 第5章 TCP/IP协议族简介 138 5.1 OSI网络分层介绍 138 5.1.1 OSI网络分层结构 138 5.1.2 OSI的7层网络结构 139 5.1.3 OSI参考模型中的数据传输 140 5.2 TCP/IP协议栈 141 5.2.1 TCP/IP协议栈参考模型 141 5.2.2 主机到网络层协议 143 5.2.3 IP协议 144 5.2.4 网际控制报文协议(ICMP) 146 5.2.5 传输控制协议(TCP) 150 5.2.6 用户数据报文协议(UDP) 154 5.2.7 地址解析协议(ARP) 156 5.3 IP地址分类与TCP/UDP端口 158 5.3.1 因特网中IP地址的分类 159 5.3.2 子网掩码(subnet mask address) 161 5.3.3 IP地址的配置 162 5.3.4 端口 163 5.4 主机字节序和网络字节序 163 5.4.1 字节序的含义 164 5.4.2 网络字节序的转换 164 5.5 小结 166 第6章 应用层网络服务程序简介 167 6.1 HTTP协议和服务 167 6.1.1 HTTP协议概述 167 6.1.2 HTTP协议的基本过程 168 6.2 FTP协议和服务 170 6.2.1 FTP协议概述 170 6.2.2 FTP协议的工作模式 172 6.2.3 FTP协议的传输方式 172 6.2.4 一个简单的FTP过程 173 6.2.5 常用的FTP工具 173 6.3 TELNET协议和服务 174 6.3.1 远程登录的基本概念 174 6.3.2 使用TELNET协议进行远程登录的工作过程 174 6.3.3 TELNET协议 174 6.4 NFS协议和服务 176 6.4.1 安装NFS服务器和客户端 176 6.4.2 服务器端的设定 176 6.4.3 客户端的操作 177 6.4.4 showmount命令 177 6.5 自定义网络服务 177 6.5.1 xinetd/inetd 178 6.5.2 xinetd服务配置 178 6.5.3 自定义网络服务 179 6.6 小结 180 第7章 TCP网络编程基础 181 7.1 套接字编程基础知识 181 7.1.1 套接字地址结构 181 7.1.2 用户层和内核层交互过程 183 7.2 TCP网络编程流程 184 7.2.1 TCP网络编程架构 184 7.2.2 创建网络插口函数socket() 186 7.2.3 绑定一个地址端口对bind() 189 7.2.4 监听本地端口listen 192 7.2.5 接受一个网络请求accept() 194 7.2.6 连接目标网络服务器connect() 199 7.2.7 写入数据函数write() 200 7.2.8 读取数据函数read() 201 7.2.9 关闭套接字函数close() 201 7.3 服务器/客户端的简单例子 202 7.3.1 例子功能描述 202 7.3.2 服务器网络程序 203 7.3.3 服务器读取和显示字符串 205 7.3.4 客户端的网络程序 205 7.3.5 客户端读取和显示字符串 206 7.3.6 编译运行程序 206 7.4 截取信号的例子 207 7.4.1 信号处理 207 7.4.2 信号SIGPIPE 208 7.4.3 信号SIGINT 208 7.5 小结 208 第8章 服务器和客户端信息的获取 210 8.1 字节序 210 8.1.1 大端字节序和小端字节序 210 8.1.2 字节序转换函数 212 8.1.3 一个字节序转换的例子 214 8.2 字符串IP地址和二进制IP地址的转换 217 8.2.1 inet_xxx()函数 217 8.2.2 inet_pton()和inet_ntop()函数 219 8.2.3 使用8.2.1节地址转换函数的例子 220 8.2.4 使用函数inet_pton()和函数inet_ntop()的例子 223 8.3 套接字描述符判定函数issockettype() 223 8.3.1 进行文件描述符判定的函数issockettype() 224 8.3.2 main()函数 224 8.4 IP地址与域名之间的相互转换 225 8.4.1 DNS原理 225 8.4.2 获取主机信息的函数 226 8.4.3 使用主机名获取主机信息的例子 228 8.4.4 函数gethostbyname()不可重入的例子 230 8.5 协议名称处理函数 232 8.5.1 xxxprotoxxx()函数 232 8.5.2 使用协议族函数的例子 233 8.6 小结 236 第9章 数据的IO和复用 237 9.1 IO函数 237 9.1.1 使用recv()函数接收数据 237 9.1.2 使用send()函数发送数据 239 9.1.3 使用readv()函数接收数据 240 9.1.4 使用writev()函数发送数据 240 9.1.5 使用recvmsg()函数接收数据 242 9.1.6 使用sendmsg()函数发送数据 244 9.1.7 IO函数的比较 246 9.2 使用IO函数的例子 246 9.2.1 客户端处理框架的例子 246 9.2.2 服务器端程序框架 248 9.2.3 使用recv()和send()函数 249 9.2.4 使用readv()和write()函数 251 9.2.5 使用recvmsg()和sendmsg()函数 253 9.3 IO模型 256 9.3.1 阻塞IO模型 256 9.3.2 非阻塞IO模型 257 9.3.3 IO复用 257 9.3.4 信号驱动IO模型 258 9.3.5 异步IO模型 258 9.4 select()函数和pselect()函数 259 9.4.1 select()函数 259 9.4.2 pselect()函数 261 9.5 poll()函数和ppoll()函数 262 9.5.1 poll()函数 263 9.5.2 ppoll()函数 264 9.6 非阻塞编程 264 9.6.1 非阻塞方式程序设计介绍 264 9.6.2 非阻塞程序设计的例子 264 9.7 小结 266 第10章 基于UDP协议的接收和发送 267 10.1 UDP编程框架 267 10.1.1 UDP编程框图 267
- 40.0MB
linux网络编程-宋敬彬-part3
2014-03-03目 录 第1篇 Linux网络开发基础 第1章 Linux操作系统概述 2 1.1 Linux发展历史 2 1.1.1 Linux的诞生和发展 2 1.1.2 Linux名称的由来 3 1.2 Linux的发展要素 3 1.2.1 UNIX操作系统 4 1.2.2 Minix操作系统 4 1.2.3 POSIX 标准 4 1.3 Linux与UNIX的异同 5 1.4 操作系统类型选择和内核版本的选择 5 1.4.1 常见的不同公司发行的Linux异同 6 1.4.2 内核版本的选择 6 1.5 Linux的系统架构 7 1.5.1 Linux内核的主要模块 7 1.5.2 Linux的文件结构 9 1.6 GNU通用公共许可证 10 1.6.1 GPL许可证的历史 10 1.6.2 GPL的自由理念 10 1.6.3 GPL的基本条款 11 1.6.4 关于GPL许可证的争议 12 1.7 Linux软件开发的可借鉴之处 12 1.8 小结 13 第2章 Linux编程环境 14 2.1 Linux环境下的编辑器 14 2.1.1 vim使用简介 14 2.1.2 使用vim建立文件 15 2.1.3 使用vim编辑文本 16 2.1.4 vim的格式设置 18 2.1.5 vim配置文件.vimrc 19 2.1.6 使用其他编辑器 19 2.2 Linux下的GCC编译器工具集 19 2.2.1 GCC简介 19 2.2.2 编译程序的基本知识 21 2.2.3 单个文件编译成执行文件 22 2.2.4 编译生成目标文件 22 2.2.5 多文件编译 23 2.2.6 预处理 24 2.2.7 编译成汇编语言 24 2.2.8 生成和使用静态链接库 25 2.2.9 生成动态链接库 26 2.2.10 动态加载库 29 2.2.11 GCC常用选项 31 2.2.12 编译环境的搭建 33 2.3 Makefile文件简介 34 2.3.1 一个多文件的工程例子 34 2.3.2 多文件工程的编译 36 2.3.3 Makefile的规则 37 2.3.4 Makefile中使用变量 39 2.3.5 搜索路径 43 2.3.6 自动推导规则 44 2.3.7 递归make 44 2.3.8 Makefile中的函数 46 2.4 用GDB调试程序 47 2.4.1 编译可调试程序 48 2.4.2 使用GDB调试程序 49 2.4.3 GDB常用命令 52 2.4.4 其他的GDB 59 2.5 小结 60 第3章 文件系统简介 61 3.1 Linux下的文件系统 61 3.1.1 Linux下文件的内涵 61 3.1.2 文件系统的创建 62 3.1.3 挂接文件系统 64 3.1.4 索引节点inode 65 3.1.5 普通文件 66 3.1.6 设备文件 66 3.1.7 虚拟文件系统VFS 68 3.2 文件的通用操作方法 72 3.2.1 文件描述符 72 3.2.2 打开创建文件open()、create()函数 72 3.2.3 关闭文件close()函数 76 3.2.4 读取文件read()函数 77 3.2.5 写文件write()函数 79 3.2.6 文件偏移lseek()函数 80 3.2.7 获得文件状态fstat()函数 83 3.2.8 文件空间映射mmap()函数 85 3.2.9 文件属性fcntl()函数 88 3.2.10 文件输入输出控制ioctl()函数 92 3.3 socket文件类型 93 3.4 小结 93 第4章 程序、进程和线程 94 4.1 程序、进程和线程的概念 94 4.1.1 程序和进程的差别 94 4.1.2 Linux环境下的进程 95 4.1.3 进程和线程 96 4.2 进程产生的方式 96 4.2.1 进程号 96 4.2.2 进程复制fork() 97 4.2.3 system()方式 98 4.2.4 进程执行exec()函数系列 99 4.2.5 所有用户态进程的产生进程init 100 4.3 进程间通信和同步 101 4.3.1 半双工管道 101 4.3.2 命名管道 107 4.3.3 消息队列 108 4.3.4 消息队列的一个例子 114 4.3.5 信号量 116 4.3.6 共享内存 121 4.3.7 信号 124 4.4 Linux下的线程 127 4.4.1 多线程编程实例 127 4.4.2 Linux下线程创建函数pthread_create() 129 4.4.3 线程的结束函数pthread_join()和pthread_exit() 129 4.4.4 线程的属性 130 4.4.5 线程间的互斥 132 4.4.6 线程中使用信号量 133 4.5 小结 136 第2篇 Linux用户层网络编程 第5章 TCP/IP协议族简介 138 5.1 OSI网络分层介绍 138 5.1.1 OSI网络分层结构 138 5.1.2 OSI的7层网络结构 139 5.1.3 OSI参考模型中的数据传输 140 5.2 TCP/IP协议栈 141 5.2.1 TCP/IP协议栈参考模型 141 5.2.2 主机到网络层协议 143 5.2.3 IP协议 144 5.2.4 网际控制报文协议(ICMP) 146 5.2.5 传输控制协议(TCP) 150
- 40.0MB
linux网络编程-宋敬彬-part4
2014-03-03目 录 第1篇 Linux网络开发基础 第1章 Linux操作系统概述 2 1.1 Linux发展历史 2 1.1.1 Linux的诞生和发展 2 1.1.2 Linux名称的由来 3 1.2 Linux的发展要素 3 1.2.1 UNIX操作系统 4 1.2.2 Minix操作系统 4 1.2.3 POSIX 标准 4 1.3 Linux与UNIX的异同 5 1.4 操作系统类型选择和内核版本的选择 5 1.4.1 常见的不同公司发行的Linux异同 6 1.4.2 内核版本的选择 6 1.5 Linux的系统架构 7 1.5.1 Linux内核的主要模块 7 1.5.2 Linux的文件结构 9 1.6 GNU通用公共许可证 10 1.6.1 GPL许可证的历史 10 1.6.2 GPL的自由理念 10 1.6.3 GPL的基本条款 11 1.6.4 关于GPL许可证的争议 12 1.7 Linux软件开发的可借鉴之处 12 1.8 小结 13 第2章 Linux编程环境 14 2.1 Linux环境下的编辑器 14 2.1.1 vim使用简介 14 2.1.2 使用vim建立文件 15 2.1.3 使用vim编辑文本 16 请下载全部进行解压
- 17.36MB
linux网络编程-宋敬彬-part5
2014-03-03linux网络编程-宋敬彬 全部有5个压缩文件 请全部下载后解压
- 40.0MB
linux网络编程-宋敬彬-part2
2014-03-03目 录 第1篇 Linux网络开发基础 第1章 Linux操作系统概述 2 1.1 Linux发展历史 2 1.1.1 Linux的诞生和发展 2 1.1.2 Linux名称的由来 3 1.2 Linux的发展要素 3 1.2.1 UNIX操作系统 4 1.2.2 Minix操作系统 4 1.2.3 POSIX 标准 4 1.3 Linux与UNIX的异同 5 1.4 操作系统类型选择和内核版本的选择 5 1.4.1 常见的不同公司发行的Linux异同 6 1.4.2 内核版本的选择 6 1.5 Linux的系统架构 7 1.5.1 Linux内核的主要模块 7 1.5.2 Linux的文件结构 9 1.6 GNU通用公共许可证 10 1.6.1 GPL许可证的历史 10 1.6.2 GPL的自由理念 10 1.6.3 GPL的基本条款 11 1.6.4 关于GPL许可证的争议 12 1.7 Linux软件开发的可借鉴之处 12 1.8 小结 13 第2章 Linux编程环境 14 2.1 Linux环境下的编辑器 14 2.1.1 vim使用简介 14 2.1.2 使用vim建立文件 15 2.1.3 使用vim编辑文本 16 2.1.4 vim的格式设置 18 2.1.5 vim配置文件.vimrc 19 2.1.6 使用其他编辑器 19 2.2 Linux下的GCC编译器工具集 19 2.2.1 GCC简介 19 2.2.2 编译程序的基本知识 21 2.2.3 单个文件编译成执行文件 22 2.2.4 编译生成目标文件 22 2.2.5 多文件编译 23 2.2.6 预处理 24 2.2.7 编译成汇编语言 24 2.2.8 生成和使用静态链接库 25 2.2.9 生成动态链接库 26 2.2.10 动态加载库 29 2.2.11 GCC常用选项 31 2.2.12 编译环境的搭建 33 2.3 Makefile文件简介 34 2.3.1 一个多文件的工程例子 34 2.3.2 多文件工程的编译 36 2.3.3 Makefile的规则 37 2.3.4 Makefile中使用变量 39 2.3.5 搜索路径 43 2.3.6 自动推导规则 44 2.3.7 递归make 44 2.3.8 Makefile中的函数 46 2.4 用GDB调试程序 47 2.4.1 编译可调试程序 48 2.4.2 使用GDB调试程序 49 2.4.3 GDB常用命令 52 2.4.4 其他的GDB 59 2.5 小结 60 第3章 文件系统简介 61 3.1 Linux下的文件系统 61 3.1.1 Linux下文件的内涵 61 3.1.2 文件系统的创建 62 3.1.3 挂接文件系统 64 3.1.4 索引节点inode 65 3.1.5 普通文件 66 3.1.6 设备文件 66 3.1.7 虚拟文件系统VFS 68 3.2 文件的通用操作方法 72 3.2.1 文件描述符 72 3.2.2 打开创建文件open()、create()函数 72 3.2.3 关闭文件close()函数 76 3.2.4 读取文件read()函数 77 3.2.5 写文件write()函数 79 3.2.6 文件偏移lseek()函数 80 3.2.7 获得文件状态fstat()函数 83 3.2.8 文件空间映射mmap()函数 85 3.2.9 文件属性fcntl()函数 88 3.2.10 文件输入输出控制ioctl()函数 92 3.3 socket文件类型 93 3.4 小结 93 第4章 程序、进程和线程 94 4.1 程序、进程和线程的概念 94 4.1.1 程序和进程的差别 94 4.1.2 Linux环境下的进程 95 4.1.3 进程和线程 96 4.2 进程产生的方式 96 4.2.1 进程号 96 4.2.2 进程复制fork() 97 4.2.3 system()方式 98 4.2.4 进程执行exec()函数系列 99 4.2.5 所有用户态进程的产生进程init 100 4.3 进程间通信和同步 101 4.3.1 半双工管道 101 4.3.2 命名管道 107 4.3.3 消息队列 108 4.3.4 消息队列的一个例子 114 4.3.5 信号量 116 4.3.6 共享内存 121 4.3.7 信号 124 4.4 Linux下的线程 127 4.4.1 多线程编程实例 127 4.4.2 Linux下线程创建函数pthread_create() 129 4.4.3 线程的结束函数pthread_join()和pthread_exit() 129 4.4.4 线程的属性 130 4.4.5 线程间的互斥 132 4.4.6 线程中使用信号量 133 4.5 小结 136 第2篇 Linux用户层网络编程 第5章 TCP/IP协议族简介 138 5.1 OSI网络分层介绍 138 5.1.1 OSI网络分层结构 138 5.1.2 OSI的7层网络结构 139 5.1.3 OSI参考模型中的数据传输 140 5.2 TCP/IP协议栈 141 5.2.1 TCP/IP协议栈参考模型 141 5.2.2 主机到网络层协议 143 5.2.3 IP协议 144 5.2.4 网际控制报文协议(ICMP) 146 5.2.5 传输控制协议(TCP) 150
- 7.78MB
Linux网络编程pdf
2011-01-10包里头有:Linux菜鸟专用资料;Linux系统命令及其使用详解;Linux网络编程;高级Bash脚本编程指南;Linux程序员指南;Linux实用培训教程合并版;
- 1.27MB
Linux网络编程-网络基础-socket编程-高并发服务器.pdf
2021-09-05《Linux下C语言socket网络编程视频教程》对应文档 https://www.bilibili.com/video/BV1J4411j7Rx?p=19&spm_id_from=pageDriver
- 6.42MB
linux网络编程 宋敬彬 课件ppt 源码
2011-03-04linux网络编程 宋敬彬 课件ppt 源码 好不容易找齐的要的快下,也算是我做贡献了!
- 13.49MB
PHP网络编程从入门到精通 强锋科技 陈营辉编著 等编 ISO
2011-04-08光盘使用说明 版权所有,侵权必究 -----------------------------软件环境-------------------------------------- 脚本解释器:PHP5.1.6; 数据库:MySQL5.0; 服务器平台:Apache2.2.3; 开发工具:EditPlus、记事本; 服务器操作系统:开发过程中使用Windows XP Professional操作系统,系统运行服务器可以采用Windows 2000 Professional、Windows 2000 Server或其他操作系统。 -----------------------------硬件环境--------------------------------------- CPU推荐使用Pentium II 400以上级别; 内存不低于128MB,推荐256MB; 其他为常规硬件配置,对显卡、声卡都无特别要求。 -----------------------------注意事项--------------------------------------- 本光盘主要为书中的源程序,关于如何使用这些源程序,一是看书中的说明,二是看本盘附带的视频演示。 -----------------------------光盘程序代码说明-------------------------------- 源文件\01~21 第1~21章涉及的源代码,文件名与书中保持一致。 -----------------------------动画演示--------------------------------------- 在光盘的“动画演示”文件夹中,放有本书一些界面操作的动画演示,并配有语音讲解。说明如下: 安装Apache.exe 演示如何安装Web服务器Apache 安装MySQL.exe 演示如何安装MySQL数据库服务 安装PHP.exe 演示如何安装PHP解释器 测试Apache.exe 测试Web服务器Apache安装是否成功 测试MySQL.exe 测试MySQL数据库服务安装是否成功 测试PHP.exe 测试PHP脚本解释器安装是否成功 测试博客.exe 测试博客程序(第19章)的各项功能 测试论坛.exe 测试简易论坛程序(第20章)的各项功能 -----------------------------技术支持--------------------------------------- E-mail:wild-dog@126.com(作者) oyzx_sp@263.net(编辑) Tel:010-62791976-220(编辑部) 说明:一般情况下,技术问题可以直接给作者发邮件;若有其他信息需咨询,请和编辑部联系。
- 202.57MB
linux aarch64架构libreoffice安装包
2023-03-20linux aarch64架构libreoffice安装包
- 34KB
(牛客网C++课程)Linux 高并发Web服务器项目实战(带定时检测代码)
2023-02-24(牛客网C++课程)Linux 高并发Web服务器项目实战(带定时检测代码) 技术框架: 1. 线程池 + 非阻塞 socket + epoll + 事件处理的并发模型 2. 状态机解析HTTP请求 3. 心跳机制 4. 简易日志系统 主要内容: 1. 使用 socket 实现服务器和浏览器客户端的通信; 2. 用 epoll 事件检测技术实现 IO 多路复用,提高运行效率; 3. 采用模拟 Proacto r的事件处理模式,利用线程池实现多线程机制,实现高并发通信,减少频繁创建和销毁线程带来的开销;(信号和互斥锁) 4. 主进程负责事件的读写,子线程负责业务逻辑——用有限状态机解析HTTP(GET)请求报文;生成相应的响应报文。 5. 利用链表数据结构实现心跳机制(超时检测处理)。
- 96.79MB
Linux项目设计_媒体播放器(6818).rar
2021-04-14主页有教程与视频 //Linux媒体播放器 //作者:化作尘 //时间:2020年8月8日15:52:45 //qq邮箱:2809786963@qq.com //csdn链接:https://blog.csdn.net/mbs520/article/details/107880118 //哔哩哔哩项目视频:(可点击主页查看)https://b23.tv/bxfxvd 项目功能展示: 一、开机显示登入界面,可密码管理员登入,也可以免密码普通用户登入 二、登入后显示桌面,显示5个应用 ,分别是图片、视频、音乐、设置、文件管理 三、音乐相册功能,播放图片同时播放背景音乐,可以左右滑动切换图片等操作 四、视频播放功能,可以播放avi,mp4等格式视频 五、音乐播放器,可以播放mp3格式的音频 六、设置壁纸,可以根据喜好设置自己喜欢的壁纸 七、文件管理,可以对文件进行预览和删除 一、项目课题: 基于ARM平台的广告机系统设计 (最好可以自己取
- 131.63MB
jdk-8u371-linux-x64.tar.gz
2023-06-02java jdk1.8 2023年01月18日版本 sha256: 94793adad257a3eefc4098d786a145357393af48b67cd861d2e7ae87d7e7ecc9 md5: dd7ccb29116e9200c90cf419583e464e
- 0B
openssh-server离线安装包
2022-11-04openssh-server离线安装包 三个.deb文件
- 52.9MB
VisualGDB 5.6 R9//支持VS2008-VS2022
2023-05-04VisualGDB 是 Visual Studio 的一个非常强大的扩展,它允许您调试或调试嵌入式系统。这个程序有一个非常有吸引力的用户界面,它具有许多用于调试或调试代码的功能。VisualGDB 还有一个向导,可以帮助您调试程序并为您提供强大的指南。此外,该程序还有许多其他功能,分为常见功能、高级功能、可用性功能、Linux 功能、Android 功能等类别,每个功能都已在“功能和功能”部分为您列出。 畅享版
- 46.83MB
linux下nginx离线安装包及相关依赖包(附教程)
2022-06-151)资源:linux下nginx离线安装包及相关依赖包; 2)教程:https://blog.csdn.net/hualinger/article/details/125298009?spm=1001.2014.3001.5502
- 190B
centos 7.6版本 ISO镜像下载
2020-12-03关于centos7.6版本的镜像文件,适用于练习docker、k8s等容器技术。 亲和性较好,本资源是网盘下载,非网盘会员慎点。
- 617.59MB
tongweb7.0,windows和linux安装包
2023-04-27下载安装部署tongweb
- 1.34MB
rufus-4.1.exe 版本 4.1 (2023.05.31)
2023-06-05Rufus 是一款格式化和创建 USB 启动盘的辅助工具。 本软件适用于以下场景: 需要将可引导 ISO (Windows、Linux、UEFI 等) 刻录到 USB 安装媒介的情况 需要处理未安装操作系统的设备的情况 需要在 DOS 环境下刷写 BIOS 或其他固件的情况 需要运行低级工具的情况 Rufus 麻雀虽小,但五脏俱全!