20145201 《信息安全系统设计基础》期中总结

教材学习内容总结

  • Linux命令 特别是man -k, cheat, grep -nr xxx /usr/include

1.man:
查看帮助文档:man+关键词
man -k:
用来搜索,结合管道使用。

man -k k1 | grep k2 | grep 2
搜索同时含有k1和k2,且属于系统调用。

最后的数字代表帮助手册中的区段,常用的123,分别如下:

1.Linux
2.系统调用
3.c语言

2.cheat
提供显示Linux命令使用案例,包括该命令所有的选项和简短但尚可理解的功能。
cheat是非常好用的“打小抄”搜索工具
eg:
cheat ls

3.grep 用来查找关键字,全文搜索,且可以直接查找文件内的内容

greep -n 显示匹配的行号
greep -r 递归查找

eg:如果想查找某个宏,我们已知宏保存在include文件夹中:
grep -nr XXX /usr/include(XXX注意要替换为所要找的宏)

  • vi使用

三种常用模式及其转换:
普通→插入: i/a
普通→命令行: “:”
插入/命令行→普通: Esc 或 Ctrl + [

常用操作:
vim 文件名:进入vim,还可新建文件
命令行模式下 :wq 表示保存并退出

  • gcc, gdb使用

1、GCC
gcc流程:

1、预处理:gcc会调用预处理程序cpp,由它负责展开在源程序中定义的宏
gcc -E hello.c -o hello.i2、编译:翻译成汇编文件
gcc –S hello.i –o hello.s 3、汇编:将hello.i编译为目标代码(二进制代码)
gcc -c hello.s -o hello.o4、链接:gcc连接器将目标文件链接为一个可执行文件
gcc hello.o -o hello

2、GDB

在编译时,必须要把调试信息加到可执行文件中。

gcc -g hello.c -o hello

基本命令:

gdb programm    启动GDB
l               查看所载入的文件
b               设断点
info b          查看断点情况
run             开始运行程序
bt              打印函数调用堆栈
p               查看变量值
c               从当前断点继续运行到下一个断点
n               单步运行(不进入)
s               单步运行(进入)
quit            退出GDB

gdb四种断点:

①行断点   b [行数或函数名] <条件表达式>
②函数断点  b [函数名] <条件表达式>
③条件断点  b [行数或函数名] <if表达式>
④临时断点  tbreak [行数或函数名] <条件表达式>


gcc hello_print.c hello_main.c –o hello的解释中,最后一个命令的是将这两个.o文件转换为一个可执行的hello的文件

静态库和动态共享库的代码区别
创建:
静态库的创建需要调用归档工具ar:

gcc -c addvec.c multvec.c
ar rcs libvector.a addvec.o multvec.o

而动态库只需要gcc即可:

gcc -shared -fPIC -o libvector.so addvec.c multvec.c

链接:
静态库的链接需要先编译生成.o文件,然后再和库链接,并且需要staric命令构建一个完全链接的可执行文件:

gcc -02 -c main2.c
gcc -static -o p2 main2.o ./libvector.a

动态库可以直接把.c文件和库文件链接

gcc -o p2 main2.c ./libvector.so
  • makefile
    make工具根据makefile文件中描述的源程序至今的相互关系来完成自动编译、维护多个源文件工程。

makefile需要说明如何编译各个源文件并链接生成可执行文件,要求定义源文件之间的依赖关系。

Makefile的一般写法:

test(目标文件): prog.o code.o(依赖文件列表)
tab(至少一个tab的位置) gcc prog.o code.o -o test(命令)
.......

eg.
例:

test: prog.o code.ogcc prog.o code.o -o testprog.o: prog.c code.hgcc -c prog.c -o prog.ocode.o: code.c code.hgcc -c code.c -o code.oclean:rm -f *.o test

其他:
存储系统的核心思想:缓存

Linux Bash中,cd ~ 命令可以切换到'home'目录。 (Ok)
Linux Bash中,cd - 命令可以切换到上一个目录
cd ~ 命令切换到'home'目录

一些题目总结:
Linux中没有C盘,D盘,其文件系统的目录是由(FHS)标准规定好的。
Linux Bash中,使用tar命令把home目录打包成home.tar的命令是( tar -cf home.tar ~)
Linux Bash中,ls . | sort 命令的功能是( 显示当前目录内容并排序 )

Linux系统中,链接器程序是(ld)

(Shannon 或香农)建立了布尔代数和数字逻辑之间的联系。
IEEE浮点数标准包含符号、尾数、(阶码)三部分。

Linux汇编中,销毁栈帧的语句是(movl %ebp,%esp popl %ebp 或leave)
Linux汇编中,需要调用者保存的寄存器有(%eax,%edx,%ecx )
GDB中以16进制形式打印%eax中内容的命令是(print /x $eax)

解开sim.tar的Linux命令是(tar -xvf sim.tar)

SRAM和DRAM掉电后均无法保存里面的内容。( ok )
存储器给出的读访问时间是(局部性)的一个函数。

自己的收获

在本学期的八周的学习中,我最大的收获对自主学习这种方式有了更深入的体会,也更加适应了每周对这门课的学习状态。
在刚拿到这本书的时候,心里还是有一慌乱的。被本书比上学期更厚了,感觉无从着手学习。知识量很大,常常是学习下一部分内容,就忘了上一部分内容。通过在实验楼上的实践练习还有老师画出课后的一些重点习题对知识进行巩固。
在后面逐渐深入的学习中,发现有的内容之前的其他课程或多或少都有接触过,比如汇编的知识,还有HCL知识。通过对比学习,可以让我把知识理解的更透彻、更深入。还有实验部分,最开始第一边做时没有成功,在后来自己一步步检查时查出问题所在,而后修改成功时,感觉还是很有成就感的。
学期过半,我在收获知识的同时,也学到了自学的方法,之后只有更加努力才行。

自己的不足

部分知识学习还是有些流于表面,没有深入理解到精髓。同时课后的习题也要多做,根据每周划的重点习题,更加细致去理解知识点。考试的错题要及时查看老师每周更新的答案,自己多上心一些。操作的部分也需要多多动手,不能死板的跟着步骤一步步做,无目的的敲代码,要理解每一步这样做是为了,自己为何打这些代码。

课程建议和意见

课上最好还可以讲一下书本的重点习题和错的比较多的课前测试的内容,这学期的课程还是围绕课本展开的。但这仅是我的个人的想法,老师可以酌情采纳。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 100/100 2/2 25/25 安装了虚拟机并学习掌握核心的linux命令
第二周 100/200 1/3 30/55 虚拟机上的C语言编程
第三周 150/350 1/4 10/65 计算机中信息的表示和运算
第四周 0/350 0/4 3/68 复习前几周内容
第五周 75/420 1/5 20/88 程序的机器级表示
第六周 125/545 1/6 20/108 Y86指令 硬件语言控制HCL
第七周 72/617 1/7 20/128 磁盘 存储器相关结构
第八周 0/617 2/9 20/148 期中总结

参考资料

  • 《深入理解计算机系统V2》学习指导
  • 《信息安全系统设计基础》教学进程
  • 《深入理解计算机系统》实验一~七
  • 每周测试

转载于:https://www.cnblogs.com/20145201lzx/p/6020621.html

20145201 《信息安全系统设计基础》期中总结相关推荐

  1. 20135203齐岳 信息安全系统设计基础期中总结

    20135203齐岳 信息安全系统设计基础期中总结 一.学习目标 复习前面Linux 命令,Linux 编程基础,教材前七章内容 二.学习资源 教材 答案解析见http://group.cnblogs ...

  2. 20135306黄韧 信息安全系统设计基础期中学习总结

    信息安全系统设计基础第八周学习总结 知识点总结 第1章 计算机系统漫游 △计算机系统是由硬件和系统软件组成的,它们共同协作以运行应用程序.计算机内部的信息被表示为一组组的位.它们依据上下文有不同的解释 ...

  3. 信息安全系统设计基础期中总结

    期中总结 一.Linux 在 Linux 里面可以使用使用groups命令知道自己属于哪些用户组. 在 Linux 里面可以使用使用chmod命令修改文件的权限. Linux中没有C盘,D盘,其文件系 ...

  4. 20145307《信息安全系统设计基础》期中总结

    20145307<信息安全系统设计基础>期中总结 知识点总结 常用的Linux命令 Linux中命令格式为:command [options] [arguments] []表示是可选的,即 ...

  5. 20145201 《信息安全系统设计基础》课程总结

    每周作业链接汇总 第0周作业:http://www.cnblogs.com/20145201lzx/p/5862104.html 师生关系 每章问题 虚拟机安装 第一周作业:http://www.cn ...

  6. 20145231 《信息安全系统设计基础》期中总结

    20145231 <信息安全系统设计基础>期中总结 教材学习内容复习 结合课本知识及再次实践加深理解记忆 按照学习时相关重点知识的顺序进行整理归纳 实践内容:重要命令的使用 gdb调试栈帧 ...

  7. 20145312 《信息安全系统设计基础》期中总结

    20145312 <信息安全系统设计基础>期中总结 教材学习内容总结 命令行常用快捷键 常用通配符 帮助命令:man man手册区段: 要查看相应区段的内容,就在 man 后面加上相应区段 ...

  8. 2016-2017-1 《信息安全系统设计基础》课程总结

    2016-2017-1 <信息安全系统设计基础>课程总结 课程改革的详细作法参见去年的2015-2016-1 <信息安全系统设计基础>课程总结. 教学方法上,课程提倡老师做教练 ...

  9. 2016-2017-1 《信息安全系统设计基础》 学生博客及Git@OSC 链接

    2016-2017-1 <信息安全系统设计基础> 学生博客及Git@OSC 链接 博客 1452 20145201李子璇 20145202马 超 20145203盖泽双 20145204张 ...

  10. 20145307《信息安全系统设计基础》课程总结

    20145307<信息安全系统设计基础>课程总结 每周作业链接汇总 第0周 浏览课本内容,结合每一章提出自己想知道的问题,安装虚拟机. 20145307 <信息安全系统设计基础> ...

最新文章

  1. 站覆盖范围_你了解无线覆盖范围和穿墙能力吗?别再走进这些误区了
  2. C++中类的大小问题
  3. Roger Ver:BCH也可成为价值储备
  4. python 30分钟_一张图30分钟快速Python入门
  5. datagrip建立新表的外键
  6. java嵌入式db_Java DB嵌入式模式
  7. web前端知识点太多_前端知识点总结——框架中报错集锦(含解决方法)
  8. 一步步编写操作系统 79 在c代码中内联汇编
  9. 伺服电机停的时候会冲一下_造成伺服电机抖动的原因竟然是它!内附解决方法...
  10. 区块链人才缺口明年将达顶峰,核心开发者年入百万很正常
  11. oracle 二进制运算符,Oracle UNION运算符
  12. geany执行python闪退_说说如何使用 Geany 编译与执行 Python
  13. canvas-图片的渲染
  14. 修改服务器3389 端口号,修改服务器3389端口为其它端口
  15. usaco 奶牛集会 奶牛抗议
  16. 用python爬取豆瓣某本书的前n条书评并计算评分(star)的平均值
  17. omnipeek抓包(确定设备AP模式下的MAC地址+过滤)
  18. 最齐全的形象墙样机模板素材,速来收藏
  19. w3c JS测试
  20. USB转RS232不稳定

热门文章

  1. 各层电子数排布规则_电子排布式书写规则
  2. 【单片机笔记】PWM信号与PPM信号简单理解
  3. BUG的跟踪管理、定位BUG
  4. java 网站微信登录_网站微信授权登录-JAVA版
  5. Web前端大作业 HTML+CSS+JS 防天天生鲜官网 9页
  6. Mysql-什么是聚集索引和非聚集索引?
  7. CPU、内存、硬盘、显卡、显示器之间的关系
  8. 第53篇-某天猫评论sign参数分析【2022-08-31】
  9. 流式传输 android,通过RTSP将视频流式传输至Android
  10. 【史上最全】常用USB转串口芯片特性比较