• Linux后端开发工程实践
图书条目标准图
21年品牌 40万+商家 超1.5亿件商品

Linux后端开发工程实践

全新正版未拆封

52.48 全新

仅1件

山东济宁
认证卖家担保交易快速发货售后保障

作者万木春

出版社人民邮电出版社

出版时间2024-01

上书时间2024-05-18

天吾之青豆的书店

三年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
图书标准信息
  • 作者 万木春
  • 出版社 人民邮电出版社
  • 出版时间 2024-01
  • 版次 1
  • ISBN 9787115625625
  • 定价 119.80元
  • 装帧 平装
  • 开本 16开
  • 页数 408页
  • 字数 598千字
【内容简介】


本书全面介绍了linux后端开发的相关知识和技能,涵盖了linux系统的各种功能和工具、linux编程的相关知识和技能,以及开发后端服务和应用程序的内容。本书分为15章,主要内容包括linux后端开发概述,开发环境搭建,服务器运维,hell编程简介,实现简易hell,使用git管理代码,编译、、运行与调试,后端服务编写,网络通信基础,i/o模型与并发,公共代码提炼,应用层协议设计与实现,myrpc框架设计与实现以及微服务集群的构建等。本书讲解通俗易懂,实例丰富,适合c/c开发人员、linux后端开发人员、对linux后端开发感兴趣或者希望从事linux后端开发的人员阅读,也适合作为高等院校计算机相关专业师生的学用书及培训学校的教材。

【作者简介】


高等院校计算机相关专业的师生、c/c研发人员、linux后端研发人员、linux c/c后端研发人员、对linux后端研发感兴趣或者希望从事linux后端研发的人员
【目录】


章 概述 1

1.1 本书不会涉及的内容 1

1.2 本书专注的内容 1

1.3 为什么这么安排 1

1.4 linux是什么 2

1.5 后端开发是什么 2

1.6 您将学到什么 3

1.7 代码结构说明 3

1.7.1 myrpc 4

1.7.2 第三方依赖 4

1.8 如何学linux后端开发 4

1.8.1 坚持不懈的心态 4

1.8.2 以问题作为切入点 4

1.8.3 动手实践和创造 5

1.9 本章小结 5

第2章 开发环境搭建 6

2.1 本地开发环境 6

2.1.1 代码编辑器 6

2.1.2 终端管理器 6

2.1.3 测试工具 6

2.2 远端运行环境 7

2.3 本章小结 9

第3章 服务器运维 10

3.1 什么是shell 10

3.2 shell下的命令行 11

3.2.1 命令行的组成 11

3.2.2 大部分命令具备的共 11

3.2.3 使用man命令查询在线手册 12

3.2.4 命令和文件补全 13

3.2.5 命令行的通配符和特殊符号 13

3.2.6 内置命令与外部命令 13

3.3 基本的命令作 14

3.3.1 屏幕相关 14

3.3.2 和文件相关 14

3.3.3 进程相关 21

3.3.4 网络相关 22

3.3.5 系统相关 22

3.3.6 用户相关 24

3.3.7 命令执行相关 25

3.3.8 期相关 27

3.4 man的替代工具 27

3.5 命令黏合剂:管道机制 28

3.5.1 如何使用管道 28

3.5.2 行过滤命令grep 28

3.5.3 文本分析处理工具awk 29

3.5.4 流编辑命令sed 30

3.5.5 参数传递命令xargs 32

3.5.6 其他常用的辅助命令 34

3.6 命令输入/输出的重定向 35

3.7 命令的连续执行 36

3.8 vi编辑器简介 36

3.9 本章小结 37

第4章 shell编程简介 38

4.1 什么是shell编程 38

4.2 “hello world”程序 38

4.3 shell的执行过程 38

4.4 调试 39

4.5 执行方式的不同 39

4.5.1 直接执行 39

4.5.2 使用bash来执行 40

4.5.3 使用source或英文点号“.”来执行 40

4.6 变量 41

4.6.1 环境变量 41

4.6.2 自定义变量 41

4.6.3 特殊变量 42

4.6.4 在c语言中作环境变量 43

4.6.5 查看进程运行时的环境变量 44

4.7 选择与判断 44

4.7.1 test命令与判断符号“[]” 44

4.7.2 if语句 46

4.7.3 case语句 47

4.8 循环 48

4.8.1 while循环 48

4.8.2 until循环 48

4.8.3 for循环 49

4.8.4 break语句和continue语句 50

4.9 函数 50

4.10 命令选项 51

4.11 本章小结 51

第5章 实现简易shell 52

5.1 实现的特 52

5.2 执行逻辑 52

5.3 实现 52

5.3.1 命令行解析 52

5.3.2 特实现 53

5.3.3 函数介绍 53

5.4 编码实现 55

5.5 特测试 64

5.6 本章小结 65

第6章 使用git管理代码 66

6.1 初始化 66

6.1.1 安装git工具 66

6.1.2 设置用户名和邮箱 66

6.1.3 创建仓库 66

6.1.4 创建readme.md文件 67

6.1.5 创建.gitignore文件 67

6.2 核心概念 67

6.3 常用作 68

6.3.1 查看当前仓库的 68

6.3.2 添加文件 69

6.3.3 删除文件 69

6.3.4 回退变更 70

6.3.5 查看提交志 70

6.3.6 查看差异 71

6.3.7 分支管理 71

6.3.8 其他作 73

6.4 团队协作 74

6.4.1 同步代码仓库 74

6.4.2 创建自己的分支 74

6.4.3 推送分支到远程仓库 75

6.4.4 发起合入请求 75

6.4.5 发布变更 75

6.5 本章小结 75

第7章 编译、、运行与调试 76

7.1 单文件程序的编译与 76

7.1.1 预处理阶段 77

7.1.2 编译阶段 78

7.1.3 汇编阶段 79

7.1.4 阶段 80

7.1.5 elf概述 80

7.1.6 符号解析与重定位 82

7.2 工程项目的编译与 85

7.2.1 makefile 86

7.2.2 一个实例 87

7.2.3 实现简易的make命令 92

7.2.4 常用的编译和选项 100

7.3 动态与静态 102

7.4 linux动态库规范 103

7.4.1 动态库的命名 104

7.4.2 动态库的三个不同名称 104

7.4.3 动态库的管理 105

7.5 自定义的动态库 107

7.5.1 相关源代码 107

7.5.2 生成携带“so name”的动态库 108

7.5.3 生成不携带“so name”的动态库 109

7.6 进程的内存模型 110

7.6.1 进程的虚拟地址空间布局 110

7.6.2 栈与堆的区别 111

7.6.3 经典问题剖析 111

7.7 调试程序 115

7.7.1 gdb的启动 115

7.7.2 gdb常用命令 115

7.8 本章小结 118

第8章 后端服务编写 119

8.1 守护进程 119

8.1.1 什么是守护进程 119

8.1.2 守护进程如何编写 119

8.1.3 代码实现 121

8.2 设置资源 122

8.3 信号处理 123

8.4 加载配置功能 124

8.5 命令行参数解析 125

8.6 志输出功能 125

8.7 服务启停脚本 126

8.7.1 加载系统自带的shell函数 128

8.7.2 服务相关变量声明 128

8.7.3 服务启动函数 128

8.7.4 服务停止函数 128

8.7.5 服务重启函数 128

8.7.6 服务查看函数 129

8.7.7 case语句 129

8.8 本章小结 129

第9章 网络通信基础 130

9.1 tcp/ip协议栈概述 130

9.2 物理层与数据链路层 132

9.2.1 物理层 132

9.2.2 数据链路层 132

9.3 网络层 133

9.3.1 网际协议的特点 133

9.3.2 ip数据报格式 133

9.3.3 ip地址 135

9.3.4 路由选择 138

9.3.5 arp与rarp 139

9.3.6 icmp 145

9.4 传输层 156

9.4.1 udp 157

9.4.2 tcp 158

9.5 网络编程接 173

9.5.1 tcp网络通信的基本流程 173

9.5.2 socket网络编程 174

9.6 tcp经典异常场景分析 181

9.6.1 场景1:address already in use 181

9.6.2 场景2:connection refused 181

9.6.3 场景3:broken pipe 182

9.6.4 场景4:connection timeout 182

9.6.5 场景5:connection reset by peer 184

9.7 本章小结 184

0章 i/o模型与并发 185

10.1 i/o模型概述 185

10.1.1 阻塞i/o 185

10.1.2 非阻塞i/o 185

10.1.3 i/o多路复用 185

10.1.4 异步i/o 186

10.2 并发实例——echoserver 186

10.2.1 echo协议 186

10.2.2 协程 190

10.2.3 benchmark工具 201

10.2.4 单进程 204

10.2.5 多进程 205

10.2.6 多线程 206

10.2.7 进程池1 207

10.2.8 进程池2 208

10.2.9 线程池 209

10.2.10 简单的者-跟随者模型 210

10.2.11 i/o多路复用之select(单进程)-阻塞i/o 212

10.2.12 i/o多路复用之poll(单进程)-阻塞i/o 214

10.2.13 i/o多路复用之epoll(单进程)-阻塞i/o 216

10.2.14 i/o多路复用之epoll(单进程)-reactor 222

10.2.15 i/o多路复用之epoll(单进程)-reactor-et模式 225

10.2.16 i/o多路复用之epoll(单进程)-reactor-协程池 226

10.2.17 i/o多路复用之epoll(线程池)-reactor 229

10.2.18 i/o多路复用之epoll(线程池)-reactor-hsha 230

10.2.19 i/o多路复用之epoll(线程池)-reactor-ms 233

10.2.20 i/o多路复用之epoll(进程池)-reactor-协程池 236

10.3 基准能对比与分析 239

10.3.1 非i/o复用模型对比 239

10.3.2 i/o复用模型对比 240

10.3.3 epoll下lt模式和et模式对比 240

10.3.4 epoll下协程池模式和非协程池模式对比 241

10.3.5 hsha模式下工作线程和i/o线程写应答对比 241

10.3.6 ms模式下mainreactor线程是否可读事件对比 241

10.3.7 epoll下动态和固定超时时间对比 242

10.3.8 epoll下进程池和线程池对比 242

10.4 本章小结 243

1章 公共代码提炼 244

11.1 参数列表 244

11.2 命令行参数解析 245

11.3 字符串 248

11.4 配置文件读取 249

11.5 延迟执行 251

11.6 单例模板 252

11.7 百分位数计算 252

11.8 鲁棒的i/o 253

11.9 时间处理 254

11.10 码 255

11.11 转换 256

11.12 socket选项 257

11.13 “龙套” 258

11.14 志文件 260

11.15 服务锁 262

11.16 本章小结 263

2章 应用层协议设计与实现 264

12.1 协议概述 264

12.2 协议分类 264

12.2.1 按编解码方式对协议进行分类 265

12.2.2 按边界划分方式对协议进行分类 265

12.3 协议评判 266

12.4 自定义协议的优缺点 266

12.4.1 优点 266

12.4.2 缺点 267

12.5 协议设计 267

12.5.1 协议消息格式 267

12.5.2 协议设计权衡 268

12.6 预备知识 268

12.6.1 大小端 268

12.6.2 字节序 269

12.6.3 字节序的互转 270

12.6.4 内存对象与布局 272

12.6.5 指针类型的本质 272

12.6.6 序列化与反序列化 273

12.7 其他协议 274

12.7.1 消息格式 275

12.7.2 resp消息格式 276

12.8 协议实现 276

12.8.1 协议编解码抽象 277

12.8.2 mysvr实现 279

12.8.3 实现 284

12.8.4 resp实现 289

12.8.5 混合协议实现 293

12.8.6 共结 295

12.9 本章小结 296

3章 myrpc框架设计与实现 297

13.1 框架概述 297

13.2 并发模型 298

13.3 框架具体实现 299

13.3.1 服务启动流程 300

13.3.2 事件分发流程 304

13.3.3 服务器端请求处理流程 311

13.3.4 客户端请求处理流程 321

13.3.5 分布式调用栈追踪 334

13.3.6 超时管理 338

13.3.7 本地协程变量管理 338

13.3.8 业务层的并发 339

13.4 示例服务echo 339

13.4.1 结构划分 340

13.4.2 服务描述文件 340

13.4.3 服务启动 341

13.4.4 业务处理 341

13.4.5 配置与辅助文件 342

13.4.6 通用的服务启停脚本 345

13.4.7 接测试 346

13.5 工具集合 347

13.5.1 服务代码生成工具myrpcc 347

13.5.2 接测试工具myrpct 362

13.5.3 接压测工具myrpcb 365

13.6 本章小结 371

4章 微服务集群 372

14.1 集群架构概述 372

14.2 持久化层 372

14.2.1 redis服务 373

14.2.2 authstore服务 373

14.2.3 userstore服务 375

14.3 业务逻辑层 379

14.3.1 auth服务 379

14.3.2 user服务 383

14.4 接入层 387

14.4.1 结构 387

14.4.2 代码与配置 388

14.4.3 接测试 389

14.5 本章小结 389

5章 回顾结 390

15.1 6种思维模式 390

15.1.1 不要被编程语言所 390

15.1.2 掌握多种编程语言是必然的 390

15.1.3 计算机本身是一个机 391

15.1.4 动手是优选的实践 391

15.1.5 依靠工具提高效率和质量 391

15.1.6 像工匠一样为自己创造工具 391

15.2 写在后 391

点击展开 点击收起

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP