linux system programming practice