Hỗ trợ phát triển cho HĐH cũ


14

Tôi đang duy trì một phần lớn mã kế thừa, được viết bằng C. Mã này ban đầu được viết để kết hợp với Windows 3 cho nhóm làm việc và sau đó, một phiên bản cho NT đã được tạo. Ứng dụng cũ này vẫn còn được sử dụng cho đến ngày nay, chạy nhanh trên các máy trạm 3.11 và NT từ đầu những năm 90. Nó hoạt động và nó làm những gì nó phải làm, và lý do mà chúng vẫn còn tồn tại là các trình điều khiển cho một số phần cứng tùy chỉnh thuộc giải pháp không tương thích với Windows sau này.

Ngoài ra còn có một ứng dụng khác tôi đã duy trì rằng vì những lý do tương tự chỉ hoạt động trên Win2k.

Tuy nhiên, khi mọi thứ tiếp tục, việc điều hành các môi trường kế thừa này ngày càng khó khăn hơn. Ngay bây giờ tôi giữ các máy vật lý với phần mềm phát triển được cài đặt, vì vậy tôi có thể làm việc trên phần cứng gốc. Nhưng những thứ này có thể chết bất cứ lúc nào (rốt cuộc họ 25 tuổi).

Vì vậy, câu hỏi của tôi là, nhìn thấy như năm 2016, các lựa chọn của tôi để duy trì môi trường cổ xưa này một cách ổn định hơn là gì? Bạn có thể di chuyển 3.11 sang lưu trữ đám mây không?

Tôi đã thử ảo hóa, nhưng do tính chất chuyên biệt của các thiết lập, tôi không thể làm cho nó hoạt động với trình điều khiển thiết bị, vì vậy tôi nghĩ rằng người ta có thể cần phải tạo một hình ảnh đầy đủ của HĐH và sau đó chạy nó trong một VM để phát triển phần mềm? Là một điều như vậy có thể cho các phiên bản hệ điều hành khách cũ như Win3 và NT?

Có bất kỳ kinh nghiệm nào trong việc giữ cho các nền tảng cũ hơn như thế này tồn tại để phát triển, nhưng theo cách hiện đại hơn, an toàn hơn, mà tôi có thể rút ra được không?

Mục tiêu của tôi là loại bỏ các máy móc vật lý cũ và chuyển sang ảo hóa.


Bạn đã thử phần mềm VM nào? VMware? Nếu không, hãy dùng thử, tôi có ít nhất một phần cứng mà tôi đã nhận được chỉ hoạt động với phần mềm đó, nhưng không có phần mềm VM nào khác.
Doc Brown

Hơn nữa: trường hợp xấu nhất sẽ xảy ra nếu phần cứng chết vào ngày mai và bạn không có sự thay thế nào cho đến nay? Công ty của bạn sẽ bancrupt?
Doc Brown

Tôi đã thử VMware và VirtualBox. Trong số hai VirtualBox không tải được Win3 nhưng đã tải được NT4, nhưng không có CD, thay đổi độ phân giải hoặc hỗ trợ chuột. VMWare đã tải Win3 nhưng cũng thiếu trình điều khiển nên màn hình bị rối. Ngay bây giờ tôi đang rối tung với việc chuyển sang thi đua thay vào đó, thử dùng PCem. Điều này hoạt động tốt hơn nhưng sau đó tôi không tăng tốc độ so với phần cứng cũ và tôi thiếu công cụ VM như chia sẻ đĩa, v.v.
Richard Tyregrim

3
Thành thật mà nói, khi gặp khó khăn để có được phụ tùng thay thế, đã đến lúc suy nghĩ về việc thay thế những thứ cũ bằng một giải pháp mới hơn. Tại một số thời điểm, giữ cho những thứ cũ sống còn trở nên ít kinh tế hơn so với việc tạo ra ít nhất một số phần mới.
Doc Brown

1
Bạn đã lấy trình điều khiển cho phần cứng tùy chỉnh ở đâu?
JeffO

Câu trả lời:


4

trình điều khiển cho một số phần cứng tùy chỉnh thuộc giải pháp không tương thích với Windows sau này

Đây là mấu chốt của vấn đề. Bạn có thể biên dịch lại chương trình C kế thừa của mình bằng Visual Studio mới hơn, sửa tất cả các cảnh báo và lỗi của trình biên dịch và thường biến một hệ thống cũ thành một hệ thống giống hệt chạy trên Windows 7 (hoặc sau này nếu bạn phải) nhưng nếu trình điều khiển không làm việc sau đó cơ hội của nó làm việc thậm chí ảo hóa là mỏng.

Trừ khi bạn có thể cập nhật hoặc thay thế trình điều khiển / phần cứng, tôi sẽ không bắt đầu xem xét nó.


Cảm ơn vì nhắn lại. Tôi đã nghĩ rằng có thể có một tùy chọn mô phỏng hoặc VM có thể giống với CTNH thực tế được sử dụng trên các máy Win3, để tôi có thể sử dụng nó để cài đặt trình điều khiển thiết bị tùy chỉnh trong môi trường đó và kết nối các thiết bị, vì vậy tất cả ý định và mục đích có vẻ như nó đang chạy trên phần cứng cũ. Ngoài ra, trên phần biên dịch lại, như tôi đã nói, mã này sử dụng số lượng khá lớn các lệnh gọi cấp thấp đến API Win cũng như một số thao tác chọc khó chịu trong các cấu trúc bên trong. Vì vậy, tôi đoán rằng nó sẽ phá vỡ mô hình máy tính để bàn Win7, mặc dù tôi đã không cố gắng chuyển nó hoàn toàn.
Richard Tyregrim

2
Bạn nên thử một lần thử cổng nhanh, chỉ đơn giản để xem mức độ khó xử lý - theo kinh nghiệm của tôi, mã cổ có xu hướng chuyển sang hệ điều hành Windows mới một cách đáng ngạc nhiên chỉ với một vài điều thực sự bị lỗi thời.
gbjbaanb

4

Tôi nghĩ đây là vấn đề liên quan đến việc nhận hộp ảo hoặc vmware để cung cấp quyền truy cập vào cổng nối tiếp của máy chủ hơn là về hệ điều hành ảo hóa hoặc thậm chí là hệ điều hành khách. Tôi sẽ bắt đầu với một hệ thống máy chủ chạy HĐH hiện đại (win 7/8/10 hoặc Linux distro) với bộ chuyển đổi cổng USB sang nối tiếp dựa trên triển khai rs-232 thực, chẳng hạn như pr2ific pl2303.

Sử dụng HĐH hiện đại làm máy chủ, cài đặt hộp ảo và tạo VM khách và cài đặt bất kỳ HĐH nào tương thích. Điều quan trọng là nhận được cổng RS-232 trên HĐH khách được chuyển cho VM khách. Sử dụng modem null và chương trình đầu cuối để đảm bảo cổng RS-232 hoạt động trên hệ điều hành máy chủ cục bộ.

Nếu máy chủ lưu trữ là Linux, có một số quyền cần thiết để ảo hóa phần cứng cục bộ và trong hầu hết các trường hợp, việc đưa tài khoản đăng nhập của bạn vào nhóm vboxusers sẽ đảm nhiệm việc đó.


2

Đó là một quyết định quản lý. Quản lý của bạn nên ở vị trí để xác định số tiền họ kiếm được bằng cách hỗ trợ Windows 3.11. Nếu họ có bất kỳ bộ não nào, họ sẽ nhận ra rằng những khách hàng phàn nàn nếu bạn không hỗ trợ họ miễn phí thì thực sự không kiếm được tiền cho bạn. Bạn có thể hỗ trợ họ bằng cách cho họ biết chi phí hỗ trợ phiên bản cũ là bao nhiêu. Không chỉ về mặt công việc thực tế, mà còn về việc không thể sử dụng các công nghệ mới hơn.

Lần gần nhất khi bạn nên hỗ trợ máy là khi bạn không thể mua thay thế trên eBay.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.