Skip to content
GitLab
Explore
Projects
Groups
Topics
Snippets
Projects
Groups
Topics
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
educg-net-28668-2608132
project2608132-1860
Commits
6d48ea6d
Commit
6d48ea6d
authored
3 months ago
by
某某某
Browse files
Options
Download
Plain Diff
Merge remote-tracking branch 'origin/docs'
parents
0a15f320
adb62a55
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
README.md
+47
-10
README.md
docs/docs.md
+26
-0
docs/docs.md
with
73 additions
and
10 deletions
+73
-10
README.md
+
47
−
10
View file @
6d48ea6d
**学校:**
合肥工业大学(翡翠湖校区)
<br>
**参赛方向:**
小型内核实现
<br>
**队伍编号:**
<br>
**队伍名:**
LH
<br>
**队伍成员:**
张赫、林昀喆
<br>
**指导老师:**
田卫东、周红鹃
<br>
## 基本信息
# 项目简介
**参赛方向:**
小型内核实现
**队伍编号:**
T202410359994432
**队伍名:**
LH
# 项目
完成内容
#
# 项目
简介
# 未完成内容
本项目是一个从零开始开发操作系统内核设计。
进一步实现buf.c缓冲区代码编写,以及文件系统上层接口等内容
\ No newline at end of file
## 开发环境与运行方式
### 开发环境
-
Ububtu-22.04
-
qemu-system-riscv64
-
riscv64-unknown-elf-gcc
-
[
rustsbi
](
https://github.com/rustsbi/rustsbi
)
### 运行方式
**make**
确保安装了上述工具以及其他必要的开发环境
```
make run
```
**debug**
如果你希望
`DEBUG`
,使用
`export DEBUG=y`
, 然后
`make run`
,即可使用 riscv-gdb 进行调试。
项目中的一些配置信息在
`config/config.json`
中,可进行相关配置。
**clean**
清理环境
```
make clean
```
**vscode**
可直接使用 vscode 调试前端进行调试、构建项目或清理项目。
## 开发路线
首先实现了一些基本的函数库,然后实现基本内存管理,时钟中断,随后实现了 虚拟内存 sv39 ,而后实现了进程基础功能,随后设计了一个简单的文件系统。开发的想法是从头到尾走一遍,然后对各部分进行优化,实现更优策略,使用更优算法。
详见
`docs`
目录。
## 参考资料
[
xv6-riscv
](
https://github.com/mit-pdos/xv6-riscv
)
\ No newline at end of file
This diff is collapsed.
Click to expand it.
docs/docs.md
0 → 100644
+
26
−
0
View file @
6d48ea6d
## config
在
`config/config.json`
中,可以相关内容的配置。
思路是可以按照 Debug、Build 模式去进行相应配置,System 用于配置各种操作系统选项。
`config/config.py`
会对这个
`config.json`
进行解析,生成对应的
`config.h`
文件,其中包含相应的宏定义。
在各个文件中
`include`
`config.h`
之后,即可按照配置选项执行相应功能,如 Debug 模式下,可以选择想要打印相关信息的函数。
## Trap
中断向量位于
`trap_v.S`
中,其中会保存关键寄存器,然后跳转至
`trap_handler`
函数,在该函数中会进一步细分
`interrupt`
`exception`
,根据
`scause`
寄存器中相应的值执行相应的处理函数。
## 虚拟内存
实现了 riscv sv39 三级页表。实现了基本的虚拟内存映射、回收、页表复制、范围回收、检查权限等。
## fs
关于磁盘部分
`disk.c`
以及相关的部分来自于
`xv6-riscv`
,对其做了简单的修改,用于适配。
实现了基本的文件操作,并实现了用于本项目的简单的磁盘格式化工具。
## 总结
整个项目,这与时间分配不足有关。原本是希望能各个部分简单实现,然后各个部分去逐步优化,但由于各种各样的因素,没能做到。之后继续努力。
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment
Menu
Explore
Projects
Groups
Topics
Snippets