这里是项目简介
This is the repository of 2021 OS comp, 项目进度安排移步至Worktile
这里记录了所有输出文档:
Week0 ~ Week8
均为调研阶段,这个阶段主要用于学习以及熟悉SylixOS;
Week9 ~ Week10
为开发准备阶段,这一阶段搭建好了自底向上的开发环境,HoitFS进入第一个里程碑;
Week11 ~ Week17
为开发阶段,这一阶段完成了大量编码工作,并在Week17时交付初稿,HoitFS进入第二个里程碑;待续……
主要挑选合适的项目, 并对各项目进行再评估;
定夺项目Proj32,开始着手预研工作;
本周总结:第一阶段预研工作(2021-01-24)
主要介绍Flash、基于Flash的文件系统:JFFS、JFFS2、YAFFS、SPIFFS等、SylixOS的IDE配置、TPSFS的掉电安全机制等;
与Part1类似,额外添加了Github上提供的一种写平衡 算法;
本周总结:第二阶段预研工作(2021-01-31)
主要确定了Why Norflash、板子选型,研究了F2FS的基本结构以及其优势、研究了基于ramFs的SylixOS注册文件系统的一般方式、学习了关于**/mnt**、/dev目录的意义,以及驱动相关的概念,最后通过UCS的Lab7,深入理解了LFS的写操作、更新操作、GC操作等;
主要研究了MTD的结构、详细方法、NorFlash驱动模板框架等;
除了研究F2FS文件系统,还特别研究了SylixOS中Yaffs文件系统的装载工作;
- NAT
- GC
- Adaptive Logging
- Multi Log
简要经历了SylixOS中内核模块的开发流程,研究了Linux中文件系统的注册与挂载,完成了内核模块的注册、卸载,完成了Linux内核开发的VScode配置;
主要研究了Linux中的文件系统以及文件系统的挂载,研究了SylixOS中ramFs的实现;
主要研究了SylixOS中Yaffs文件系统的驱动安装、系统挂载流程,至于Yaffs如何对设备进行读写操作还需进一步考察;
主要研究了SylixOS中的BSP,以及验证并确定开发流程,另外对mini2440虚拟机的norflash进行了一定的研究,无果;
主要研究了JFFS2的概貌,掌握几种数据结构的含义,这是JFFS2源码研究的第一部分;
主要研究了SylixOS中的Yaffs2与MTD设备交互过程,但是蒋老师说这部分对项目来说没什么太大的作用;
在SylixOS BSP中模拟SST39VF1601 norflash,提供了接口与用例,并提供了norflash坏块检测方法,研究了mini2440串口连接方法;
主要研究了JFFS2的文件、目录创建、写入操作,需要再做总结;
根据ramFs,在BSP项目中开发simpleFs,能够使SylixOS访问simpleFs的所有API,包括mount、mkdir、open等等,这里介绍修改内容,以及访问流程;
在Week7,一定要完成在mini2440上对Norflash进行访问控制,这将成为第一个里程碑;另外,需要验证norflash模拟器的可行性,等待;完成第一代文件系统设计初稿……加油啊!!!
主要工作是在mini2440真实板子上烧录SylixOS,包括烧录至内存以及烧录至nandflash上,关于如何访问norflash,还在等待翼辉信息的回复中;
主要工作是研究透了JFFS2的工作方式,包括文件的系统的挂载、文件的创建、打开、关闭、删除等,还需进一步的总结;
对RamFS进行了深入了解,基于FAKE NOR完成LFS FS的基本create、mount操作;
08-SylixOS&Driver&FS-Continue-Part1
主要工作是能够通过NorFlash启动SylixOS,并编写了NorFlash驱动程序,能够对NorFlash进行读写擦除操作,提供API文档;
08-SylixOS&Driver&FS-Continue-Part2
自行设计了基于JFFS2的文件系统,去掉了一些细节,总结了基本思想,基本可以开工,还需要进行修改,谨记F2FS的内容
- NAT
- GC
- Adaptive Logging
- Multi Log
09-SylixOS&Driver&FS-Again-Part1
完成最终NorFlash驱动,基于Am29LV160DB
Nor Flash。集成Fake Nor Flash与True Nor Flash。本文主要介绍了实现原理;
09-SylixOS&Driver&FS-Again-Part2
搭建HoitFS基础框架,为HoitFS V0.1打下基础;
09-SylixOS&Driver&FS-Again-Part3
基本完成基于Fake Nor的LFS FS,包括了mount、unmount、ls等,打通SylixOS构建文件系统的通路;
设计HoitFS基本层次;制定里程碑计划;根据SylixOS报告与夏老师的建议,主要需要在开发过程中深挖nand与nor flash的区别,从而对症下药,其次,对于掉电安全部分还需要进行相关调研(主要是写、修改、删除)部分; 10-HoitFsDev-Part3
完成LFS的read、write、seek、rename等基本功能,彻底打通文件系统与SylixOS
的I/O交互流程;
本周总结:第11~17周处于开发阶段,文档以及会议工作落了下来,由于学校事情也比较多,因此开发时间不是很够……不过好在交出了初稿
HoitFS V1.0:初赛报告文档.pdf
HoitFS 答辩:初赛PPT
完成HoitFS FragTree API接口文档;总结GC方法;总结测试方法等;然后便是记录了一些联调坑点;
完成测试脚本;
这里记录了会议纪要
这里记录了利用Git开发的基本流程
1. Get Start
# clone project
git clone https://github.com/Hoit-23o2/HoitOS.git
2. Basic Development
# pull project
git pull origin main
...
# add some modification
git add .
# commit
git commit -m "一些描述"
# REMEMBER MUST "pull" before "push"
git pull origin main
# push
git push origin main
代码规范请参考这里。