• yztz's avatar
    format · 649a7000
    yztz authored
    649a7000
changelog 6.85 KiB
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的适配
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
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. 修改了内核线程创建逻辑,现在无需在线程例程中手动释放锁了
141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
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