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

教材学习内容总结

一.在linux环境下编程

(一)用vi编写hello.c的C语言程序

  • 编译程序得到a.out
gcc hello.c
  • 运行编译好的程序
./a.out
  • 编译程序得到hello.out
gcc hello.c -o hello
  • 查询当前目录下名字中含有"he"的文件
ls he*
  • 运行程序之后获取return的返回值
echo #?

(二)程序编译相关

  • CPU从内存中取指令解释执行,内存可以视为字节数组,在存储程序中所有文件都是二进制
  • 信息=二进制位串+上下文
  • 以文本方式查看hello.c
od -tc hello.c
  • 以16进制数文本方式查看hello.c
od -tc -tx1 hello.c
  • hello.c经过预编译处理得到hello.i
gcc -E hello.c -o hello.i
  • hello.c经过编译器处理得到hello.s
gcc -S hello.i (或者写hello.c) -o hello.s
  • hello.s中前面带点的语句是汇编指令

  • hello.s经过汇编器处理得到hello.o(机器码)
gcc -c hello.s -o hello.o
  • 以16进制文本格式查看hello.o
od -tx1 hello.o
  • 将机器码反汇编为汇编码
objdump -d hello.o
  • 编译命令总结:编译时使用-E,-S,-C分别得到.i,.s,.o文件

二.代码调试

(一)用"ctrl"+"shift"+"T"打开多个窗口:第一个给vi使用,第二个给gcc使用,第三个给gdb使用

(二)在第二个窗口进行编译

gcc -g gdbbasic.c 
  • 四种断点:行断点,函数断点,临时断点,条件断点

(三)在第三个窗口进行调试

  • 进入调试模式
cgdb a.out

三.程序调用

  • 在C语言中,一个文件名.c或者一个文件名.h(头文件)称为一个模块。头文件相当于java中的接口
  • 程序设计的要求为:高内聚SRP和低耦合DIP
  • 寻找带有某个函数的文件
grep 函数名.c
  • 定义hello.h
#define __HELLO_H_//开始定义
#endef//结束定义
  • 主函数main调用SayHell函数时
gcc -c main//出错

正确做法:

gcc -c *.c//编译所有链接
  • 链接到库
gcc main.c -L. -Lhello//链接到当前目录

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

1.系统的硬件组成

名称 描述 注释
总线 贯穿整个系统的一组电子管道
I/O设备 系统与外部世界联系的通道
主存 临时的存储设备 在执行程序时用来存放程序和程序处理的数据
处理器 中央处理单元CPU是解释或执行存储在主存中指令的引擎

2.CPU在指令的要求下可能的操作

  • 加载:从主存复制一个字节或者一个字到寄存器,以覆盖寄存器原来的内容
  • 存储:从寄存器复制一个字节或者一个字到主存的某个位置。以覆盖这个位置上原来的内容
  • 操作:把两个寄存器的内容复制到ALU,ALU对这两个字的做算术运算,并将结果存放到一个寄存器中,以覆盖该寄存器中原来的内容
  • 跳转:从指令本身中抽取一个字并将这个字复制到程序计数器中以覆盖原来的值

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

1.断点设置

用法 意义 注释
b 设置断点
b fxx 设置函数断点
b 14(行号) 设置行断点
tb 14(行号) 设置临时行断点 用过一次就会消失
tb 14(行号) if 参数==给定值
r 执行断点
c 运行两个断点之间的代码
step 遇到函数执行一步
next 遇到函数全部执行
print 变量名 查看某个变量的值 可以简写为p 变量名
p 变量名=值 对某个变量进行赋值
finish 将所处的函数执行完
until 将所处的循环执行完
display 参数名 只显示参数

代码托管

结对及互评

评分标准

  1. 正确使用Markdown语法(加1分):

    • 不使用Markdown不加分
    • 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
    • 排版混乱的不加分
  2. 模板中的要素齐全(加1分)
    • 缺少“教材学习中的问题和解决过程”的不加分
    • 缺少“代码调试中的问题和解决过程”的不加分
    • 代码托管不能打开的不加分
    • 缺少“结对及互评”的不能打开的不加分
    • 缺少“上周考试错题总结”的不能加分
    • 缺少“进度条”的不能加分
    • 缺少“参考资料”的不能加分
  3. 教材学习中的问题和解决过程, 一个问题加1分

  4. 代码调试中的问题和解决过程, 一个问题加1分

  5. 本周有效代码超过300分行的(加2分)
    • 一周提交次数少于20次的不加分
  6. 其他加分:
    • 周五前发博客的加1分
    • 感想,体会不假大空的加1分
    • 排版精美的加一分
    • 进度条中记录学习时间与改进情况的加1分
    • 有动手写新代码的加1分
    • 课后选择题有验证的加1分
    • 代码Commit Message规范的加1分
    • 错题学习深入的加1分
    • 点评认真,能指出博客和代码中的问题的加1分
    • 结对学习情况真实可信的加1分
  7. 扣分:
    • 有抄袭的扣至0分
    • 代码作弊的扣至0分
    • 迟交作业的扣至0分

点评过的同学博客和代码

  • 本周结对学习情况

  • 20155222

学习进度条

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

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难,软件工程 估计方法

  • 计划学习时间:6小时

  • 实际学习时间:6小时

(有空多看看现代软件工程 课件
软件工程师能力自我评价表)

参考资料

  • 深入理解计算机系统(原书第3版)

转载于:https://www.cnblogs.com/besti20155228/p/7587679.html

2017-2018-1 20155228 《信息安全系统设计基础》第一周学习总结相关推荐

  1. 信息安全系统设计基础第一周学习总结

    学习计时:共15小时 读书:1 代码:10 作业:13 博客:1 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用Linux中用户管理命令 ...

  2. 20135323符运锦---信息安全系统设计基础第一周学习总结

    学习计时:共15小时 读书:1小时 代码:8小时 作业:4小时 博客:2小时 一.学习目标 1. 能够独立安装Linux操作系统   2. 能够熟练使用Linux系统的基本命令   3. 熟练使用Li ...

  3. 20135304刘世鹏——信息安全系统设计基础第一周学习总结

    第一节 Linux系统简介 一.Linux是一个操作系统 1. Linux 本身只是操作系统的内核.内核是使其他程序能够运行的基础. 它实现了多任务和硬件管理,用户或者系统管理员交互运行的所有程序 实 ...

  4. LINUX信息安全系统设计基础第一周学习总结

     Linux系统简介 一.实验内容 了解 Linux 的历史,Linux 与 Windows 的区别等入门知识. 二.实验要求 阅读linux简介与历史 三.实验步骤 二.Linux 与 Window ...

  5. 20135306-信息安全系统设计基础第一周学习总结

    第二周(9.14-9.20): 学习计时:共14小时 读书:2h 代码:4h 作业:4h 博客:4h 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3 ...

  6. 20135219洪韶武——信息安全系统设计基础第九周学习总结

    信息安全系统设计基础第九周学习总结 学习时间:7小时 学习内容:课本第十章 一.第十章知识点(1~6) 第一部分:文件的概念及相关操作 1.每个unix文件都是一个m字节的序列:所有I/O设备如网络. ...

  7. 信息安全系统设计基础第二周学习总结

    信息安全系统设计基础第二周学习总结 学习目标 1. 熟悉Linux系统下的开发环境    2. 熟悉vi的基本操作    3. 熟悉gcc编译器的基本原理    4. 熟练使用gcc编译器的常用选项 ...

  8. 信息安全系统设计基础第九周学习总结

    第十章 系统级I/O的实践 学习目标: 代码阅读理解: 1.编译运行代码 2.使用man学习理解相关系统调用, 理解参数.返回值的含义 3.会用grep -nr xxx /usr/include 查宏 ...

  9. 20135219洪韶武——信息安全系统设计基础第四周学习总结

    信息安全系统设计基础第四周学习总结 学习任务:教材第三章 学习时间:10小时 学习内容 一.教材知识梳理 1.程序编码与机器级代码 程序编码: gcc编译器,将源代码转化成可执行代码,C预处理器-汇编 ...

  10. 20135203齐岳 信息安全系统设计基础第四周学习总结

    20135203齐岳 信息安全系统设计基础第四周学习总结 学习计时:共17小时 读书:10 代码:1 作业:3 博客:3 一.学习目标 理解逆向的概念以及 掌握X86汇编基础,能够阅读(反)汇编代码 ...

最新文章

  1. 【C#技术】一篇文章搞掂:Infragistics组件库
  2. 深度学习概述:从感知机到深度网络(找到一篇大牛的文章快围观)
  3. c语言大学程序设计题库,黑龙江大学C语言程序设计试题库程序单选
  4. Android 去掉Activity的跳转动画
  5. linux DNS服务器配置
  6. java对csv格式的读写操作
  7. typescript类与继承
  8. 170319 剑指offer 1.把一个字符串转化成整数(简单问题的全面性考虑)
  9. 吴昊品游戏核心算法 Round 5 —— 五子棋(无禁手)后台的判胜负AI(bfs+queue容器)(HDOJ 2699)...
  10. 中山一院:华南第一综合性三甲医院的 IT 基础架构转型实践
  11. ignite java,Ignite 之计算运用的 Hello world
  12. 粗虚线和细虚线_高速虚线两侧是粗虚线 高速公路虚线两边加斜线什么意思?...
  13. android windows 共享文件,安卓手机如何访问电脑局域网共享的文件
  14. 泊松融合进阶——DFT求解二维泊松方程
  15. 我做的游戏终于上线了----三国Q传!!!
  16. python学习笔记第六章文本词频统计
  17. IPC网络摄像机NTP校时 时间无法同步问题排查
  18. 120亿光年外发现大量水:为地球储量140万亿倍
  19. Python一键保存千张表情包图
  20. 饿了么想“蜕变”,张旭豪要把AI这顶“帽子”变成“呢子大衣”

热门文章

  1. ISCC2021wp
  2. 为什么游戏流畅需要60帧,而电影流畅只需要24帧?
  3. 中国微量营养素市场趋势报告、技术动态创新及市场预测
  4. Python 第二十六章 面向对象 元类+反射+双下方法
  5. linux 清屏函数
  6. 【小游戏】2D游戏黄金矿工GoldMiner(关卡模式)
  7. 【VINS-MONO测试】安卓手机采集mono+imu数据
  8. 进阶的阿牛哥之如何存储每日数据到csv或txt文件(如何实现换行)
  9. Java8新特性——Lambda函数式编程
  10. 快速选取单元格的10种方法。