Understanding Unix/Linux Programming