Jiajun Yao

Stay hungry, Stay foolish.

Linux PID

In the Linux world, pid means two things. It’s the id of a process from POSIX’s point of view and the id of a task from kernel’s point of view.

Microbenchmark

Microbenchmark is used to measure the performance of a small piece of code for the purpose of performance optimization. Writing a good microbenchmark is hard and that’s why we should use microbenchmark frameworks (e.g. JMH for Java and Google Benchmark for C++) to help us. This post contains microbenchmarks that I think are interesting.

HugeTLBFS Read Bug

Hit a Linux kernel bug that read() returns wrong data if it crosses a hugepage boundary.

Jonathan Lee

我说我喜欢你的歌,我不知道这算不算是一件好事。 我说我喜欢你的词,总是道出我心中不欲人知的事。

What I Have Learned From CMU CS Education

在南京大学软件学院读完本科后我到CMU读了硕士。虽然在CMU只有短短的一年半时间,但我还是从多个方面体验到了CMU(美国)的计算机教育。这其中有很多东西值得国内的高校学习借鉴。

What I Have Learned From Writing a Kernel From Scratch

Last semester, I took the course 15410 and wrote a kernel from scratch with my partner. I learned a lot from this course and the kernel project. Following is what I have learned:

  1. Never Failed Functions
  2. Comment on Why
  3. Synchronization
  4. Error Handling
  5. Why Writing a Kernel From Scratch
  6. Misc.