for understanding linux programming