understanding unix linux programming