• xv6 Lab4: Traps

    Lab4 实现用户态 trap 处理,集中在返回用户态的中断上下文保存,很类似 signal 处理。 RISC-V assembly主要是一些基础知识。 Which registers contain arguments to functions?...
  • xv6 Lab3: page tables

    Page table 使用用来映射进程虚拟地址到物理地址。有了 pagetable 进程看到的是虚拟地址,对操作系统来说,有了 pagetable,可以实现更多的管理面的控制,Isolating,Guarding and etc. Speed up ...
  • xv6 Lab2: system calls

    Lab2 实现 2 个 syscall。 Using gdb第一部分是了解使用 gdb 调试 xv6(我使用的是 Debian) # 其中一个窗口启动 qemu-gdbcd xv6-labs-2023make qemu-gdb# 新开另一个窗口,连接...
  • xv6 Lab1: Xv6 and Unix utilities

    Lab1 为 xv6 实现用户态程序。 配置环境看 xv6 网站上的教程,安装依赖软件包https://pdos.csail.mit.edu/6.828/2023/tools.html笔者选择的是 Debian 操作系统,执行一行命令即可完成环境配置...
  • Intel & AMD 指令集之间的差异

    促进我写这篇文章的起因是,线上机器会使用基于 SPDK 的云盘存储方案,需要编译一个 RPM 包。这个包在 Intel 机器是运行正常的,在 AMD 的机器上无法运行报不支持 AVX512 指令。 这个问题很常见,是指令集不兼容造成的。AMD 虽然是...
  • 使用 ebpf USDT 追踪用户态程序

    USDT 是一种探针技术,让用户态程序也支持使用 perf/ebpf 性能分析工具进行 tracing/profiling。做性能分析通常听过 perf/ebpf 这些工具,这些工具通常用在内核上,用于分析内核的一些性能...
  • 查询 Intel 处理器安全漏洞

    Intel 处理器安全漏洞表https://www.intel.com/content/www/us/en/developer/topic-technology/software-security-guidance/processors-affect...
  • Reboot 命令实际是 systemctl ?

    背景在一次查问题的过程中,偶然发现 reboot 命令是直接链接到 systemctl 的(划重点:直接链接到),看下面的演示, # which reboot/sbin/reboot# file /sbin/reboot/sbin/reboot: s...
  • CMU 15-445 Fall 2022 Project1: Buffer Pool

    这个项目是实现 bpm,简而言之是实现一个磁盘缓冲区,用于加速数据库应用的 IO 操作。 背景众所周知,磁盘(SSD/HDD)的访问速度是很慢的,内存 DRAM 访问相比较很快了。我们希望为磁盘经常访问的数据在内存建立对应的缓存来加速数据库...
  • CMU 15-445 Fall 2022 Project0: C++ Primer

    这个项目是使用 Modern C++ 17 实现一个 字典树(Trie)项目难点在于理解项目里如何使用 TrieNode 和 TrieTerminalNode 来组合实现一个 Trie Tree。另外一个难点是对 unique_ptr 的理解。理解 ...
/2