junk dna (программистское)
May. 29th, 2010 08:36 pmЗамечательный образ в записи Реймонда Чена:
Но что в коде MS-DOS специально оставляли куски байтов из предыдущих версий, которые и не запускались никогда, но нужны были для старых программ, которые специально их искали - этого я не знал. Это уже почти за пределами моего понимания.
Когда очередные победители будут в очередной раз писать историю первых десятилетий персональных компьютеров, давайте и это вспомним. Уверенная победа Майкрософта была обусловлена многими причинами: глупыми поступками IBM, недальновидностью Apple, агрессивной тактикой самого Майкрософта по экслюзивным сделкам с OEM... но еще и героическими усилиями во имя совместимости старых приложений с новыми версиями ОС и даже с новыми ОС. Никакой программист не хочет заниматься такой мутной херней - но важность ее для пользователей Майкрософт понимала лучше всех своих конкурентов.
MS-DOS is perhaps one of the strongest examples of requiring absolute unyielding backward compatibility. Hundreds if not thousands of programs scanned memory looking for specific byte sequences inside MS-DOS so it could patch them or hunted around inside MS-DOS's internal state variables so it could modify them. If you move one thing out of place, those programs stop working.Я не знал об этом. Я знал, что DOS и Windows проводили политику фанатичной совместимости с предыдущими версиями. Я знал, что во всех версиях Windows хранится и пополняется список "совместимых программ": когда Windows распознает, что бежит такая программа, она специально возвращает ей нестандартные результаты на определенные системные вызовы - потому что такие результаты возвращала какая-то прошлая версия, и данная программа этим пользуется, хоть они и были недокументированы.
MS-DOS contains chunks of "junk DNA", code fragments which do nothing but waste space, but which exist so that programs which go scanning through memory looking for specific byte sequences will find them. (This principle is not dead; there's even some junk DNA in Explorer.)
Но что в коде MS-DOS специально оставляли куски байтов из предыдущих версий, которые и не запускались никогда, но нужны были для старых программ, которые специально их искали - этого я не знал. Это уже почти за пределами моего понимания.
Когда очередные победители будут в очередной раз писать историю первых десятилетий персональных компьютеров, давайте и это вспомним. Уверенная победа Майкрософта была обусловлена многими причинами: глупыми поступками IBM, недальновидностью Apple, агрессивной тактикой самого Майкрософта по экслюзивным сделкам с OEM... но еще и героическими усилиями во имя совместимости старых приложений с новыми версиями ОС и даже с новыми ОС. Никакой программист не хочет заниматься такой мутной херней - но важность ее для пользователей Майкрософт понимала лучше всех своих конкурентов.
no subject
Date: 2010-05-29 05:42 pm (UTC)no subject
Date: 2010-05-29 06:08 pm (UTC)Только все-таки одно стандартное микрософтовское вранье они повторяют - что винда основана на VMS.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2010-05-31 04:27 pm (UTC)(no subject)
From:no subject
Date: 2010-05-29 05:56 pm (UTC)no subject
Date: 2010-05-29 06:08 pm (UTC)(no subject)
From: (Anonymous) - Date: 2010-05-29 06:17 pm (UTC) - Expand(no subject)
From:no subject
Date: 2010-05-29 06:27 pm (UTC)(no subject)
From: (Anonymous) - Date: 2010-05-29 06:33 pm (UTC) - ExpandЯ бы это описал немного иначе
Date: 2010-05-29 05:57 pm (UTC)Программы патчили дос и меняли внутренние переменные состояния не от хорошей жизни, а от того, что в дос не было штатных API для того, чтобы сделать простые вещи.
А теперь вся эта junk DNA рушится под собственной тяжестью. Люди, которые весь этот джанк писали, ушли на пенсию, и единственный способ, которым микрософт может обеспечить совместимость со старым софтом - это запуск XP в виртуалке.
Re: Я бы это описал немного иначе
Date: 2010-05-29 06:12 pm (UTC)Re: Я бы это описал немного иначе
From:Re: Я бы это описал немного иначе
From:Re: Я бы это описал немного иначе
From:Re: Я бы это описал немного иначе
From:Re: Я бы это описал немного иначе
From:Re: Я бы это описал немного иначе
From:Re: Я бы это описал немного иначе
From:Re: Я бы это описал немного иначе
From:Re: Я бы это описал немного иначе
From:Re: Я бы это описал немного иначе
From:Re: Я бы это описал немного иначе
From:Re: Я бы это описал немного иначе
From:Re: Я бы это описал немного иначе
From:Re: Я бы это описал немного иначе
From:no subject
Date: 2010-05-29 06:16 pm (UTC)Победили они при этом себя тоже - Xenix, OS/2 - все пали жертвой. Им сколько понадобилось чтобы все-таки пропихнуть новую архитектуру ОС - 15 лет?
То что разработка для MS-DOS постоянно требовала копания в кишках, подмены каких-то interrupt handlers и прочих хаков, которые должны бы были уже отмереть вмести с эпохой Sinclair Spectrum - это серьезная проблема архитектуры. Хвалить Майкрософт за то, что они были вынуждены много лет это поддерживать, это примерно как если бы я сейчас сказал с восторгом "смотрите! Это 2010 год, я работаю с своим виртуализированным линуксом в cloud на супер-дупер серверах с 48 процессорами каждый, через канал, три раза зашифрованный так, что никто не расшифрует за сто лет, а внутри, представляете, эмулируется пишущая машинка!"
no subject
Date: 2010-05-29 06:27 pm (UTC)Там были «точки входа» RSTx, но это было значительно менее удобно, чем прерывания в PC.
(no subject)
From:no subject
Date: 2010-05-29 06:31 pm (UTC)no subject
Date: 2010-05-29 06:59 pm (UTC)(no subject)
From:(no subject)
From:no subject
Date: 2010-05-29 07:09 pm (UTC)При переходе на Висту нарушилась работа кучи программ. И что?
(no subject)
From:no subject
Date: 2010-05-29 07:21 pm (UTC)Это примерно в тоже время, когда уже были макинтоши с одной кнопкой.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2010-05-29 06:53 pm (UTC)no subject
Date: 2010-05-29 06:57 pm (UTC)no subject
Date: 2010-05-29 06:59 pm (UTC)no subject
Date: 2010-05-29 08:10 pm (UTC)(no subject)
From: (Anonymous) - Date: 2010-05-29 11:20 pm (UTC) - Expand(no subject)
From: (Anonymous) - Date: 2010-05-30 11:17 am (UTC) - Expandno subject
Date: 2010-05-29 10:11 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2010-05-31 06:53 am (UTC)про винду и симсити тоже красивая история была
Date: 2010-05-29 08:56 pm (UTC)в микрософт нашли причину (баг в самой игре, на сколько я помню) и встроили патч к бинарнику в сам windows. При запуске ОС определяет что запускается эта игра и патчит что нужно
Re: про винду и симсити тоже красивая история была
Date: 2010-06-03 09:42 pm (UTC)no subject
Date: 2010-05-29 09:51 pm (UTC)no subject
Date: 2010-05-29 10:04 pm (UTC)y эппла 5% рынка и 90% норма прибыли
(цифры условные)
подход к извлечению прибыли совершенно разный
эпплу все подряд юзеры не нужны, всякая шваль денег не принесет
а мс нужны именно все подряд, именно всякая шваль
ну то есть это мне так кажется, я на самом деле глубоко ситуацию не изучал
прав я или нет?
(no subject)
From:(no subject)
From: (Anonymous) - Date: 2010-05-30 03:21 am (UTC) - Expand(no subject)
From:(no subject)
From:no subject
Date: 2010-05-30 07:14 am (UTC)no subject
Date: 2010-05-30 09:51 am (UTC)Это когда MS SSIS 2005 файл без проблем открывается на MS SSIS 2008
(no subject)
From:no subject
Date: 2010-05-30 10:42 am (UTC)no subject
Date: 2010-05-30 12:19 pm (UTC)Откройте на просмотр любой EXE-файл - там будет "This program cannot be run in DOS mode" в MZ-заголовке. А всё от того, что когда-то в Microsoft работал Mark Zbikowski.