docs (kernel): updated roadmap and SysABI progress
This commit is contained in:
parent
42d2dd71b2
commit
ed1bc366d6
|
@ -15,19 +15,25 @@
|
|||
- [x] Register dump
|
||||
- [x] Stack tracing
|
||||
- [x] Scheduler
|
||||
- [x] (Kernel) Threads
|
||||
- [x] Threads
|
||||
- [x] Processes
|
||||
- [x] Ramdisk
|
||||
- [x] USTAR
|
||||
- [x] RAMFS
|
||||
- [x] VFS
|
||||
- [x] ELF loading
|
||||
- [x] Processes
|
||||
- [x] Keyboard input (ps/2 int)
|
||||
- [x] JSON parser for system config
|
||||
- [ ] Drivers
|
||||
- [X] Loading / Linking into kernel
|
||||
- [X] Driver Device assignment (PCI / USB / FS)
|
||||
- [ ] API
|
||||
- [ ] Syscalls
|
||||
- [x] Filesystem
|
||||
- [x] Memory
|
||||
- [ ] Processing
|
||||
- [x] Drivers
|
||||
- [X] Kernel
|
||||
- [ ] FAT32 (driver)
|
||||
- [ ] TUI framework
|
||||
- [ ] Shell
|
||||
|
|
|
@ -43,15 +43,15 @@ The following calls should be implemented to some degree in noxos 1.0.
|
|||
| 0x0104 | `nx_mem_unlabel` | Takes the file descriptor away from a memory region. | fd | | | | status | N/A |
|
||||
|
||||
## Processes
|
||||
| ID | Name | Description | Arg1 | Arg2 | Arg3 | Arg4 | Result | Status |
|
||||
|--------|------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------|--------|----------|------|------|--------|--------|
|
||||
| 0x0201 | `nx_proc_create` | Creates a new process with the configuration _conf_ (which format is described below) and writes its process id to _pid_. | *conf | *pid | | | status | N/A |
|
||||
| 0x0202 | `nx_proc_signal_send` | Send the signal _signal_ to _pid_. See below for a list of signals. | pid | signal | | | status | N/A |
|
||||
| 0x0203 | `nx_proc_signal_set_handler` | Sets a handler for the signal _signal_ in the current process. Not all signals can have a handler. Look at the list for more information. | signal | *handler | | | status | N/A |
|
||||
| 0x0204 | `nx_proc_thread_create` | Spawns a new thread for the current process. The starting point is defined by _addr_. The threads' ID is written into _tid_. | addr | *tid | | | status | N/A |
|
||||
| 0x0205 | `nx_proc_thread_start` | Starts the current processes' thread with thread id _tid_. | tid | | | | status | N/A |
|
||||
| 0x0206 | `nx_proc_thread_pause` | Pauses the current processes' thread with thread id _tid_. | tid | | | | status | N/A |
|
||||
| 0x0207 | `nx_proc_thread_kill` | Kills the current processes' thread with thread id _tid_. | tid | | | | status | N/A |
|
||||
| ID | Name | Description | Arg1 | Arg2 | Arg3 | Arg4 | Result | Status |
|
||||
|--------|------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------|--------|----------|------|------|--------|-------------|
|
||||
| 0x0201 | `nx_proc_create` | Creates a new process with the configuration _conf_ (which format is described below) and writes its process id to _pid_. | *conf | *pid | | | status | Implemented |
|
||||
| 0x0202 | `nx_proc_signal_send` | Send the signal _signal_ to _pid_. See below for a list of signals. | pid | signal | | | status | N/A |
|
||||
| 0x0203 | `nx_proc_signal_set_handler` | Sets a handler for the signal _signal_ in the current process. Not all signals can have a handler. Look at the list for more information. | signal | *handler | | | status | N/A |
|
||||
| 0x0204 | `nx_proc_thread_create` | Spawns a new thread for the current process. The starting point is defined by _addr_. The threads' ID is written into _tid_. | addr | *tid | | | status | N/A |
|
||||
| 0x0205 | `nx_proc_thread_start` | Starts the current processes' thread with thread id _tid_. | tid | | | | status | N/A |
|
||||
| 0x0206 | `nx_proc_thread_pause` | Pauses the current processes' thread with thread id _tid_. | tid | | | | status | N/A |
|
||||
| 0x0207 | `nx_proc_thread_kill` | Kills the current processes' thread with thread id _tid_. | tid | | | | status | N/A |
|
||||
|
||||
## Drivers
|
||||
| ID | Name | Description | Arg1 | Arg2 | Arg3 | Arg4 | Result | Status |
|
||||
|
@ -99,7 +99,7 @@ If another process calls them, they will just return without doing anything.
|
|||
| 0x80 | name | The processes' name (ascii). |
|
||||
| 0x08 | executable | A file descriptor to the executable the process will be loaded from. |
|
||||
| 0x04 | num_inherit_fds | The amount of file descriptors that will be inherited to the process. |
|
||||
| 0x0F * `num_inherit_fds` | inherit_fds | The file descriptors that will be inherited to the process. (described below) |
|
||||
| 0x08 * `num_inherit_fds` | inherit_fds | The file descriptors that will be inherited to the process. (described below) |
|
||||
|
||||
**header.privilege_level:**
|
||||
|
||||
|
@ -112,8 +112,8 @@ If another process calls them, they will just return without doing anything.
|
|||
|
||||
| Length(bytes) | Name | Description |
|
||||
|---------------|-----------|--------------------------------------------------------------------------------|
|
||||
| 0x08 | at_parent | The file descriptor, the parent process wants to inherit. |
|
||||
| 0x08 | at_child | The file descriptor in the new child process. Same as `at_parent` if set to 0. |
|
||||
| 0x04 | at_parent | The file descriptor, the parent process wants to inherit. |
|
||||
| 0x04 | at_child | The file descriptor in the new child process. Same as `at_parent` if set to 0. |
|
||||
|
||||
|
||||
### Process signals
|
||||
|
@ -121,5 +121,5 @@ If another process calls them, they will just return without doing anything.
|
|||
- __SIGPAUSE__: pauses the process
|
||||
- __SIGKILL__: kills the process and destroys the processes data structures
|
||||
- __SIGEXIT__: send by the kernel before stopping the process - handler implementation possible
|
||||
- __SIGPFAULT__: sends when the process access memory it is not permitted to. Followed by SIGEXIT - handler implementation possible
|
||||
- __SIGPAGEFAULT__: sends when the process access memory it is not permitted to. Followed by SIGEXIT - handler implementation possible
|
||||
- __SIGMATHFAULT__: sends when the process does stuff like dividing by zero. Followed by SIGEXIT - handler implementation possible
|
||||
|
|
Loading…
Reference in New Issue