another useless toy Unix clone
- Interrupts
- Memory allocation
- ATA disk driver
- Basic inode-based filesystem
- Clock module
- Basic async/await support
- Syscalls
- Processes
- ELF Binaries
- Basic Userspace
- Basic IPC
- fully implement
/prochierarchy
- for the initial stages of this project, I followed https://os.phil-opp.com/
- the ATA driver and process creation code was taken mainly from https://github.com/vinc/moros
- I have read some of the code of moros and RedoxOS for inspiration and implementation details
- the OSDev Wiki has also been helpful
acpiamlbit_fieldbootloaderchronohashbrownlazy_staticlinked_list_allocatorlogpc-keyboardpic8259spintypenumuart_16550volatile(several versions behind)x86_64
| Number | Name | Arg1 | Arg2 | Arg3 | Arg4 | Return |
|---|---|---|---|---|---|---|
| 1 | read |
fd |
buf (ptr) |
buf_len |
nread |
|
| 2 | write |
fd |
buf (ptr) |
buf_len |
nwritten |
|
| 3 | open |
path (ptr) |
path_len |
mode (bitfield) |
fd |
|
| 4 | close |
fd |
0 or -1 (err) | |||
| 5 | flush |
fd |
0 or -1 (err) | |||
| 7 | sleep |
nanoseconds |
0 | |||
| 8 | wait (uses TSC) |
nanoseconds |
0 | |||
| 9 | getpid |
|||||
| 10 | exec |
path_addr |
path_len |
args_ptr |
args_len |
|
| 13 | stop |
kind (0=shutdown, 1=reboot) |
||||
| 18 | alloc |
size |
align |
ptr |
||
| 19 | free |
ptr |
size |
align |
||
| 21 | geterrno |
errno |
||||
| 22 | poll |
fd |
event (1=read, 2=write) |
ready |
||
| 23 | boottime |
boot_time (nanos) |
||||
| 24 | gettime |
time (seconds) |
