20145331 《信息安全系统设计基础》第2周学习总结

20145331 《信息安全系统设计基础》第2周学习总结

教材学习内容总结

一、vim及相关命令

1、vim就是一个文本编辑器,他有很多功能让你编辑文本更加方便。

2、vim命令:

注:保存命令w是内部命令不用感叹号。(:w xxx)

补:大写“K”可以用来查找函数的帮助信息:查看 man page,命令模式下,将光标放在函数名上,按"K"可以直接察看 man page。

二、gcc、静态库,动态库

1、gcc就是一个编译系统,又是一个交叉平台编译器,它能够在当前CPU平台上为多种不同体系结构的硬件平台开发软件,因此尤其适合在嵌入式领域的开发编译。

2、程序被其他程序翻译成不同形式(如下图):

3、编译过程分四步:

预处理:gcc –E hello.c –o hello.i;gcc –E调用cpp
编 译:gcc –S hello.i –o hello.s;gcc –S调用ccl
汇 编:gcc –c hello.s –o hello.o;gcc -c 调用as
链 接:gcc hello.o –o hello ;gcc -o 调用ld

4、静态库:编译系统提供一种机制,将所有相关目标模块打包成为一个单独的文件,文件名.a标识。可以做链接器的输入。缺点:a要定期维护更新b、对存储器系统资源造成极大浪费。所以又搞了一个动态库来解决这些问题。

5、动态链接共享库:一个目标模块运行时可以加载到任意存储器的地址上,并和一个存储器上的程序链接起来,整个过程由动态链接器执行。用.so标识。

6、静态库创建关键字:ar rcsv libvector.a addvec.o multvec.o

7、动态库----------:gcc -fPIC -shared

三、gdb

1、gdb就是一个调试程序的工具。格式:gcc-g(可让被调试的程序在你所指定的调置的断点处停住,然后你就可以检查程序了)。

2、-g参数调用编辑程序会得到.debug .line。

3、基本命令:

gdb programm(启动GDB)
b 设断点(行断点、函数断点、条件断点、临时断点)
run 开始运行程序
bt 打印函数调用堆栈
p 查看变量值
c 从当前断点继续运行到下一个断点
n 单步运行
s 单步运行
quit 退display 跟踪变量值的改变
until 跳出循环
finish 跳出函数
help 帮助出GDB

四、链接器及相关概念

1、链接器两个主要任务:a、符号解析b、重定位

2、目标文件三种形式:a、可重新定位目标文件b、可执行目标文件c、共享目标文件(动态库)

3、--------文件格式:a.out COFF PE ELF(ELF头、.text .......)

4、处理目标文件工具

AR:创建静态库,插入删除列出其成员
READELF:显示目标文件完整结构
LDD:列出可执行文件运行所需要的共享库
......

5、处理多重定义符号的规则:

不能有多个强符号
一强多弱选一强
多个弱符号任意选择

五、其他

1、信息就是位加上下文。 查看源文件:ob-tc-tx1 xxx.c。

2、系统硬件组成:总线、I/O设备、主存、处理器(加载、存储、操作、跳转/ALU计算新的数据和地址,操作中要用到)

3、存储结构层次主要思想:一层上的存储器是低一层存储器的高速缓存。

4、寄存器文件在存储结构最顶部(最小最快)

5、操作系统通过抽象概念来控制硬件: 文件=I/O设备 虚拟存储器=主存+I/O 进程=处理器+主存+I/O

教材代码学习中的问题和解决过程

1、调用静态库共享库时下面代码看不明白:

gcc -static -o p2 main2.c ./xxxxx.a

还有这个:

gcc -o p2 main.c ./xxx.so

静态库创建的时候加入的文件不是.o格式的么怎么就能和.c格式的文件(main.c)直接一块用啊,文本代码和二进制代码都能直接一块用了么?

共享库里.so文件的用法是引用该库的可执行目标文件共享这个.so代码和数据,为啥代码中还是main.c,他不是可执行目标文件的格式啊?

2、教材导读中的一个代码:共享库生成:gcc -fPIC -c xxx.c

-c不是调用as的么,不是应该处理.s文件么?还有书上p468创建共享库只有-o参数就直接把两个.c程序加到共享库里了?

本周代码托管截图

没打完呢稍等

其他(感悟、思考等,可选)

知识概念挺好懂的,书上代码有些看不明白,问题全写在上面了;传说中的“做中学”确实能记住命令给个好评,真的敲着敲着就记住了。下周能少做点不祖国母亲过节呢,这不得放松一波?劳逸结合嘛。

时间: 2024-08-25 05:14:45

20145331 《信息安全系统设计基础》第2周学习总结的相关文章

20145216 史婧瑶《信息安全系统设计基础》第一周学习总结

20145216 <信息安全系统设计基础>第一周学习总结 教材学习内容总结 Linux基础 1.ls命令 ls或ls .显示是当前目录的内容,这里“.”就是参数,表示当前目录,是缺省的可以省略.我们可以用ls -a .显示当前目录中的所有内容,包括隐藏文件和目录.其中“-a” 就是选项,改变了显示的内容.如图所示: 2.man命令 man命令可以查看帮助文档,如 man man : 若在shell中输入 man+数字+命令/函数 即可以查到相关的命令和函数:若不加数字,那man命令默认从数字较

20145311 《信息安全系统设计基础》第一周学习总结

20145311 <信息安全系统设计基础>第一周学习总结 教材学习内容总结 常用的部分命令 CTRL+SHIFT+T:新建标签页,编程时有重要应用: ALT+数字N:终端中切换到第N个标签页,编程时有重要应用: Tab:终端中命令补全,当输入某个命令的开头的一部分后,按下Tab键就可以得到提示或者帮助完成: CTRL+C:中断程序运行 Ctrl+D:键盘输入结束或退出终端 Ctrl+S: 暂定当前程序,暂停后按下任意键恢复运行 Ctrl+A: 将光标移至输入行头,相当于Home键 Ctrl+E

20145216史婧瑶《信息安全系统设计基础》第九周学习总结

20145216史婧瑶<信息安全系统设计基础>第九周学习总结 教材内容总结 第十章 系统级I/O 输入/输出(I/O)是在主存和外部设备之间拷贝数据的过程. 第一节 Unix I/O 这一节涉及到操作系统的基本抽象之一--文件.也就是说,所有的I/O设备都被模型化为文件,而所有的输入输出都被当做对相应文件的读/写.相关的执行动作如下: 1.打开文件: 应用程序向内核发出请求→要求内核打开相应的文件→内核返回文件描述符 文件描述符:一个小的非负整数,用来在后续对此文件的所有操作中标识这个文件.有

20145311 《信息安全系统设计基础》第二周学习总结

20145311 <信息安全系统设计基础>第二周学习总结 教材学习内容总结 重新学习了一下上周的一部分命令:grep main wyx.c(grep的全文检索功能)ls > ls.txt :ls内容输出到文本find pathname -mtime -n/+nfind -size -n/+n (find的功能还是比较强大) 简单地学习了一下vim编辑器,跟着vimtutor简单地学了一些,在linux bash中使用vim能够极大地提高效率, vim的用法比较多,只学习了其中简单的一部分

20145339《信息安全系统设计基础》第一周学习总结

20145339顿珠达杰<信息安全系统设计基础>第一周学习总结 ◆ Linux是一个操作系统.如果使用GUI,Linux和Windows没有什么区别.Linux学习应用的一个特点是通过命令行进行使用. 物理机系统上可以通过使用[Ctrl]+[Alt]+[F1]-[F6]进行终端和图形界面切换,在线实验环境中按下[Ctrl]+[Alt]+[F7]来完成切换.普通意义上的 Shell 就是可以接受用户输入命令的程序,Unix/Linux 操作系统下的 Shell 既是用户交互的界面,也是控制系统的

2017-2018-1 20155228 《信息安全系统设计基础》第九周学习总结

2017-2018-1 20155228 <信息安全系统设计基础>第九周学习总结 教材学习内容总结 常见的存储技术 RAM 随机访问存储器(Random-Access Memory, RAM)分为两类:静态的和动态的.静态 RAM(SRAM)比动态RAM(DRAM)更快,但也贵得多.SRAM用来作为高速缓存存储 器,既可以在CPU芯片上,也可以在片下.DRAM用来作为主存以及图形系统的帧缓冲 区.典型地,一个桌面系统的SRAM不会超过几兆字节,但是DRAM却有几百或几千兆 字节. SRAM将每

2017-2018-1 20155332 《信息安全系统设计基础》第九周学习总结

2017-2018-1 20155332 <信息安全系统设计基础>第九周学习总结 教材学习内容总结 简单模型中,存储器是一个线性的字节数组.真实模型中,是一个具有不同容量,成本,访问时间的存储层次结构(存储器山) 程序的局部性很重要,对程序性能有很重要的影响. 计算机系统一个基本而持久的思想,如果你理解了系统是如何将数据在存储器层级结构中上下移动,你就可以编写程序,让数据存储在层次结构中较高的地方,从而CPU可以更快的访问到他们. 编写程序实现功能是最简单的,如何让编写的程序拥有最高的性能,例

2017-2018-1 20155227 《信息安全系统设计基础》第九周学习总结

2017-2018-1 20155227 <信息安全系统设计基础>第九周学习总结 教材学习内容总结 第六章 随机访问存储器 随机访问存储器分为:静态RAM(SRAM)和动态RAM(DRAM),静态RAM(SRAM)比动态RAM(DRAM)更快,但也贵很多. (1)静态RAM SRAM将每个位存储在一个双稳态的存储器单元里,每个单元是用一个六晶体管电路来实现的. 属性:它可以无限制地保持在两个不同的电压配置或状态之一.其他任何状态都是不稳定的. 特点:由于SRAM的双稳态特性,只要有电,它就会永

2017-2018-1 20155334 《信息安全系统设计基础》第九周学习总结

2017-2018-1 20155334 <信息安全系统设计基础>第九周学习总结 学习目标: 了解常见的存储技术(RAM.ROM.磁盘.固态硬盘等) 理解局部性原理 理解缓存思想 理解局部性原理和缓存思想在存储层次结构中的应用 高速缓存的原理和应用 教材学习内容总结 一.常见的存储技术: 基本的存储技术包括随机存储器(RAM).非易失性存储器(ROM)和磁盘. 1. RAM分静态RAM(SRAM)和动态RAM(DRAM). 2. SRAM快些,主要用做CPU芯片上的高速缓存,也可以用作芯片下的

2017-2018-1 20155331 《信息安全系统设计基础》第九周学习总结

2017-2018-1 20155331 <信息安全系统设计基础>第九周学习总结 教材学习内容总结 存储器层次结构 存储技术 随机访问存储器 随机访问存储器分为:静态的SRAM.动态的DRAM 静态RAM: SRAM的特点:存储器单元具有双稳态特性,只要有电就会永远保持它的值,干扰消除时,电路就会恢复到稳定值. 动态RAM: DRAM的特点:每一位的存储是对一个电容的充电:对干扰非常敏感. 用途:数码照相机和摄像机的传感器 DRAM存储不稳定的应对机制: 存储器系统必须周期性地通过读出,或者重