首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    CSAPP lab

    CSAPP学习过程 这篇文章主要记录CSAPP书和lab的学习过程,具体某个lab的踩坑过程会分别附单独链接,本文主要是记录漫长的学习过程以及方便想学但是尚未开始学习的同学参考,以下是github的lab...image.png Todo Bilibili翻译课程 lecture 1-4 搭建实验环境 Data lab Bilibili翻译课程 lecture 5-9 Bomb lab Attack...lab 前置材料 一本CSAPP CSAPP的bilibili翻译课程 实验材料 参考经验贴1 参考经验贴2 我想做些什么 开设这个仓库是想记录我做CSAPP的lab的过程,也顺便将踩坑过程分享,帮助后人少走弯路...学习过程(以Lab为单位总结) 简单查阅别的学习经验后,大多数人的分享都说看书再多遍也不如做lab学到的多,lab是课程的精髓,我已经粗略的学过编译原理,计算机组成原理和操作系统,所以我会比较快速的过一遍网课然后开始...lab,目标3个月完成大多数的lab(也许有一些实在不感兴趣的lab会跳过) Timeline 2022-03-30 完成Datalab 2022-03-28 完成实验环境搭建 2022-03-27 完成

    1K10

    CSAPP-Bomb-Lab

    实验整体分析 实验是基于Linux x86-64的,其中bomb文件是一个64位的可执行程序,bomb.c文件是一个C语言程序,其中包含了main函数以及其他许多函数。...(不会用gdb的请看我的实验指南文件,里面有gdb命令文档) Phase_1分析 我们使用gdb bomb命令进入程序,进入后在phase_1的函数入口处打上断点 命令为:b phase_1,进入后输入...第二行对esi(既rsi的低32位)赋了一个地址:0x402400,由于是64位的程序,前六个参数在寄存器中,所以rsi的低32位(既esi的值)作为参数传给了后面的strings_not_equal的函数...在第三行call了一个函数,该函数名为strings_not_equal,可以使用命令disassemble strings_not_equal查看该函数汇编,可以发现该函数是用来比较用户输入的字符串和...这整个函数我们来总结一下就会发现,作用就是用来使用户输入的值等于均值的函数

    2K20

    ucore-lab2

    其他内容建议看Kiprey ucore_lab2 练习0 合并代码,直接meld然后copy to right就行,lab1修改的文件有: kern/debug/kdebug.c kern/trap/trap.c...kern/init/init.c 可以看到lab2与lab1有很多文件不同,记得只能修改上述三个文件。...即为成功 练习二 补全get_pte函数,该函数的call graph如下: 在kern/mm/pmm.c找到get_pte函数,根据注释不难写出: pte_t * get_pte(pde_t *pgdir...然后lab2提了一个问题,如何使虚拟地址与物理地址相等? 显然,由于我们现在的ucore是通过虚拟地址到物理地址的映射实现的内存管理,如果要取消该映射,我们应该反向查找lab2中的映射方式。...首先是要有一个函数能够把数字转为最接近该数字的二次幂的函数

    64130

    ucore-lab1

    初始化时设置中断使能,设置中断标志,根据中断向量调用相关中断服务例程 软件处理: 图片 中断是可以嵌套的,也就是异常里可以出现异常 系统调用采用int和iret指令,可以进行堆栈切换以及特权级的转换,函数调用采用...在os_kernel_lab-master/labcodes/lab1/Makefile中,可以找到要分析的makefile。 makefile的结构如下: target......fno-stack-protector -Ilibs/ -Os -nostdinc \ -c boot/bootasm.S -o obj/boot/bootasm.o 解释一下参数: -fno-builtin指若函数前没有...builtin则不进行内部函数的优化(如下图),-Wall就是生成警告信息,-ggdb生成gdb调试信息,-m32就是按照32位机器生成代码,-gstabs生成stabs格式的调试信息,-nostdinc...( "int %0 \n" "movl %%ebp, %%esp \n" : : "i"(T_SWITCH_TOK) ); } inti.c里有坑,第一个函数需要是

    1.9K30

    SeedLab——Spectre Attack Lab

    调用受害者函数,该函数根据秘密值访问数组的一个元素。这个操作导致相应的数组元素被缓存。 RELOAD:重新加载整个数组,并测量重新加载每个元素所需的时间。...在给定的代码中,循环调用victim函数10次的目的是为了训练CPU执行victim函数内部的true分支。...通过循环调用victim函数,并逐渐增加传递给victim函数的参数值,可以让CPU在执行过程中观察到大量的true分支执行。...spectreAttack() 函数是利用 Spectre 攻击的关键部分。首先,通过多次调用 restrictedAccess() 函数来训练 CPU 执行该函数的真分支。...在 main() 函数中,首先调用 flushSideChannel() 函数先将array数组写入缓存,之后刷新cache来准备侧信道攻击。

    27020

    MIT 6.824 -- MapReduce Lab

    环境准备 从官方git仓库拉取分支 git clone git://g.csail.mit.edu/6.824-golabs-2020 6.824lab 笔者码云仓库 https://gitee.com...实验要求 MapReduce Lab 要求我们实现一个和MapReduce论文类似的机制,也就是数单词个数Word Count。在正式开始写分布式代码之前,我们先理解一下任务和已有的代码。...在src/main目录下命名为mr*.go的几个代码文件中,都有loadPlugin函数。如果你使用Goland作为主要IDE,编辑器会提示重复函数声明。...文件wc.go以及mrapps目录下的其它几个文件,都定义了名为map, reduce的函数,这两个函数在mrsequential.go中加载并调用。.../mrapps/wc.go mrworker.go 启动配置 mrcoordinator.go 启动配置 代码实现 代码实现部分只会介绍核心代码,其余代码大家可拉取笔者仓库,切换到lab1分支自行阅读

    26210

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    热门标签

    领券