深入理解计算机系统 Linux&GCC工具链实验 笔记

版权声明:版权所有,欢迎相互学习与交流 https://blog.csdn.net/qq_42229034/article/details/83413771

--------------------------------------------------------------------------------------------------------------------------课堂笔记部分

1.Linux 发展:multics-unix(Brian Kernighan等人)-Berkeley UNIX(BSD)-Linux发布Linux

2.内核:OS的五大管理功能由内核kernel实现

3.Shelll:用户交互:Shell对输入命令进行解释

4.五个功能:CPU控制管理(manage the process,进程) ; 内存管理:   ;外部设备管理;文件管理;用户接口

5.Shell常用命令:

pwd:打印当前目录 cd:改变当前目录 ls:... dir:... mkdir:... rmdir:....

eg. ls 【选项】【目录】 ls -a/root/123

cat:查看文件内容  cp:复制文件 mv:移动文件 rm:删除文件 more:分页查看,空格下一页,按下b键上一页

(按q键推出;输入exit亦可退出shell)

命令格式:
cd [目录名]
目录名有几个符号有特殊的含义,“..”代表上一级目录、“~”代表HOME目录、“-”代表前一目录。

6.Vi编辑器简介:Visual interface,是个文本编辑器:

关键字:vi vim i(插入模式启动)  esc转换到命令行模式

退出:在命令行中 按一下: 进入Last line mode,例如:

:w filename ,文章将会以制定的文件名filename来保存
:wq 保存并退出
:q! 直接退出不存盘

再看看GCC工具:

 基本用法:gcc [选项][文档名]

选项:-c:只编译生成.o为后缀的目标文件

           -g:编译+调试

           -O:编译链接

gdb:GNU开发组织发布的调试工具,可以监视变量的值、设置断点、逐行运行代码。

objdump:将目标文件转化为汇编语言,反汇编。

——————————————————————————————以下是实验报告的一些要求补充(来自习室忘记带csapp了,看来只能先看看哪些不会做个补充了)(希望吃完饭前能够把概率论、离散作业也写了)【Ubuntu系统】

1.如何在linux下编辑一个hello world的源程序(教材上P116 页) 

1)编辑vim,gedit

2)编译 gcc -O

2.用gcc编译,要求分别用-o 与 -O比较性能,编译指令截图,用gdb调试,让程序运行到mult2函数的第一条指令,调试截图,用objdump工具生成反汇编语句,并给出main的汇编程序截图

gcc -g... ; gdb ***;...

break mult2

3.为了实验报告方便一点,笔者弃用双系统,这次用虚拟机吧。

猜你喜欢

转载自blog.csdn.net/qq_42229034/article/details/83413771
今日推荐