ICode9

精准搜索请尝试: 精确搜索
  • 《深入理解计算机系统》(CSAPP)实验四 —— Attack Lab2021-04-16 17:56:29

    这是CSAPP的第四个实验,这个实验比较有意思,也比较难。通过这个实验我们可以更加熟悉GDB的使用和机器代码的栈和参数传递机制。实验目的  本实验要求在两个有着不同安全漏洞的程序上实现五种***。通过完成本实验达到:深入理解当程序没有对缓冲区溢出做足够防范时,***者可能会如何利用

  • 《深入理解计算机系统》(CSAPP)实验三 —— Buf Lab2021-04-16 17:55:53

    这是CSAPP的第三个实验,主要让我们熟悉GDB的使用,理解程序栈帧的结构和缓冲区溢出的原理。实验目的  本实验的目的在于加深对IA-32函数调用规则和栈结构的具体理解。实验的主要内容是对一个可执行程序“bufbomb”实施一系列缓冲区溢出***(buffer overflow attacks),也就是设法通过造成

  • 《深入理解计算机系统》(CSAPP)实验二 —— Bomb Lab2021-04-16 17:55:18

    这是CSAPP的第二个实验,主要让我们理解代码的机器级表示,最重要的是理解每个寄存器的作用以及如何使用这些寄存器。本次的实验内容有点晦涩难懂,对于这些内容多看下习惯就好了。  本次实验中的bomb文件中共有7个炸弹问题(6个显式的和1个隐藏的),每条问题只有输入正确的答案才能进入下一

  • 《深入理解计算机系统》(CSAPP)读书笔记 —— 第三章 程序的机器级表示2021-04-16 17:54:49

    本章主要介绍了计算机中的机器代码——汇编语言。当我们使用高级语言(C、Java等)编程时,代码会屏蔽机器级的细节,我们无法了解到机器级的代码实现。既然有了高级语言,我们为什么还需要学习汇编语言呢?学习程序的机器级实现,可以帮助我们理解编译器的优化能力,可以让我们了解程序是如何运行

  • 《深入理解计算机系统》(CSAPP)实验一 —— Data Lab2021-04-16 17:54:27

    本文是CSAPP第二章的配套实验,通过使用有限的运算符来实现正数,负数,浮点数的位级表示。通过完成这13个函数,可以使我们更好的理解计算机中数据的编码方式。准备工作  首先去官网Lab Assignments获得实验相关的文件(也可以加我QQ获取教学视频、PPT等内容)在每个实验文件的README中都详

  • 《深入理解计算机系统》(CSAPP)读书笔记 —— 第二章 信息的表示和处理2021-04-16 17:54:12

    本章主要研究了计算机中无符号数,补码,浮点数的编码方式,通过研究数字的实际编码方式,我们能够了解计算机中不同类型的数据可表示的值的范围,不同算术运算的属性,可以知道计算机是如何处理数据溢出的。了解计算机的编码方式,对于我们写出可以跨越不同机器,不同操作系统和编译器组合的代码具

  • 《深入理解计算机系统》(CSAPP)读书笔记 —— 第一章 计算机系统漫游2021-04-16 17:53:31

    本章通过跟踪hello程序的生命周期来开始对计算机系统进行学习。一个源程序从它被程序员创建开始,到在系统上运行,输出简单的消息,然后终止。我们将沿着这个程序的生命周期,简要地介绍一些逐步出现的关键概念、专业术语和组成部分。文章目录源程序是如何存储的源程序到可执行文件的过程s

  • 计算机系统概述(CSAPP第一章内容)2021-04-04 21:34:11

    计算机系统概述 计算机系统是由硬件和软件系统组成的所有计算机系统都有相似的硬件和软件组件,它们执行者相似的功能程序员需要了解这些组件是如何工作的,以及这些组件是如何影响程序正确性和性能的 1. 信息就是位+上下文 8位是1个字节,程序是以字节的方式存储在文件中(根据ASCII

  • 专业课复习思路2021-02-28 20:33:33

    专业课复习思路 复习材料 考试大纲以及解读 教育部考试中心公布的2022年硕士研究生入学考试计算机基础综合考试大纲,大概今年9月份能够出版. 王道一轮复习材料(4本全书),王道课程的PPT. (王道教材我是打算用来背的,主要被计网,计组和操作系统的一些概念) 王道模拟题(等它发货的

  • CSAPP 3e操作环境搭建2021-02-28 18:02:14

    博主的环境: VMave centos7 环境win10 ubuntu20.04STL 子系统 我会在上面这两个环境中搭建,在不同的点会告知,没有对比,说明操作相同。 代码获取 第三版代码链接 http://csapp.cs.cmu.edu/3e/code.html 选择上面红色方框下载 tar 开始搭建 把包放在你喜欢的地方,这里我放在了Des

  • CSAPP第4章 处理器体系结构2021-02-16 21:03:04

    第4章 处理器体系结构(持续更新) 这一章CMU 15-213没有相应的课程,老教授直接略过,从第五章开讲。个人觉得这一章可以参考清华大学的计算机组成原理课(刘卫东教授),刘教授讲的还是蛮清晰的,主要是讲的MIPS指令系统,大同小异吧。 不知道本章要花多久,毕竟大几十页,要想快速看完还要吃透,难

  • csapp malloclab2021-02-08 23:02:05

    这次实验起初感觉书上就有答案,但是把书上的一点一点打上去之后看了大佬的博克,我就菜的睡不着了,这一章的最后一部分看的不认真,当时实在是头疼,急着看完去睡觉,结果错过了这次实验最重要的部分,分离空闲链表法,刚开始看到这个我以为就是维护一个存放空闲块的链表,因为不记得之前写uc

  • csapp data lab2021-02-02 12:57:31

    题目链接 完整答案在我的github上 看到第四章要做个cpu的样子,所以我打算把前面的实验都补上 这是我第二次看csapp了,大一时候啥都不懂,看了三四章没有体会到这本书的妙处,现在看时不时会爆出一句csapp nb!! bitXor 这题很简单就公式代换就好了 /* * bitXor - x^y using only ~ a

  • CSAPP:datalab2021-01-31 23:29:16

    CSAPP:datalab 代码中有具体思路的标注。 /* * CS:APP Data Lab * * * bits.c - Source file with your solutions to the Lab. * This is the file you will hand in to your instructor. * * WARNING: Do not include the <stdio.h> header; it confus

  • 《深入理解计算机系统》CSAPP第3版术语索引表2021-01-27 14:31:19

    《深入理解计算机系统》几乎做到了只讲对程序员“有用的”原理,所以这本书性价比非常高。并没有在体系结构和操作系统的许多实现问题上纠缠。 第三版的英文原版是有index表的,中文没有。这里刷中文书的同时,随手记一下。不用字典序,用页码序。方便自己进行记录和知识回顾。不解释

  • csapp 002 读书笔记2021-01-25 20:32:56

    1.3 了解编译系统如何工作是大有益处的 优化程序性能 理解链接时出现的错误 避免安全漏洞   系统的硬件组成 1、总线  以字为单位传递信息,64位系统的字是8字节。类似人类神经 2、IO设备 是系统与外部世界的联系通道,类似于人的五官 3、主存 临时存储设备,在处理器执行程序时,用来存

  • CSAPP第六章家庭作业(原书第二版)2021-01-14 21:02:34

    6.32 A:地址格式 因为地址宽13位且题目所给地址为0x0718,转换成二进制表示为 0 0111 0001 1000,填下表: B:存储器引用 由题S=8,E=4,B=4,m=13所以s=3,b=2,t=m-(s+b)=8,0-1位是块偏移,2-4位是组索引,5-12是标记位,故根据题A中二进制地址表示可知,CO为00,CI为110,CT为00111000,由题中所给高

  • CSAPP第五章家庭作业(原书第二版)2021-01-14 20:59:03

    5.15 A.关键路径是%xmm1更新路径上的加法。 B.CPE下界是浮点加法的延迟。 C. 两个load操作的吞吐量界限。 D.乘法不在关键路径上,是通过流水线实现的,两个版本的CPE都为3.00,其限制因素都是浮点数加法的延迟。 5.17 void inner4(vec_ptr u, vec_ptr v, data_t *dest) { long in

  • CSAPP Shell Lab2020-12-26 23:31:50

    知识总结 一、异常和进程 1、异常,中断的一种类型: 故障: 错误引起,如缺页,除0 陷阱:”故意的异常“,目的是使用系统调用 终止:致命错误,如硬件损坏 2、创建子进程 —— fork()函数: 作用:创建子进程,返回两次,父进程返回创建子进程的pid,子进程返回0 3、僵尸进程: 进程有三种状态:运行、停

  • CSAPP-Data Lab深思2020-12-25 21:59:27

    详情移步Github Data Lab 介绍 学生实现简单的逻辑,二进制补码和浮点函数,但使用C语言运算符受限。例如,可能会要求他们仅使用位级运算和直线代码来计算数字的绝对值。本实验可帮助学生理解C数据类型的位表示形式以及对数据进行操作的位级别行为。 实验地址 README文档 实验指导

  • CSAPP LAB1: Data Lab2020-12-23 09:01:35

    本文为USTC SSE CSAPP 2020 Fall的实验报告,lab1已做完,但没有进行后续的优化,运算符数量不是最优,仅供参考,源代码在最后 最后附上所有代码: /* * CS:APP Data Lab * * <Please put your name and userid here> * 刘辉 SA20225302 * bits.c - Source file with

  • CSAPP第三章之条件码、跳转指令2020-12-19 18:00:48

    控制 机器代码提供 测试数据值根据测试结果改变控制流 条件码 CPU维护着一组条件码寄存器 CF:进位标志。可以检查无符号操作的溢出。ZF:0标志SF:符号标志。最近的操作结果为负数。OF:溢出标志。检查有符号操作的溢出。 leaq不改变任何条件码——它是用来进行地址计算的 除此之外,

  • 北邮CSAPP第三章之数据格式与程序编码2020-12-17 22:04:06

    程序的机器级表示 本章学习内容:汇编代码 高级语言屏蔽了程序的机器级实现。 用高级语言编写的程序可以在不同的机器上运行,汇编代码则于特定机器密切相关 学习汇编代码能理解编译器优化能力,并分析代码中隐含的低效率 此外,高级语言提供的抽象层会隐藏我们想要了解的程序的运行

  • 北邮CSAPP第二章之信息存储2020-12-17 21:59:54

    为什么使用二进制? 二值信号能更容易地被表示、存储、传输 三种最重要的数字表示: 无符号补码:表示有符号整数浮点数 计算的表示是有限数量的,因此,答案太大时,结果会溢出 浮点运算的精度有限,不可结合(指-1 + 1 != 0) 整数能表示小范围的精确的数值,浮点数能表示大范围的近似的

  • 北邮CSAPP第二章之整数运算2020-12-17 21:58:36

    整数运算 无符号加法 两个非负整数的加法很有可能会导致溢出 两数相加后,丢弃超越范围的数字,得到的结果类似于模运算 例如9 + 12 = .21 = [10101] => [0101] = 5 = 21 % 16 丢弃最高位相当于从和中减去2^w(无符号) C语言不会因为溢出而发出信号 检测溢出的方法:s = x + y

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有