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

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

教材学习内容总结


vim的用法
  • 命令行输入vimtutor即可随时查看:

linux系统下文件的转换:
  • gcc hello.c => 编译hello.c源程序,出现a.out文件
  • gcc -o hello hello.c => 编译hello.c源程序,出现hello文件
  • od -tc -tx1 hello.c => 按单字节查看文件内容
  • gcc -E hello.c -o hello.i => 预处理阶段
  • gcc -S hello.c -o hello.s => 编译阶段
  • gcc -C hello.c -o hello.o => 汇编阶段
  • od -c hello.o => 查看汇编码
  • objdump -d hello.o => 得到汇编码
  • gcc hello.o -o hello => 使hello文件可执行
调试
  • gcc -g hello.c => 调试
  • gdb a.out
  • b main => 在main中设断点b
  • info b => 查看断点b情况
  • run => 运行
断点
  • b fxx => 函数断点
  • b +行号 => 行断点
  • tb => 临时断点
  • b if => 条件断点
  • 常用cgbd
  • cgbd a.out
  • s => step
  • n => next
  • qit
  • p => print
  • p i ... => 改值
  • f => finish

测试1-vi

  • 每个.c一个文件,每个.h一个文件,文件名中最好有自己的学号
  • 用Vi输入图中代码,并用gcc编译通过
  • 在Vi中使用K查找printf的帮助文档
  • 提交vi编辑过程截图,要全屏,包含自己的学号信息

测试2-gcc测试

  • 用gcc 进行预处理,编译,汇编,链接vi输入的代码
  • 生成的可执行文件中要有自己的学号
  • 提交预处理,编译,汇编,链接,运行过程截图,要全屏,包含自己的学号信息
  • 预处理:gcc -E -I include src/.c -o bin/.i

测试3-gdb测试

  • 用gcc -g编译vi输入的代码
  • 在main函数中设置一个行断点
  • 在main函数增加一个空循环,循环次数为自己学号后4位,设置一个约为学号一半的条件断点
  • 提交调试过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
  • 首先要gcc -g来生成一个可执行文件,打开gdb调试,然后设置行断点 b 9(第九行)

测试4-静态库的测试

  • 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.a静态库?main.c如何使用mymath.a?
  • 提交静态库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
  • 加上-g将.c文件编译成.o文件,输入图上指令生成一个mymath.a的静态库文件,然后用mymath.a文件生成一个可执行文件test

测试5-共享库

  • 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main.c如何使用mymath.so?
  • 提交共享库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
  • 输入图上代码生成一个共享库文件,并用共享库文件生成一个可执行文件:

课本学习

第一章

  • 计算机系统由硬件和系统软件组成,两者共同运作以运行应用程序。内部信息被表示为一组组的位,位依据上下文有不同的解释方式。
  • 程序被其他翻译程序翻译成不同形式,开始是被翻译成ASCII文本,然后被翻译成计算机可执行的二进制文本。如果是用Code::Blocks等编译软件编译,则在编译完成后自动生成可执行文本;若是用vim,则必须手动完成翻译工作。
  • 处理器通过读取并解释二进制指令来运行程序。

第七章

  • 链接可以在编译时依靠静态编译器完成,也可以在加载时靠动态链接器完成。链接器的目标文件只有二进制文件一种。
  • 链接器主要任务有二:符号解析和重新定义。
  • GCC编译器在工作过程中调用得到的链接器为静态链接器,其他编译驱动程序亦是如此。
  • 与编译位置无关的代码的共享库可以加载到任何地方,亦可以在运行中被多个进程共享。

每一章的问题:

第一章 计算机系统的核心概念是什么?

第二章 计算机有32位与64位之分,分别何在?两种计算机所存数据相互交换,会出现什么情况?

第三章 条件控制来实现条件分支和条件传送来实现条件分支有何实质性区别?

第四章 到底什么系统会用到Y86-64代码?

第五章 怎么样的代码是不必要的引用内存?

第六章 基本存储技术都包括哪些?

第七章 静态链接和动态链接有何区别?

第八章 异常控制流在计算机的各个层次都有怎样的作用?

第九章 虚拟存储器的作用?

第十章 1Unix I/O是什么

第十一章 协议软件需要的基本能力有哪些?

第十二章 三种不同的并发编程技术的区别:

问题1:C语言是一种面向过程语言,C++和Java是面向对象语言,而Unix是由C语言实现的,那么,面向对象语言的程序是怎么在面向过程语言的系统中运行的?

问题1解决方案:一点思考,将所有程序的文本全部翻译成机器语言,那么计算机就可以直接执行命令了。面向对象和面向过程只是相较于我们来分的,对于计算机其实并没有差别,因为不管什么样的高级编程语言到最后都会翻译成一连串的二进制码。

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

代码调试只在首次使用GCC、GDB编译过程中出现,属于熟练度不够问题,重复练习即可解决。

代码托管

其他

  • 本周我们开始了信息安全系统设计基础课程的学习。第一节课的课程主要是复习了上学期学习java所用到的Ubuntu的一些快捷命令,老师还教授了c语言如何在命令行中进行编译及其他相关问题,总的来说还需要多投入时间学习消化。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 3500行 12 14小时
第一周 63/150 1/12 3小时

参考资料

原文地址:https://www.cnblogs.com/nmsl123/p/9694009.html

时间: 2024-10-10 15:00:07

# 2018-2019-1 20165225《信息安全系统设计基础》第一周学习总结的相关文章

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

第一节 Linux系统 1:Linux系统      登录Linux后,我们就可以在#或$符后面去输入命令,有的时候命令后面还会跟着选项(options)或参数(arguments).       即Linux中命令格式为:command[options][arguments].但有些命令也不需要跟着选项或参数.   选项是调整命令执行行为的开关,选项不同决定了命令的显示结果不同.   参数是指命令的作用对象.  2 :man命令       1是普通的Linux命令(用户命令帮助)      

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

第一节 Linux系统简介 一.Linux是一个操作系统 1. Linux 本身只是操作系统的内核.内核是使其他程序能够运行的基础. 它实现了多任务和硬件管理,用户或者系统管理员交互运行的所有程序 实际上都运行在内核之上. 2. Linux 内核具备了挑战 UNIX 的所有本质特性,包括 TCP/IP 网络,图 形界面系统 二.linux与windows的区别 Linux 免费或少许费用. Linux 平台:大都为开源自由软件,用户可以修改定制和再发布,由于基本免费没有资金支持,部分软件质量和体

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

 Linux系统简介 linux简介: linux与windows的区别 学习路径: 基本操作及概念 用户及权限管理 Linux目录结构及文件基本操作 环境变量与为文件查找 文件打包与压缩

20135223何伟钦—信息安全系统设计基础第九周学习总结

学习目的: 1. 掌握系统编程和系统调用的概念 2. 掌握系统编程错误处理的方式 3. 掌握Unix/Linux系统级I/O(open close read write seek stat) 4. 掌握RIO 5. 掌握I/O重定向的方法 一.Unix I/O Unix I/O定义:所有的I/O设备都被模型化为文件,所有的输入和输出都被当作 对相应文件的读和写来执行.这种将设备影射为文件的方式,称为Unix I/O (一)打开文件 (1)文件描述符:一个应用程序通过要求内核打开相应的文件,来宣告

信息安全系统设计基础——第一周学习过程记录与总结体会

第一周学习过程记录与总结体会 第1节    Linux系统简介 1.Linux操作系统:即内核和系统调用两层 2.Linux与Windows的不同: (1)免费与收费 (2)软件与支持 (3)安全性 (4)使用习惯 (5)可定制性 (6)应用范畴 (7)各自缺乏的 3.如何学习Linux (1)明确态度,形成良好学习心态 (2)重视基础,从头学习 第2节  基本概念及操作 1.桌面环境介绍 通过内核—服务器(X.org) —客户端(X.client)实现完整的桌面环境,与Windows不同. 2

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

第九周学习总结 一.课本内容 1.每个unix文件都是一个m字节的序列:所有I/O设备如网络.磁盘和终端都被模型化为文件,而输入和输出就是对这些文件的读写操作. 2.unix系统中输入输出的操作: 打开文件:一个应用程序通过要求内核打开相应的文件,来宣告它想要访问一个I/O设备,内核返回一个小的非负整数,叫做描述符.unix系统创建每个进程的时候都有三个打开的文件:标准输入:标准输出,标准错误. 改变当前的文件位置.对于每个打开的文件,内核保持着一个文件位置k(从文件开头起始的字节偏移量). 读

信息安全系统设计基础第二周学习总结(一)

Linux下C语言编程基础实验报告 学习任务 1. 熟悉Linux系统下的开发环境 2. 熟悉vi的基本操作 3. 熟悉gcc编译器的基本原理 4. 熟练使用gcc编译器的常用选项 5 .熟练使用gdb调试技术 6. 熟悉makefile基本原理及语法规范 7. 掌握静态库和动态库的生成 学习内容 1. 快捷键 2. vim 3. gcc 4. gdb 5. make与makefile 学习过程记录 第一部分 第一讲第一节:移动光标 H左.j下.k上.l右 第一讲第二节:VIM的进入和退出 <E

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

(1)ls 用来显示文件的详细信息(用户名,群组名,大小,创建时间,读写执行权.) (2)who 如何查看当前登录的用户? -who am i 如何列出登录的用户? -who或-w (3)fileinfo显示文件信息 用来实现显示文件信息,建立了一个stat数据结构. 要先判断命令是否有操作数 (4)spwd列出当前目录 (5)mkdir命令用于创建一个新的目录.这个新的目录不仅可以使用绝对路径,也可以使用相对路径.但用户创建新目录的前提条件是:创建者对被创建新目录的父目录应有写权限. 如何在其

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

第一节.Linux基础 1.Linux命令 Linux中命令格式为:command [options] [arguments] 选项:是调整命令执行行为的开关,选项不同决定了命令的显示结果不同 参数:决定了命令的显示结果不同 例如:ls .中.为参数:ls -a中-a为选项 2.man命令 1 Executable programs or shell commands(普通的Linux命令) 2 System calls (系统调用,操作系统的提供的服务接口) 3 Library calls (

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

深入理解计算机系 Linux基础 一.实验说明 环境登录  无需密码自动登录,系统用户名shiyanlou,密码shiyanlou 二.实验步骤 三种知识: 元知识:这门课程思考问题框架是什么?遇到老问题,它会怎样分析?遇到新问题,它会怎样分析? 硬知识:这门课程的主要知识点是什么?适合用思维导图组织吗? 软知识:这门课程的哪些知识点需要哪些实践环节来强化理解和记忆? 1. Linux命令 Linux学习应用的一个特点是通过命令行进行使用. 登录Linux后,我们就可以在#或$符后面去输入命令,