文件名称:OS:从头开始的操作系统
文件大小:37KB
文件格式:ZIP
更新时间:2024-04-14 11:17:18
kernel os operating-system os-dev kernel-dev
从头开始创建操作系统 我一直想从头开始引导操作系统。 在这个项目中,我们通过一个简单的引导扇区引导内核,该引导扇区将内核加载到内存中,然后加载gdt并从16位实模式切换到32位保护模式,然后调用内核代码。 内核设置中断描述符表,初始化计时器,键盘中断和分页。 完成的事情 从头开始 进入32位保护模式 从汇编跳转到C 中断处理 键盘输入输出 基本的libc 虚拟内存(分页) 有序数组数据结构 内存管理器 目录结构 ├── boot │ ├── boot_sect.asm │ ├── disk_load.asm │ ├── gdt.asm │ ├── print_hex.asm │ ├── print_string.asm │ ├── print_string_pm.asm │ └── switch_to_pm.asm ├── cpu │ ├── id
【文件预览】:
OS-master
----memory()
--------kheap.h(2KB)
--------kheap.c(12KB)
--------paging.h(2KB)
--------paging.c(6KB)
----linker.ld(634B)
----cpu()
--------interrupt.asm(7KB)
--------ports.c(2KB)
--------timer.c(654B)
--------idt.c(489B)
--------types.h(176B)
--------ports.h(263B)
--------isr.c(4KB)
--------timer.h(112B)
--------isr.h(2KB)
--------idt.h(2KB)
----.github()
--------ISSUE_TEMPLATE()
----kernel()
--------kshell.h(87B)
--------bootanimation.c(691B)
--------bootanimation.h(78B)
--------kernel.h(92B)
--------kernel.c(393B)
--------kernel_entry.asm(613B)
--------kshell.c(2KB)
----boot()
--------switch_to_pm.asm(1KB)
--------boot_sect.asm(2KB)
--------print_string_pm.asm(884B)
--------print_hex.asm(1KB)
--------print_string.asm(533B)
--------disk_load.asm(1KB)
--------gdt.asm(2KB)
----drivers()
--------screen.c(5KB)
--------keyboard.h(68B)
--------keyboard.c(2KB)
--------screen.h(1KB)
----get_kernel_size(371B)
----Resources.md(2KB)
----LICENSE(1KB)
----.prettierrc(39B)
----README.md(3KB)
----Makefile(2KB)
----cross-compiler.sh(1KB)
----libc()
--------ordered_array.c(2KB)
--------function.h(794B)
--------string.h(386B)
--------mem.h(198B)
--------function.c(972B)
--------ordered_array.h(1KB)
--------string.c(2KB)
--------mem.c(306B)
----.gitignore(144B)