xv6-cs450/init.c
rtm 17a856577f init creates console, opens 0/1/2, runs sh
sh accepts 0-argument commands (like userfs)
reads from console
2006-08-11 13:55:18 +00:00

33 lines
471 B
C

#include "user.h"
#include "types.h"
#include "fs.h"
#include "fcntl.h"
char *sh_args[] = { "sh", 0 };
int
main(void)
{
int pid;
if(open("console", 0) < 0){
mknod("console", T_DEV, 1, 1);
open("console", 0);
}
open("console", 1);
open("console", 1);
write(1, "init...\n", 8);
while(1){
write(1, "running sh...\n", 14);
pid = fork();
if(pid == 0){
exec("sh", sh_args);
exit();
}
if(pid > 0)
wait();
}
}