摘要: 以下是基于v5.0。 每个进程都有自己的虚拟机地址空间。在task_struct数据结构中有一个mm_struct专门用来描述进程的虚拟地址空间。 struct task_struct { ... struct mm_struct *mm; ... } struct mm_struct { stru 阅读全文
posted @ 2024-01-28 12:23 半山随笔 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 我们都知道malloc底层是调用brk系统调用实现的,但是不是每次malloc都会调用brk。我们来使用bpftrace验证以下。 写一个malloc的程序。 #include "stdio.h" #include <stdlib.h> int main() { void *p; p = mallo 阅读全文
posted @ 2024-01-28 10:58 半山随笔 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 随便记记,没有章法。 VTTBR_EL2和TTBR1_EL2有啥区别? VTTBR_EL2是内存虚拟化中stage2页表的基地址存放的寄存器,高16位存放了VMID,用于提高VM TLB性能; TTBR1_EL2,是指在VHE开启的情况下host OS可以在EL2运行,这时候内核使用的页表基地址就存 阅读全文
posted @ 2024-01-13 14:00 半山随笔 阅读(319) 评论(0) 推荐(0) 编辑
摘要: 用C写os是最适合,因为它最贴近底层,且有很多参考实例。rust也是一门系统级的语言,由于其复杂性,相对C还是需要有更多的语言上认识才能进行下一步。 第一, 写OS跟通常的编程最大的不同在于不能调用库函数,也即不能使用系统调用。所有的库要自己实现,比如打印,分配内存之类的。如果在C上可能都要亲历亲为 阅读全文
posted @ 2023-12-10 18:38 半山随笔 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 用nerdctl起容器碰到如下issue: FATA[0001] failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error d 阅读全文
posted @ 2023-12-09 16:12 半山随笔 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 想来今年有几次印象比较深的debug经历。每次的debug时间差不多在一周,每次也都学到一些新的调式手段。总结以下debug的经验。 第一点:debug最重要的逻辑要严密,要基于一个确定的事实用控制变量法去测试猜想。对于不确定的事实不要当成既定事实,这是debug的大忌。错误往往隐藏在下意识中。要尽 阅读全文
posted @ 2023-12-02 11:13 半山随笔 阅读(22) 评论(0) 推荐(0) 编辑
摘要: k8s的配置中又fsgroup这个概念,请看下面这个配置: apiVersion: v1 kind: Pod metadata: name: test spec: restartPolicy: Never securityContext: runAsUser: 1001 fsGroup: 999 c 阅读全文
posted @ 2023-12-02 10:25 半山随笔 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 常常使用journalctl -t来打log,这种方式很容易丢失一些与之相关的其他进程打出的log,必要时使用journalctl -f来获取足够的log。 阅读全文
posted @ 2023-12-01 12:11 半山随笔 阅读(16) 评论(0) 推荐(0) 编辑
摘要: rust项目常常会使用musl作为编译target,这个时候就会使用musl的工具链。musl toolchain安装在$HOME/.rustup/toolchain下面。通常可以用rustup 安装,比如: rustup install stable-unknown-linux-musl 也可以使 阅读全文
posted @ 2023-12-01 12:04 半山随笔 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 早就听说过seccomp,只是知道他是控制syscall的。因为解一个bug,对seccomp了解多了一丢丢,记录一下。 seccomp是linux用来控制用户进程系统调用使用的。有三种模式: SECCOMP_SET_MODE_STRICT: 严格限制系统调用的使用,只允许read,write,_e 阅读全文
posted @ 2023-12-01 10:26 半山随笔 阅读(236) 评论(0) 推荐(0) 编辑