support both linux and mac