CPU 流水线

流水线级 一条流水线的每个分步骤被称为流水线级。它们被流水线寄存器分开。下文中没有说明是流水线寄存器的都是普通 CPU 寄存器。 现代计算机流水线级数已...

2023 Apr 22 · 5 min · vaaandark

CS246 Finding Similar Items: Locality Sensitive Hashing

最近在上大数据分析的课程,老师使用的是斯坦福大学的教材和 PPT ,感觉挺有趣的,记录一下其中的一些算法。 背景 很多问题可以被归化为寻找相似集合的问题...

2023 Mar 15 · 5 min · vaaandark

MIT6.S081 Lab: Xv6 and Unix Utilities

这是 MIT6.S081 的第一个 Lab ,目的是为了让学生熟悉 Xv6 和 Unix 的一些实用程序,例如 sleep find xargs 等。 sleep 这一关是实现 sleep 命令。由于在 user/user.h 目录中给出来了可以直接由 C 语言调用的...

2023 Mar 02 · 3 min · vaaandark

Awesome WM 基于迭代器的小组件

由于 i3wm 支持的功能有限,定制性并没有那么强大,最近换成使用 Awesome WM 了,它使用 Lua 作为配置语言,所以可配置性极强。举个例子,i3wm 配置无法像真正的编...

2023 Feb 25 · 2 min · vaaandark

Btrfs 为什么是神?

最近发现 Windows 这几个月开机不超过 10 次,寻思着将 Windows 中的空间挪一点到 Linux 中来。说干就干,在 Windows 里面划出来了 80 GB 的空间。 遗憾地,这 80 GB 空间物理上在我需要扩...

2023 Feb 25 · 1 min · vaaandark

Rust 自引用结构

今天和朋友交流的时候遇到了自引用问题,之前就在看 Rust Bible 的时候看到过,但是一直没用 Rust 写过什么数据结构,所以没有使用这个的机会,所以今天就来尝试一...

2023 Feb 23 · 1 min · vaaandark

MIT6.S081 实验环境配置

最近开始学习操作系统的相关知识,选择学 MIT6.S081 的课程。 首先在 课程官方网站 上拉取仓库配置环境。 $ git clone git://g.csail.mit.edu/xv6-labs-2020 $ cd xv6-labs-2020 $ git checkout util $ make qemu make 时发现有报错: user/sh.c: In function ‘r...

2023 Feb 21 · 1 min · vaaandark

Lua 打印 Table

之前在 Lua 代码的编写中写过一些打印表的函数用于调试,这次在看 z.lua 的实现中看到了非常完美的打印表的方法,于是在将代码改得更规范后记录一下: 使用 luacheck 检...

2023 Feb 11 · 1 min · vaaandark

Lua 中的三目运算

在看 skywind3000 大神写的 z.lua 时发现了神秘写法: os.argv = arg ~= nil and arg or {} os.path.sep = windows and '\\' or '/' 不需要怎么思考就能知道这个是三目运算。但是在我认知中,Lua 是不支持三目运...

2023 Feb 09 · 2 min · vaaandark

用 Rust 重写星际译王

我经常有在终端查单词的需求,之前使用的是自己写的网络爬虫,原理是构造网址 “https://www.youdao.com/result?word={}&lang=en" 并访问,再通过解析 Html 文件获得单词解释。一个朋友说他用的是 sdcv ,星际译...

2023 Jan 25 · 5 min · vaaandark