a multi task study os based on x86_64
- wsl2 ubuntu 22.04 LTS(gcc version 11.4.0) / MacOS
- bochs 2.8(compile need with --enable-smp)
// wsl2 bochs 2.8 Compile configure:
./configure --with-x11 --with-wx --enable-debugger --enable-disasm \
--enable-all-optimizations --enable-readline --enable-long-phy-address \
--enable-ltdl-install --enable-idle-hack --enable-plugins --enable-a20-pin \
--enable-x86-64 --enable-smp --enable-cpu-level=6 --enable-large-ramfile \
--enable-repeat-speedups --enable-fast-function-calls \
--enable-handlers-chaining --enable-trace-linking \
--enable-configurable-msrs --enable-show-ips --enable-cpp \
--enable-debugger-gui --enable-iodebug --enable-logging \
--enable-assert-checks --enable-fpu --enable-vmx=2 --enable-svm \
--enable-3dnow --enable-alignment-check --enable-monitor-mwait \
--enable-avx --enable-evex --enable-x86-debugger --enable-pci \
--enable-voodoo
cp misc/bximage.cpp misc/bximage.cc
cp iodev/hdimage/hdimage.cpp iodev/hdimage/hdimage.cc
cp iodev/hdimage/vmware3.cpp iodev/hdimage/vmware3.cc
cp iodev/hdimage/vmware4.cpp iodev/hdimage/vmware4.cc
cp iodev/hdimage/vpc-img.cpp iodev/hdimage/vpc-img.cc
cp iodev/hdimage/vbox.cpp iodev/hdimage/vbox.cc
M sillicon MacOS bochs compile configure need to add --with-sdl
FAT32 img create: 4kb, 2GB
implement based on Single CPU
- Advanced memory manage, based on SLAB
- interrupt, support APIC and 8259A, implement Local APIC and I/O APIC
- keyboard, mouse and disk(block device model) driver based on APIC
- task, user level function, system call
- multi cores(test env: 1:2:2) supported, based on SMP
- implement RTC by I/O CMOS
- support multi cpus task schedule based on CFS schedult strategy, IPI and HPET timer(softirq)
- trap exception with regs display and kernel backtrace
- file system, based on FAT32 and VFS
- POSIX system call
- shell env and shell command, create KEYBOARD.DEV file for r3 user get keyboard input info