mirror of
https://github.com/Tom-on64/kern.git
synced 2026-11-03 18:22:22 +00:00
Nothing much
This commit is contained in:
@@ -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
|
||||
------------
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
@@ -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.");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user