Skip to content

Latest commit

 

History

History
137 lines (75 loc) · 4.59 KB

develop.md

File metadata and controls

137 lines (75 loc) · 4.59 KB

未整理的开发文档

定时与 Notion 同步

0. 前期准备

对拍程序

语言+编译链选择

  1. 使用 rust
  2. 差一个 rust 和 c/cpp 功能/语法糖表格区别
  1. Rust 学习资料

  2. 使用 rustdoc 对代码进行注释

  3. 远期预计使用 build2 保留

VSCode + devcontainer.json

如果不使用VSCode,替代方案:docker pull tiger3018/oskernel-dev

流程简介:

  1. clone 源码仓库 git clone https://github.com/Tiger3018/OSkernel2023-0o1744/
  2. 使用 VSCode 打开文件夹,使用 Remote:Container 插件选择 Open this folder in container
  3. make(生成测评要求的二进制文件)和 make qemu(不生成文件,直接模拟测评机测评过程)

1. Boot + Supervisor Mode

sbi

https://zhuanlan.zhihu.com/p/164394603

https://dingfen.github.io/risc-v/2020/08/05/riscv-privileged.html

https://github.com/riscv-non-isa/riscv-sbi-doc/blob/master/riscv-sbi.pdf

2. Process

model preview

virtual memory

Untitled

TLB快表:

平滑:

MIT 6.828

MIT 6.828

time sharing

multi-programming →multitasking

3. Module Call

syscall

rCore原版代码的问题

https://gitlab.eduxiji.net/2019301887/oskernel2022-npucore/-/blob/master/Doc/debug/技术细节与错误文档.md

fat32

找到一篇讲的比较细致的去年开源文档 by zbh

Doc/fs/fat.md · master · tempdragon / OSKernel2022-NPUcore · GitLab

我其实一直在想同时实现fat16/32/exfat有没有意义,效果大不大

而这篇就只是讲了异步,没啥参考意义

doc/第六章-异步fat32文件系统.md · main · 无相之风战队 / 华中科技大学-无相之风战队-proj68 · GitLab

4. 软件使用

rustc

dtolnay/cargo-expand#113 (comment)

RUSTC_BOOTSTRAP=1

rust-project.json

https://danielmangum.com/posts/risc-v-bytes-rust-cross-compilation/

qemu

^]A + X

build2

https://build2.org/faq.xhtml#ninja

https://build2.org/build2/doc/build2-build-system-manual-a4.pdf https://build2.org/build2/doc/build2-build-system-manual.xhtml

https://build2.org/build2-toolchain/doc/build2-toolchain-install-a4.pdf

5. 参考文档

https://os.phil-opp.com/zh-CN/

https://0xax.gitbooks.io/linux-insides/content/Initialization/linux-initialization-1.html

https://github.com/janaSunrise/rust-64-bit-os