Sockets library vs. system call
l A pre-forked TCP server won’t usually
work the way we want if sockets is not
part of the kernel:
calling accept() is a library call, not an
atomic operation.
l We can get around this by making sure
only one child calls accept() at a time
using some locking scheme.