vitus_wagner (
vitus_wagner) wrote2009-01-22 02:43 pm
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Entry tags:
Дела давно минувших дней.
Лет пятнадцать назад народ (преимущественно американский, отчасти европейский) массово переходил со всяких проприетарных сетей вроде CompuServe и того же AOL на нормальный открытый интернет. Но что-то я не помню, чтобы было слышно про проблемы с коннективити электронной почты. Наоборот, первое что делали эти самые недопровайдеры, стараясь удержать клиентов, бегущик с тонущего корабля, это обеспечивали гейтование почты между своими ни с чем не совместимыми сетями и интернетом. Помнится, приходилось мне в то время переписываться с людьми, у которых адрес был XXXX_XXXX@compuserve.com.
Интересно, почему сейчас выбран совершенно другой способ действий? То ли за пятнадцать лет так радикально ухудшились нравы коммерсантов от телекоммуникаций, то ли дело в том, что тогдашний интернет уже имел свое собственное сообщество пользователей, ценность связи с которым для клиентов провайдерами осознавалась (а про нынешний XMPP несмотря на все усилия Google этого сказать нельзя).
Интересно, почему сейчас выбран совершенно другой способ действий? То ли за пятнадцать лет так радикально ухудшились нравы коммерсантов от телекоммуникаций, то ли дело в том, что тогдашний интернет уже имел свое собственное сообщество пользователей, ценность связи с которым для клиентов провайдерами осознавалась (а про нынешний XMPP несмотря на все усилия Google этого сказать нельзя).
no subject
no subject
Кроме того - зоопарк процессоров. На неприличном уровне - как минимум Intel и Motorola 68000, на приличном - чего только не было - Sparc, MIPS, Alpha.
Это сейчас уже многие из достаточно прилично владеющих программированием могли ни разу в жизни процессора с нормальным порядком байт в слове не видеть.
no subject
no subject
Золотые слова!!
no subject
я вот уж не вспомню, когда меня последний раз порядок байт интересовал.
no subject
no subject
no subject
Более удобный - LE.
no subject
Нормальный процессор, на мой взгляд, это когда в 16-ричном побайтном дампе памяти видишь число типа long long так же, как ты б его сам в шестнадцатиричной системе на бумажке написал. А за misaligned доступ SIGBUS положен.
no subject
когда дамп читаешь одно дело видеть сразу числа а другое дело их постоянно перекручивать в мозгу
no subject
В gdb есть неплохие средства работы с дампами. Потребность читать их в 16-ричном виде скорее всего означает незрелость отладочных средств, используемых в проекте.
Да и не так уж и сложно байты в уме переставить.
no subject
А удобен тем, что биты в числе в естественном порядке идут, от младших к старшим, как и адреса. Удобно при реализации операций с длинными многобайтовыми числами, например. И расширяется значение проще. А что у человеков исторически сложилась привычка писать со старших разрядов — так это всего лишь исторический артефакт, весьма неудобный притом.
no subject
Так Вы и биты в обратном порядке представляете?
О горе мне.;)
> А что у человеков исторически сложилась привычка писать со старших разрядов — так это всего лишь исторический артефакт, весьма неудобный притом.
И индийская, и римская, и вавилонская система писали всегда и изначально со старших.
Это ж-ж-ж неспроста.
no subject
Любая процедура вывода чисел в десятичном виде сперва заполняет буфер «с конца», выделяя младшие десятичные разряды, а потом уже переворачивает их обратно.
Арабы, кстати, пишут справа налево. У них младшие, правые разряды логически идут первыми.
no subject
Я так и нумерую: бит N означает 2^N в байте, то есть старший бит октета имеет номер 7, младший - номер 0. Шпионы тут ни при чём - этот порядок запомнил ещё с середины 80-х.
Да, я знаю, что есть и другие варианты. Но они опять же не в пользу остроконечников:) Например, в IETF'овских документах во всех принят единообразный порядок - при BE нумерация с самого старшего с 0. Вот в RFC791:
При этом в первом по счёту октете IP-пакета (на смещении 0) старшая тетрада - Version, младшая - IHL, и типичный пакет начинается с 0x45 (4 - version, 5 - IHL).
Порядок бит, как ты его понимаешь, специфичен только для линий связи. Вот там он в полный рост (потому что практически во всех протоколах и системах связи, начиная с RS-232 и стандартных синхронных фреймингов, байты передаются начиная с младшего бита), и там LE более логичен в плане линейности изменения смысла бита. Но с другой стороны - именно оттуда пришёл во все сетевые протоколы BE, потому что для операций типа раутинга приход первого байта уже даёт начать лукап, а последнего - ничего не даёт.
> Любая процедура вывода чисел в десятичном виде сперва заполняет буфер «с конца», выделяя младшие десятичные разряды, а потом уже переворачивает их обратно.
А какое нам дело до процедуры вывода? Даже если она так делает, это явление из совсем другой области и к описанной теме не влияет.
> Арабы, кстати, пишут справа налево. У них младшие, правые разряды логически идут первыми.
Арабы так пишут потому, что они заимствовали индийскую систему (в которой текст пишется слева направо) без изменения порядка цифр в числе. Вот это уже в чистейшем виде пример, что такое совместимость в IT. Европейцы повторили этот ход, уже для европейского направления письма тоже сохранив порядок - в результате вернувшись к исходному индийскому, сами того не осознавая (например, у Фибоначчи и у Магницкого вводимые цифры записаны в обратном порядке - от 9 к 1).
no subject
no subject
no subject
no subject
no subject
no subject
Тенденции старых языков плевать на то, что 20000 + 20000 молча без всякого предупреждения даёт -15536, а не выбивание exception'ом или сигналом - надо выжигать калёным железом и выметать стальной метлой.
Сейчас не 1970-й. Слава богу, в майнстриме хоть немного начало появляться понимание этого (checked в C# и аналоги)...
no subject
no subject
С проприетарными сетями ситуация, думаю, была ещё хуже, чем с современными провайдерами. Вот и приходилось провайдерам подстраиваться. Иначе появился бы тот, кто организовал бы гейтование во все сети и загрёб бы большую часть пользователей.