From f20db37ca17245d5d20302a1ac1da347de5c3607 Mon Sep 17 00:00:00 2001 From: Michal Idziorek Date: Mon, 1 Dec 2014 23:33:31 +0100 Subject: very buggy fork, execve and exit --- userspace/init.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'userspace/init.c') diff --git a/userspace/init.c b/userspace/init.c index d03d173..fd562a9 100644 --- a/userspace/init.c +++ b/userspace/init.c @@ -1,12 +1,21 @@ int main(int argc, char **argv) { - printf("Fool OS Init 0.1 \n"); - int pid=fork(); - while(1) + if(pid!=0) { - printf("I am pid: %i\n",pid); + printf("fool-init: forked child (pid: %i) spawning a Fools Shell\n",pid); + execve("/bin/foolshell",0,0); + + } + else + { + // TODO: wait for child and respawn shell if needed! + volatile int i=0; + while(1) + { + + } } return 0; } -- cgit v1.2.3