# toyos **Repository Path**: supertom-spec/toyos ## Basic Information - **Project Name**: toyos - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-06-24 - **Last Updated**: 2021-08-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 提供了已经安装好 GRUB 的 floppy.img 软盘镜像,通过 QEMU 启动软盘,该操作系统从 GRUB 之后开始编写,阅读的顺序: ## CPU 0. scripts/kernel.ld 定义链接器生成的内核文件的布局 ### 实模式 1. boot/boot.s 调用 kern_entry C 函数 2. init/entry.c 实现 kern_entry C 函数 3. drivers/console.c 实现 0xB8000 处 80*25 的字符显示函数 4. kernel/debug/printk.c 5. libs/elf.c 从 glb_mboot_ptr 保存的 multiboot_t 结构体中获取 ELF 信息 6. kernel/debug/debug.c 利用符号信息帮助调试 ### 保护模式 7. gdt/gdt.c init_gdt 设置全局段描述符表 8. idt/idt.c init_idt 设置中断描述符表 9. drivers/timer.c 时钟中断 10. mm/pmm.c 物理内存分页 11. mm/vmm.c 虚拟内存映射 12. mm/heap.c 内核堆管理实现 13. kernel/sched/sched.c 内核线程的创建与切换 14. kernel/sched/switch_to.c