更新下本实验室的两款开源工具箱的进展: 1 - AR lab 效果演示 ? 我一直有关注AR领域的创新,尤其是多屏联动、实时互动、图像分割算法等技术。
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 完成
自行填写,懒得找了,可以参考kiprey 练习一 理解内核级信号量的实现和基于内核级信号量的哲学家就餐问题(不需要编码) 完成练习0后,建议大家比较一下(可用meld等文件diff比较软件)个人完成的lab6...和练习0完成后的刚修改的lab7之间的区别,分析了解lab7采用信号量的执行过程。...num_cv) { int i; assert(num_cv>0); mtp->next_count = 0; mtp->cv = NULL; //初始化锁为...=NULL); //初始化管程 for(i=0; i<num_cv; i++){ mtp->cv[i].count=0; sem_init(&(mtp->...old_foo_ref = NULL; foo_t* new_foo_ref = NULL; int grace_period_count = 0; semaphore_t foo_sem; //初始化
首先先介绍一款工具,个人觉得老牛逼——Netdiscover,之前我询问一哥们arp扫描工具时他推荐的。
实验是基于Linux x86-64的,其中bomb文件是一个64位的可执行程序,bomb.c文件是一个C语言程序,其中包含了main函数以及其他许多函数。该实验...
LAB_3 NAT 一.NAT概述... 1 二.NAT综合实验... 3 三.TCP/UDP端口NAT映射... 5 四.利用地址转换实现负载均衡... 6 一.NAT概述 ·NAT核心思想:将私网地址转换成公网地址
《深入理解计算机系统》这本书的质量着实很高,内容丰富充实,课后的实验也都很有意思,也有一定的难度。当时做这鬼东西也是花了我不少时间最终还有几道题去网上查阅了答案...
其他内容建议看Kiprey ucore_lab2 练习0 合并代码,直接meld然后copy to right就行,lab1修改的文件有: kern/debug/kdebug.c kern/trap/trap.c...kern/init/init.c 可以看到lab2与lab1有很多文件不同,记得只能修改上述三个文件。...首先看 default_init_memmap 函数,这个函数要实现的是对内存块的初始化,通过传入页基址以及大小来插入页,但在最下面一行可以看到: list_add(&free_list, &(base...然后lab2提了一个问题,如何使虚拟地址与物理地址相等? 显然,由于我们现在的ucore是通过虚拟地址到物理地址的映射实现的内存管理,如果要取消该映射,我们应该反向查找lab2中的映射方式。...if((1 x) break; return (size_t)(1 << _i); } 类比于kern/mm中对内存的管理,我们先要初始化我们的
系统启动及中断 bios提供了基本的i/o功能 cpu加电后执行ROM里的初始化代码: 图片 从硬盘/网络启动是由bios决定,bios加载程序到磁盘的引导扇区,跳转到cs:ip=0000:7c00...os的内核代码,在把控制权转给os: bios和uefi的区别: 中断(来自硬件)、异常(非法指令等)、系统调用(应用程序主动向os发的请求): 计算机对上述三种情况采用的中断处理机制: cpu初始化时设置中断使能...在os_kernel_lab-master/labcodes/lab1/Makefile中,可以找到要分析的makefile。 makefile的结构如下: target......之后单步调试si得到: 可以看到0x7c00处的代码和bootasm.S处的代码一致 练习3 在bootblock.asm中,通过注释不难发现,disable interrupts禁用了中断,之后初始化了...在bootasm.S中, 初始化了gdt: # Bootstrap GDT .p2align 2 # force 4 byte
发现该函数通过调用 strings_not_equal 函数后进行判断,接着进行反汇编:
这东西不能直接拿lab4做过的用,实在是败笔。...代码: /* LAB5:EXERCISE1 YOUR CODE * should set tf_cs,tf_ds,tf_es,tf_ss,tf_esp,tf_eip,tf_eflags * NOTICE...FL_IF; ret = 0; 读取文件需要陷入内核态,在load_icode中我们需要完成tf_cs,tf_ds,tf_es,tf_ss,tf_esp,tf_eip,tf_eflags这几个变量的初始化...代码: /* LAB5:EXERCISE2 YOUR CODE * replicate content of page to npage, build the map of phy addr...(使用的是qemu-1.0.1) 注意,前面如果完全正确,参考我上周写的lab4练习二最后一部分更改一下语句就可以拿到136分。
Spectre攻击是一种基于侧信道漏洞的攻击方法,它于2018年首次公开披露。该攻击利用了现代处理器中存在的一种设计缺陷,使得恶意程序可以访问其本不应该具备权限...
环境准备 从官方git仓库拉取分支 git clone git://g.csail.mit.edu/6.824-golabs-2020 6.824lab 笔者码云仓库 https://gitee.com...实验要求 MapReduce Lab 要求我们实现一个和MapReduce论文类似的机制,也就是数单词个数Word Count。在正式开始写分布式代码之前,我们先理解一下任务和已有的代码。.../mrapps/wc.go mrworker.go 启动配置 mrcoordinator.go 启动配置 代码实现 代码实现部分只会介绍核心代码,其余代码大家可拉取笔者仓库,切换到lab1分支自行阅读...("map任务集合初始化完毕") } 初始化完map任务列表后,代码就是启动rpc server了: func (c *Coordinator) server() { custom_log.Debug...当进入reduce阶段后,协调器会初始化reduce任务列表,每一个reduce任务初始化时都会读取当前工作目录下所有文件,获取所有文件命名符合mr-tmp-*-当前reduce任务编号的文件的名字,作为
key chain ccna key 1 key-string cisco call rsvp-sync !
kern/mm/vmm.c 练习1 分配并初始化一个进程控制块(需要编码) alloc_proc函数(位于kern/process/proc.c中)负责分配并返回一个新的struct proc_struct...ucore需要对这个结构进行最基本的初始化,你需要完成这个初始化过程。...= NULL) { //LAB4:EXERCISE1 YOUR CODE /* * below fields in proc_struct need to be initialized...do_kernel函数会调用alloc_proc函数来分配并初始化一个进程控制块,但alloc_proc只是找到了一小块内存用以记录进程的必要信息,并没有实际分配这些资源。...两个内核线程,分别是idleproc和initproc 首先是idleproc内核线程,该线程是最初的内核线程,完成内核中各个子线程的创建以及初始化。之后循环执行调度,执行其他进程。
使用实例:http://www.au92.com/archives/labjs.html 解释说明:http://miyuki.42code.com/2012/...
16位 checksum += (checksum >> 16); } // 取反 return (unsigned short)(~checksum); } 初始化...// 初始化ip头 void init_ip_header(struct iphdr *ip, unsigned int srcaddr, unsigned int...// 初始化tcp头 void init_tcp_header(struct tcphdr *tcp, unsigned short dport) { // 生成随机端口 tcp->sport...tcp->checksum = 0; // 将紧急指针 urg 初始化为 0,表示没有紧急数据 tcp->urg = 0; } // 初始化伪TCP头 void init_pseudo_header...struct sockaddr_in skaddr; // 数据包 char packet[256]; // 数据包长度 int pkt_len; // 初始化
和练习0完成后的刚修改的lab6之间的区别,分析了解lab6采用RR调度算法后的执行过程。...123456789101112131415161718192021222324252627282930313233343536373839404142434445 static voidRR_init(struct run_queue *rq) { list_init(&(rq->run_list)); rq->proc_num = 0;}//初始化对应的...那么也就是说,ucore的RR算法,首先调用kern/schedule/sched.c中的sched_init函数进行初始化(加入list),之后初始化进程(proc目录下的函数),ucore执行cpu_idle..._stride += BIG_STRIDE / p->lab6_priority; return p; } return NULL;}//初始化,多了一个指针static voidstride_init...当然对os不感兴趣的话混就得了 实际上,我们的错误是由于一个细节,在之前的kern/schedule/default_sched.c中,优先级初始化为0,而0在stride中是不能作为被除数存在的,因此需要更改
DISRUPTING THE STATUS QUO OF VOICE WITH SUPERIOR SPEECH RECOGNITION & ECHO CANCE...
image.png
领取专属 10元无门槛券
手把手带您无忧上云