Please check litchi-rs, the continuation of this project in ~100% Rust!
Bugen's toy kernel for x86 systems implemented in modern C++.
Litchi is compiled to i386-elf target, which may require a cross-compiler. For macOS user, some Homebrew formulae and bottles are provided (see BugenZhao/homebrew-litchi).
Make sure you have Homebrew installed, then simply run:
$ brew tap bugenzhao/litchi
$ brew install i386-litchi-elf-binutils \
i386-litchi-elf-gcc \
i386-litchi-elf-gdb \
litchi-qemu
Litchi is built by CMake, which is fairly easy to build and run:
$ git clone https://github.com/BugenZhao/Litchi.git && cd Litchi
$ mkdir build && cd build && cmake .. && make qemu
- Adopt bootloader from JOS / xv6
- Bootloader support for floppy drive
- Port old Litchi codes
- CMake build support
- Kernel level standard output
- Color output in console
- Serial port color output
- Serial port input
- Kernel panic and warning
- Programmed keyboard input support
- Kernel level standard input
- Input with format
-
stringToLong
-
scanFmt
-
- Basic debugging information
- Basic kernel commands
-
help
-
echo
-
vm-*
-
map
-
dump
-
-
...
-
- Physical memory detection
- Physical memory management
- Virtual memory
- Kernel address space
- Kernel heap management
- User level task
- Interrupt / Rrap
- System call
- Test for standard library
- Interrupt based keyboard input
- Shell
- Multitasking
- Multi-core support
- Port to x86-64
- ...