The project was originally named in honor of my brother YuJian, but later changed its name to RendezvOS, which was taken from the word rendezvous, used to express a romantic and expectant encounter.
YuJian is my senior brother, a 2020 master's student in the Department of Computer Science and Technology at Tsinghua University. He has an incredible talent for mathematics and computer science, as well as an extremely hard and diligent attitude to study and work, which is my role model in life
RendezvOS is the standalone kernel tree. In another word, it's a core of a kernel. It contains the boot flow, memory management, task/thread management, IPC, and the architecture-specific code needed to bring the kernel up.
The repository root now acts as the integration layer for the Linux-compatible modules and the user-test payload. If you are working on the full system, prefer the root-level Makefile. If you want to exercise the kernel itself, use the commands in this document.
RendezvOS can still be built and run by itself.
cd RendezvOS
make ARCH=x86_64 config
make ARCH=x86_64 runThis mode keeps its own RendezvOS/build/ output directory and is useful for kernel-only experiments or core-side tests.
If you change the architecture config under RendezvOS/script/config/config_##arch##.json, rerun:
make ARCH=x86_64 configThat module should provide the syscall entry, IRQ registration, and the kernel init entry point used after main.
If you need the toolchain and emulator setup, run:
./build_env.shThe script installs the required packages and toolchains for the kernel build.
Use the usual make run flags in standalone RendezvOS/ mode:
make ARCH=x86_64 run LOG=true
make ARCH=x86_64 run DBG=true
make ARCH=x86_64 run DUMP=true
make ARCH=x86_64 run SMP=1
make ARCH=x86_64 run MEM_SIZE=1GNotes:
LOG=trueenables extra QEMU logging.DBG=trueenables GDB-friendly boot parameters.DUMP=trueenables disassembly output, thenmake dumpwrites it.SMPsets the CPU count.MEM_SIZEsets the guest memory size.
The architecture config files are read by configure.py and define the kernel build settings for each supported architecture.
Supported standalone RendezvOS configs currently include:
x86_64aarch64riscv64loongarch
Some code was reused from open-source projects:
- U-Boot: device-tree related code and definitions
- Linux: errno and other common kernel conventions