- บทความเกี่ยวกับการพอร์ต Lotus 1-2-3 ซึ่งเป็นซอฟต์แวร์อายุ 30 ปี มายัง Linux
- ผู้เขียนซึ่งเป็นแฟนตัวยงของ Lotus 1-2-3 ดูแลไดรเวอร์เพื่อให้ซอฟต์แวร์ทำงานได้ดีบนระบบสมัยใหม่
- Lotus 1-2-3 ถูกออกแบบให้ขยายความสามารถได้ด้วยปลั๊กอินหรือ "add-in" แต่คอมไพเลอร์และ SDK ของ LPL ซึ่งเป็นภาษาพิเศษที่ใช้เขียน add-in เหล่านี้ได้สูญหายไป
- ผู้เขียนพบสำเนา SDK จาก sysop ในแวดวง BBS ยุค 90 และใช้มันสร้างปลั๊กอินตัวอย่างบางส่วน
- ผู้เขียนพบสำเนา Lotus 1-2-3 สำหรับ UNIX ซึ่งเคยเชื่อว่าสูญหายไปแล้ว และตัดสินใจพอร์ตมันมาสู่ Linux
- กระบวนการพอร์ตต้องฝ่าฟันความท้าทายทางเทคนิคหลายอย่าง เช่น system call ที่เข้ากันไม่ได้ระหว่าง UNIX กับ Linux, ฟังก์ชันที่เข้ากันไม่ได้, และ
termios ที่ซับซ้อน
- ผู้เขียนใช้ GNU objcopy เพื่อแปลงไฟล์อ็อบเจ็กต์ COFF เป็น ELF ซึ่งเป็นฟอร์แมตที่ Linux ใช้ และสร้างเครื่องมือชื่อ coffsyrup สำหรับลบสัญลักษณ์ COFF
- ผู้เขียนต้องข้ามการตรวจสอบไลเซนส์ เนื่องจากซอฟต์แวร์จะปฏิเสธการทำงานหากไม่มีไลเซนส์
- ตอนนี้ Lotus 1-2-3 ที่พอร์ตแล้วสามารถใช้งานบน Linux ได้ครบ 100% แม้ยังมีปัญหาบางอย่างที่ต้องแก้ไข
- ผู้เขียนได้เผยแพร่โค้ดทั้งหมดบน GitHub สำหรับทุกคนที่อยากลองทำตาม
1 ความคิดเห็น
ความเห็นจาก Hacker News