Mendukung pengembangan untuk OS lama

14

Saya mempertahankan sebagian besar kode warisan, ditulis dalam C. Kode ini awalnya ditulis untuk dikompilasi dengan Windows 3 untuk Workgroups, dan kemudian versi untuk NT dibuat. Aplikasi warisan ini masih digunakan sampai sekarang, dengan gembira berjalan bersama pada 3.11 dan workstation NT dari awal 90-an. Ini berfungsi dan melakukan apa yang seharusnya dilakukan, dan alasan mereka masih hidup adalah karena driver untuk beberapa perangkat keras khusus milik solusi tidak kompatibel dengan Windows yang lebih baru.

Ada juga aplikasi berbeda yang saya pertahankan bahwa untuk alasan yang sama hanya berfungsi pada Win2k.

Namun, seiring berjalannya waktu, semakin sulit untuk menjalankan lingkungan warisan ini. Saat ini saya menyimpan mesin fisik dengan perangkat lunak pengembangan yang diinstal, sehingga saya dapat bekerja pada perangkat keras asli. Tapi ini bisa mati kapan saja (mereka berusia 25 tahun setelah semua).

Jadi pertanyaan saya adalah, mengingat ini adalah 2016, apa saja pilihan saya untuk menjaga lingkungan kuno ini dengan cara yang lebih stabil? Bisakah Anda memindahkan 3,11 ke hosting awan?

Saya mencoba virtualisasi, tetapi karena sifat khusus dari pengaturan, saya tidak bisa membuatnya bekerja dengan driver perangkat, jadi saya berpikir bahwa orang mungkin perlu membuat gambar penuh OS seperti apa adanya dan kemudian menjalankannya dalam VM untuk mengembangkan perangkat lunak? Apakah hal seperti itu mungkin untuk versi OS tamu setua Win3 dan NT?

Adakah pengalaman dalam menjaga platform lama seperti ini agar tetap hidup untuk pengembangan, tetapi dengan cara yang lebih modern dan aman, yang bisa saya gunakan?

Tujuan saya adalah untuk menyingkirkan mesin fisik lama, dan beralih ke virtualisasi.

Richard Tyregrim
sumber
Perangkat lunak VM mana yang Anda coba? VMware? Jika tidak, cobalah, saya memiliki setidaknya satu perangkat keras yang saya dapat hanya bekerja dengan perangkat lunak itu, tetapi tidak ada perangkat lunak VM lainnya.
Doc Brown
Selain itu: apa yang akan menjadi skenario terburuk jika perangkat keras mati besok dan Anda tidak punya alternatif sejauh ini? Apakah perusahaan Anda bancrupt?
Doc Brown
Saya mencoba VMware dan VirtualBox. Keluar dari dua VirtualBox gagal memuat Win3 tetapi berhasil memuat NT4, tetapi tanpa CD, perubahan resolusi atau dukungan mouse. VMWare memuat Win3 tetapi juga tidak memiliki driver sehingga layar menjadi kacau. Saat ini saya sedang mengacaukan dengan beralih ke emulasi, mencoba PCem. Ini berfungsi lebih baik tetapi kemudian saya tidak mendapatkan peningkatan kecepatan dari perangkat keras lama dan saya tidak memiliki hal-hal VM seperti berbagi disk dll.
Richard Tyregrim
3
Sejujurnya, ketika sulit mendapatkan suku cadang, sekarang saatnya untuk memikirkan mengganti barang lama dengan solusi yang lebih baru. Pada suatu saat, menjaga barang-barang lama tetap hidup menjadi kurang ekonomis daripada membuat setidaknya beberapa bagian baru.
Doc Brown
1
Di mana Anda mendapatkan driver untuk perangkat keras khusus?
JeffO

Jawaban:

4

driver untuk beberapa perangkat keras khusus milik solusi tidak kompatibel dengan Windows yang lebih baru

Inilah inti masalahnya. Anda dapat mengkompilasi ulang program legacy C Anda dengan Visual Studio yang lebih baru, memperbaiki semua peringatan dan kesalahan kompiler, dan umumnya mengubah sistem lama menjadi yang identik yang berjalan pada Windows 7 (atau lebih baru jika Anda harus) tetapi jika driver tidak bekerja maka peluangnya bekerja bahkan tervirtualisasi tipis.

Kecuali jika Anda dapat memperbarui atau mengganti driver / perangkat keras, saya tidak akan mulai mempertimbangkannya.

gbjbaanb
sumber
Terima kasih untuk balasannya. Saya berpikir bahwa mungkin ada VM atau opsi emulasi yang tersedia yang akan menyerupai HW sebenarnya yang digunakan pada mesin Win3, sehingga saya dapat menggunakannya untuk menginstal driver perangkat kustom di lingkungan itu, dan menghubungkan perangkat, jadi untuk semua maksud dan tujuan sepertinya berjalan pada perangkat keras warisan. Juga, pada kompilasi ulang, seperti yang saya katakan, kode ini menggunakan jumlah panggilan tingkat rendah yang cukup luas ke Win API serta beberapa penusukan dalam struct internal. Jadi saya kira itu akan merusak model desktop Win7, meskipun saya belum mencoba port langsung.
Richard Tyregrim
2
Anda harus mencoba upaya port cepat, hanya untuk melihat seberapa banyak dari itu sulit untuk ditangani - dalam pengalaman saya, kode kuno cenderung port ke OS Windows baru secara mengejutkan dengan mudah dengan hanya beberapa hal yang benar-benar usang.
gbjbaanb
4

Saya pikir ini lebih merupakan masalah tentang mendapatkan virtualbox atau vmware untuk memberikan akses ke port serial host daripada tentang virtualisasi OS atau bahkan OS tamu. Saya akan mulai dengan sistem host yang menjalankan OS modern (win 7/8/10 atau Linux distro) dengan USB ke port serial adaptor yang didasarkan pada implementasi rs-232 nyata, seperti pl2303 yang produktif.

Gunakan OS modern sebagai tuan rumah, instal virtualbox, dan buat VM tamu dan instal OS apa pun yang kompatibel. Kuncinya adalah mendapatkan port RS-232 pada OS tamu yang diteruskan ke VM tamu. Gunakan modem nol dan program terminal untuk memastikan port RS-232 bekerja pada OS host lokal.

Jika host adalah Linux, ada beberapa izin yang diperlukan untuk memvirtualisasi perangkat keras lokal, dan dalam kebanyakan kasus memasukkan akun login Anda ke grup vboxusers akan mengatasinya.

Thomas Carlisle
sumber
2

Ini keputusan manajemen. Manajemen Anda harus berada dalam posisi untuk menentukan berapa banyak uang yang mereka hasilkan dengan mendukung Windows 3.11. Jika mereka memiliki otak, mereka akan menyadari bahwa pelanggan yang mengeluh jika Anda tidak mendukung mereka secara gratis tidak benar-benar menghasilkan uang bagi Anda. Anda dapat mendukung mereka dengan memberi tahu mereka berapa biaya untuk mendukung versi lama. Bukan hanya dalam hal pekerjaan yang sebenarnya, tetapi juga dalam hal tidak dapat menggunakan teknologi yang lebih baru.

Waktu paling terbaru ketika Anda harus mendukung mesin adalah ketika Anda tidak dapat membeli penggantian di eBay.

gnasher729
sumber