Энтузиаст портировал табличный процессор Lotus 1-2-3 на Linux

acytwf1acs-z9g7f5hdxefjnjpo.jpeg

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

Также Орманди выложил на GitHub инструментарий для адаптации имеющихся в открытом доступе исполняемых файлов Lotus 1–2–3 для запуска в Linux


Разработчик пояснил, что при портировании он выполнил адаптацию к интерфейсу системных вызовов Linux, обеспечил перенаправление вызовов в glibc, произвел замену несовместимых функций и интегрировал альтернативный драйвер для вывода в терминал.

В проекте пока не все работает, что задумывали разработчики более 35 лет назад. Есть проблемы с распознаванием всех клавиш клавиатуры в xterm и других терминалов. Также не работает графический режим и недоступна печать.

У Орманди есть лицензионная версия Lotus 1–2–3 для MS-DOS. Он ранее показывал, как ее можно запустить на Linux. Орманди для этого выпустил специальный драйвер для DOSEMU, чтобы можно было запустить DOS-версию Lotus 1–2–3 на современных терминалах.

© Habrahabr.ru