What's the difference between a system call and library function?