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

it2022-05-09  39

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

教材学习内容总结

一、实验楼实验二总结

我想尝试下OS系统的使用,所以实验内容都是在终端上完成。

熟悉vim的操作

练习gcc编译运行代码练习gdb调试代码把计算代码制作成静态库math.a和一个共享库math.so

编写makefile,让代码编译。

二、教材学习提问

一个C文件是如何变成一个可执行程序的?整数运算在计算机中的溢出是怎么回事?如何把学习过的数据结构知识同硬件知识结合?怎样理解粗浅ISA指令(集体系结构)?想要做到优化程序性能,应该保持怎样的思维结构或简单的思维定式?如何把程序的数据项存储在层次结构中较高的地方?所谓的“库”是什么?如何使用?ECF异常控制流与异常的关系?虚拟内存的作用?I/O分为哪两种,这两种有什么关系?如何理解客户端服务器编程模型?并发在计算机系统的各个层有哪些情况?

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

问题1:不会把几个c文件链接在一起。问题1解决方案:翻阅《深入理解计算机系统》第七章 P465 gcc -Og -o prog main.c sum.c

但是我的电脑输入-Og会提示错误,于是就删掉了-Og,输入

> gcc -o prog main.c add.c sub.c mul.c div.c > ./prog

运行结果如下:

代码调试中的问题和解决过程

问题1:如何生成静态库?问题1解决方法:参考论坛中Linux系统下静态库和共享库(动态库)的制作与使用 函数库由*.o组成 > gcc -c add.c > gcc -c sub.c > gcc -c mul.c > gcc -c div.c

创建静态库由ar命令完成:

> ar -cr math.a add.o sub.o mul.o div.o

运行结果如下:

问题2:如何创建共享库(动态库)?问题2解决方案:输入命令 > gcc -shared -fpic -o math.so add.c sub.c mul.c div.c

问题3:如何Makefile?问题3解决方案:参考Linux makefile教程,创建Makefile文件 edit : main.o add.o sub.o mul.o div.o cc -o edit main.o add.o sub.o mul.o div.o main.o : main.c head.h cc -c main.c add.o : add.c head.h cc -c add.c sub.o : sub.c head.h cc -c sub.c mul.o : mul.c head.h cc -c mul.c div.o : div.c head.h cc -c div.c clean : rm edit main.o add.o sub.o mul.o div.o

然后在命令行里

> make

会发现生成了可执行文件edit,

> ./edit

代码托管

结对及互评

本周结对学习情况

20155313

结对学习内容 创建静态库、动态库。

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长目标5000行30篇400小时第一周200/2001/110/10

计划学习时间:12小时

实际学习时间:10小时

参考资料

《深入理解计算机系统V3》学习指导Linux系统下静态库和共享库(动态库)的制作与使用Linux makefile教程

转载于:https://www.cnblogs.com/zhuohua/p/7588411.html


最新回复(0)