1) линуксы - пох,
шиндошс - только читабельные символы кроме :,* и ещё вагон включая целые названия типа con, prn
2) линуксы - расширения чтобы пользователю было понятно что за файл, то есть самой системе расширение не важно. здесь не совсем уместно понятие неполного имени файла
винда - по расширению определяется тип файла, то есть чтобы запустить приложение можно напейсать имя файла приложения без расширения.