OrionUserland
Barry Importing existing Orion Userland 19aefaa (3 years, 1 month ago)
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/wait.h>
/* Main function */
int
main(int argc, char *argv[])
{
if (getpid() != 1) {
printf("init will not run except as PID#1");
abort();
}
dbgprintf("Starting init");
/* Open standard descriptors */
open("/dev/tty", O_RDONLY);
open("/dev/tty", O_WRONLY);
dup(1);
printf("Welcome to \033[1;32mOrion\033[0m!\n");
int status;
pid_t child;
while (1) {
child = fork();
if (!child) {
char *v[] = { "login", NULL };
int err = execve("/bin/login", v, NULL);
if (err < 0) {
printf("init: %s: ", "/bin/login");
perror(NULL);
while (1);
}
} else {
waitpid(child, &status, 0);
}
printf("\033[H\033[2J"); /* Clear screen */
}
}