目录 [第九周学习总结] 教材内容总结 [第八周课上测试] (一)求命令行传入整数参数的和 (二)练习Y86-64模拟器汇编 (三)基于socket实现daytime(13)服务器和客户端 参考资料 第九周学习总结 课堂内容总结 (一)学习目标 理解虚拟存储器的概念和作用 理解地址翻译的概念 理解存储器映射 掌握动态存储器分配的方法 理解垃圾收集的概念 了解C语言中与存储器有关的错误 (二)学习内容 (1)虚拟存储器 概念:虚拟存储器,又称虚拟内存(VM),是对主存的抽象概念 能力:①高效使用主…
第六章 存储器层次结构 存储器系统是一个具有不同容量,成本和访问时间的存储设备的层次结构. CPU寄存器保存着最常用的数据. 靠近CPU的小的,快速的高速缓存存储器作为一部分存储在相对较慢的主存储器(主存)中的数据和指令的缓存区域. 主存暂时存放存储在容量较大的,慢速磁盘上的数据,而这些磁盘常常又作为存储在通过网络连接的其他机器的磁盘或磁带上的数据的缓存区域. 6.1存储技术 6.1.1随机访问存储器 随机访问存储器(RAM)分为:静态的RAM(SRAM)和动态的RAM(DRAM) SRAM用来…
20155216 2017-2018-1 <信息安全系统设计基础>第二周课堂练习补交 课堂测试3:行断点的设置 运行截图: 未完成原因:课前未安装 cgdb 具体步骤: 1.输入命令:gcc hello.c -g -o test,出现可运行文件test. 2.输入命令:cgdb test,进入调试过程. 3.利用"b 行号 断点条件"设置行断点,输入start运行至断点位置,输入r后输入p p,显示参数值. 课堂测试4:静态库 运行截图: 未完成原因:没有认真学习第七章内容…
2017-2018-1 20155232 <信息安全系统设计基础>第四周学习总结以及课上myod练习补充博客 课上myod练习 1 参考教材第十章内容 2 用Linux IO相关系统调用编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能,注意XXX是文件名,通过命令行传入,不要让用户输入文件名 不要把代码都写入main函数中 要分模块,不要把代码都写入一个.c中 5 提交测试代码和运行结果截图, 提交调试过程截图,要全屏,包含自己的学号信息 在第一次尝试在我…
2017-2018-1 20155320 <信息安全系统设计基础>第四周学习总结(课堂实践补交+myhead与mytail实现) 课堂实践内容 1 参考教材第十章内容 2 用Linux IO相关系统调用编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能,注意XXX是文件名,通过命令行传入,不要让用户输入文件名 不要把代码都写入main函数中 要分模块,不要把代码都写入一个.c中 5 提交测试代码和运行结果截图, 提交调试过程截图,要全屏,包含自己的学号信息…
2017-2018-1 20155326 <信息安全系统设计基础>第四周学习总结及myod改进版的补交 学习内容 补充完成课上没有完成的内容 学习教材附录A,第十章内容 参考别出心裁的Linux系统调用学习法,学习视频,掌握两个重要命令: man -k key1 | grep key2| grep 2 : 根据关键字检索系统调用 grep -nr XXX /usr/include :查找宏定义,类型定义 完成head,tail的使用,相关API的分析,伪代码,产品代码,测试代码的编写(3分)…
2017-2018-1 20155305 <信息安全系统设计基础>第四周学习总结(课堂提交作业未来得及提交码云链接myod补充博客) 课堂提交题目要求 编写MyOD.java 用java MyOD XXX实现Linux下od -tx -tc XXX的功能 代码码云链接补交 源代码main函数 #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.…
2017-2018-1 20155318 <信息安全系统设计基础>第九周课下实践--实现mypwd 相关知识 man -k 查找含有关键字的内容 与管道命令结合使用:man -k k1 | grep k2 | grep k3 ... 查看某命令在指定区段内的解释:man 区段号 命令 8个区段: Linux中的一般命令 系统调用 库函数,涵盖了C语言的标准函数库 特殊文件(通常是/dev中的设备)和驱动程序 文件格式和约定 游戏和屏保 杂项 系统管理命令和守护进程 pwd命令显示整个路径名(绝…
2017-2018-3 20155337<信息安全系统设计基础> pwd指令学习 任务要求 学习pwd指令 研究pwd实现需要的系统调用(man -k:grep),写出伪代码 实现mypwd 测试mypwd 任务一 学习pwd指令 该命令用来显示目前所在的工作目录.指令英文原义:print work directory 执行权限All User 指令所在路径:/usr/bin/pwd 或 /bin/pwd Linux中用 pwd 命令来查看"当前工作目录"的完整路径. 简单…
20155337 2017-2018-1 <信息安全系统设计基础>第二周课堂实践+myod 因为在课上已经提交了四个实验,还欠缺最后一个实验,反省一下自己还是操作不熟练,平时在课下应该多多练习linux的命令训练. 实践一 每个* .c一个文件,每个*.h一个文件,文件名中最好有自己的学号 用Vi输入图中代码,并用gcc编译通过 在Vi中使用K查找printf的帮助文档 提交vi编辑过程截图,要全屏,包含自己的学号信息 截图 在课堂实践一中,我们应该把所有的文件放在一个新的自己创建的文件夹里,…
第十一章 网络编程 11.1 客户端-服务器编程模型 基本操作:事务 当一个客户端需要服务时,向服务器发送一个请求,发起一个事务. 服务器收到请求后,解释它,并以适当的方式操作它的资源. 服务器给客户端发送一个相应,并等待下一个请求. 客户端收到响应并处理它. 11.2 网络 (1)对主机而言:网络是一种I/O设备 从网络上接收到的数据从适配器经过I/O和存储器总线拷贝到存储器,典型地是通过DMA(直接存储器存取方式)传送. (2)物理上:网络是一个按照地理远近组成的层次系统 最底层:LAN(局…
程序的机器级表示 3.1 intel处理器系列俗称x86,经历了一开始个长期的,不断进化的发展过程. 开始时它是第一代单芯片,16位微处理器之一,由于当时集成电路技术水性有限,其中做了很多妥协,此后,他不断成长,利用进步的技术满足更高性能和支持高级操作系统的需求. 3.3数据格式: 数据传送指令:movb(传送字节)   movw(传送字)   movl(传送双字) 3.4访问信息: 一个IA32 CPU 包含一组8个存处位值的寄存器.这些寄存器用来存处整数数据和指数 3.4.1操作数指示符:…
ls1:显示当前目录下的文件. ls2:查看文件的详细信息(用户名,群组名,大小,创建时间,读写权限等). who:读取需要的信息到存储器,并用标准输出函数打印到屏幕上 filesize:计算文件的字节数大小 fileinfo:显示文件的信息 spwd:显示出当前目录 cp:将一个文件的内容复制给另一个文件…
第八章 异常控制流 8.1异常 异常是异常控制流的一种形式,它一部分是由硬件实现的,一部分是由操作系统实现的. 异常就是控制流中的突变,用来响应处理器状态中的某些变化. 8.1.1异常处理 异常号是到异常表中的索引,异常表的起始地址放在一个叫做机异常表基址存储器的特殊CPU寄存器里  8.1.2异常类别 1.中断异常号是到 2.陷阱和系统调用 3.故障 4.终止 8.1.3Linux/IA32系统中的异常 1.Linux/IA32故障和终止 (1)除法错误 (2)一般保护故障 (3)缺页 (4)…
(1)计算机将信息按位编码,通常组成字节序列.用不同的编码方式表示整数,师叔和字符串.不同的计算机模型在编码数字和多字节数据中的字节排序时使用不同的约定. (2)C语言的设计可以包容多种不同字长和数字编码的实现,目前大多数机器使用32位字长.大多数机器对整数使用补码编码,而对浮点数使用IEEE浮点编码. (3)在相同长度的无符号和有符号整数之间进行强制转换时,大多数C语言实现循环的原则是底层的位模式不变.在补码机器上,对于一个w位的值.这种行为是由函数T2Uw和U2Tw来描述的.C语言隐式的强制…
处理器体系结构 4.1 Y86指令集体系结构 4.1.1程序员可见状态 Y86程序中的每条指令都会读取或修改处理器状态的某些部分,称为程序员可见状态. 4.1.2 Y86指令 4个指令:irmovl,rrmovl,mrmovl,rmmovl,分别显示地指明源和目的的格式 4个整数操作指令:addl,subl,andl,xorl 7个跳转码指令jmp,jle,jl,jne,jge,jg 6个条件传送指令cmovle,cmovl,cmove,cmovge,cmovg call指令将返回地址入栈,然后…
2017-2018-1 20155313 <信息安全系统设计基础> Myod Myod要求 1.复习c文件处理内容 2.编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能 3.main与其他分开,制作静态库和动态库 4.编写Makefile 5.提交测试代码和运行结果截图, 提交调试过程截图,要全屏,包含自己的学号信息 6.在博客园发表一篇博客,重点写遇到的问题和解决过程 解决过程 1.Linux环境下c语言的处理我们目前使用的是vim编辑器,vim编辑器的…
学习计时:共xxx小时 读书: 代码: 作业: 博客: 一.学习目标 1. 能够独立安装Linux操作系统   2. 能够熟练使用Linux系统的基本命令   3. 熟练使用Linux中用户管理命令/系统相关命令/文件目录相关命令/打包压缩相关命令/比较合并相关命令/网络相关命令等 4. 熟练应用“搜索”进行举一反三的学习   二.学习资源 1. 课程资料:https://www.shiyanlou.com/courses/413   实验一 2. Linux 基础入门:https://www.…
第三周学习笔记 学习计时:共8小时 读书:1 代码:5 作业:1 博客:7 一.学习目标 熟悉Linux系统下的开发环境 熟悉vi的基本操作 熟悉gcc编译器的基本原理 熟练使用gcc编译器的常用选项 5 .熟练使用gdb调试技术 熟悉makefile基本原理及语法规范 掌握静态库和动态库的生成 二.学习资源 教材:第一章,第七章 <嵌入式Linux应用程序开发标准教程>第三章3.1-3.5 课程资料:https://www.shiyanlou.com/courses/413 实验二,课程邀请…
20155228 2017-2018-1 <信息安全系统设计基础>第六周学习总结&课下作业 教材学习内容总结 异常及其种类 异常可以分为四类:中断(interrupt) ,陷阱(trap).故障(fault)和终止(abort ) 中断是异步发生的,是来自处理器外部的I/U设备的信号的结果.硬件中断不是由任何一条专门的指令造成的,从这个意义上来说它是异步的.硬件中断的异常处理程序常常称为中断处理程序(interrupt handler) 陷阱是有意的异常,是执行一条指令的结果.就像中断…
2017-2018-1 20155337<信息安全系统设计基础>第5周学习总结 教材学习内容总结 不论我们是在用C语言还是用JAVA或是其他的语言编程时,我们会被屏蔽了程序的机器级的实现.机器语言不需要被编译,可以直接被CPU执行,其执行速度十分 快.但是机器语言的读写性与移植性较高级语言低.高级语言被编译后便成为了汇编语言,汇编语言十分接近机器语言.之后汇编代码会转化为机器语言.虽然现代 的编译器能帮助我们将高级语言转化为汇编语言,解决了不少问题,但是对于一个严谨的程序员来说,需要做到能够阅…
20145314郑凯杰<信息安全系统设计基础>第9周学习总结 PART B 明确教材学习目标 注意每个系统调用的参数.返回值,会查帮助文档 阅读教材,完成课后练习(书中有参考答案),考核:练习题把数据变换一下 学习视频,掌握两个重要命令: man -k key1 | grep key2| grep 2 : 根据关键字检索系统调用 grep -nr XXX /usr/include :查找宏定义,类型定义 教材中相关代码运行.思考一下,读代码的学习方法见「代码驱动的程序设计学习」. 代码重点:课…
20145314郑凯杰<信息安全系统设计基础>第7周学习总结 part B 上篇博客反思与深入 首先根据本周第一篇博客,娄老师给我的评论,我开始进行局部性的深入研究: 分为两个步骤,一是知识点深入,二是用实践深入: ①知识点 1.局部性有两种形式:时间局部性(temporal locality)和空间局部性(spatial locality).在一个具有良好时间局部性的程序中,被引用过一次的存储器位置很可能在不远的将来再被多次引用:在一个具有良好空间局部性的程序中,如果一个存储器位置被引用了一…
已经到了11月,学期过半,而<信息安全系统设计基础>这门课也要到了期中考试了.所以,我在这里,对前半个学期的最基础的知识,做一个复习 复习计划分为两步,本次为Linux命令,下次计划复习git与vim相关指令 本周学习内容在另一篇博客20145234黄斐<信息安全>第七周学习总结上 Linux命令 1.常用小技巧 tab 补全命令.补全目录.补全命令参数 Ctrl+c 终止当前运行的程序,但不结束终端 Ctrl+d 结束输入或退出终端 Ctrl+s 暂停当前程序,任意键恢复 Ctr…
20155326 2017-2018-1 <信息安全系统设计基础>第1次学习及课堂总结myod 虚拟机之前出了一些问题,然后我重新弄了一个新的虚拟机. 先在虚拟机里面安装了git. 安完以后在终端用命令行建立了我的系统设计这门课的专用文件夹,里面包含src.res.lib等六个文件夹来存放我的代码. 将statistics脚本放在了文件夹下,以方便统计c代码行数. 在这些准备中我用到的命令行有: ls 查看文件 cd 打开,进入 tab 补全目录 mkdir 新建文件夹 rm 删除文件夹 Ct…
2017-2018-1 20155239 <信息安全系统设计基础>第五周学习总结+mybash的实现 mybash的实现 使用fork,exec,wait实现mybash 写出伪代码,产品代码和测试代码 发表知识理解,实现过程和问题解决的博客(包含代码托管链接) 首先通过man命令了解fork.exec和wait 命令行输入:man fork 命令行输入:man exec 命令行输入:man wait 伪代码 while(1) { fgets(命令行输入): if(内置的shell命令) {…
2018-2019-1 20165212 <信息安全系统设计基础>第八周学习总结 一.知识点总结 1.三种并发方式 构造并发程序的方法有三种: 进程 线程 I/O多路复用 进程:用内核来调用和维护,有独立的虚拟地址空间,显式的进程间通信机制. 线程:运行在一个单一进程上下文中的逻辑流.由内核进行调度,共享同一个虚拟地址空间. I/O多路复用:应用程序在一个进程的上下文中显式地调度控制流.逻辑流被模型化为状态机. 2.C/S编程模型 客户端和服务器都是进程,C/S编程模型由一个服务器进程和一个或…
2017-2018-1 20155307 <信息安全系统设计基础>第三周学习总结 教材学习内容总结 无符号数和有符号数的特性,数字如何表示,IEEE标准,浮点数格式.(我感觉我把课下测试做完之后已经把书翻了一遍了) 教材学习中的问题和解决过程 (一个模板:我看了这一段文字 (引用文字),有这个问题 (提出问题). 我查了资料,有这些说法(引用说法),根据我的实践,我得到这些经验(描述自己的经验). 但是我还是不太懂,我的困惑是(说明困惑).[或者]我反对作者的观点(提出作者的观点,自己的观点,…
20145307<信息安全系统设计基础>第五周学习总结PT2: 教材学习内容总结 之前有第一部分学习总结: http://www.cnblogs.com/Jclemo/p/5962219.html 以下为第二部分 执行汇编命令:gcc –s xxx.c –o xxx.s反汇编命令:objdump –d xxx 64位处理器得到32代码的命令:gcc –m32 –s xxx.c Ltme: 1.三种操作数: 立即数:常数值.表示为$c标准表示的整数. 寄存器:表示某个寄存器的内容. 存储器:根据…
20145307陈俊达<信息安全系统设计基础>第5周学习总结 教材学习内容总结 X86寻址方式经历三代: DOS时代的平坦模式,不安全,原因是没有区分用户空间和内核空间 8086的分段模式: IA32的带保护模式的平坦模式 程序编码命令 gcc是Linux上默认的编译器,gcc -01 告诉编译器使用第一级优化.优化等级越高,程序运行的越快,编译时间越长,用调试工具调试程序越困难.但是,从得到程序性能方面考虑,第二级优化被认为是较好的选择. 汇编器将汇编代码转换成二进制目标代码,目标代码是机器…