Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
e399ec6a46
|
|||
| dd9315f2f1 | |||
| f91831616c |
+9
-1
@@ -25,6 +25,9 @@ The recommended hardware to run PepperOS is the following:
|
|||||||
|
|
||||||
## b. Features
|
## b. Features
|
||||||
|
|
||||||
|
- Round robin preemptive scheduling
|
||||||
|
- Coexistence of ring 0 and ring 3 processes
|
||||||
|
|
||||||
## II. Kernel architecture
|
## II. Kernel architecture
|
||||||
|
|
||||||
### a. Boot process
|
### a. Boot process
|
||||||
@@ -37,4 +40,9 @@ The recommended hardware to run PepperOS is the following:
|
|||||||
|
|
||||||
## III. Syscall table
|
## III. Syscall table
|
||||||
|
|
||||||
Not yet implemented.
|
The syscall interface in the Pepper kernel uses the System V ABI convention for argument order.
|
||||||
|
|
||||||
|
Name | Number (%rax) | arg0 (%rdi) | arg1 (%rsi) | arg2 (%rdx) |
|
||||||
|
|---|---|---|---|---|
|
||||||
|
| sys_write | 1 | unsigned int fd | const char* buf | size_t count | |
|
||||||
|
| sys_exit | 60 | int error_code | | | |
|
||||||
+2
-2
@@ -9,8 +9,8 @@
|
|||||||
|
|
||||||
/* version */
|
/* version */
|
||||||
#define PEPPEROS_VERSION_MAJOR "0"
|
#define PEPPEROS_VERSION_MAJOR "0"
|
||||||
#define PEPPEROS_VERSION_MINOR "0"
|
#define PEPPEROS_VERSION_MINOR "1"
|
||||||
#define PEPPEROS_VERSION_PATCH "109"
|
#define PEPPEROS_VERSION_PATCH "121"
|
||||||
#define PEPPEROS_SPLASH \
|
#define PEPPEROS_SPLASH \
|
||||||
"\x1b[38;5;196m \x1b[38;5;231m____ _____\r\n\x1b[0m"\
|
"\x1b[38;5;196m \x1b[38;5;231m____ _____\r\n\x1b[0m"\
|
||||||
"\x1b[38;5;196m ____ ___ ____ ____ ___ _____\x1b[38;5;231m/ __ \\/ ___/\r\n\x1b[0m"\
|
"\x1b[38;5;196m ____ ___ ____ ____ ___ _____\x1b[38;5;231m/ __ \\/ ___/\r\n\x1b[0m"\
|
||||||
|
|||||||
@@ -130,6 +130,7 @@ void kmain()
|
|||||||
file = boot_ctx.module->modules[1];
|
file = boot_ctx.module->modules[1];
|
||||||
process_create_user(file, "pedicel");
|
process_create_user(file, "pedicel");
|
||||||
}
|
}
|
||||||
|
process_create("kshell", (void*)pedicel_main, 0);
|
||||||
scheduler_init();
|
scheduler_init();
|
||||||
|
|
||||||
printf(PEPPEROS_SPLASH);
|
printf(PEPPEROS_SPLASH);
|
||||||
|
|||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
bits 64
|
bits 64
|
||||||
|
|
||||||
section .data
|
section .data
|
||||||
hi db "hi from userland :) we did it man", 0
|
hi db "hi from userland :) we did it man", 0x0A, 0x0d, 0
|
||||||
|
|
||||||
section .text
|
section .text
|
||||||
|
|
||||||
@@ -9,7 +9,7 @@ hello:
|
|||||||
mov rax, 0x1 ;sys_write
|
mov rax, 0x1 ;sys_write
|
||||||
mov rdi, 0x1 ;stdout
|
mov rdi, 0x1 ;stdout
|
||||||
lea rsi, [rel hi] ;char* buf
|
lea rsi, [rel hi] ;char* buf
|
||||||
mov rdx, 33 ;count
|
mov rdx, 35 ;count
|
||||||
int 0x80
|
int 0x80
|
||||||
|
|
||||||
.end:
|
.end:
|
||||||
|
|||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
bits 64
|
bits 64
|
||||||
|
|
||||||
section .data
|
section .data
|
||||||
hello db 0x0A, 0x0D, "User program 2 speaking", 0
|
hello db 0x0A, 0x0D, "User program 2 speaking", 0x0A, 0x0D, 0
|
||||||
|
|
||||||
section .text
|
section .text
|
||||||
|
|
||||||
@@ -9,7 +9,7 @@ _start:
|
|||||||
mov rax, 0x1 ;sys_write
|
mov rax, 0x1 ;sys_write
|
||||||
mov rdi, 0x1 ;stdout
|
mov rdi, 0x1 ;stdout
|
||||||
lea rsi, [rel hello]
|
lea rsi, [rel hello]
|
||||||
mov rdx, 25 ;count
|
mov rdx, 27 ;count
|
||||||
int 0x80
|
int 0x80
|
||||||
|
|
||||||
; when we are ready to have an os specific toolchain,
|
; when we are ready to have an os specific toolchain,
|
||||||
|
|||||||
Reference in New Issue
Block a user