Universidade de Tecnologia de Guangdong
Nosso sistema operacional refere-se principalmente ao livro "Programação e prática de arquitetura RISC-V" escrita por Ben Shu.
Outras referências:
"Design e implementação de um sistema operacional de 64 bits"-Tian Yu
riscv-xv6
Faça tudo: compilado
Faça Run: Inicie Qemu
Faça limpo: limpo todos os arquivos gerados
Faça depuração: Iniciar a depuração qemu e GDB
Devido a limitações de tempo, nosso sistema operacional implementa apenas o processamento simples de interrupção, o gerenciamento de memória, as funções de agendamento de processos, uma pequena parte do sistema de arquivos e algumas chamadas do sistema. Como o bug não foi corrigido com sucesso no final, nosso driver Virtio ainda tem problemas e não pode ser usado. O sistema de arquivos não está totalmente concluído. Portanto, o sistema de arquivos não forneceu documentação. Por favor me perdoe.
Corrigimos o bug do driver Virtio, concluímos um sistema de arquivos básicos e apenas suportamos os carregadores de arquivos ELF que executavam ligantes estáticos e suportamos um pequeno número de comandos syscall e shell
Manuseio de exceção e interrupções
Gerenciamento de memória e mapeamento de mesa de página
Gerenciamento e agendamento de processos
Sistema de arquivos virtual VFS
Carregador de elfo
Qu Weikai é responsável pelo desenvolvimento do código, Liang Sijun e Chang são responsáveis pela depuração de bugs e pela redação de documentos.
.vscode:vscode相关
bootloader:opensbi生成的sbi固件,由于使用了QEMU默认的sbi固件,因此该文件夹内的opensbi固件未使用
doc:文档说明
include:头文件
LinkList.h:链表操作
buf.h:与文件系统相关,用于读写虚拟磁盘的缓冲区
csr.h:控制寄存器相关
fs.h:与文件系统相关,由于未完成,目前内容仅有超级块的定义
io.h:与读取写入相关
log.h:文件系统相关,磁盘日志
memory.h:mmu和内存管理相关
page_table.h:页表相关的宏定义
plic.h:plic相关
process.h:进程管理相关
pt_offset.h:与上下文现场保存相关
sbi.h:S模式下系统调用opensbi固件接口
scheduler.h:进程调度相关
sleeplock.h:睡眠锁
syscall.h:系统调用
timer.h:定时器
trap.h:中断和异常
uart.h:16550串口控制器
virtio.h:virtio设备驱动
VFS.h:虚拟文件系统相关
fat32.h:fat32文件系统相关
elf.h:elf格式定义
elf_loader.h:elf加载器
sysflags.h:系统调用使用标志
kernel:内核文件夹
driver:virtio驱动,存在问题
fs:文件系统相关
memeory:内存管理和mmu映射
process:进程管理
trap:中断和异常
boot.S:opensbi引导到跳转至内核
entry.S:汇编相关定义
linker.ld:链接脚本
main.c:内核主函数在内
lib:通用库,包含输出和基本函数
usr:与U模式相关Devido às limitações de tempo e ao nosso nível limitado, não concluímos o trabalho dentro do tempo especificado. No entanto, também aprendemos muito durante esse período. A aula do sistema operacional da escola se concentra na teoria, e a competição nos deu uma compreensão mais profunda do sistema operacional a partir do nível prático. Durante a redação do trabalho, também aprendemos muitas maneiras de melhorar a eficiência do desenvolvimento, como desde o início do uso da depuração do GDB da linha de comando para o aprendizado posterior a usar o VSCODE para se conectar à depuração do GDB, o que melhorou bastante a eficiência de nossa depuração. Embora seja muito lamentável que não tenhamos concluído e testar nosso sistema operacional, o conhecimento que aprendemos desde que a competição se beneficiou muito, o que também alcançou nosso objetivo de participar da competição.