ТЕХНИКА ОПТИМИЗАЦИИ ПРОГРАММ

       

Архиерей – царство MS-DOS


В те далекие стародавние времена, когда объем жестких дисков (в просторечии – винчестеров) измерялся мегабайтами, - этих мегабайт никогда не хватало, и большинство файлов (особенно редко употребляемых) приходилось хранить в упакованном виде. Перед запуском файл распаковывали, а после завершения работы – упаковывали вновь, чтобы освободить место для распаковки другого.

Когда же эти махинации всем окончательно надоели, программисты (вспомнив, что компьютер призван служить человеку, а не наоборот), додумались до автоматической распаковки исполняемых файлов "на лету". Идея заключалась в дописывании к сжатому архиву крохотного распаковщика, распаковывающего файл не на диск, а непосредственно в оперативную память. Конечно, время загрузки ощутимо увеличивалось (особенно на машинах с медленными процессорами), но это с лихвой окупалось простотой запуска и экономией дискового пространства.

Вскоре появился целый "пантеон" упаковщиков (их тогда писали все кому не лень) – AINEXE, DIET, EXEPACK, LZEXE, PKLITE и масса других – всех не перечислись! И не удивительно: процессоры день ото дня становились все производительнее и производительнее – уже на "тройке" распаковка занимала столь незначительное время, что им было можно полностью пренебречь. К тому же приятным побочным эффектом оказалась защита от дизассемблирования.

Действительно, непосредственно дизассемблировать упакованный файл невозможно, - прежде его необходимо распаковать. Конечно, на каждый щит найдется свой меч – из под пера хакеров вышло немало замечательных универсальных распаковщиков (UNP, Intruder, UUP, а вершиной всему стал CPU386 со встроенным эмулятором реального режима 80386 процессора), но качество автоматической распаковки оставляло желать лучшего (порой распакованные файлы зависали при запуске или в процессе работы), а ручной трассировкой владели далеко не все.

Словом, при всех своих достоинствах, упаковка исполняемых файлов не имела никаких недостатков и не собиралась сдавать позиций даже с приходом емких (по тем временам!) одно – двух гигабайтных жестких дисков и лазерных накопителей на CD-ROM.



Содержание раздела