
That is, this document describes the overall content of the directory, author, etc.
Ideas and personal preferences during the OS design process.
The overall framework structure of the system to this stage.
Experiences before and after the development of qianpinyi.
Experiences before and after the development of PeaceSheep.
The development progress process from the beginning of writing code to the middle of writing the document.
Students in need may be inspired by some bottlenecks, problems and solutions encountered during the development process.
Some debugging experience and record of experience.
The content that is not yet perfect in the system, the areas that need to be improved in the future, and the content that is ready to be implemented in the future.
System startup related implementation documents, including startup code, initialization process, etc.
Related implementation documents for interrupts and exceptions, including reception and distribution of interrupts and exceptions, saving and restoring the site when trapped, etc.
The process management overview document introduces the overall design ideas and structures, and describes the process structure (class).
Documents that describe the composition and design of process objects in detail.
Implementation documents for process switching, execution and startup.
Implementation documents for spin lock, semaphore and their expansion functions.
Implementation document that parses ELF format files and connects with this system.
Memory management overview document introduces the overall design ideas and structure.
The design and implementation documents of physical memory allocator, including two implementations: idle linked lists and similar partner systems.
Virtual memory management implements documents, including page tables, page table entries, virtual memory space, virtual memory area, page missing interrupt processing, memory copy, etc.
File system overview document introduces the overall design ideas and structure.
Design documents for virtual file systems. Virtual file systems are abstractions of various file systems, which facilitates isolating various modules and blocking specific implementation differences. In addition, the design of virtual file system manager and file nodes is also introduced. Virtual file system manager is a global class that manages the virtual file system and is responsible for the management of the global directory tree.
Design documents including standard input and output files, pipeline files, memory map files, memory files and other special types of files.
The design document of the file handle, the file handle is the interface for the process to operate the file.
Specific implementation documents of the FAT32 file system.
Design implementation of the overall structure of system calls.
The specific design and implementation documents for each system call related to the competition.
Introduces documentation on implementation solutions related to equipment management.
During the development process, many infrastructure libraries used in the development application, the underlying infrastructure library, as well as some common content, are used to describe the relevant documents.
KOUT is an output stream class similar to cout, and has been strengthened in various aspects. The document introduces how to use and how to implement it.
Various convenient tools implemented by C++ templates.
String related tools.
The implementation of this system refers to and learns systems including XV6, XV6-K210, rCore, uCore and other systems. I am very grateful to these pioneers for their valuable tutorials and documents.
For the instructors of this competition, I am very grateful to teachers Liu Liang and Zhu Xiaojun from Nanjing University of Aeronautics and Astronautics. We took the courses of these two teachers and received their guidance and help during the competition.
In addition, I am very grateful to our teacher Feng Aimin, who made us understand this competition and also provided guidance and help on Riscv and other aspects during the competition. I am also very grateful to our C++ programming teacher Pid Chang for providing us with guidance on the idea of writing the operating system in the initial way.
In addition, I would like to thank the organizing committee for providing such a platform for learning and displaying themselves, and thank the teachers and classmates who provided help in the group.
By: qianpinyi
2022.06.04