12 puan yazan xguru 2022-05-25 | 4 yorum | WhatsApp'ta paylaş
  • 30 yıllık Lotus’un Unix sürümünü Linux’a taşıma sürecinin özeti

Arka plan

  • Lotus hayranı olduğu için mevcut DOS sürümünü tersine mühendislikle inceleyip DosEmu için bir ekran sürücüsü yaparak çalıştırmış
  • Ancak eski Lotus Add-in’leri mümkün değildi
    Özel bir dil olan LPL ile geliştirilmişlerdi ve derleyici/SDK yoktu
    → O dönemde 395 dolar gibi yüksek fiyatlı ücretli bir üründü ve buna sahip birini bulamamış
  • Sonra 90’larda BBS işleten bir SYSOP aracılığıyla, teyp yedeğinden SDK’nin warez kopyasını elde etmiş
    → Lotus 1-2-3 için ADK (Add-in Development Kit)
  • O BBS’de Lotus 1-2-3 for Unix’in de warez sürümü varmış
    → SCO Professional gibi ünlü Unix ofis rakibi nedeniyle pek satmayan ve unutulan bir ürün

Unix için Lotus 1-2-3

  • 80’lerde kullanılan TD0 adlı sıkıştırılmış disk imajı formatından oluşuyormuş
  • samdisk ile raw disk imajına dönüştürmüş
  • Disk içeriğinde 1-2-3’ün sembollerini içeren object dosyaları bulunduğunu fark etmiş
    → 90’ların başında dlopen() yaygın kullanılmadığı için buna ihtiyaç duyulduğu belirtiliyor

Hackleme

  • Bu object dosyaları sayesinde Lotus 1-2-3’ün iç yapısı hakkında sahip olduğu birçok soru yanıt bulmuş
  • Geliştirdiği sürücü daha fazla iş yapabilir hale gelmiş

GNU objcopy

  • Bu object dosyaları derlendiğinde Linux’un ilk sürümü henüz yayımlanmamıştı
  • Buna rağmen objcopy ile COFF object dosyaları ELF’e dönüştürülebiliyor

Taşıma sorunları

Sistem çağrıları

  • İlk sorun, Linux ile UNIX’in aynı sistem çağrısı arayüzüne sahip olmamasıydı
  • UNIX lcall7 arayüzünü kullandığı için open() çağrısını bulup bunu glibc üzerinden çağırmaya karar vermiş
    → Bu sembolü undefined yaparsak bağlayıcı bunu kendisi çözmez mi?
    → Ama objcopy böyle çalışmadığından, sonunda bunu zorla silen coffsyrup adlı bir araç yazmış
  • Uyumsuz bazı işlevleri objcopy + coffsyrup ile tamamen değiştirmiş
    stat(), times(), uname(), fcntl(), ioctl()

Lisanslama

  • Elbette bu yazılım lisans olmadan çalışmıyor
  • Kendisi Lotus 1-2-3 kutusunun yasal sahibi ve bu yazılım da 32 yıllık abandonware olduğundan,
    muhtemelen geliştirici Mitch Kapor’un bu lisans kontrolünün atlatılmasına itiraz etmeyeceğini düşünüyor
    → (Mitch Kapor, Lotus’u geliştirmesiyle tanınır ve EFF’in de kurucu ortaklarındandır.)
  • lic_init() işlevinde LICENSE.000 dosyasında tarih ile kullanıcı/sistem adı varsa çalıştığı için bunu uygun şekilde ayarlayıp geçmiş

Sonuç

  • Sonuç olarak Lotus 1-2-3 yeni bir işletim sistemi olan Linux’a taşınmış oldu
  • Hâlâ bazı pürüzler var ama %100 kullanılabilir

4 yorum

 
nuthatch 2022-05-25

Aman Tanrım... bu da ne böyle.. vay canına

 
jjpark78 2022-05-25

Meraklısının iyisi yabancı meraklı olur derler ya... gerçekten de öyleymiş..

 
xguru 2022-05-25

Vay be... gerçekten müthiş bir tutku. Ben Lotus'u o kadar çok kullanmadım, daha çok Multiplan kullandım.
https://en.wikipedia.org/wiki/Multiplan

Multiplan'ın Korece sürümü de çıkmıştı; o dönemde Koreceyi düzgün destekleyen tek ürün buydu.
1994'te üretimi durdurulmuş olsa da, Kore'de hâlâ şirketlerde kullanan çok yer vardı; sanırım 1997 civarına kadar kullanıldı.
Multiplan'ın sonu - DOS döneminin sonu

 
xguru 2022-05-25

https://www.hellomarket.com/item/162929337

Açılmamış Korece Multiplan paketini satan bir ilan buldum.. Vay be..