Ответы:
Работа, необходимая для того, чтобы ядро было 64-битным, была выполнена довольно давно, с использованием систем DEC Alpha. Программы, однако, это другое дело.
Общий консенсус, который я видел до сих пор:
/lib
и /lib64
каталоги для систем, которые имеют смешанные двоичные файлыКроме этого, вы действительно не увидите много «горя» из смешанных 32/64 битных сборок.
multilib
alien.slackbook.org/dokuwiki/doku.php?id=slackware:multilib
Windows и * ix использовали разные модели данных для перехода. Эта страница UNIX.org немного устарела , но все же содержит хороший обзор компромиссов (обратите внимание, что long long
позже он был добавлен в C99 и должен был быть как минимум 64-разрядным). Вы также можете увидеть статью в Википедии на ту же тему. Как указывалось в конце статьи UNIX.org, большинство UNIX-подобных систем используют LP64, а это значит long
, что long long
все указатели являются 64-битными.
В Windows использовалась так называемая модель данных LLP64, что означает, что только long long
указатели и 64-битные. long
остается 32-битным. Одной из причин было просто то, что они не хотели проходить и исправлять неработающий код, который предполагал long
вписываться в int
.
Поскольку дистрибутивы Linux - это в основном OpenSource, большой переход уже сделан. Если вы не используете правильное программное обеспечение (такое как Skype), вы можете запустить чистую 64-битную систему без каких-либо недостатков.
Однако реальная разница, IMHO, более правильная и открытая, чем unix против windows, поскольку обычно сначала портируется программное обеспечение с открытым исходным кодом (некоторым волонтерам нужно что-то перекомпилировать - возможно, исправить некоторые проблемы компиляции) - или в большинстве случаев не переносить в все, но только перекомпилировано;) - и свойство, которое переносится последним.
Возможно, дополнительно в Linux у вас есть репозитории, поэтому установка выполняется автоматически - вам не нужно выбирать 64-битную или 32-битную версию (система выбирает вашу автоматически). На Windows программы загружаются и имеют отдельные 64-битную и 32-битную версии:
Я полагаю, что именно по этой причине двоичные файлы Windows обычно являются 32-разрядными - они универсальны, и не все переходят на 64-разрядную версию.
На самом деле, попробуйте «Длинный путь к 64-битам» в очереди ACM: http://queue.acm.org/detail.cfm?id=1165766 Это было позже обнаружено Коммуникациями ACM. Первым 64-разрядным микропроцессором был MIPS R4000, выпущенный в SGI Crimson 1Q1992, декабрь. Альфы были выпущены в конце того же года.
Сначала R4000 работали в 32-битном режиме, а затем в режиме 64/32, то есть в 64-битной ОС, 64-битном или 32-битном коде пользователя. Alphas всегда запускал UNIX только в 64-битном режиме (разумный выбор, поскольку не было установленной базы 32-битных приложений).
Позже, в 1990-х годах, SGI приложил усилия для 64-битной Linux (для запуска на Itanium), примерно в то время, когда XFS была портирована на Linux (ей действительно требовалась 64-битная версия).