Linux GNU C 程序观察 罗 明 C语言 Linux 程序设计 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
Linux GNU C 程序观察 罗 明 C语言 Linux 程序设计电子书下载地址
- 文件名
- [epub 下载] Linux GNU C 程序观察 罗 明 C语言 Linux 程序设计 epub格式电子书
- [azw3 下载] Linux GNU C 程序观察 罗 明 C语言 Linux 程序设计 azw3格式电子书
- [pdf 下载] Linux GNU C 程序观察 罗 明 C语言 Linux 程序设计 pdf格式电子书
- [txt 下载] Linux GNU C 程序观察 罗 明 C语言 Linux 程序设计 txt格式电子书
- [mobi 下载] Linux GNU C 程序观察 罗 明 C语言 Linux 程序设计 mobi格式电子书
- [word 下载] Linux GNU C 程序观察 罗 明 C语言 Linux 程序设计 word格式电子书
- [kindle 下载] Linux GNU C 程序观察 罗 明 C语言 Linux 程序设计 kindle格式电子书
内容简介:
本书所讨论的内容是“C语言程序设计”类课程的后续知识,涉及C程序在Linux环境下经过GCC编译/链接生成可执行文件以及在系统中运行的问题。本书能使读者在面对C程序的工程实践问题时,做到心中有数、处处不存疑。
全书共7章,第1章介绍环境准备,第2章介绍C程序的预处理、编译、汇编和链接的全过程,并介绍了一点关于GCC编译命令及编译选项、GDB调试初步概念,第3章专注于编译环节,即从C到汇编的转换,第4章专注于链接过程,第5章介绍可执行文件在系统中运行时,观察进程与系统的关系、进程对库的调用、程序异常行为等问题,第6、7章介绍一些性能剖析方法,包括GCC自带工具、库函数打桩方法、valgrind及perf工具的简单使用等,第8章介绍一个综合性的实例,即如何将HDFS文件系统使用的gzip压缩,从利用zlib库在CPU上计算转换成利用FPGA加速卡的过程。该实例涉及库的使用和修改、makefile以及相应的C程序实现等多方面知识,让读者从一个工程需求的角度考察其方案与实现。每章后面都有一些练习题,其中有一个与zlib库相关的任务贯穿了各章,读者通过这个连贯的练习将各章知识融会贯通。
/* 条目添加者注:大家可以看一下本书的前言,对于了解本书的定位和本书与作者其它书籍的关联有帮助。 */
前言
我们在系统软件的教学和学生培养中,深感教材的缺乏。以往只能在项目实践中,让学生通过网络上的零散资料来完成相关知识的补充学习,然后才能参与到项目中。我们认为,计算机作为实践性很强的学科,如果课堂教学和实验不能紧密联系具体的系统,无法面对和解决工程问题,就不能算成功。Linux系统作为一个开源的资源,为我们提供了良好的机会,可以将底层系统软件的相关技术细节完全呈现出来。为此,我们的第一步计划是提供最基本的一条学习通路,将应用程序和系统打通,形成系统软件技术学习丛书,其进阶学习流程如下。
学生在完成C语言程序设计、数据结构和算法课程的学习之后,可以通过本书补充C程序与系统的知识。C语言程序设计作为“上半部”知识,而本书作为“下半部”知识,从而形成C程序自身完整的知识结构。
然后将视角从一个程序扩展到整个系统中,需要面对多个进程并发的操作系统环境。此时仅靠本科操作系统原理性课程的学习仍是不够充分的。一方面,可以通过《操作系统之编程观察》(清华大学出版社,书号978-7-302-48973-3)介绍的用proc文件系统提供的内核运行数据,直观地观察Linux操作系统的进程调度与均衡、进程间通信、内存管理和文件系统等行为,加深理论概念的认识;另一方面从《操作系统原型: xv6分析与实验》(即将出版)对操作系统实现中的关键机制进行探索,掌握其编码实现的关键细节,弄懂操作系统编码实现的最核心知识。
最后,在有需要的时候学习《Linux技术内幕》(清华大学出版社,书号978-7-302-45100-6)。通过对真实的、完善的(相对于xv6的原型代码而言)、稳定的Linux内核代码进行学习,掌握Linux内核实现细节并可以尝试根据工程需要对Linux系统进行修改增强。
上述4个相关联、递进的知识板块及学习安排,是我们在PHPC(个人高性能计算机)系统研制的学生培养过程中积累下来的,希望能对有志于投身系统软件开发的读者有所帮助。
编者
2018年4月Linux GNU C程序观察
我们在当前的C语言程序设计教学工作中,对C语言的语法和编程技术虽然都已经讨论得非常充分,但是作为计算机的“系统观”的建立,只能说仅完成了一半的任务。从C语言如何转换到汇编语言进而生成机器码形式的可执行文件,以及可执行文件如何装入内存并在操作系统环境中运行的细节,对大多数完成本科课程学习的学生而言,仍未达到解惑的程度。学生也许可以通过在网络上找到的业界大牛们提供的零散材料,自行建立起相应的认识,但这毕竟是一个耗时和低效的学习过程。
本书希望将上述知识,组织成一个相对完整、便于学习与实践的材料,在计算机系统课程学习中(例如深圳大学的“计算机系统2”)作为实验补充材料,让学生全面接触从C语言转换到汇编、进而生成机器码形式的可执行文件直至运行的全过程。在这种学习安排下,即使学生未修学编译原理课程,也能大致理解编译过程所使用的代码转换模板、链接中的符号解析和重定位等知识。除此之外,本书也介绍了程序在系统中运行的各种行为、代码调试和性能剖析工具的使用,对程序生成过程和运行过程都进行细致的观察——类似于电路与系统课程使用的万用表、示波器和频谱仪。有了这些“测量工具”后,C语言的实验教学才能从当前的“犹抱琵琶半遮面”的境况,变得相对完整起来。
罗秋明
于深大荔园
2020.1
本书获得深圳市科创委基础研究项目JCYJ20170302153920897云环境中的异构存储资源分配与性能优化研究、JSGG20170822110100205基于开放技术的可信多路高端计算系统研发的资助。感谢深圳大学计算机与软件学院“计算机系统2”课程组的老师,大家一起完成了广东省教育厅应用型人才培养课程建设项目“计算机系统系列核心课程”的实验内容和教学材料的准备工作,其中的部分工作正是本书的内容。特别感谢刘刚老师在相关实验的设计开发中给予的帮助。
还要感谢2018级的研究生杜海鑫、张靖、吴坤鑫和沙士豪三位同学,他们承担了部分书稿的整理、校对和实验代码的设计及检验等工作。其中,杜海鑫同学完成了第8章zlib库的代码开发和部分撰写工作,并对第4章、第5章和第8章内容进行整理和校对。吴坤鑫同学提供了7.2节、7.3节和7.4节的材料。张靖同学负责第1章、第2章和第3章材料的校对,沙士豪同学负责第6章和第7章材料的校对。
在上述老师和同学的大力支持下,本书终于完稿并与读者见面。再次对他们表示衷心的感谢!
书籍目录:
简要目录:
第1章实验环境构建 1
第2章程序编译与运行 38
第3章数据、运算与控制 86
第4章链接与可执行文件 161
第5章链接脚本与makefile 252
第6章程序运行 284
第7章性能剖析 327
第8章综合实例:HDFS中实现zlib库的旁路 377
附录 402
详细目录:
第1章实验环境构建1
1.1安装Linux1
1.1.1下载CentOS71
1.1.2CentOS7安装2
1.2虚拟机安装Linux9
1.2.1VirtualBox安装9
1.2.2虚拟机配置13
1.2.3虚拟机安装Linux20
1.3ssh远程终端访问20
1.3.1PuTTY客户端21
1.3.2无密码登录24
1.3.3Xming图形终端26
1.4初次接触Linux28
1.4.1简单操作28
1.4.2运行HelloWorld程序33
1.5小结37
第2章程序编译与运行38
2.1编译的各阶段39
2.1.1源代码39
2.1.2预处理40
2.1.3编译44
2.1.4汇编46
2.1.5链接48
2.1.6GCC编译驱动49
2.2GCC基本用法51
2.2.1C语言标准53
2.2.2库的使用54
2.2.3搜索路径60
2.2.4编译警告65
2.3GDB调试70
2.3.1代码准备71
2.3.2运行代码73
2.3.3查看变量和内存77
2.3.4图形前端TUI83
2.4小结84
练习84
第3章数据、运算与控制86
3.1x8664ISA86
3.1.1寄存器86
3.1.2内存空间与I/O空间91
3.2数据92
3.2.1数据大小、字节序92
3.2.2数组、结构体和联合体95
3.2.3数据布局98
3.3运算102
3.3.1数据传送102
3.3.2算术/逻辑运算104
3.3.3加载有效地址106
3.4控制107
3.4.1条件跳转107
3.4.2函数调用127
3.5小结159
练习159
第4章链接与可执行文件161
4.1生成可执行文件161
4.1.1样例代码162
4.1.2进程影像164
4.1.3ELF文件与装入168
4.2可重定位目标文件182
4.2.1目标文件的节(section)183
4.2.2符号及重定位187
4.2.3符号表196
4.3静态链接200
4.3.1布局200
4.3.2符号解析205
4.3.3静态重定位207
4.4动态链接214
4.4.1样例代码215
4.4.2动态链接库216
4.4.3动态链接步骤230
4.5小结250
练习251
第5章链接脚本与makefile252
5.1二进制工具和链接脚本252
5.1.1binutils252
5.1.2链接器脚本254
5.2makefile267
5.2.1makefile基本格式267
5.2.2makefile规则270
5.2.3makefile变量274
5.2.4文件指示277
5.2.5函数279
5.2.6make281
5.3小结282
练习283
第6章程序运行284
6.1装入与运行284
6.1.1ELF装载器284
6.1.2内核代码285
6.1.3进程与线程285
6.1.4工作环境287
6.2基本行为观察289
6.2.1ptrace289
6.2.2strace295
6.2.3GDB断点原理300
6.2.4ltrace301
6.3异常行为304
6.3.1非法操作304
6.3.2响应信号309
6.3.3core文件315
6.4小结325
练习326
第7章性能剖析327
7.1打桩方法327
7.1.1源代码预处理时328
7.1.2静态链接时330
7.1.3运行加载时332
7.2gprof334
7.2.1工作原理335
7.2.2gprof示例335
7.2.3性能数据解读343
7.2.4图形化显示(gprof2dot.py+graphviz)348
7.3gcov349
7.3.1基于函数分析的缺点349
7.3.2gcov逐行分析351
7.4其他分析工具355
7.4.1Valgrind355
7.4.2perf368
7.5小结375
练习376
第8章综合实例:HDFS中实现zlib库的旁路377
8.1项目需求377
8.2系统分析378
8.2.1整体方案378
8.2.2Haddop的gzipJNI379
8.2.3zlib分析382
8.2.4测定z_stream成员大小385
8.3编码实现387
8.3.1zlib日志387
8.3.2Log4c388
8.3.3使用libcprss.so库396
8.4功能验证398
8.4.1准备输入文件399
8.4.2zlib原生库的压缩399
8.4.3libcprss.so库的压缩401
8.5小结401
附录402
作者介绍:
深圳大学计算机与软件学院副教授,广东省国产高性能计算系统工程技术研究中心副主任、深圳市服务计算与应用重点实验室常务副主任,长期从事高性能计算研究。华中科技大学计算机科学与技术博士学位。著《OpenMP编译原理及实现技术》《Linux技术内幕》《操作系统之编程观察》译《Intel Parallel Studio环境下的并行程序设计》。发表论文40多篇(含SCI/EI索引多篇),承担和参与国家、省、市科研项目多项,2009-2010年参与基于龙芯3多核处理器的万亿次个人高性能计算机KD-60研制2011~2012年参与基于龙芯3号8核处理器的普及型高性能计算机KD-90研制,上述成果通过安徽省科技厅鉴定。2004-今,深圳大学计算机与软件学院从事科研与教学工作,本科及研究生课程:《操作系统》《现代操作系统》《操作系统课程设计》《计算机体系结构》《Intel并行编程工具》等。
出版社信息:
暂无出版社相关信息,正在全力查找中!
书籍摘录:
暂无相关书籍摘录,正在全力查找中!
在线阅读/听书/购买/PDF下载地址:
原文赏析:
暂无原文赏析,正在全力查找中!
其它内容:
书籍介绍
本书所讨论的内容是“C语言程序设计”类课程的后续知识,涉及C程序在Linux环境下经过GCC编译/链接生成可执行文件以及在系统中运行的问题。本书能使读者在面对C程序的工程实践问题时,做到心中有数、处处不存疑。
全书共7章,第1章介绍环境准备,第2章介绍C程序的预处理、编译、汇编和链接的全过程,并介绍了一点关于GCC编译命令及编译选项、GDB调试初步概念,第3章专注于编译环节,即从C到汇编的转换,第4章专注于链接过程,第5章介绍可执行文件在系统中运行时,观察进程与系统的关系、进程对库的调用、程序异常行为等问题,第6、7章介绍一些性能剖析方法,包括GCC自带工具、库函数打桩方法、valgrind及perf工具的简单使用等,第8章介绍一个综合性的实例,即如何将HDFS文件系统使用的gzip压缩,从利用zlib库在CPU上计算转换成利用FPGA加速卡的过程。该实例涉及库的使用和修改、makefile以及相应的C程序实现等多方面知识,让读者从一个工程需求的角度考察其方案与实现。每章后面都有一些练习题,其中有一个与zlib库相关的任务贯穿了各章,读者通过这个连贯的练习将各章知识融会贯通。
/* 条目添加者注:大家可以看一下本书的前言,对于了解本书的定位和本书与作者其它书籍的关联有帮助。 */
前言
我们在系统软件的教学和学生培养中,深感教材的缺乏。以往只能在项目实践中,让学生通过网络上的零散资料来完成相关知识的补充学习,然后才能参与到项目中。我们认为,计算机作为实践性很强的学科,如果课堂教学和实验不能紧密联系具体的系统,无法面对和解决工程问题,就不能算成功。Linux系统作为一个开源的资源,为我们提供了良好的机会,可以将底层系统软件的相关技术细节完全呈现出来。为此,我们的第一步计划是提供最基本的一条学习通路,将应用程序和系统打通,形成系统软件技术学习丛书,其进阶学习流程如下。
学生在完成C语言程序设计、数据结构和算法课程的学习之后,可以通过本书补充C程序与系统的知识。C语言程序设计作为“上半部”知识,而本书作为“下半部”知识,从而形成C程序自身完整的知识结构。
然后将视角从一个程序扩展到整个系统中,需要面对多个进程并发的操作系统环境。此时仅靠本科操作系统原理性课程的学习仍是不够充分的。一方面,可以通过《操作系统之编程观察》(清华大学出版社,书号978-7-302-48973-3)介绍的用proc文件系统提供的内核运行数据,直观地观察Linux操作系统的进程调度与均衡、进程间通信、内存管理和文件系统等行为,加深理论概念的认识;另一方面从《操作系统原型: xv6分析与实验》(即将出版)对操作系统实现中的关键机制进行探索,掌握其编码实现的关键细节,弄懂操作系统编码实现的最核心知识。
最后,在有需要的时候学习《Linux技术内幕》(清华大学出版社,书号978-7-302-45100-6)。通过对真实的、完善的(相对于xv6的原型代码而言)、稳定的Linux内核代码进行学习,掌握Linux内核实现细节并可以尝试根据工程需要对Linux系统进行修改增强。
上述4个相关联、递进的知识板块及学习安排,是我们在PHPC(个人高性能计算机)系统研制的学生培养过程中积累下来的,希望能对有志于投身系统软件开发的读者有所帮助。
编者
2018年4月Linux GNU C程序观察
我们在当前的C语言程序设计教学工作中,对C语言的语法和编程技术虽然都已经讨论得非常充分,但是作为计算机的“系统观”的建立,只能说仅完成了一半的任务。从C语言如何转换到汇编语言进而生成机器码形式的可执行文件,以及可执行文件如何装入内存并在操作系统环境中运行的细节,对大多数完成本科课程学习的学生而言,仍未达到解惑的程度。学生也许可以通过在网络上找到的业界大牛们提供的零散材料,自行建立起相应的认识,但这毕竟是一个耗时和低效的学习过程。
本书希望将上述知识,组织成一个相对完整、便于学习与实践的材料,在计算机系统课程学习中(例如深圳大学的“计算机系统2”)作为实验补充材料,让学生全面接触从C语言转换到汇编、进而生成机器码形式的可执行文件直至运行的全过程。在这种学习安排下,即使学生未修学编译原理课程,也能大致理解编译过程所使用的代码转换模板、链接中的符号解析和重定位等知识。除此之外,本书也介绍了程序在系统中运行的各种行为、代码调试和性能剖析工具的使用,对程序生成过程和运行过程都进行细致的观察——类似于电路与系统课程使用的万用表、示波器和频谱仪。有了这些“测量工具”后,C语言的实验教学才能从当前的“犹抱琵琶半遮面”的境况,变得相对完整起来。
罗秋明
于深大荔园
2020.1
本书获得深圳市科创委基础研究项目JCYJ20170302153920897云环境中的异构存储资源分配与性能优化研究、JSGG20170822110100205基于开放技术的可信多路高端计算系统研发的资助。感谢深圳大学计算机与软件学院“计算机系统2”课程组的老师,大家一起完成了广东省教育厅应用型人才培养课程建设项目“计算机系统系列核心课程”的实验内容和教学材料的准备工作,其中的部分工作正是本书的内容。特别感谢刘刚老师在相关实验的设计开发中给予的帮助。
还要感谢2018级的研究生杜海鑫、张靖、吴坤鑫和沙士豪三位同学,他们承担了部分书稿的整理、校对和实验代码的设计及检验等工作。其中,杜海鑫同学完成了第8章zlib库的代码开发和部分撰写工作,并对第4章、第5章和第8章内容进行整理和校对。吴坤鑫同学提供了7.2节、7.3节和7.4节的材料。张靖同学负责第1章、第2章和第3章材料的校对,沙士豪同学负责第6章和第7章材料的校对。
在上述老师和同学的大力支持下,本书终于完稿并与读者见面。再次对他们表示衷心的感谢!
网站评分
书籍多样性:8分
书籍信息完全性:7分
网站更新速度:6分
使用便利性:8分
书籍清晰度:4分
书籍格式兼容性:9分
是否包含广告:6分
加载速度:9分
安全性:7分
稳定性:5分
搜索功能:3分
下载便捷性:5分
下载点评
- 经典(272+)
- azw3(274+)
- 方便(567+)
- 内容齐全(659+)
- txt(344+)
- 字体合适(507+)
- 强烈推荐(320+)
- 值得下载(215+)
下载评价
- 网友 堵***格: ( 2025-01-05 22:32:00 )
OK,还可以
- 网友 薛***玉: ( 2025-01-12 12:35:26 )
就是我想要的!!!
- 网友 林***艳: ( 2024-12-20 16:36:53 )
很好,能找到很多平常找不到的书。
- 网友 通***蕊: ( 2024-12-26 11:02:18 )
五颗星、五颗星,大赞还觉得不错!~~
- 网友 曾***玉: ( 2025-01-06 07:34:15 )
直接选择epub/azw3/mobi就可以了,然后导入微信读书,体验百分百!!!
- 网友 孔***旋: ( 2024-12-30 18:49:10 )
很好。顶一个希望越来越好,一直支持。
- 网友 索***宸: ( 2024-12-19 20:01:03 )
书的质量很好。资源多
- 网友 常***翠: ( 2025-01-12 08:55:45 )
哈哈哈哈哈哈
- 网友 宫***凡: ( 2024-12-27 19:21:55 )
一般般,只能说收费的比免费的强不少。
- 网友 訾***雰: ( 2025-01-17 00:26:38 )
下载速度很快,我选择的是epub格式
- 网友 家***丝: ( 2025-01-04 23:53:27 )
好6666666
喜欢"Linux GNU C 程序观察 罗 明 C语言 Linux 程序设计"的人也看了
全新正版图书 动物神秘事件簿-史前动物瑾蔚北方妇女儿童出版社9787558573910蔚蓝书店 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
Belgium & Luxembourg 4th 比利时、卢森堡国家 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
收入不平等 书作者 知名公共卫生专家 理查德·威尔金森 凯特·皮克特新作 心理 社会学 大众经济学 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
世界热点国家地图·东南亚 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
通用安装工程消耗量 TY 02-31-2021 第十一册 信息通信设备与线缆安装工程 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
- 小学教材帮 - 语文 四年级下册 RJ 配统编教材(漫画全彩) 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
- 2023年秋季黄冈小状元作业本一年级上册语文数学2本套装人教部编版 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
- 笙考级教程 第7-8级 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
- 正版 客户关系管理:销售的视角 第2版8062308 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
- 国家职业资格培训教程:助理物流师(国家职业资格三级 第2版) 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
- 【预订】幻影建筑:世界建筑师最想建造的50个梦幻建筑 港台原版建筑设计 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
- 新东方 KET高分写作字帖 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
- 新版 中国地理地图(中国地图政区+地形图 学生地图 地理学习知识 防水耐折)0.6米*0.435米 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
- 大学英语4级考试历年真题试卷及详解 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
- 钢门窗GB/T20909-2007 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
书籍真实打分
故事情节:4分
人物塑造:9分
主题深度:3分
文字风格:8分
语言运用:6分
文笔流畅:6分
思想传递:3分
知识深度:4分
知识广度:4分
实用性:7分
章节划分:4分
结构布局:5分
新颖与独特:7分
情感共鸣:9分
引人入胜:7分
现实相关:6分
沉浸感:3分
事实准确性:3分
文化贡献:5分