/* * @file * * This is the FoolOS Init process running on pid=1. * * I just spawns a `fool-term` each time an character arrives * on its '/dev/tty' (controlling terminal of this process) * */ static char *env1[]={"HOME=/home/miguel","PS1=$","PWD=/home/miguel","PATH=/bin","TERM=fool-term",0}; static char *argv1[]={"xterm","/bin/fsh",0}; void fork_and_exec() { int pid=fork(); if(!pid) { // execve in child execve("/bin/xterm",argv1,env1); } } int main(int argc, char **argv) { int tty_fd=_open("/dev/tty"); while(1) { char buf[1]; read(tty_fd,buf,1); fork_and_exec(); } }