2pm jlab, lab #9. Went through pretty much the whole thing this time, though skipping some parts and wondering what the heck is going on, as usual
5:50pm went to 4th floor and got some Doritos because
6pm OS. Virtual computers and how they work in memory: text, data, bss, stack. Learned about the exec system call and how it does things in memory, how the first function called (in a C program) isn’t main() but actually __start() or some equivalent. How shell scripts work (the significance of the #! at the beginning). Forks and how they are used for certain things (i.e. in shells). Termination of programs, the exit() function and how it is a wrapper for the _exit() function call, exit codes and signal numbers. Per-process file descriptor tables, global open file tables, copying of FD tables during forks (and relevant consequences), I/O redirection via file descriptors, dup2(), cpu time: system time vs user time. Got assignment 3, which is to write a (somewhat simplified) UNIX shell.
9pm went home.