Найти тему
Проект OpenNet

Lotus 1-2-3 портирован для Linux

Тэвис Орманди (Tavis Ormandy), исследователь безопасности из компании Google, ради интереса портировал для работы в Linux табличный процессор Lotus 1-2-3, выпущенный в 1988 году, за три года до появления самого Linux. Порт выполнен на основе переработки исполняемых файлов для UNIX, найденных в архиве с варезом на одной из BBS. Работа интересна тем, что портирование выполнено на уровне машинных кодов и динамического связывания без использования эмуляторов или виртуальных машин. В итоге получен исполняемый файл, способный запускаться в Linux без лишних прослоек. Инструментарий для адаптации имеющихся в открытом доступе исполняемых файлов Lotus 1-2-3 для запуска в Linux опубликован на GitHub.

При портировании выполнена адаптация к интерфейсу системных вызовов Linux, обеспечено перенаправление вызовов в glibc, произведена замена несовместимых функций и интегрирован альтернативный драйвер для вывода в терминал. В собственный экземпляр также добавлен обход проверки лицензии, но Тэвис владеет коробочной копией Lotus 1-2-3 для MS-DOS и имеет законное право на использование продукта. Создание порта не является первым экспериментом Тэвиса по запуску Lotus 1-2-3 в Linux, ранее он сопровождал специальный драйвер для DOSEMU, обеспечивающий работу DOS-версии Lotus 1-2-3 на современных терминалах. Теперь выполнена задача запуска Lotus 1-2-3 в Linux без использования эмулятора.