improved os identification macros