所有观后感、玩后感的内容除“通关概况”外均包含对应作品的重度剧透

我音乐知识匮乏,因此自己扒的乐谱在歌曲节奏、音准、记谱等方面会存在较多错误,一切以原曲为准!

MIT-6.S081-2020实验(xv6-riscv64)七:thread


实验文档 概述 这次实验主要涉及多线程编程,和之前的实验不太一样,比较偏向于应用层面,除了任务一外都是在宿主机上编写多线程程序,应该是xv6不支持系统级的多线程。 内容 Uthread: switching between...

技术          2021年1月7日

MIT-6.S081-2020实验(xv6-riscv64)六:cow


实验文档 概述 这次实验实现copy on write功能,和上次实验一样也是缺页中断的应用,但不同的是,这次实验涉及的物理内存和虚拟地址的操作要比上个实验多不少,因此难度也更大一些。 内容 首先是uvmcopy...

技术          2021年1月6日

MIT-6.S081-2020实验(xv6-riscv64)五:lazy


实验文档 概述 这次实验主要实现Lazy allocation的功能,即进程在动态分配内存的时候先不分配,等到要用到发生缺页中断的时候再实际分配,核心是实现缺页中断的处理。xv6的文档介绍了三种缺页中断的应用,第...

技术          2021年1月2日

MIT-6.S081-2020实验(xv6-riscv64)四:traps


实验文档 概述 这次实验内容比较分散,总体来说难度不是太高。 内容 Backtrace 要求在内核中对程序的调用栈进行遍历,输出每一级调用的返回地址。首先我们分析Riscv的栈帧结构,查看call.asm中main函数的...

技术          2021年1月1日

MIT-6.S081-2020实验(xv6-riscv64)三:pgtbl


实验文档 概述 这次实验主要涉及虚拟内存的管理,重点是和页表相关的操作。个人觉得难点主要还是在调试方面,因为一旦写到什么非法内存或者哪里内存泄漏了,基本只能抓瞎。我也是参考了github上别人的代码才...

技术          2020年12月31日

MIT-6.S081-2020实验(xv6-riscv64)二:syscall


实验文档 概述 实验二主要涉及对系统函数调用过程的理解以及尝试自己手动添加系统调用。首先需要大致了解一下xv6系统调用的过程,这里以fork为例: 根据这个过程,就很容易完成本次实验了。 内容 trace 该实验...

技术          2020年12月30日

MIT-6.S081-2020实验(xv6-riscv64)一:util


实验文档 概述 实验一主要涉及调用系统调用函数,这些系统调用函数基本都是符合POSIX规范的,和操作系统本身关系较小,在调试的时候也可以先把程序在外部的Linux下跑通然后再放进xv6中运行。 内容 sleep 基...

技术          2020年12月29日

快速生成网络mp4视频缩略图技术


背景 由于网络原因,在下载视频之前我们往往会希望能够先生成一些视频的缩略图,大致浏览视频内容,再确定是否应花时间下载。如何能够快速得到视频多个帧的缩略图的同时尽量少的下载视频的内容,是一个值...

技术          2020年9月13日

用plantuml画图示例


依赖图: 代码...

技术          2020年9月6日

QQ缩略图和大图不同实现


背景 最近在QQ群里看见别人发一张图,缩略图看着是一个样子,但打开大图以后却发现是另一张图,仔细观察这两张图发现缩略图是白色背景,大图是黑色背景,结合缩略图所在的对话框是白色的,打开大图的UI...

技术          2020年8月18日
... ...