学号20145220 《信息安全系统设计基础》课程总结

每周作业链接汇总

第0周作业:1.从源文件到目标文件的转化,编译驱动程序是如何完成的

2.各种进制及编码的转换及运算

3.程序机器级代码的格式及指令的规范

4.处理器的设计及体系结构

5.优化编译器的功能

6.存储器的层次结构

7.Unix中理解和处理目标文件的工具

8.异常处理的方式

9.虚拟存储器的功能

10.如何检索文件的相关信息

11.客户端-服务器编程模型的基本操作

12.并发现象的功能

第1周作业:Linux快捷键、Linux命令、 区段 说明、cheat命令第1周作业:

第2周作业:教材第一章第2周作业:

第3周作业:无符号数、有符号数、浮点数、进制转化、小端法大端法第3周作业:

第5周作业:X86 寻址方式经历三代、机器级编程的两种抽象、三种操作数:立即数,寄存器,存储器。
栈的特点:

a、 遵循“后进先出”的原则
b、 push压栈,pop出栈
c、 栈顶:总是从这端插入和删除元素
d、 栈顶元素的地址是最低的
e、 栈指针%esp保存着栈顶元素的地址
第5周作业:

第6周作业:第四章 处理器体系结构,Y86指令集体系结构,逻辑设计和硬件控制语言HCL,Y86的顺序实现.第6周作业:

第7周作业: 存储器层次结构,静态RAM,动态RAM,传统的DRAM,存储器模块第7周作业:

第8周作业:man命令,find用法,locate命令,grep,which,cheat,touch命令。第8周作业:

第9周作业:系统级I/O,Unix I/O,EOF,flag参数。第9周作业:

第10周作业:错误处理
1.错误处理风格
(1)Unix风格
遇到错误后返回-1,并且将全局变量errno设置为指明错误原因的错误代码;

如果成功完成,就返回有用的结果。

(2)Posix风格
返回0表示成功,返回非0表示失败;

有用的结果在传进来的函数参数中。

(3)DNS风格
有两个函数,gethostbyname和gethostbyaddr,失败时返回NULL指针,并设置全局变量h_errno。

(4)错误报告函数第10周作业:

第11周作业:异常控制流,异常处理,异常号,异常与过程调用的异同。第11周作业:

第12周作业:-cp1.c
功能:复制文件或目录
ls1 ls2
功能 显示当前目录下的所有文件
who命令第12周作业:

第13周作业:客户端-服务器编程模型,基本操作:事务,客户端和服务器都是进程,全球IP因特网,TCP/IP协议族第13周作业:

第14周作业:虚拟存储器3个重要的能力,程序员需要理解虚拟存储器的原因,物理和虚拟寻址。第14周作业:

(按顺序)实验报告链接汇总

实验一 实验名称:

1.连接arm开发板

首先连接电源线,使开发板的开关处于闭合状态,再分别将串口线、并口线、网线和USB线与PC机连好。连接串口线时接左端的串口。

2.建立超级终端

新建一个通信终端,取名为arm。在属性对话框中,将波特率设为 115200,数据位设为 8,无奇偶校验,停止位为 1,无数据流控制

3.启动实验平台

先打开超级终端,再打开arm机电源开关。等arm机的信息显示在超级终端的窗口中。输入 ifconfig 命令,记录下arm机的ip

实验二 实验名称:

熟悉 linux 开发环境,学会基于 S3C2410 的 linux 开发环境的配置和使用。
使用linux的armv4l-unknown-linux-gcc编译,使用基于NFS方式的下载调试,
了解嵌入式开发的基本过程.

对于多线程相关的代码,在超级终端中的运行。

实验三 实验名称:

安装ADS(先卸载再安装)安装成功后倒入证书破解文件按照实验指导书对几个驱动进行安装编译Exp11(先删除Exp11_Data文件夹)进行debug测试(如果跑不出来可以卸载ADS和相关驱动重装,还是不行的话就换台机器把……)超级终端信息

实验四 实验名称:

demo_read,demo_write 函数完成驱动的读写接口功能,do_write 函数实现将用户写入的数据逆序排列,通过读取函数读取转换后的数据。这里只是演示接口的实现过程和内核驱动对用户的数据的处理。在 Makefile 中有两种编译方法,可以在本机上使用gcc 也可以使用交叉编译器进行编译,我们组采用交叉编译器进行编译。如果使用 gcc 编译的话,需要通过下面的命令来建立设备节点,如果使用交叉编译器的话,不需要建立设备节点。

实验五 实验名称:

进入/arm2410cl/exp/basic/07_httpd 目录,使用vi 编辑器或其他编辑器阅读理解源代码。运行make产生可执行文件httpd。

Make错误,需要创建一个bin文件夹,Make出错因为之前关闭了终端,重新source一下就可以Make
代码托管链接和二维码:
截图 git log --pretty=format:"%h - %an, %ar : %s" 的结果
代码量汇总(如果目录结构 是按代码驱动的程序设计学习要求建立的,在项目目录下用wc -l find src -name *.c命令,有截图)

代码驱动的学习做到没有?

加点代码,改点代码是理解的最好方式,参考编程的智慧,谈谈你的心得
代码的增加是对我们的压力,总而言之还是有好处的。

实践上有什么经验教训?

整体评价一下第0周作业中自己提出的问题是不是抓住了学习重点
回答一下第0周作业中自己提出的问题
1.从源文件到目标文件的转化,编译驱动程序是如何完成的
gcc -name.c -o name
2.各种进制及编码的转换及运算
十六进制转十进制,拿一个数去乘以十六,十进制转十六进制,拿一个数去除十六。
3.程序机器级代码的格式及指令的规范
-01 表示使用第一级优化。优化的级别与编译时间和最终产生代码的形式都有关系,一般认为第二级优化-02 是较好的选择。

-o 表示将p1.c编译后的可执行文件命名为p
4.处理器的设计及体系结构
指令体系结构:一个处理器支持的指令和指令的字节级编码
5.优化编译器的功能
表示程序性能,消除循环的低效率,消除不必要的存储器引用。
6.存储器的层次结构
存储器系统是一个具有不同容量、成本和访问时间的存储器设备的层次结构。

随机访问存储器层次结构:硬件和软件的这些基本属性(存储技术、计算机软件)互相补充得很完美,这种互相补充的性质使人想到一种组织存储器系统的方法。

高速缓存存储器层次结构只有三层:CPU寄存器、DRAM主存储器和磁盘存储。
7.Unix中理解和处理目标文件的工具
AR :创建静态库,插入、删除、列出和提取成员。

STRINGS :列出目标文件中所有可以打印的字符串。

STRIP :从目标文件中删除符号表信息。

NM :列出目标文件符号表中定义的符号。

SIZE :列出目标文件中节的名字和大小。

READELF :显示一个目标文件的完整结构,包括ELF 头中编码的所有信息。

OBJDUMP :显示目标文件的所有信息,最有用的功能是反汇编.text节中的二进制指令。

LDD :列出可执行文件在运行时需要的共享库。
8.异常处理的方式
异常的一部分由硬件实现,一部分由操作系统实现,它就是控制流中的突变,用来响应处理器状态的某些变化。注意和语言中的应用级的异常概念区分。

处理器中,状态被编码为不同的位和信号,状态变化被称为事件,事件不一定和当前指令的执行有关。处理器检测到有事件发生时,会通过异常表进行间接过程调用,到一个专门设计处理事件的操作系统子程序,称为异常处理程序。

异常处理程序完成处理后,根据异常事件的类型会(执行一种):

将控制返回给当前指令(事件发生时正在执行的)。

将控制返回给下一条指令(没有异常将会执行的)。

终止被中断的程序。

异常表是一张跳转表,表目k包含异常k的处理程序的地址,在系统启动时由操作系统分配和初始化。系统中每种可能的异常都分配了一个唯一的非负整数的异常号。
9.虚拟存储器的功能
虚拟存储器3个重要的能力:

(1)将主存看作是一个存储在磁盘上的地址空间的高速缓存,在主存中只保护活动的区域,并根据需要在磁盘和主存之间来回传送数据

(2)为每个进程提供了一致的地址空间,从而简化了存储器管理

(3)保护了每个进程的地址空间不被其它进程破坏。
10.如何检索文件的相关信息
ls -l
11.客户端-服务器编程模型的基本操作
一个应用是由一个服务器进程和一个或多个客户端进程组成。
12.并发现象的功能
访问慢速I/O设备,与人交互,通过推迟工作以降低延迟,服务多个网络客户端,在多个机器上进行并行计算。

你有什么项目被加分,谈谈你的经验

扇贝背单词(对四六级有没有影响?)
有影响,可以帮助更好的学习英语。

你有什么项目被扣分,谈谈你的教训

不动手实践
迟交作业
不验收代码

待及格管理制度的优缺点(进入过的同学必写)

待及格期间多发的博客列表:http://www.cnblogs.com/hxf5220/p/5958648.html
http://www.cnblogs.com/hxf5220/p/5982069.html
http://www.cnblogs.com/hxf5220/p/6005508.html
http://www.cnblogs.com/hxf5220/p/6028169.html
http://www.cnblogs.com/hxf5220/p/6052299.html
http://www.cnblogs.com/hxf5220/p/6081910.html
http://www.cnblogs.com/hxf5220/p/6099993.html
http://www.cnblogs.com/hxf5220/p/6132286.html
http://www.cnblogs.com/hxf5220/p/6160049.html
优缺点:我个人认为对于我这种的学生,就是对代码一点兴趣没有的人,多谢无所谓,但是对于这么课程来说,这个要求还是有必要的,可以让那些爱学习的人更好的学习。
建议:没什么建议,感觉老师做得对,老师水品很高,也很希望我们能够自己学习代码这些东西。
课程收获与不足

自己的收获(投入,效率,效果等)

:没有努力就没有收获,想想自己真的没有好好去学习代码,对代码一点兴趣没有,当然最后的结果就是考试成绩不及格,但是想想为什么要对自己不感兴趣的东西用心呢,人不为自己而活,为了什么?我只是不喜欢搞代码,电脑,程序这些东西。

自己需要改进的地方

如果有结对,写一下你提供的帮助或接受了什么帮助,并对老师提供参考建议
我很感谢菜野同学以及卢肖明同学的帮助,虽然是为了应付学习,但是他们的帮助对我还是很有帮助的。

给开学初的你和学弟学妹们的学习建议

认真学习,如果感兴趣就好好努力去学。

如果重新学习这门课,怎么做才可以学的更好

我感觉再给我一次机会,我还是和现在一样,不喜欢就是不喜欢,改不了。

问卷调查

你平均每周投入到本课程多长时间?

大概有几个小时吧,四五个小时左右。

每周的学习效率有提高吗?

后面多发几次博客之后还是有点效果。

学习效果自己满意吗?

不满意,但是自己活该。

课程结束后会继续一周至少一篇博客吗?(如果能做到,毕业时我把你的博客给你集结成一本书送给你作纪念)

应该不会

你觉得这门课老师应该继续做哪一件事情?

继续传授知识和见解,师者,传道,授业,解惑者。老师做的很好了

你觉得这门课老师应该停止做哪一件事情?

我觉得老师应该对同学之前的代码知识以及计算机知识有一定了解之后在安排不同的任务,像我,之前C语言就很差,java也不会,汇编也很烂,上这门可肯定不行,有的同学就有功底,有基础,他们可以安排一些更难一点的东西学习。

你觉得这门课老师应该开始做什么新的事情?

已经很好了,不用在做什么其他的了。