Тэвис Орманди ( [ Tavis Ormandy ](
https://en.wikipedia.org/wiki/Tavis_Ormandy ) ) выпустил бинарный патч, который модифицирует Lotus 1-2-3 для ОС UNIX System V 386, обеспечивая его работу под современным линуксом. Началось всё с того, что Орманди из любопытства изучал дистрибутив Lotus 1-2-3 (предположительно 1990 года) под коммерческий юникс и обнаружил, необычный способ линковки исполняемого файла в формате COFF — [ partial linking ](
https://sourceware.org/binutils/docs-2.38/ld/Options.html#index-partial-link ) . Как ему объяснили, такой способ позволял при желании слинковать исполняемый файл с плагинами, которые нельзя было подключить иначе, если в ОС не было [ dlopen() ](
https://man7.org/linux/man-pages/man3/dlopen.3.html ) . В итоге Орманди смог написать утилиты для правки системных вызовов Unix и обёртку для их замены на вызовы Linux и слинковать всё в 32-битный ELF. Одной из крупных проблем оказалась адаптация [ termios ](
https://en.wikibooks.org/wiki/Serial_Programming/termios ) . Интересно, что на старых версиях Линукса, с поддержкой [ callgate ](
https://en.wikipedia.org/wiki/Callgate ) и [ lcall7/lcall27 ](
https://tldp.org/LDP/lki/lki-2.html#ss2.11 ) такая адаптация прошла бы легче. Ещё одной из проблем оказалась защита от копирования. Орманди считает себя вправе изготовить файл-ключ, обеспечивающий работу программы, так как он владеет [ легальной копией Lotus 1-2-3 под MS-DOS ](
https://www.youtube.com/watch?v=p8UqECpPCgc ) . Для остальных он приводит скриншот дизассемблера IDA и расплывчатые рекомендации, как делать такой файл. Программа не продаётся уже почти 20 лет. Да и легальных владельцев Lotus 1-2-3 в мире немало. Тэвис Орманди — специалист по безопасности («white hat») из Гугла и энтузиаст Lotus 1-2-3. Ранее написал [ драйвер ](
https://github.com/taviso/lotusdrv ) для MS-DOS версии Lotus, обеспечивающий её работу в окне терминала DOSEMU2 произвольного размера. [ Lotus 1-2-3 ](
https://ru.wikipedia.org/wiki/Lotus_1-2-3 ) — одна из первых программ электронных таблиц, отличавшаяся от конкурентов скоростью, надёжностью и удобством. Её нередко называют одной из причин коммерческого успеха платформы IBM PC в 1980-х. Поддержка Lotus долго была критерием совместимости для клонов. В 1990-х Lotus проиграла MS Excel-ю, так как GUI-версия появилась слишком поздно, и в 1995 году программу купила IBM. [ Новость на Opennet ](
https://www.opennet.ru/opennews/art.shtml?num=57233 ) [ Исходные тексты патча и утилит с инструкцией ](
https://github.com/taviso/123elf )
Ссылка:
https://www.linux.org.ru/news/proprietary/16876825