Add user program initproc/user_shell, allow user programs allocate data on heap.
This commit is contained in:
parent
58dbb3ffa5
commit
e56ea17566
7 changed files with 170 additions and 15 deletions
30
user/src/bin/initproc.rs
Normal file
30
user/src/bin/initproc.rs
Normal 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
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue