X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/db7fc030e9e04c881f5f12a0e23baa8db4e20ee1..75339638bc5f21f13d3475374ecbd91065a427c3:/lunaix-os/uprog/init.c diff --git a/lunaix-os/uprog/init.c b/lunaix-os/uprog/init.c index a197245..a7265c0 100644 --- a/lunaix-os/uprog/init.c +++ b/lunaix-os/uprog/init.c @@ -1,4 +1,5 @@ #include +#include #include #include @@ -7,17 +8,26 @@ main(int argc, const char** argv) { int errno = 0; - if ((errno = open("/dev/tty", 0))) { + if ((errno = open("/dev/tty", 0)) < 0) { syslog(2, "fail to open tty (%d)\n", errno); return 0; } - if ((errno = dup(errno))) { + if ((errno = dup(errno)) < 0) { syslog(2, "fail to setup tty i/o (%d)\n", errno); return 0; } - syslog(0, "user space!\n"); + printf("(%p) user space!\n", (void*)main); + + pid_t pid; + if (!(pid = fork())) { + int err = execve("/mnt/lunaix-os/usr/sh", NULL, NULL); + printf("fail to execute (%d)\n", err); + _exit(err); + } + + waitpid(pid, NULL, 0); return 0; } \ No newline at end of file