Prototipe sistem arsip olive memungkinkan Anda untuk menjalankan kode vintage pada komputer modern

Pada awal 2010, ekonom Harvard Carmen Reinhart dan Kenneth Rogov menerbitkan analisis data ekonomi dari berbagai negara, dan menyimpulkan bahwa jika utang melebihi 90% dari PDB, ini akan mengancam pertumbuhan ekonomi negara itu. Dengan begitu banyak hutang, menurut mereka, pertumbuhan harus menjadi negatif.
Analisis mereka dibuat tak lama setelah resesi 2008, sehingga secara langsung terkait dengan pekerjaan anggota parlemen, banyak di antaranya yakin akan perlunya meningkatkan utang untuk merangsang ekonomi nasional. Pada saat yang sama, para politisi konservatif seperti Olli Rehn, yang saat itu
menjabat sebagai Komisioner Eropa , dan Anggota Kongres AS Paul Ryan, menggunakan penemuan Reinhart dan Rogov untuk berkampanye mendukung berpantang keuangan.
Tiga tahun kemudian, Thomas Herndon, lulusan University of Massachusetts, menemukan kesalahan dalam spreadsheet Excel yang digunakan Reinhart dan Rogov untuk perhitungan mereka. Signifikansi sangat besar: dengan analisis yang tepat, Herndon menunjukkan bahwa tingkat utang 90% dari PDB berkorelasi dengan pertumbuhan ekonomi yang positif sebesar 2,2%, dan tidak dengan pertumbuhan negatif -0,1%, seperti ditulis Reinhart dan Rogov.
Herndon dapat dengan mudah memeriksa kesimpulan para ekonom Harvard, karena ia memiliki akses ke perangkat lunak yang mereka gunakan - Microsoft Excel. Bagaimana dengan penemuan lama yang menggunakan perangkat lunak lama yang sulit ditemukan hari ini?
Kita dapat memutuskan bahwa solusi untuk masalah ini - memelihara perangkat lunak penting bagi para peneliti di masa depan - seharusnya tidak rumit. Lagi pula, perangkat lunak hanyalah kumpulan file, dan file-file ini mudah disimpan di hard drive Anda atau dalam bentuk digital. Kode program beberapa program bahkan dapat direproduksi di atas kertas, untuk menghindari masalah dengan keusangan media digital yang ditulisnya.
Program disimpan dengan cara ini secara berkelanjutan, bahkan untuk program yang sudah berumur beberapa dekade. Secara daring Anda, misalnya, dapat menemukan kode sumber untuk Apollo Guidance Computer, yang membantu mengantarkan para astronot ke bulan pada 1960-an. Itu ditulis ulang dari kertas dan diunggah ke GitHub pada tahun 2016.
Dan meskipun seorang programmer hardcore mungkin menyukai studi yang hati-hati terhadap kode vintage semacam itu, kebanyakan orang tidak tertarik. Mereka tertarik menggunakan perangkat lunak. Tetapi menjaga perangkat lunak siap dijalankan untuk jangka waktu yang lama sangat sulit, karena untuk menjalankan sebagian besar program lama, Anda memerlukan komputer lama dan sistem operasi lama.
Anda mungkin mengalami masalah seperti itu sendiri saat mencoba bermain game komputer masa muda Anda. Tetapi dalam bidang penelitian ilmiah dan teknis, ketidakmampuan untuk memulai program lama dapat menyebabkan konsekuensi yang jauh lebih serius.
Selain ekonom, banyak peneliti lain, misalnya, fisikawan, ahli kimia, ahli biologi dan insinyur, terus menggunakan program untuk pemrosesan data dan visualisasi hasil analisis. Mereka terlibat dalam simulasi fenomena menggunakan model komputer yang ditulis dalam berbagai bahasa pemrograman, dan menggunakan sejumlah besar pustaka perangkat lunak yang mendukung pekerjaan mereka dan tautan ke set data. Investigasi dan perangkat lunak yang mereka andalkan memainkan peran utama dalam penemuan dan laporan hasil pencarian.
Bayangkan Anda adalah seorang peneliti yang ingin memeriksa perhitungan ilmuwan lain, yang dilakukan 25 tahun yang lalu. Apakah perangkat lunak lama itu masih tersedia untuk Anda? Perusahaan yang merilisnya sudah bisa tutup. Bahkan jika ada versi modern, apakah itu akan menerima data dalam format asli? Apakah semua perhitungan - misalnya, bekerja dengan kesalahan pembulatan - identik dengan yang lama dibuat di komputer satu generasi yang lalu? Mungkin tidak.
Ketergantungan peneliti pada komputer semakin meningkat, dan kesulitan dalam mencoba menjalankan perangkat lunak lama semakin meningkat, dan ini mencegah mereka untuk memeriksa hasil yang dipublikasikan sebelumnya. Masalah perangkat lunak yang sudah ketinggalan zaman meniadakan konsep reproduktifitas yang mendasari ilmu pengetahuan.
Masalah ini dapat mempengaruhi pelaksanaan pemeriksaan forensik. Misalkan perhitungan insinyur menunjukkan bahwa bangunan harus berdiri, dan setelah itu atap gedung jatuh. Apakah insinyur melakukan kesalahan, atau apakah perangkat lunaknya tidak berfungsi? Jika bertahun-tahun kemudian perangkat lunak tidak dapat diluncurkan, akan sangat sulit untuk memverifikasi.
Oleh karena itu, rekan-rekan di Universitas Carnegie Mellon dan saya telah mengembangkan cara untuk mengarsipkan program sedemikian rupa sehingga dapat dengan mudah diluncurkan hari ini dan di masa depan. Rekan saya, ilmuwan komputer Benjamin Gilbert dan Ian Harks, menulis sebagian besar kode. Pengarsip perangkat lunak Daniel Ryan dan pustakawan Gloriana Saint-Claire, Erica Linke dan Kif Webster, yang, karena alasan yang jelas, memiliki minat besar dalam melestarikan bagian dari budaya modern ini, juga berpartisipasi dalam kolaborasi.
NCSA Mosaic 1.0, salah satu browser pertama dengan Macintosh, 1993
Chaste (Kanker, Jantung dan Lingkungan Jaringan Lunak) 3.1 untuk Linux, 2013
Oregon Trail 1.1, game untuk Macintosh, 1990
Wanderer, sebuah game untuk MS-DOS, 1988
Mystery House, game untuk Apple II, 1982
The Great American History Machine, atlas pendidikan interaktif untuk Windows 3.1, 1991
Microsoft Office 4.3 untuk Windows 3.1, 1994
ChemCollective, Perangkat Lunak Kimia Pendidikan untuk Linux, 2013Karena proyek ini terkait dengan pelestarian perangkat lunak, dan bukan untuk ilmu komputer yang populer, kami tidak mengumpulkan dana untuk itu dari lembaga negara biasa, tetapi dari Yayasan Alfred Sloan dan Institut Museum dan Layanan Perpustakaan. Dengan bantuan mereka, kami mendemonstrasikan pemulihan sistem komputer yang telah lama terlupakan dan membuatnya tersedia untuk semua orang secara online, sehingga setiap pengguna komputer dapat kembali ke masa lalu dengan satu klik.
Kami menciptakan sistem
Zaitun , singkatan dari Open Library of Images untuk Eksekusi tervirtualisasi. Olive memungkinkan Anda mendapatkan melalui Internet kesan yang sama dengan yang Anda dapatkan dengan meluncurkan aplikasi, OS, atau komputer dari masa lalu. Dengan menginstal Olive, Anda dapat bekerja dengan perangkat lunak yang sangat lama seolah-olah itu modern. Ini adalah sedikit arsip Internet
Wayback Machine untuk program yang dapat dieksekusi.
Untuk memahami bagaimana Olive dapat menghidupkan kembali lingkungan komputer lama, Anda harus melalui beberapa lapisan abstraksi perangkat lunak. Pada dasarnya adalah basis umum dari sebagian besar teknologi komputasi modern: komputer desktop standar atau laptop dengan satu atau lebih mikroprosesor x86. Di atasnya, kita menjalankan OS Linux, yang membentuk lapisan kedua di stack.
Di atas OS adalah perangkat lunak VMNetX, ditulis di laboratorium saya, menjalankan mesin virtual melalui jaringan [Eksekusi Jaringan Mesin Virtual]. Mesin virtual adalah lingkungan komputasi yang meniru lingkungan di komputer yang ada di berbagai jenis komputer. VMNetX memungkinkan Anda untuk menyimpan mesin virtual di server pusat dan menjalankannya dari jarak jauh sesuai permintaan. Keuntungannya adalah bahwa komputer Anda tidak perlu mengunduh seluruh disk dan status memori dari server untuk memulai mesin virtual. Informasi yang disimpan dalam disk dan memori diunduh dalam beberapa bagian, jika perlu, untuk mengatur lapisan berikutnya - monitor mesin virtual (hypervisor), yang dapat mendukung pengoperasian beberapa mesin secara bersamaan.
Emulator perangkat keras berfungsi pada setiap mesin virtual - ini adalah level berikutnya dalam tumpukan Olive. Emulator berpura-pura menjalankan komputer yang telah lama tidak digunakan - misalnya, Quadra Macintosh lama dengan Motorola 68040 CPU dari tahun 90-an. Jika perangkat lunak yang diarsipkan dapat berjalan di komputer berbasis x86, lapisan virtualisasi ini dapat dihilangkan.
Lapisan berikutnya adalah OS lama, yang dapat menjalankan perangkat lunak arsip. Dia memiliki akses ke disk virtual yang mensimulasikan drive disk dan sistem file, yang diperlukan untuk lapisan berikutnya dari kue abstraksi program ini agar berfungsi.
Di atas OS lama sudah merupakan program itu sendiri. Itu bisa menjadi bagian atas tumpukan, atau dapat memiliki lapisan lain yang terdiri dari data yang perlu diberi makan oleh program untuk mendapatkan apa yang Anda inginkan darinya.
Lapisan atas Olive berbeda untuk masing-masing program arsip, dan disimpan di server pusat. Lapisan bawah diinstal pada komputer pengguna sebagai bagian klien. Saat memulai program arsip, klien Olive mengunduh bagian-bagian yang diperlukan dari lapisan atas sesuai permintaan dari server pusat.

Inilah yang dimiliki sistem di bawah tenda. Tapi apa yang bisa dilakukan Olive? Hari ini berisi 17 mesin virtual berbeda yang dapat menjalankan berbagai OS dan aplikasi. Pilihan apa yang akan dimasukkan ke dalam sistem didasarkan pada campuran rasa ingin tahu, aksesibilitas, dan minat pribadi. Sebagai contoh, salah satu anggota tim kami dengan senang mengingat bagaimana ia bermain di The Oregon Trail saat bersekolah di awal 1990-an. Hasilnya, kami menemukan versi lama game untuk Mac dan berhasil meluncurkannya melalui Olive. Setelah ini diketahui, banyak orang mulai mendatangi kami dengan pertanyaan tentang kemungkinan menghidupkan kembali perangkat lunak favorit mereka dari masa lalu.
Aplikasi tertua yang kami pulihkan adalah Mystery House, sebuah game grafis dari awal 1980-an untuk komputer Apple II. Program lain adalah Mosaik NCSA, yang, seperti yang dapat diingat oleh orang-orang dari usia tertentu, memberi mereka keajaiban WWW.
Olive memiliki versi Mosaic yang ditulis pada tahun 1993 untuk Macintosh System 7.5. OS ini berjalan pada emulator CPU Motorola 68040, dibuat menggunakan perangkat lunak yang berjalan pada komputer berbasis x86 yang menjalankan Linux. Terlepas dari semua virtualisasi ini, kinerjanya tidak buruk, karena komputer modern bekerja jauh lebih cepat daripada perangkat keras Apple asli.
Cukup menarik untuk mengarahkan Mosaic yang dipulihkan dari Olive ke situs-situs modern. Itu muncul lebih awal dari teknologi web modern seperti JavaScript, HTTP 1.1, Cascading Style Sheets dan HTML 5, dan karenanya tidak dapat menampilkan sebagian besar situs. Tetapi Anda mungkin tertarik
untuk mencari
situs yang sudah lama dibuat sehingga terlihat sempurna di peramban ini.
Apa lagi yang bisa dilakukan Olive? Anda mungkin bertanya-tanya alat apa yang digunakan dalam bisnis tepat setelah prosesor Intel Pentium muncul. Zaitun dapat membantu dengan ini. Mulai Microsoft Office 4.3 sejak 1994 (yang untungnya, keluar sebelum asisten klip menjengkelkan muncul).
Anda mungkin ingin menghabiskan malam nostalgia bermain Doom for DOS, atau melihat mengapa penembak orang pertama menjadi begitu populer di awal 1990-an. Atau mungkin Anda perlu mengulang pajak Anda dari tahun 1997, dan Anda tidak dapat menemukan disk dengan versi TurboTax di loteng. Jangan khawatir, Olive akan menjagamu.
Jika berbicara tentang hal-hal yang lebih serius, maka dalam Olive
Chaste 3.1 disimpan. Ini adalah kependekan dari Cancer, Heart dan Lingkungan Jaringan Lunak (kanker, jantung, dan jaringan lunak). Ini adalah simulasi yang dikembangkan di University of Oxford, yang memungkinkan pemecahan masalah komputasi dalam biologi dan fisiologi. Versi 3.1 terkait dengan makalah penelitian yang diterbitkan pada Maret 2013. Namun, dua tahun setelah publikasi, kode sumber Chaste 3.1 berhenti dikompilasi dalam versi baru Linux. Ini adalah contoh yang bagus dari masalah reproduksibilitas ilmiah yang harus dipecahkan oleh sistem Olive.

Agar Chaste 3.1 berfungsi, Olive menyediakan lingkungan Linux yang abadi. Dibuat ulang di Olive Chaste juga berisi contoh data yang diterbitkan dengan karya 2013. Pemrosesan data ini memberikan visualisasi kerja otot. Peneliti fisiologi masa depan yang ingin mempelajari visualisasi ini, atau membuat koreksi terhadap perangkat lunak yang diterbitkan, akan dapat menggunakan Olive untuk mengedit kode pada mesin virtual dan menjalankannya.
Zaitun saat ini tersedia untuk sejumlah pengguna. Karena pembatasan lisensi, perangkat lunak lama Olive hanya tersedia untuk orang yang membantu dalam pengembangan proyek. Perusahaan yang terkait dengan perangkat lunak harus memberikan izin untuk menyajikan program yang dihidupkan kembali kepada khalayak luas.
Kami tidak sendirian dalam mencari peluang untuk mempertahankan hidup dalam perangkat lunak lama. Internet Archive menyimpan ribuan program lama dengan emulator MS-DOS berbasis browser. Di Yale, mereka sedang mengembangkan proyek EaaSI (emulasi sebagai infrastruktur layanan), berharap memberi semua orang akses ke ribuan emulasi lingkungan perangkat lunak dari masa lalu. Para ilmuwan dan pustakawan dari proyek Jaringan Pelestarian Perangkat Lunak sedang mengerjakan proyek ini dan lainnya. Mereka juga berupaya menyelesaikan masalah hak cipta yang muncul saat memulai perangkat lunak lama dengan cara ini.
Zaitun sudah berkembang dengan baik, tetapi ia masih jauh dari sistem yang sepenuhnya selesai. Selain masalah perizinan, ia harus mengatasi beberapa kendala teknis.
Salah satu kendala adalah impor data baru untuk diproses oleh program lama. Sejauh ini, data tersebut perlu dimasukkan secara manual, dan metode ini sulit dan rawan kesalahan. Metode ini juga membatasi jumlah data yang dapat dianalisis. Bahkan jika kita menambahkan mekanisme impor data, jumlah data yang disimpan akan dibatasi oleh ukuran disk virtual mesin virtual. Ini mungkin tampak seperti masalah kecil, tetapi Anda harus ingat bahwa sistem file komputer lama terkadang memiliki batasan volume yang sekarang dianggap aneh.
Rintangan lain adalah emulasi GPU. Untuk beberapa waktu sekarang, para ilmuwan telah menggunakan komputasi paralel untuk mempercepat berbagai perhitungan. Untuk mengarsipkan perangkat lunak yang dapat dieksekusi yang menggunakan GPU, sistem Olive harus membuat ulang versi virtual dari chip tersebut - dan ini adalah tugas yang sulit. Ini karena antarmuka GPU - apa yang dapat mereka masukkan dan apa yang mereka hasilkan - tidak distandarisasi.
Jelas, masih banyak pekerjaan yang harus dilakukan sebelum kami mengumumkan solusi masalah dengan pengarsipan program yang dapat dieksekusi. Tapi Olive adalah awal yang baik untuk menciptakan sistem yang akan diperlukan untuk memastikan bahwa program lama disimpan dalam keadaan sedemikian rupa sehingga mereka dapat dipelajari, diuji dan digunakan untuk waktu yang lama.