Files
kern/todo.txt
T

237 lines
5.7 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
=== Todo ===
Legend:
- [ ] Not done
- [x] Done
- [_] Was done at some point, but isn't now
- [!] Important todo
- [?] Optional
- [!] The Big Refactor
- [?] Use UEFI
- [ ] 32-bit (probably)
- [ ] Partitioned disk
- [ ] Use an existing bootloader
- [ ] Limine
- [ ] Grub :/
- [ ] project structure
- [ ] arch/
- [x] lib/
- [x] include/
- [x] libc - User space
- [x] libk - Kernel libc
- [x] kernel
- [x] use libk
- [x] makefile
- [?] probably a full rewrite
- [ ] filesystem
- [ ] use Ext1
- [ ] sysroot
- [ ] good buildutil
- [ ] proper file organization
- [X] Makefile refactorin' (finally done!!!)
- [ ] LIBC
- [ ] assert.h
- [ ] complex.h (idk why we would need this)
- [x] ctype.h
- [x] errno.h
- [x] fcntl.h
- [x] float.h
- [x] limits.h
- [x] math.h (maybe a separate libm?) TODO: add errno errors in there
- [x] setjmp.h (this plagues my mind)
- [ ] signal.h (we would need signals first)
- [x] stdarg.h
- [x] stdbool.h
- [x] stddef.h
- [x] stdint.h
- [x] stdio.h
- [x] stdlib.h
- [x] string.h
- [x] syscall.h
- [x] time.h
- [ ] unistd.h (do we do POSIX?)
- [ ] wchar.h (we would need text support for wide chars ig?)
- [ ] wctype.h (same as above)
- [ ] sys/
- [ ] types.h (syscall types)
- [ ] gfx.h (basic graphics lib)
- [x] LIBK
- [x] drivers - everything that works with hardware
- [x] error - error handling (bigerr is not enough :( )
- [x] fs - filesystem
- [x] interrupt - handling and registering interupts
- [x] memory - memory managing (physical and virtual)
- [x] screen - everything that displays on the screen
- [x] syscall - system calls
- [x] Multistage Bootloader
- [x] Bootloader reads filesystem to find files
- [x] The almighty 'printf()'
- [x] Write down where stuff is in memory (in notes.txt)
- [ ] "Text" mode (not actually)
- [x] Scrolling
- [ ] Scroll-back
- [x] Color codes (and just multicolor text in general)
- [x] Controll sequences!
- [x] VESA BIOS Extensions
- [x] Better resolution
- [x] Graphics mode
- [x] Custom font
- [_] Larger text size
- [ ] Variable text size :)
- [x] Make output overflow go to next line
- [x] More fonts
- [x] Generic screen.h stuff (don't assume 1920x1080 32bpp)
- [x] Multi vbe mode support
- [x] Setup on boot
- [ ] Different font size support
- [x] Graphics
- [?] Enter/exit a "graphics" mode (idk if we need this)
- [x] Pixel drawing
- [x] Line drawing (Raycaster Alert??)
- [x] Triangles (3D?!!???)
- [x] Rectange :)
- [x] Circle!
- [x] Filled verisons
- [x] Interrupts
- [x] IDT Setup (idt.h)
- [x] Exception handling
- [x] Hardware/software interrupts
- [x] Syscalls! (int 0x80)
- [x] IRQ 0 - PIT
- [x] IRQ 1 - Keyboard
- [x] IRQ 8 - CMOS Real time clock
- [?] Other IRQs (idk which ones)
- [ ] Sound
- [x] Pc Speaker
- [x] Notes (in hertz)
- [ ] Sound Blaster 16
- [x] MEGALOVANIA
- [ ] Math
- [ ] Trigonometry
- [ ] Sine
- [ ] Cosine
- [ ] Tangent
- [ ] Cotangent
- [ ] Arc (inverse) versions
- [ ] Hyperbolic versions
- [x] Absolute value
- [ ] isOdd() 🗿
- [x] Exponential fn (e^x)
- [x] Logarithm
- [x] Power
- [x] Square Root
- [ ] Floor
- [ ] Round
- [ ] Ceiling
- [x] Sign
- [x] INFINITY
- [x] NAN
- [x] E (eulers number)
- [x] PI
- [ ] Filesystem
- [x] Utility for filesystem building (not just an assembly file)
- [_] Better header for file i/o (disk/filesys.h)
- [x] Filetable
- [x] A better filesystem using INodes etc.
- [x] Files
- [x] Larger than one sector (512B)
- [x] Any file size (Not multiples of 512B)
- [x] Filetypes
- [ ] Directories
- [x] File tree
- [x] Dir Entries
- [ ] cd command
- [ ] Links??
- [ ] Symbolic
- [ ] Hard
- [ ] System Calls
- [x] Sleep()
- [x] Write()
- [ ] Read() (temporarly gets())
- [ ] Open()
- [ ] Close()
- [x] Malloc()
- [x] Free()
- [ ] Seek()
- [ ] Tell()
- [ ] Exit()
- [ ] Shell
- [ ] Separate file/program
- [ ] ';' separated commands
- [ ] I/O Redirection with '<' '>'
- [x] Display directory in prompt
- [ ] Custom prompts
- [ ] Variables
- [ ] Enviromental/Global
- [ ] Normal
- [ ] Commands
- [x] echo
- [x] clear
- [x] help
- [x] ls
- [x] exit
- [ ] touch (make file)
- [ ] rm
- [ ] mkdir (add dirs first)
- [x] reboot
- [ ] cd
- [ ] Standard I/O stuff
- [ ] stdin
- [x] stdout
- [ ] stderr
- [x] Memory manager
- [x] Memory map
- [x] Print mem map
- [x] Physical
- [x] Virtual
- [x] Paging
- [ ] User (or system) programs
- [x] Loading them
- [x] Running them
- [x] Exit back to kernel/shell
- [x] Let them use libs
- [ ] Proper include files (LibC?)
- [x] argc, argv[]
- [ ] Standalone shell program
- [ ] Userspace programs
- [x] Calculator
- [ ] Calendar
- [ ] Code Editor
- [ ] Text editor
- [ ] Syntax highlighting
- [ ] Saving/Loading
- [ ] Hex editor
- [ ] Assembler/Compiler
- [ ] Assembler
- [ ] Compiler (probably C)
- [ ] Standard lib
- [ ] Finish all todos
- [ ] Refactoring!!!
- [ ] Can it run DOOM?
- [ ] Games
- [ ] Minesweeper
- [ ] Solitaire
- [ ] Tetris
- [ ] Write an OS in kern (The FINAL Todo)