-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathchangelog
223 lines (181 loc) · 6.85 KB
/
changelog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
2022/3/20:
1. 拉取xv6源代码,修改README
2022/3/26
1. 装载rustsbi-qemu
kernel.l 将entry起始点放在了0x80200000(通过指定text.entry)
entry.S 将跳转点从start改为了main
start.c 移除
trap.c 修改devintr相关处理函数,修改trapinithart函数,增加RESET_TIMER宏
sbi.h 增加sbi调用接口
main.c 将start.c中定义的内核栈移动到main.c中
vm.c 增加对CLINT_MTIME地址的直接映射
riscv.h 增加些许寄存器读写内联函数
2. 添加doc目录
3. 添加bootloader目录
4. 修改Makefile(后续可能改用cmake)
增加些许注释
修改gdb调试端口,使其更加简洁(固定为了1234)
由于加载sbi需要,对qemu的内存扩容至130M,并将bios设置为了rustsbi
2022/3/31
1. 重构工程目录
2. 重构Makefile
3. 修改部分gitignore内容以适应新的工程目录
4. 更新文档
2022/4/3
1. 自动化系统调用
2. 自动化生成插入initcode代码
3. 添加相关处理脚本(bin2array.py sys_tbl.py)
4. 修复.d文件的依赖错误bug
5. 优化make clean
6. 更新文档
2022/4/4
1. doc下「装载rustabi.md」重命名为「装载rustsbi.md」
2. 回滚测试PR时修改的README
2022/4/7
1. 改善Makefile脚本,添加run-*.sh
2. 添加tools,内含常用工具
3. 将kernel内的EXTRA_CLAGS合并到CFLAGS内
4. 添加SD卡驱动支持(不完备)
2022/4/16
1. 添加对大页(2MiB)的支持
2. 将外设IO地址映射至高地址,为后续的用户空间让位
3. 添加test文件夹,用于存放调试记录
4. 修复每次运行用户程序都要重新链接的bug
2022/4/23
1. 添加copy-on-write(可选开关)
2. 添加buddy系统支持(可选开关)
3. 修复潜在的编译错误
4. 添加相关debug日志
5. 公共页表的支持
6. 引入SLOB,还未适配
7. 支持分支优化
2022/5/2
1. SLOB测试通过,进一步的表现有待实践考究
2. 添加内核内测试目录tests
2022/5/11
1. 完成fat32文件系统
2022/5/19
1. 增加了SD驱动对DMA的适配
2022/5/20
1. 优化了DMA与SPI等传输逻辑,详见doc
2. 现在可以添加用户程序了
3. 修复了chdir目录名不对的bug
4. 修复了getdents的相关bug,增加了ls测试程序
2022/5/21
1. 修复了簇追加错误的bug
2022/5/22
1. 引入profiler性能分析器
2. 将timer模块单独抽离以方便配合profiler
2022/5/23
1. 扩展k210内存至8MB,增加内存使用情况分析
2. 改进了内核页表的映射方式
// 此处断更...
2022/6
1. pagecache初版
2. bio优化
2022/7
1. 引入MMAP+VMA内存管理体系,重构了用户空间内存布局
2. 使用面向对象的方法重构资源对象
3. 重写exec使之支持SystemV标准的初始用户栈帧结构
4. 支持动态链接程序加载执行
5. 优化fat32文件读取函数,修复若干读取bug
6. 修复qemu浮点寄存器异常的问题
7. 修复文件描述符的若干内存泄漏bug(目前已重构为fdtable对象)
8. 新增bss自动清零(包含K210)
9. 修复文件创建时的锁引用bug
10. 新增类型off_t
11. 支持多线程以及POSIX标准线程库(包括内核线程:例如scavenger)
12. 支持futex
13. 支持简单信号机制(无队列)
14. 将qemu可用内存调整至6M以符合K210场景内存压力测试
15. 满足了大部分MUSL基本库函数系统调用
16. 支持更友好的riscv异常/中断提示
2022/8/5
1. 合并pagecache并通过初步测试
2. 修改enable/disablesum(使用宏实现)
3. 修复dirlookup..目录项的问题
4. 新增页回收(目前仅支持pagechache的回收)
2022/8/9
1. 完成lmbench适配工作
2. 完成chidr
3. 优化底层fat32逻辑的复用
4. 完成busybox文件相关支持
2022/8/16
1. 修复浮点寄存器保存问题
2. 完善多核支持
2022/8/18
1. 支持busybox vi
2. 完善簇分配机制
2022/8/22
1. 代码清洗
2023/1/2
1. 等待睡眠队列
2. 增加定时器
2023/1/6
1. 修改了内核线程创建逻辑,现在无需在线程例程中手动释放锁了
2023/1/7
1. 修复了vma的长度bug
2. cmake不再全量编译用户程序
2023/1/9
1. 支持可关闭的色彩输出
2. 支持动态选择sudo
2023/1/12
1. syscall tbl现在支持空行
2. 增加shutdown sbi调用,直接关闭qemu
2023/1/16
1. 更换mkfs与mount的文件镜像制作流程,改用mtools
2. 修复短文件名识别bug
3. 增加current(实验性)
2023/1/20
1. 完善min&max排错机制
2023/1/27
1. 增加栈上内存分配(alloca)
2. 调整utils.h与common.h的宏的定义
3. 增加手工用例mem_test,修复buddy内存分配bug
4. 修改内存管理相关宏的命名
2023/2/25
1. 修改alloc接口实现
2. 移除kalloc接口
2023/2/26
1. 增加freelist实现
2023/3/2
1. 修改类型声明位置,抽取公共声明
2. 删减部分代码,添加部分注释
3. 修复计时错误,提供计时精度补偿
4. 增加编译输出控制
2023/3/4
1. 修改bio部分命令和规范,添加注释
2023/3/7
1. 重构部分mmap内容(resize, vma释放机制)
2. 将保护映射移动到mappages内部
3. 删除部分无用机制/文件(memory.c, _plic.h)
4. 修复slob潜在的内存泄露问题
2023/3/9
1. 格式化了大量文件,完善了部分注释
2. 增加Doxyfile辅助生成文档(尚粗糙)
3. 增加integer.h,用于整型比特位操作
4. 删减了部分无用的page-flags
5. 删除rmap(待重构)
6. 修复了sched中cpu的严重访问bug(b705949)
7. 优化trap处理逻辑
8. 修复了waitqueue潜在的bug
9. 新增irq.c用于处理外部/软件中断
10.修复了futex潜在bug
11.修复了waitpid线程触发的bug
2023/3/13
1. 去除kmap,将其功能统一为mmap相关
2. 修改ioremap,使其兼容(1)
3. 将内核线程页表改为(1)中新增public_map(原先为0号进程的页表)
4. 0号进程将从文件系统读取加载,而不再是使用内嵌二进制代码
2023/3/15
1. 添加CPUS核心数变动未重新编译而导致执行错误的自动纠错机制
2023/3/24
1. 修改等待队列实现机制
2. 修改sleeplock实现机制
3. 部分直接返回0的未实现的系统调用采用`__sys_dummy`表示
4. 修复sleep函数潜在Bug (xv6 sleep/wakeup 将弃用)
5. 修改futex等待队列(等待队列不再使用全局,而是移植thread_group中)
6. 系统调用名不再仅仅debug模式可用
7. 修复信号误唤醒等待队列的问题
2023/3/29
1. 重构fat_helper