http://os.cs.tsinghua.edu.cn/oscourse/OS2018spring/projects/g08
NOTICE: If you want run ucore risc-v 64 in SMP, please checkout to smp branch. (master branch is not the newest, because we are debugging.
- Configure:
make menuconfig ARCH=riscv_64
or
make ARCH=riscv_64 defconfig
We temporarily use NUMA settings in menuconfig to set the SMP config. (We can't enable NUMA in risc-v.) If you want to enable SMP, make sure the CPU number in NUMA settings is N (default is 1), which means the number of processors.
- Create file system
make sfsimg
make sfsimg2
Here we use sfsimg2 for SFAT file system, which is an example to prove the correctness of our LKM in risc-v.
- (Optional) create swap file If you define "Support for paging of anonymous memory(swap)" in menuconfig, then run:
make swapimg
- Create kernel
make
- Run ucore
./uCore_run -c -d obj
- (Optional) Test ucore
./uCore_test -d obj
Note: Support for Darwin (macOS) has been added to the test script. Note however, that macOS by default ships the BSD sed
, which is not supported by the test script. To run the test script, you need to install the GNU sed
. Instructions:
brew install gnu-sed
SED=gsed ./uCore_test -d obj
- LKM: https://github.com/riscv-labs/OS2018spring-projects-g08/blob/master/docs/lkm.md
- RISC-V pk/BBL: https://github.com/riscv-labs/OS2018spring-projects-g08/blob/master/docs/pk_bbl.md
- ucore+ i386, ucore diff: https://github.com/riscv-labs/OS2018spring-projects-g08/blob/master/docs/ucore%2B%20i386%20vs%20ucore.md
- ucore+ rv64 porting: https://github.com/riscv-labs/OS2018spring-projects-g08/blob/master/docs/ucore%2B_rv64_porting.md
- RISC-V ISA: https://github.com/riscv-labs/OS2018spring-projects-g08/blob/master/docs/riscv_priv1.10.md, https://github.com/riscv-labs/OS2018spring-projects-g08/blob/master/docs/riscv_spec2.2.md
- SMP: https://github.com/riscv-labs/OS2018spring-projects-g08/blob/master/docs/smp.md
- RISC-V specifications (http://riscv.org)
- User-level ISA specifications
- Privileged ISA specifications
- ucore for RISC-V 64 (https://gitee.com/shzhxh/ucore_os_lab)
- ucore+ (https://github.com/chyyuu/ucore_os_plus)
- bbl-ucore (https://ring00.github.io/bbl-ucore/)
- RISC-V Proxy Kernel and Boot Loader (https://github.com/riscv/riscv-pk)
- ucore SMP in x86 (http://os.cs.tsinghua.edu.cn/oscourse/OS2013/projects/U01)
- ''The Scalable Commutativity Rule''
- 蓝昶ucore+ LKM (http://os.cs.tsinghua.edu.cn/oscourse/OS2012/projects/U06)