(xv6)kernelmemfsとmemide.o
memide.o
Fake IDE disk; stores blocks in memory. Useful for running kernel without scratch disk.
とあるとおり、Makefileでkernelをビルドする際にこいつを差し替えてる感じ。GAIAのをみるとわかるように実機で動かす場合はちょっと面倒な処理が必要かも。
Makefile
xv6-mips
MEMFSOBJS = $(filter-out ide.o,$(OBJS)) memide.o kernelmemfs: $(MEMFSOBJS) entry.o initcode kernel.ld fs.img $(LD) $(LDFLAGS) -T kernel.ld -o kernelmemfs entry.o $(MEMFSOBJS) -b binary initcode fs.img $(OBJDUMP) -S kernelmemfs > kernelmemfs.asm $(OBJDUMP) -t kernelmemfs | sed '1,/SYMBOL TABLE/d; s/ .* / /; /^$$/d' > kernelmemfs.sym
xv6-gaia
# We use memfs as default because our CPU architecture has no disk. MEMFSASMS = $(filter-out _ide.s,$(ASMS)) _memide.s kernelmemfs: $(MEMFSASMS) initcode _min-rt fs.img ./tools/gen_binary_blobs 0x80002000 initcode _min-rt fs.img $(AS) $(ASFLAGS) -c -o _kernelmemfs -e 0x80002000 -start _start $(MEMFSASMS) _binary_blobs.s $(UCCLIBS) -f __UCC_HEAP_START ./tools/gen_binary_blobs `ruby -e "print open('_kernelmemfs').size + 0x80002000"` initcode _min-rt fs.img $(AS) $(ASFLAGS) -c -o _kernelmemfs -e 0x80002000 -start _start $(MEMFSASMS) _binary_blobs.s $(UCCLIBS) -f __UCC_HEAP_START cat _kernelmemfs initcode _min-rt fs.img > kernelmemfs rm _kernelmemfs ./tools/attach_boot_header kernelmemfs