HLFX.Ru Forum Страницы (2): [1] 2 »
Показать все 30 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Технические вопросы (https://hlfx.ru/forum/forumdisplay.php?forumid=20)
-- Endianness - анахронизм? (https://hlfx.ru/forum/showthread.php?threadid=4242)


Отправлено XaeroX 14-01-2014 в 10:41:

Endianness - анахронизм?

Как мы помним с детства, исходники квейков пестрят функциями LittleLong и LittleShort, оставшиеся в наследство от стремления Кармака запускать кваку на своём личном маке с PowerPC, являвшимся процессором big-endian архитектуры. Поэтому и написан код, способный компилироваться раздельно в разные эндианы, а иногда даже детектировать endianness в рантайме.
Но в последнее десятилетие произошли серьёзные события:

  1. MacOS X начала работать с процессорами little-endian, а последняя версия вообще работает только на интелах - то есть PowerPC нафиг сдох, как кокаин из известного фильма Тарантино.
  2. Телефоны на процессорах ARM работают в little-endian режиме, за исключением совсем уж древних, где небось даже злых птичек не запустишь. Т.е. процессор ARM не только умеет работать в обеих endianness, но ещё и little по умолчанию. И всё больше телефонов оснащаются процессорами Intel.

Отсюда возникает закономерный вопрос: а существуют ли сейчас распространённые десктопные решения на основе big endian? Или хотя бы сервера, где можно вешать дедикейтед? Экзотика типа "у моей бабушки нашёлся PowerPC, и я сам поднял на нём свой сервак" не в счёт.
Проголосовавших за "Да" милости просим отметиться в теме, приведя соответствующие аргументы.

UPD: речь только об архитектуре процессора! Про сетевой код вспоминать не нужно.

__________________

xaerox on Vivino


Отправлено FreeSlave 14-01-2014 в 10:53:

Задумываюсь, но не в контексте архитектуры, а в контексте TCP/IP, ибо там как раз порядок байтов иной.
На практике машины с big endian не встречал, но он может быть на HP-UX и Solaris (SPARC).


Отправлено XaeroX 14-01-2014 в 11:00:

Цитата:
FreeSlave писал:
не в контексте архитектуры, а в контексте TCP/IP

Речь исключительно об архитектуре.
Т.е. когда ты грузишь бсп-файл, а он бац - и не грузится. Потому что создан в литтл-эндиане, а у тебя биг, и надо его перекодировать сначала.
Поправил пост и название опроса.

Добавлено 14-01-2014 в 18:00:

Цитата:
FreeSlave писал:
он может быть на HP-UX и Solaris (SPARC)

Ну кваку на них люди запускают, играют? Или только крузис таки серверная экзотика?

__________________

xaerox on Vivino


Отправлено FreeSlave 14-01-2014 в 11:11:

XaeroX, гугление показало, что квака под соляру таки есть ( http://blog.boreas.ro/2007/08/gaming-on-solaris.html ). Насчёт распространенности не знаю.


Отправлено XaeroX 14-01-2014 в 11:14:

Я понимаю, что есть. Полтора землекопа есть на каждой системе. Речь о полноценной аудитории геймеров. Традиционно такими аудиториями считаются пользователи Windows, Linux, MacOX, и вот теперь iOS и Android. Я к тому, что отныне они все вроде как little-endian, и про LittleLong можно смело забыть, как мы забыли про обязательное выравнивание?

__________________

xaerox on Vivino


Отправлено thambs 14-01-2014 в 11:51:

XaeroX
каким запросом гууглить что такое "обязательное выравнивание"?

__________________
http://www.moddb.com/mods/monorail-quest


Отправлено FreeSlave 14-01-2014 в 12:14:

XaeroX, линуксы и на архитектуры с big-endian есть, но игроков там те же полтора землекопа.
Я думаю, если возникнет внезапная потребность в поддержке big-endian, то написать в нужных местах fromLittleEndian и toLittleEndian будет несложно.


Отправлено XaeroX 14-01-2014 в 12:25:

thambs
Гугли просто "выравнивание", там можно найти статьи, где описывается, что на старых PPC доступ к невыровненным данным возбуждал исключение.
Да вот хотя бы: http://www.ibm.com/developerworks/library/pa-dalign/

Добавлено 14-01-2014 в 19:25:

Цитата:
FreeSlave писал:
написать в нужных местах fromLittleEndian и toLittleEndian будет несложно.

Не скажи, эти места ещё отыскать надо будет, да по всему проекту.

__________________

xaerox on Vivino


Отправлено Дядя Миша 14-01-2014 в 15:36:

Я выбросил эти вещи из ксаша в 2011 году. На весь проект у меня остался один BigShort - для сети.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Government-Man 15-01-2014 в 00:55:

Я для записи в файл и чтения из него обычно использую таблицы, наподобие тех, что используются сейврестором в халфе. В этих таблицах указано, какие поля должны сохраняться в файл, и таки да, там есть возможность конверсии из LE в BE и обратно.

Все это делается автоматически, поэтому совершенно не мешает и не напрягает. А раз оно не мешает, то пусть будет на всякий случай - примерно так я рассуждал.


Отправлено ERIK-13 18-01-2014 в 09:50:

Цитата:
XaeroX писал:
а существуют ли сейчас распространённые десктопные решения на основе big endian?

Существуют консоли. Седьмое поколение консолей (PS3, Xbox 360, Wii) целиком работало на PowerPC. В восьмом поколении на PowerPC работает Wii U.


Отправлено XaeroX 18-01-2014 в 11:36:

ERIK-13
Они же все Little-endian, не?

__________________

xaerox on Vivino


Отправлено ERIK-13 18-01-2014 в 13:15:

XaeroX
Нет, все консоли, которые я перечислил - Big-endian.


Отправлено XaeroX 18-01-2014 в 13:25:

Странно, а в интернетах пишут, что их процы в обеих эндианах работать умеют, и это переключается программно.

__________________

xaerox on Vivino


Отправлено ERIK-13 18-01-2014 в 13:40:

XaeroX
Процы-то сами по себе умеют, а вот SDK для консолей с Little-endian не дружат, и ресурсы консольных игр все записаны в Big-endian. Насколько я знаю, проц в PS3 переключаться в другую эндиану совсем не умеет.

Кстати, Кармак не так давно писал в твиттере про эндиану Wii U: https://twitter.com/ID_AA_Carmack/s...382876312317952


Временная зона GMT. Текущее время 18:41. Страницы (2): [1] 2 »
Показать все 30 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024