Как правило, да, вы можете использовать любое расширение, которое хотите, также нет необходимости, скажем, регистрировать расширения файлов через какой-либо международный орган или что-либо еще.
Однако некоторые программы ожидают, что их файлы будут иметь определенное расширение - это обычно имеет большее значение в графической среде - то есть диалоги «Открыть файл» фильтруют их содержимое по расширению, или диалоговое окно «Сохранить файл» может угадать, в каком формате сохранять файл, в соответствии с каким пользователем расширения. предоставлена.
В Windows использование произвольных расширений может быть немного сложнее из-за способа работы диалогов Open и Save, но все же вы можете иметь текстовый файл с расширением .kjhkhkj
Относительно того, «как система решает, какую программу использовать»: вы говорите это. В терминале вы вызываете программу и даете ей имя файла:
gedit message.kjhkjhkj
и он будет открыт в Gedit
В Nautilus вы щелкаете правой кнопкой мыши по файлу и выбираете «Открыть с помощью ...», где вы можете указать программу. Также возможно сделать эту ассоциацию постоянной, чтобы файлы .kjhkhkj
всегда открывались с помощью gedit.
В Windows процедура аналогична, хотя Windows, как правило, больше полагается на известные расширения файлов (т. Е. Видеофайлы будут иметь миниатюры предварительного просмотра в Ubuntu независимо от их расширения, для Windows необходимо, чтобы они имели одно из известных расширений (.avi, .mov и т.д.)