Add user program initproc/user_shell, allow user programs allocate data on heap.

This commit is contained in:
Yifan Wu 2020-12-09 09:56:06 +08:00
parent 58dbb3ffa5
commit e56ea17566
7 changed files with 170 additions and 15 deletions

30
user/src/bin/initproc.rs Normal file
View file

@ -0,0 +1,30 @@
#![no_std]
#![no_main]
#[macro_use]
extern crate user_lib;
use user_lib::{
fork,
wait,
exec,
yield_,
};
#[no_mangle]
fn main() -> i32 {
if fork() == 0 {
exec("user_shell\0");
} else {
loop {
let mut xstatus: i32 = 0;
let pid = wait(&mut xstatus);
if pid == -1 {
yield_();
continue;
}
println!("[initproc] Release a zombie process!");
}
}
0
}