Nothing much

This commit is contained in:
2025-04-27 22:05:58 +02:00
parent 1bc758f3c1
commit bbb3c131b3
4 changed files with 23 additions and 135 deletions
+1 -13
View File
@@ -10,19 +10,7 @@ Kern is broken at the moment. The last working commit is: '11feab5'
About About
----- -----
Kern is a 32-bit OS based on the x86 architecture written in NASM Assembly and C. 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 attempts to be a µ-kernel, although i have no clue what i'm doing.
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
Dependencies Dependencies
------------ ------------
+16 -109
View File
@@ -1,113 +1,20 @@
TODO TODO
==== ====
Legend [x] Boot
------ [x] Multiboot 1
- [ ] Not done [x] IDT
- [x] Done [x] ISRs
- [_] Was done at some point, but isn't now [x] GDT
- [!] Important todo [x] Physical MM
- [?] Optional [x] Virtual MM
[x] Paging
Todos [x] Serial monitor
----- [ ] Timer interrupts
- [ ] Kernel [ ] Task switching
- [ ] Syscalls [ ] IPC
- [ ] exit() [ ] Graphics
- [ ] fork() [ ] Networking :)
- [ ] read() [ ] Finish all the TODOs
- [ ] write() [ ] Run DOOM
- [ ] 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
-9
View File
@@ -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
+6 -4
View File
@@ -29,10 +29,12 @@ void kmain(void* ptr, uint32_t magic) {
if (tty_init() != 0) panic("Failed to initalize TTY driver."); if (tty_init() != 0) panic("Failed to initalize TTY driver.");
tty_puts("kern.\n\n"); tty_puts("kern.\n\n");
debugf("[kernel] Basic initialization complete!\n"); // TODO: Timer
// TODO: Scheduler
// TODO: Init VFS // TODO: Syscalls
// TODO: // TODO: Interprocess communication
// TODO: Tasking
// TODO: Load & run /sbin/init
panic("kmain() reached end."); panic("kmain() reached end.");
} }