From 079c3308b80f4ab1830f3e05dda57445e91d30a6 Mon Sep 17 00:00:00 2001 From: Brett Weiland Date: Tue, 24 Aug 2021 14:32:12 -0500 Subject: readme changes --- .gitignore | 2 ++ README.md | 65 ++++++++++++++++++-------------------------------------------- backup.sh | 8 ++++++-- 3 files changed, 27 insertions(+), 48 deletions(-) diff --git a/.gitignore b/.gitignore index d1ab991..cf61562 100644 --- a/.gitignore +++ b/.gitignore @@ -56,3 +56,5 @@ dkms.conf compiler/* !.gitignore !create_crosscompiler.sh + +compile_commands.json diff --git a/README.md b/README.md index eab6e9f..b903991 100644 --- a/README.md +++ b/README.md @@ -1,47 +1,20 @@ # 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 - -### 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 -- [ ] create a written map of virtual shared/kernel addresses for documentation - -### ACPI -- [x] find, check, and parse RSDP -- [x] find, check, and parse RSDT or XSDT - -### multicpu -- [ ] boot cpus -- [ ] parse MDST - +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 and Quake. + +# Project scope +While I'm loving this project, I do want it to be "done" at some point so I can work on other things. Because of this, my OS will be very simple, monolithic, and may not have all the bells and wistles of other osdev projects. I'm not planning on implimenting my own libc, and when I get to user space, will end up porting a few programs instead of writing my own (such as Xorg or QT). +With all that out of the way, check out the features. + +# Planned Features +* SMP multi-core support +* Preemptive multithreading +* Unix-like file structure (/proc, /sys, /dev) +* Port of ether X-org or wayland, combined with a complete WM +* Basic network stack +* ex2 filesystem +* Pseudoterminals +* Ports of other software I like, such as bash, vim, some old 3d games + +# Project status +This project will likely go very slow and take multiple years, as I'm dealing with things such as college and adulting. If there are blatently obvious bugs, or things look unfinished, I'm still working on them. +Additionally, there's some pretty messy code. I've improved over the durentation of this project, so expect those things to be changed some time down the line. diff --git a/backup.sh b/backup.sh index 74c3189..2b26a8d 100755 --- a/backup.sh +++ b/backup.sh @@ -6,8 +6,12 @@ then fi archive_name=$(date +%m.%d.%y."$1".tar) -shopt -s extglob -tar -cf $archive_name !(*gz) + +cd src +make clean +cd ../ + +tar -cf "$archive_name" src && pigz -9 $archive_name -- cgit v1.2.3