These slides are the result of a series of email exchanges and conversations with Mendel Rosenblum (CS110, CS140, and CS142 instructor) and Phil Levis (CS110E and CS144 instructor).
FILE *
s and C++ iostream
s for a while now, and knew little of how they might work until we studied them this quarter). We did learn about file descriptors this quarter, and we leverage that abstraction to make other data sources (e.g. networked servers) look and behave like files.fork
and execvp
work).thread
s, but you don't really know how they're implemented).#include
s, #define
s, and other preprocessor directives to build a translation unit that is fed to...socket
, bind
, etc.) needed to build networked applications.open
, write
, fork
, sleep
, bind
, etc. are userland wrappers around a special type of function call into the kernel. User space and kernel space are two separate modules with a hard boundary separating them).