understand linux programming