
modified: compiler/create_crosscompiler.sh deleted: notes modified: src/.gdb_history deleted: src/amd64_vol2.pdf modified: src/bootloader/bios_functions/bios_disk.asm modified: src/bootloader/bios_functions/print.asm modified: src/bootloader/bootloader.asm modified: src/bootloader/cpu_check.asm modified: src/bootloader/enter_kernel.asm deleted: src/bootloader/enter_kernel_backup modified: src/bootloader/gdt.asm deleted: src/bootloader/multicore.asm deleted: src/bootloader/notes new file: src/debug/gdbinit.gdb deleted: src/indigo_os modified: src/kernel/include/libc.h modified: src/kernel/include/paging.h modified: src/kernel/include/video.h modified: src/kernel/kernel.c modified: src/kernel/libs/acpi.c modified: src/kernel/libs/drivers/serial.c modified: src/kernel/libs/drivers/video.c modified: src/kernel/libs/libc.c modified: src/kernel/libs/page.c modified: src/link.ld modified: src/makefile new file: tools/README.md modified: tools/page/page.py
46 lines
1.7 KiB
Markdown
46 lines
1.7 KiB
Markdown
# IndigoOS
|
|
|
|
IndigoOS (name likely to change) will be a unix-like operating system for x86-64 computers. I'm hoping to impliment many things a modern operating system would have, including a desktop enviornment, pre-emptive multithreading, ASLR, and memory protection. I'd also like to port games such as DOOM.
|
|
|
|
This project is in it's infancy. However, I'm making quick progress. I'll only commit major changes to keep the commit history clean.
|
|
|
|
## Cleaning list
|
|
- [] clean RSDP v1 vs v2+ ugly unison code
|
|
- [] clean static paging code
|
|
- [] fallback to best compatable video mode if not found
|
|
- [] find out when and why checksum of binary vs debug binary stripped is occationally diffrent (maybe linker script?)
|
|
|
|
|
|
##debugging
|
|
- [x] get debugging into into a seperate elf for GDB
|
|
- [] md5sum of striped binary is the same as one built without debugging info
|
|
_Almost_ always, there was one time when it wasn't. Can't seem to reproduce. Check linker sizes and included sections.
|
|
|
|
##bootloader
|
|
- [x] make USB bootable as floppy
|
|
- [] make USB bootable as harddisk
|
|
- [x] detect native resolution
|
|
- [x] set VESA video to native resolution
|
|
- [] fallback to best compatable video mode if not found
|
|
- [x] record video mode info for kernel
|
|
- [x] setup temporary page tabels
|
|
- [x] get memory map
|
|
- [x] load sectors into 0x100000
|
|
- [x] boot into kernel long mode
|
|
|
|
##kernel (listed in order of dependency)
|
|
###Memory
|
|
- [x] static page mapping
|
|
- [] dynamic page allocation - 3/24/21, almost done, will likely finish soon.
|
|
- [] remap paging to higher/more available physical address
|
|
- [] remap kernel to higher virtual address
|
|
|
|
###ACPI
|
|
- [x] find, check, and parse RSDP
|
|
- [x] find, check, and parse RSDT or XSDT
|
|
|
|
###multicpu
|
|
- [] boot cpus
|
|
- [] parse MDST
|
|
|