操作系统基础与实践

操作系统基础与实践
作者: 编者:郝家胜|
出版社: 人民邮电
原售价: 79.80
折扣价: 66.12
折扣购买: 操作系统基础与实践
ISBN: 9787115647870

作者简介

郝家胜,工学博士,电子科技大学自动化工程学院副教授、中法合作办学(电子嵌入式系统专业理学硕士)项目执行主任,硕士生导师。美国宾夕法尼亚大学访问学者,中国人工智能学会、中国计算机学会会员,四川省计算机学会虚拟现实专业委员会委员,IEEE TCST/TIM和COMPEL等国际期刊审稿人,入选2022年度教育部-华为“智能基座”优秀教师(全国20人)。 研究方向为机器感知与学习、工业人工智能应用,长期从事机器人自主认知系统、石油钻井大数据在线学习、基于深度强化学习的智能决策与控制系统等相关课题研究,作为科研骨干参与30余项国家自然科学基金。在EAAI期刊和CDC等会议上发表19篇论文。获11项国家发明专利,实施成果转让1项。 主持教育部产学合作协同育人项目、教育部-华为“智能基座”合作课程等多项教学改革课题,获教育部产学合作协同育人项目华为优秀成果奖(全国共37项),该项目入选第十届教育部产学合作协同育人项目对接会典型项目成果展。指导学生参加学科竞赛并获得2021年全国大学生冰壶人工智能挑战赛并获全国冠军,第八届中国“互联网+”大学生创新创业大赛省赛银奖,以及第八届华为ICT大赛实践赛昇腾A1赛道全国区一等奖、全球总决赛二等奖等奖项。获华为云与计算“先锋教师”、华为昇腾专家(HAE)等称号,入选华为开发者布道师计划。

内容简介

(1)本书面向云边端、物联网和人工智能应用等ICT时代的创新应用新需求,讲解了openEuler操作系统的基本原理、应用开发、服务器维护和嵌入式开发等基本内容,亦覆盖了面向数字基础设施的操作系统前沿新特性,理解操作系统的创新思路。 (2)本书是华为与高校作者合作完成,作者均具有长达25年的Linux系统科研实践经验和多年的产教融合教学经验,包括华为“智能基座”优秀教师等。华为方引入openEuler相关产品线的核心技术专家提供技术支持和技术评审。 (3)在操作系统应用中深度融入优秀的软件设计思维,结合openEuler的基础知识和实践内容,深入浅出的讲解“简单即是美”、“一个工具只做一件事”和“一切皆文件”等UNIX-like操作系统的优秀设计哲学。

书籍目录

第 1章 绪论 1
1.1 操作系统与ICT时代 1
1.2 操作系统起源 2
1.2.1 Multics项目 2
1.2.2 UNIX诞生 2
1.3 操作系统发展 4
1.3.1 UNIX的繁荣与版权困境 4
1.3.2 桌面操作系统的崛起 5
1.3.3 GNU/Linux的开源创新 7
1.3.4 ICT时代操作系统的兴起 8
1.4 openEuler新生态 11
1.4.1 openEuler概览 11
1.4.2 openEuler社区 12
1.4.3 openEuler软件生态 13
1.5 本章小结 13
第 2章 操作系统初识 14
2.1 操作系统的基本组成 14
2.1.1 典型体系结构 14
2.1.2 系统内核和系统调用接口 15
2.1.3 应用程序 16
2.1.4 用户界面 21
2.2 主流操作系统简介 24
2.2.1 桌面操作系统 24
2.2.2 服务器操作系统 24
2.2.3 嵌入式操作系统 25
2.3 GNU/Linux的优秀特性 25
2.3.1 秉承UNIX设计哲学 26
2.3.2 自由与开放 27
2.3.3 可移植性 29
2.4 openEuler简介 29
2.4.1 系统架构 29
2.4.2 创新特色 30
2.4.3 开源贡献 31
2.5 体验openEuler 32
2.5.1 华为云ECS主机 32
2.5.2 VMware安装 32
2.5.3 Docker容器运行 32
2.6 本章小结 33
思考与实践 33
第3章 openEuler使用入门 34
3.1 交互界面 34
3.1.1 GUI 35
3.1.2 CLI 37
3.2 使用命令行 38
3.2.1 控制台和终端 38
3.2.2 登录系统 39
3.2.3 远程登录 40
3.2.4 使用命令 41
3.2.5 获取帮助 43
3.3 命令行基本操作 45
3.3.1 使用目录 46
3.3.2 查看文件 51
3.3.3 管理文件 56
3.3.4 查找文件 59
3.3.5 查看系统信息 62
3.3.6 管理系统 64
3.4 Shell:让命令行更强大 65
3.4.1 Bash简介 65
3.4.2 环境变量 66
3.4.3 通配符与自动补全 68
3.4.4 组合命令 69
3.4.5 重定向 70
3.4.6 管道 72
3.4.7 扩展命令 74
3.4.8 命令行编辑 76
3.5 用户与权限 76
3.5.1 用户模型 77
3.5.2 切换用户身份 77
3.5.3 权限模型 78
3.5.4 修改权限 79
3.5.5 修改属主 80
3.6 安装DDE桌面环境 80
3.7 本章小结 81
思考与实践 81
第4章 操作系统原理与实践 83
4.1 操作系统设计理念 83
4.2 文件管理 85
4.2.1 文件树 85
4.2.2 VFS 89
4.2.3 EulerFS简介 91
4.2.4 实例4-1:文件系统操作 91
4.3 内存管理 93
4.3.1 内存保护 93
4.3.2 虚拟内存管理 96
4.3.3 openEuler内存技术 97
4.3.4 实例4-2:内存信息分析 98
4.4 进程管理 99
4.4.1 并行化模型 100
4.4.2 进程创建 100
4.4.3 进程调度 102
4.4.4 进程间通信 103
4.4.5 线程抽象 104
4.4.6 openEuler进程技术 106
4.4.7 实例4-3:进程监控与进程管理 108
4.5 本章小结 110
思考与实践 111
第5章 openEuler开发
环境 112
5.1 文本处理 112
5.1.1 Vim编辑器 113
5.1.2 nano编辑器 118
5.1.3 文本搜索 119
5.1.4 文本替换与自动编辑 121
5.1.5 文本分析 123
5.1.6 文本格式化 124
5.1.7 使用Git管理版本 126
5.2 Shell脚本编程 127
5.2.1 猜数字小游戏 128
5.2.2 变量 129
5.2.3 表达式 131
5.2.4 分支结构 132
5.2.5 循环结构 133
5.2.6 函数 135
5.2.7 项目5-1:install-help命令 135
5.3 C/C 应用开发 136
5.3.1 my-nl小工具 136
5.3.2 编译与调试 137
5.3.3 Makefile构建 140
5.3.4 CMake构建 142
5.3.5 自动化测试 145
5.3.6 性能优化 146
5.3.7 项目5-2:my-utils工具箱 148
5.4 可移植性开发与Docker容器部署 148
5.4.1 POSIX可移植性 148
5.4.2 C/C 可移植性 150
5.4.3 Docker容器可移植性 151
5.4.4 openEuler多场景可移植性 154
5.4.5 项目5-3:my-utils跨平台构建 155
5.5 在开源社区中学习 155
5.5.1 Linux与开放源码 155
5.5.2 openEuler社区 156
5.6 本章小结 156
思考与实践 157
第6章 嵌入式操作系统开发 158
6.1 嵌入式操作系统简介 158
6.1.1 嵌入式系统软件体系 159
6.1.2 主要特点 160
6.1.3 常见嵌入式操作系统 160
6.2 嵌入式Linux 161
6.2.1 嵌入式Linux开发流程 162
6.2.2 实例6-1:嵌入式开发环境构建 163
6.3 Linux内核裁剪与开发 165
6.3.1 Linux内核简介 166
6.3.2 内核构建机制 168
6.3.3 实例6-2:内核编译与QEMU仿真 169
6.4 根文件系统开发 171
6.4.1 BusyBox简介 171
6.4.2 实例6-3:根文件系统编译与QEMU仿真 172
6.5 openEuler嵌入式操作系统 174
6.5.1 技术架构与主要特性 175
6.5.2 oebuild构建方法 176
6.5.3 实例6-4:openEuler嵌入式
操作系统QEMU构建与仿真 177
6.5.4 嵌入式ROS运行时 177
6.5.5 软实时特性 178
6.6 本章小结 179
思考与实践 180
第7章 网络基础与管理 181
7.1 TCP/IP网络模型 181
7.1.1 IP地址 183
7.1.2 端口 186
7.1.3 socket 186
7.1.4 socket编程接口 187
7.2 网络管理基础 189
7.2.1 基本概念 189
7.2.2 主机名 191
7.2.3 网络接口名 192
7.3 管理网络 193
7.3.1 网络管理工具 193
7.3.2 配置连接 197
7.3.3 ifcfg文件 198
7.3.4 配置路由 199
7.3.5 诊断网络 199
7.3.6 实例7-1:创建VLAN 201
7.4 网络防火墙 202
7.4.1 iptables 203
7.4.2 firewalld 205
7.4.3 实例7-2:配置firewalld 208
7.5 经典网络工具 209
7.5.1 SSH安全连接 209
7.5.2 wget文件下载 211
7.5.3 curl网络交互 211
7.5.4 tcpdump抓包 212
7.5.5 Netcat网络助手 213
7.5.6 Nmap探测器 214
7.6 本章小结 215
思考与实践 215
第8章 服务器操作系统
管理 216
8.1 典型服务器操作系统 216
8.1.1 Windows Server 217
8.1.2 主流Linux Server 217
8.1.3 兴起中的openEuler 218
8.2 用户和用户组 219
8.2.1 用户管理 220
8.2.2 用户组管理 221
8.2.3 实例8-1:批量添加用户 222
8.3 硬盘与逻辑卷 222
8.3.1 硬盘分区 223
8.3.2 MBR和GPT 223
8.3.3 实例8-2:分区创建与挂载 224
8.3.4 逻辑卷 226
8.3.5 实例8-3:逻辑卷创建与挂载 227
8.4 软件包 229
8.4.1 RPM包管理 231
8.4.2 DNF包管理 232
8.4.3 源码包管理 233
8.5 系统服务 234
8.5.1 systemd 235
8.5.2 systemctl 236
8.5.3 .service文件 236
8.5.4 SSH服务 237
8.5.5 实例8-4:安装LAMP组合 238
8.6 计划任务 239
8.6.1 单次任务 239
8.6.2 周期任务 240
8.7 系统安全 241
8.7.1 root权限 241
8.7.2 文件特殊权限机制 242
8.7.3 SELinux 244
8.7.4 日志系统 245
8.7.5 安全审计 250
8.8 系统管理与维护实例 251
8.8.1 实例8-5:使用Cockpit管理系统 251
8.8.2 实例8-6:WordPress博客建站 252
8.9 本章小结 255
思考与实践 256
第9章 openEuler开源创新 257
9.1 内核创新 257
9.1.1 SMT驱离优先级反转特性 258
9.1.2 CPU QoS优先级负载均衡特性 259
9.1.3 潮汐affinity特性 259
9.2 基础能力创新 260
9.2.1 iSulad轻量级容器引擎 260
9.2.2 StratoVirt虚拟化 262
9.2.3 Kmesh高性能服务管理工具 263
9.2.4 内核热升级 264
9.2.5 安全和可靠性 265
9.3 全场景使能创新 269
9.3.1 服务器 269
9.3.2 云计算 273
9.3.3 嵌入式 276
9.3.4 边缘计算 278
9.4 工具链创新 280
9.4.1 GCC for openEuler 280
9.4.2 Compass-CI测试平台 281
9.4.3 EulerLauncher 282
9.4.4 A-Ops智能运维 283
9.4.5 A-Tune智能调优引擎 285
9.5 行业应用案例 286
9.5.1 金融应用案例 286
9.5.2 能源应用案例 288
9.5.3 云计算应用案例 288
9.5.4 科研应用案例 289
9.6 本章小结 290
思考与实践 290