新書推薦:

《
请别当众夸奖我!:受困于“好孩子综合征”的日本年轻人 (洞悉“躺平”背后的隐形压力,缓解从校园到社会的过渡之痛。)
》
售價:HK$
49.5

《
实用主义——某些旧思想方法的新名称(威廉·詹姆士哲学文集 第1卷)
》
售價:HK$
53.9

《
西太平洋海山巨型底栖动物分类图鉴
》
售價:HK$
327.8

《
名伶访问记:民国京剧的“百科全书”(套装 全六册)
》
售價:HK$
217.8

《
装配式路桥技术研究
》
售價:HK$
184.8

《
国际法案例研习(2021—2022)
》
售價:HK$
86.9

《
中华文明十论:考古学视野下的文明传承、交流与表达
》
售價:HK$
85.8

《
蚂蚁史诗
》
售價:HK$
85.8
|
編輯推薦: |
本书基于业界主流程序开发与调试环境进行实验。书中提供了工业界基于开源操作系统Linux的主流程序开发与调试环境安装与配置方法,简要介绍了各类常用命令及工具软件的功能和使用方式,并设置了具体的练手实验,因而有利于初学者尽快掌握基于Linux系统的程序开发和调试基本方法。 ? 注重高级语言程序与机器级代码之间的关联。书中所有基础级验证性实验都在文本编辑器窗口中显示高级语言程序中的语句及其对应的指令序列,并给出了详细步骤通过gdb调试命令跟踪主存单元或寄存器中内容,从而通过实验加深对高级语言程序中各类语句、数据及其运算对应机器级表示的理解。 ? 强化对程序二进制机器代码的逆向分析能力。书中的模块级分析性实验通过对程序的二进制机器代码的构成与运行逻辑的分析,将理论课中关于程序的机器级表示、程序的链接等方面的教学内容贯穿起来,帮助读者加深对其中各重要知识点的理解,并进一步巩固和掌握反汇编、跟踪/调试等常用编程技能。
|
內容簡介: |
本书作为主教材《计算机系统导论》配套的程序设计与调试实践教材,内容包括基础级验证性实验和模块级分析性实验。本书中设计的基础级验证性实践项目包括实验系统的安装和工具软件的使用、程序调试命令和指令系统基础相关实验、数据的机器级表示实验、数据的基本运算实验、程序的机器级表示实验;模块级分析性实践项目包括二进制程序分析与逆向工程实验、程序的链接与ELF目标文件实验。本书为《计算机系统导论》主教材提供了系统性的编程调试实践项目,可以作为高等院校计算机专业本科或高职高专学生计算机系统导论课程的教学辅助教材,也可以作为计算机技术人员的参考书。
|
關於作者: |
袁春风南京大学计算机学院二级教授,CCF杰出教育奖、-华为智能基座优秀教师奖、宝钢优秀教师奖、首届全国系统能力培养突出贡献奖获得者,南京大学赵世良讲座教授。目前任“101计划”“计算机系统导论”课程建设牵头人及其虚拟教研室负责人、CCF体系结构专委会委员、江苏省计算机学会体系结构专委会副主任。在相关领域承担科研项目50多项,发表科研论文100多篇,两次获江苏省科技进步二等奖。发表教改论文20多篇;获国家级教学成果一等奖和二等奖各1项、江苏省教学成果特等奖2项、优秀教材二等奖1项;主持国家精品课程和国家精品资源共享课各1门;主持国家级线上一流课程2门、江苏省线下一流课程1门;主编普通高等教育本科国家级规划教材1套、江苏省精品教材和培优教材各1本、江苏省重点建设教材2本;主持的两门网络课程分别获得江苏省高等学校优秀多媒体课件特等奖和江苏省“松下杯”网络课件大赛一等奖。鲍培明南京师范大学计算机与电子信息学院副教授。承担“计算机系统基础”“计算机组成与结构”“并行程序设计”等多门课程的教学与实验工作。在教学活动中设计“计算机系统基础”课程系列实验,并获得第五届全国计算机类课程实验教学案例设计竞赛一等奖。主持高等学校计算机类专业教学指导委员会的“系统能力培养——专业课程体系改革及课程建设”教学改革项目、中国高等教育学会理科教育专业委员会的“面向系统能力培养的计算机专业硬件课程群教学改革与实践”教学改革项目。研究领域为大数据与数据挖掘,发表教学与科研论文30篇。苏丰南京大学计算机学院副教授。承担“计算机系统基础”“计算机网络”等课程的教学工作,“101计划”“计算机系统导论”课程及虚拟教研室建设牵头单位主要成员,主持产学合作协同育人项目“计算机系统导论编程与调试实践”。研究领域为多媒体计算和计算机视觉,主持或参与多项国家和江苏省自然科学基金项目,发表科研论文50余篇。获自然科学奖二等奖1项、江苏省教学成果奖二等奖1项,参与主讲的“计算机系统基础”课程获选江苏省线下一流课程。
|
目錄:
|
前 言随着计算机信息技术的飞速发展,我们见证了从早期多人一机的主机–终端模式,到PC时代的一人一机模式,再到如今的人–机–物互联的智能化大数据并行计算模式。现如今各行各业都离不开计算机信息技术,计算机信息产业对我国现代化战略目标的实现发挥着极其重要的支撑作用。这对计算机专业人才培养提出了更高的要求,传统的计算机专业教学课程体系和教学内容已经远远不能反映现代社会对计算机专业人才的培养要求,计算机专业人才培养也从强调程序设计变为更强调系统设计。这需要我们重新规划教学课程体系,调整教学理念和教学内容,加强系统能力培养,使学生能够深刻理解计算机系统整体的概念,更好地掌握软/硬件协同设计和程序设计技术,从而能够成为满足业界需求的各类计算机专业人才。不管培养计算机系统哪个层面的技术人才,计算机专业教育都要重视学生“系统观”的培养。机械工业出版社2023年8月出版的主教材《计算机系统导论》(ISBN 978-7-111-73093-4),重点介绍了计算机系统相关的基础性知识。该主教材以高级语言程序的开发和加载执行为主线,将高级语言源程序向可执行目标文件转换过程中涉及的基本概念关联起来,试图使读者建立起完整的计算机系统层次结构框架,初步构建计算机系统中每个抽象层及其相互转换关系,建立高级语言程序、ISA、编译器、汇编器、链接器等系统核心层之间的相互关联,对指令在硬件上的执行过程有一定的认识和了解,从而增强读者在编程调试方面的能力,并为后续“计算机组成原理”“操作系统”“编译原理”等课程的学习打下坚实的基础。主教材涵盖面广、细节内容较多、篇幅较大,给用书教师和学生带来了一些困难。为了更好地帮助主讲教师用好主教材,也为了学生能更好地理解课程中的核心概念,特别是让学生通过“学中做、做中学”的方式更好地掌握所学的理论知识,提高和增强程序设计和程序调试能力,我们编写了这本实践类辅助教材,为主教材中每一章的内容都设计了配套的实践项目,其主要设计思路和实践内容如下。第1章为“实验系统的安装和工具软件的使用”。本章包含实验系统的安装和配置,以及常用命令和工具软件的使用等方面的两个实验。实践内容包括从网络上下载虚拟机软件并安装虚拟机、下载和安装Linux操作系统、在Linux系统中配置程序开发和调试环境等操作,以完成实验系统的构建,从而为后续实验准备好调试执行环境,并使学生在实验系统构建过程中体会和理解计算机系统层次结构的基本概念。第2章为“程序调试初步和指令系统基础”。本章包含程序调试初步、IA-32指令系统基础和在C语言程序中嵌入汇编指令3个实验。通过所设计的实践项目,使学生能基于IA-32+Linux平台,在机器级代码层执行单步调试操作,通过对照C语句和对应机器级代码逐步熟悉IA-32指令系统中的基础内容,如AT&T汇编指令格式、通用寄存器结构、指令基本寻址方式等,从而为后续实验的开展奠定良好的基础。第3章为“数据的机器级表示实验”。本章包含整型数据的真值与机器数、浮点型数据的真值与机器数、数据的宽度与存放顺序、不同整型数据之间的转换、整型数据和浮点型数据之间的转换等5个实验。通过基于IA-32+Linux平台以及GCC编译驱动程序和gdb调试工具等对C语言程序中数据的机器级表示内容进行实验,使学生更好地理解数据的真值和机器数之间的对应关系,确定机器数所存放的存储单元,从而掌握整型数据和浮点型数据的编码表示方法。第4章为“数据的基本运算实验”。本章包含整数加减、整数乘、整数除和浮点数运算4个实验。通过基于IA-32+Linux平台以及GCC编译驱动程序和gdb调试工具等对C语言源程序中的整数加、减、乘、除等基本运算和浮点数运算进行实验,使学生更好地理解C语言程序中的运算、机器级代码中的运算指令、基本运算电路三者之间的关系,掌握数据在计算机内部的存储、运算和传送机制,从而掌握计算机系统中的整数运算和浮点数运算的实现方法,进一步熟悉IA-32中的常用指令并更好地掌握指令的基本寻址方式。第5章为“程序的机器级表示实验”。本章安排了5个实验,实验4和实验5为选做实验。前3个实验主要基于IA-32+Linux平台以及GCC编译驱动程序和gdb调试工具等,对C语言源程序中的函数调用语句、循环结构和选择结构等各类流程控制语句以及各类复杂数据类型的分配和访问等的机器级代码表示和实现进行实验,以帮助学生理解C语言程序在计算机系统中的底层实现机制,从而深刻理解高级语言程序、语言处理工具和环境、操作系统、指令集系统结构(ISA)之间的关联关系。实验4作为基础级验证性实验部分的综合收官实验,通过对C语言程序及其机器级代码中缓冲区溢出漏洞的调试分析,以及利用缓冲区溢出漏洞进行模拟攻击的过程分析,将数据的表示、数据的运算和程序的机器级表示等内容贯穿起来,以进一步巩固对主教材相关内容的理解。实验5为64位架构平台上的实验,需要配置基于x86-64架构的Ubuntu(64位)Linux系统,在此基础上进行x86-64架构机器级表示实验。第6章为“二进制程序分析与逆向工程实验”。本章与主教材第2~6章的教学内容配套,包含了9个实验,通过对二进制程序的构成与运行逻辑的分析,旨在将理论课程中关于程序的机器级表示的教学内容贯穿起来,加深对其中各重要知识点的理解,并进一步巩固和掌握反汇编、跟踪/调试等常用编程技能。第7章为“程序链接与ELF目标文件实验”。本章与主教材第7章(程序的链接)的教学内容配套,按照主教材教学内容分阶段设计为以下6个实验:数据与ELF数据节、指令与ELF代码节、符号解析、switch语句与链接、重定位、位置无关代码。通过对一组可重定位目标文件中相关内容的分析和修改,将其链接为可正确运行的程序,从而加深学生对理论课中关于ELF目标文件的基本结构和组成、程序链接过程(如符号解析与重定位)等基础知识和基本概念的理解,并掌握用于链接和目标文件解析等的常用工具软件的使用。本书设计的实验中,前五章实验内容属于基础级验证性实验,后两章实验内容属于模块级分析性实验。这两部分实验的配套实验代码可通过出版社的网站或配套数字资源介质获取。模块级分析性实验中面向任课教师的代码可向出版社申请获得。本书的编写得到了南京大学“计算机系统基础”课程组教师和各届学生的大力支持,同时,国内许多使用《计算机系统基础》和《计算机系统导论》等教材进行教学的教师也提出了宝贵的反馈和改进意见,在此表示衷心的感谢!由于计算机系统相关的基础理论和技术在不断发展,新的思想、概念、技术和方法不断涌现,加之作者水平有限,在编写中难免存在不当或遗漏之处,恳请同行专家和广大读者对本书的不足之处给予指正,以便在后续的版本中予以改进。
|
內容試閱:
|
前 言随着计算机信息技术的飞速发展,我们见证了从早期多人一机的主机–终端模式,到PC时代的一人一机模式,再到如今的人–机–物互联的智能化大数据并行计算模式。现如今各行各业都离不开计算机信息技术,计算机信息产业对我国现代化战略目标的实现发挥着极其重要的支撑作用。这对计算机专业人才培养提出了更高的要求,传统的计算机专业教学课程体系和教学内容已经远远不能反映现代社会对计算机专业人才的培养要求,计算机专业人才培养也从强调程序设计变为更强调系统设计。这需要我们重新规划教学课程体系,调整教学理念和教学内容,加强系统能力培养,使学生能够深刻理解计算机系统整体的概念,更好地掌握软/硬件协同设计和程序设计技术,从而能够成为满足业界需求的各类计算机专业人才。不管培养计算机系统哪个层面的技术人才,计算机专业教育都要重视学生“系统观”的培养。机械工业出版社2023年8月出版的主教材《计算机系统导论》(ISBN 978-7-111-73093-4),重点介绍了计算机系统相关的基础性知识。该主教材以高级语言程序的开发和加载执行为主线,将高级语言源程序向可执行目标文件转换过程中涉及的基本概念关联起来,试图使读者建立起完整的计算机系统层次结构框架,初步构建计算机系统中每个抽象层及其相互转换关系,建立高级语言程序、ISA、编译器、汇编器、链接器等系统核心层之间的相互关联,对指令在硬件上的执行过程有一定的认识和了解,从而增强读者在编程调试方面的能力,并为后续“计算机组成原理”“操作系统”“编译原理”等课程的学习打下坚实的基础。主教材涵盖面广、细节内容较多、篇幅较大,给用书教师和学生带来了一些困难。为了更好地帮助主讲教师用好主教材,也为了学生能更好地理解课程中的核心概念,特别是让学生通过“学中做、做中学”的方式更好地掌握所学的理论知识,提高和增强程序设计和程序调试能力,我们编写了这本实践类辅助教材,为主教材中每一章的内容都设计了配套的实践项目,其主要设计思路和实践内容如下。第1章为“实验系统的安装和工具软件的使用”。本章包含实验系统的安装和配置,以及常用命令和工具软件的使用等方面的两个实验。实践内容包括从网络上下载虚拟机软件并安装虚拟机、下载和安装Linux操作系统、在Linux系统中配置程序开发和调试环境等操作,以完成实验系统的构建,从而为后续实验准备好调试执行环境,并使学生在实验系统构建过程中体会和理解计算机系统层次结构的基本概念。第2章为“程序调试初步和指令系统基础”。本章包含程序调试初步、IA-32指令系统基础和在C语言程序中嵌入汇编指令3个实验。通过所设计的实践项目,使学生能基于IA-32+Linux平台,在机器级代码层执行单步调试操作,通过对照C语句和对应机器级代码逐步熟悉IA-32指令系统中的基础内容,如AT&T汇编指令格式、通用寄存器结构、指令基本寻址方式等,从而为后续实验的开展奠定良好的基础。第3章为“数据的机器级表示实验”。本章包含整型数据的真值与机器数、浮点型数据的真值与机器数、数据的宽度与存放顺序、不同整型数据之间的转换、整型数据和浮点型数据之间的转换等5个实验。通过基于IA-32+Linux平台以及GCC编译驱动程序和gdb调试工具等对C语言程序中数据的机器级表示内容进行实验,使学生更好地理解数据的真值和机器数之间的对应关系,确定机器数所存放的存储单元,从而掌握整型数据和浮点型数据的编码表示方法。第4章为“数据的基本运算实验”。本章包含整数加减、整数乘、整数除和浮点数运算4个实验。通过基于IA-32+Linux平台以及GCC编译驱动程序和gdb调试工具等对C语言源程序中的整数加、减、乘、除等基本运算和浮点数运算进行实验,使学生更好地理解C语言程序中的运算、机器级代码中的运算指令、基本运算电路三者之间的关系,掌握数据在计算机内部的存储、运算和传送机制,从而掌握计算机系统中的整数运算和浮点数运算的实现方法,进一步熟悉IA-32中的常用指令并更好地掌握指令的基本寻址方式。第5章为“程序的机器级表示实验”。本章安排了5个实验,实验4和实验5为选做实验。前3个实验主要基于IA-32+Linux平台以及GCC编译驱动程序和gdb调试工具等,对C语言源程序中的函数调用语句、循环结构和选择结构等各类流程控制语句以及各类复杂数据类型的分配和访问等的机器级代码表示和实现进行实验,以帮助学生理解C语言程序在计算机系统中的底层实现机制,从而深刻理解高级语言程序、语言处理工具和环境、操作系统、指令集系统结构(ISA)之间的关联关系。实验4作为基础级验证性实验部分的综合收官实验,通过对C语言程序及其机器级代码中缓冲区溢出漏洞的调试分析,以及利用缓冲区溢出漏洞进行模拟攻击的过程分析,将数据的表示、数据的运算和程序的机器级表示等内容贯穿起来,以进一步巩固对主教材相关内容的理解。实验5为64位架构平台上的实验,需要配置基于x86-64架构的Ubuntu(64位)Linux系统,在此基础上进行x86-64架构机器级表示实验。第6章为“二进制程序分析与逆向工程实验”。本章与主教材第2~6章的教学内容配套,包含了9个实验,通过对二进制程序的构成与运行逻辑的分析,旨在将理论课程中关于程序的机器级表示的教学内容贯穿起来,加深对其中各重要知识点的理解,并进一步巩固和掌握反汇编、跟踪/调试等常用编程技能。第7章为“程序链接与ELF目标文件实验”。本章与主教材第7章(程序的链接)的教学内容配套,按照主教材教学内容分阶段设计为以下6个实验:数据与ELF数据节、指令与ELF代码节、符号解析、switch语句与链接、重定位、位置无关代码。通过对一组可重定位目标文件中相关内容的分析和修改,将其链接为可正确运行的程序,从而加深学生对理论课中关于ELF目标文件的基本结构和组成、程序链接过程(如符号解析与重定位)等基础知识和基本概念的理解,并掌握用于链接和目标文件解析等的常用工具软件的使用。本书设计的实验中,前五章实验内容属于基础级验证性实验,后两章实验内容属于模块级分析性实验。这两部分实验的配套实验代码可通过出版社的网站或配套数字资源介质获取。模块级分析性实验中面向任课教师的代码可向出版社申请获得。本书的编写得到了南京大学“计算机系统基础”课程组教师和各届学生的大力支持,同时,国内许多使用《计算机系统基础》和《计算机系统导论》等教材进行教学的教师也提出了宝贵的反馈和改进意见,在此表示衷心的感谢!由于计算机系统相关的基础理论和技术在不断发展,新的思想、概念、技术和方法不断涌现,加之作者水平有限,在编写中难免存在不当或遗漏之处,恳请同行专家和广大读者对本书的不足之处给予指正,以便在后续的版本中予以改进。
|
|