more comprehensive linux detection