Skip to content

Latest commit

 

History

History
243 lines (142 loc) · 9.29 KB

README_BAKUP.md

File metadata and controls

243 lines (142 loc) · 9.29 KB

HoitOS

这里是项目简介

This is the repository of 2021 OS comp, 项目进度安排移步至Worktile

worktile

Log

这里记录了所有输出文档:

Week0 ~ Week8均为调研阶段,这个阶段主要用于学习以及熟悉SylixOS;

Week9 ~ Week10为开发准备阶段,这一阶段搭建好了自底向上的开发环境,HoitFS进入第一个里程碑

Week11 ~ Week17为开发阶段,这一阶段完成了大量编码工作,并在Week17时交付初稿,HoitFS进入第二个里程碑

待续……

Week0

00-Prepare

主要挑选合适的项目, 并对各项目进行再评估;

Week1

01-SettleDown

定夺项目Proj32,开始着手预研工作;

Week2

本周总结:第一阶段预研工作(2021-01-24)

02-PreResearch-Part1

主要介绍Flash、基于Flash的文件系统:JFFS、JFFS2、YAFFS、SPIFFS等、SylixOS的IDE配置、TPSFS的掉电安全机制等;

02-PreResearch-Part2

与Part1类似,额外添加了Github上提供的一种写平衡 算法;

Week3

本周总结:第二阶段预研工作(2021-01-31)

03-DeepResearch-Part1

主要确定了Why Norflash、板子选型,研究了F2FS的基本结构以及其优势、研究了基于ramFs的SylixOS注册文件系统的一般方式、学习了关于**/mnt**、/dev目录的意义,以及驱动相关的概念,最后通过UCS的Lab7,深入理解了LFS的写操作、更新操作、GC操作等;

03-DeepResearch-Part2

主要研究了MTD的结构、详细方法、NorFlash驱动模板框架等;

03-DeepResearch-Part3

除了研究F2FS文件系统,还特别研究了SylixOS中Yaffs文件系统的装载工作;

  • NAT
  • GC
  • Adaptive Logging
  • Multi Log

Week4

本周总结:第三阶段-SylixOS研究(2021-02-14)

04-SylixOSResearch-Part1

简要经历了SylixOS中内核模块的开发流程,研究了Linux中文件系统的注册与挂载,完成了内核模块的注册、卸载,完成了Linux内核开发的VScode配置;

04-SylixOSResearch-Part2

主要研究了Linux中的文件系统以及文件系统的挂载,研究了SylixOS中ramFs的实现;

04-SylixOSResearch-Part3

主要研究了SylixOS中Yaffs文件系统的驱动安装、系统挂载流程,至于Yaffs如何对设备进行读写操作还需进一步考察;

Week5

本周总结:第四阶段-SylixOS进阶研究(2021-02-23)

05-SylixOSResearch-Part1

主要研究了SylixOS中的BSP,以及验证并确定开发流程,另外对mini2440虚拟机的norflash进行了一定的研究,无果;

05-SylixOSResearch-Part2

主要研究了JFFS2的概貌,掌握几种数据结构的含义,这是JFFS2源码研究的第一部分;

05-SylixOSResearch-Part3

主要研究了SylixOS中的Yaffs2与MTD设备交互过程,但是蒋老师说这部分对项目来说没什么太大的作用;

Week6

本周总结:第五阶段-基于SylixOS的实践研究(2021-03-02)

06-SylixOSPractice-Part1

在SylixOS BSP中模拟SST39VF1601 norflash,提供了接口用例,并提供了norflash坏块检测方法,研究了mini2440串口连接方法;

06-SylixOSPractice-Part2

主要研究了JFFS2的文件、目录创建、写入操作,需要再做总结

06-SylixOSPractice-Part3

根据ramFs,在BSP项目中开发simpleFs,能够使SylixOS访问simpleFs的所有API,包括mount、mkdir、open等等,这里介绍修改内容,以及访问流程;

在Week7,一定要完成在mini2440上对Norflash进行访问控制,这将成为第一个里程碑;另外,需要验证norflash模拟器的可行性,等待;完成第一代文件系统设计初稿……加油啊!!!

Week7

本周总结:第六阶段-NorFlash驱动、基于SylixOS的文件系统设计 - 第一部分(2021-03-09)

07-SylixOS&Driver&FS-Part1

主要工作是在mini2440真实板子上烧录SylixOS,包括烧录至内存以及烧录至nandflash上,关于如何访问norflash,还在等待翼辉信息的回复中;

07-SylixOS&Driver&FS-Part2

主要工作是研究透了JFFS2的工作方式,包括文件的系统的挂载、文件的创建、打开、关闭、删除等,还需进一步的总结;

07-SylixOS&Driver&FS-Part3

对RamFS进行了深入了解,基于FAKE NOR完成LFS FS的基本create、mount操作;

Week8

本周总结:第七阶段-NorFlash驱动、基于SylixOS的文件系统设计 - 第二部分(2021-03-16)

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

Week9 - 里程碑

本周总结:第八阶段-NorFlash驱动、基于SylixOS的文件系统设计 - 第三部分(2021-03-23)

09-SylixOS&Driver&FS-Again-Part1

完成最终NorFlash驱动,基于Am29LV160DB Nor Flash。集成Fake Nor FlashTrue 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构建文件系统的通路;

Week10

本周总结:第九阶段-HoitFS正式开发-阶段一(2021-03-29)

10-HoitFsDev-Part1

设计HoitFS基本层次;制定里程碑计划;根据SylixOS报告与夏老师的建议,主要需要在开发过程中深挖nand与nor flash的区别,从而对症下药,其次,对于掉电安全部分还需要进行相关调研(主要是写、修改、删除)部分; 10-HoitFsDev-Part3

完成LFS的read、write、seek、rename等基本功能,彻底打通文件系统与SylixOS的I/O交互流程;

Week11~17 - 里程碑

本周总结:第11~17周处于开发阶段,文档以及会议工作落了下来,由于学校事情也比较多,因此开发时间不是很够……不过好在交出了初稿

HoitFS V1.0:初赛报告文档.pdf

HoitFS 答辩:初赛PPT

11-HoitFsDev-Stage2-Part1

完成HoitFS FragTree API接口文档;总结GC方法;总结测试方法等;然后便是记录了一些联调坑点;

11-HoitFsDev-CacheTest-Part3

完成测试脚本;

ConfigurationControlBoard(CCB)

这里记录了会议纪要

  1. 2021-01-12

  2. 2021-01-14

  3. 2021-01-24

  4. 2021-01-31

  5. 2021-02-07

  6. 2021-02-23

  7. 2021-03-01

  8. 2021-03-08

  9. 2021-03-15

  10. 2021-03-23

  11. 2021-03-29

  12. 2021-05-18

Basic Develop Method

这里记录了利用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

Specification

代码规范请参考这里