Особенностями конкретной системы. Если брать язык высокого уровня, то практически ничем, а вот если спуститься чуть ниже, уже есть различия. нпрм, обращение к текущему времени в линухе и винде разные на Си. Даже точка отсчёта начального времени разная 1970й и 1600й год, т. е. разные стандарты, которые надо учитывать. Больше различий при конструировании интерфейса, да и то, если не использовать кроссплатформенные средства вроде OpenCL
ЗЫ Доса нет уже давно, можно тогда IBM360 вспомнить, там различия существенные
Все перечисленное вами, не языки программирования. а операционные системы.
Исходным кодом.
Языки можно поделить на 2 части внутри себя - одна отвечает за синтаксис и базовые функции, они везде одинаковые. К примеру для сей есть стандарт ANSI C, STL и прочая в этом духе. В линухке, винде и досе они одинаковые.
И есть вторая часть - взаимодействие с внешним миром - они могут сильно различатся. К примеру в досе просто нет понятия окна, а в винде есть.
Ничем. Отличается только компилятором, который преобразовывает исходный код и исполняемый файл.