diff --git a/README b/README index d35394f..3f6c2e1 100644 --- a/README +++ b/README @@ -10,19 +10,7 @@ Kern is broken at the moment. The last working commit is: '11feab5' About ----- Kern is a 32-bit OS based on the x86 architecture written in NASM Assembly and C. -I'm working on a basic command line as well as a custom unix-esque filesystem. -It has a simple shell with some commands (use 'help' for a list of available ones). - -Features --------- -* Shell -* Filesystem -* Userspace -* Font support -* Graphics mode -* Physical memory manager -* Virtual memory manager -* System calls +It attempts to be a µ-kernel, although i have no clue what i'm doing. Dependencies ------------ diff --git a/TODO b/TODO index fe6fb29..5db50f8 100644 --- a/TODO +++ b/TODO @@ -1,113 +1,20 @@ TODO ==== -Legend ------- -- [ ] Not done -- [x] Done -- [_] Was done at some point, but isn't now -- [!] Important todo -- [?] Optional - -Todos ------ -- [ ] Kernel - - [ ] Syscalls - - [ ] exit() - - [ ] fork() - - [ ] read() - - [ ] write() - - [ ] open() - - [ ] close() - - [ ] waitpid() - - [ ] creat() - - [ ] link() - - [ ] unlink() - - [ ] execve() - - [ ] chdir() - - [ ] time() - - [ ] mknod() - - [ ] chmod() - - [ ] chown() - - [ ] break() - - [ ] stat() - - [ ] mount() - - [ ] umount() - - [ ] alarm() - - [ ] pause() - - [ ] access() - - [ ] nice() - - [ ] sync() - - [ ] kill() - - [ ] rename() - - [ ] mkdir() - - [ ] rmdir() - - [ ] dup() - - [ ] pipe() - - [ ] Memory - - [x] Physical MM - - [x] Virtual MM - - [x] Paging - - [ ] Kernel Heap - - [ ] Drivers - - [x] tty - - [ ] ATA PIO - - [x] serial - - [ ] Timer - - [ ] VFS - - [ ] RAMFS - - [ ] FAT32 - - [ ] DevFS - - [ ] /dev/std* - - [ ] /dev/tty - - [ ] /dev/sd* - - [ ] /dev/fb0 - - [ ] /dev/null, /dev/zero, ... - - [ ] SysFS - - [ ] ProcFS - -- [ ] Bootloader - - [ ] MBR - - [ ] EFI - -- [ ] Libc - - [ ] assert.h - - [ ] complex.h (idk why we would need this) - - [ ] ctype.h - - [ ] errno.h - - [ ] fcntl.h - - [ ] float.h - - [ ] limits.h - - [ ] math.h - - [ ] setjmp.h (this plagues my mind) - - [ ] signal.h (we would need signals first) - - [ ] stdarg.h - - [ ] stdbool.h - - [ ] stddef.h - - [ ] stdint.h - - [ ] stdio.h - - [ ] stdlib.h - - [ ] string.h - - [ ] syscall.h - - [ ] time.h - - [ ] unistd.h (does POSIX need us?) - - [ ] wchar.h (we would need text support for wide chars ig?) - - [ ] wctype.h (same as above) - -- [ ] Userspace - - [ ] sh - - [ ] as - - [ ] cc - - [ ] ld - - [ ] editor - - [ ] binutils - - [ ] coreutils - - [ ] minesweeper - - [ ] solitaire - - [ ] tetris - - [ ] doom - -- [ ] Write an OS in kern. -- [ ] Paradox -- [ ] Finish all the TODOs +[x] Boot +[x] Multiboot 1 +[x] IDT +[x] ISRs +[x] GDT +[x] Physical MM +[x] Virtual MM +[x] Paging +[x] Serial monitor +[ ] Timer interrupts +[ ] Task switching +[ ] IPC +[ ] Graphics +[ ] Networking :) +[ ] Finish all the TODOs +[ ] Run DOOM diff --git a/kernel/include/kmalloc.h b/kernel/include/kmalloc.h deleted file mode 100644 index 8dd0d26..0000000 --- a/kernel/include/kmalloc.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _KMALLOC_H -#define _KMALLOC_H - -void* kmalloc(size_t size); -void* kzalloc(size_t size); -void* kcalloc(size_t count, size_t size); -void kfree(void* ptr); - -#endif diff --git a/kernel/src/kernel.c b/kernel/src/kernel.c index c66bae8..aaa7c68 100644 --- a/kernel/src/kernel.c +++ b/kernel/src/kernel.c @@ -29,10 +29,12 @@ void kmain(void* ptr, uint32_t magic) { if (tty_init() != 0) panic("Failed to initalize TTY driver."); tty_puts("kern.\n\n"); - debugf("[kernel] Basic initialization complete!\n"); - - // TODO: Init VFS - // TODO: + // TODO: Timer + // TODO: Scheduler + // TODO: Syscalls + // TODO: Interprocess communication + // TODO: Tasking + // TODO: Load & run /sbin/init panic("kmain() reached end."); }