컴퓨터가 쓰인지 오래되다 보니 이제 30-40년전에 작성한 프로그램을 여전히 돌리는 경우도 있다.

얼마전에  1950년대 개발된 미국 핵무기 발사 관련 시스템을 업글하는데 미국 국방성이 

골치를 앓고 있다는 뉴스가 난적이 있다. 소스코드가 없는 경우도 있고 있어도 옛날 COBOL /FORTRAN

등 으로 작성되어 이걸 현대화기 어렵다는 거다.옛날에 작성되고 그동안 문제없이 동작했지만 

컴퓨터 하드웨어 자체가 낡고 그런 코드를 돌리는 컴퓨터는 더이상 생산되지 않으니 

그걸 현대의 컴퓨터에 포팅하고 시험한다는게 어렵다는 거다. 인력이고 예산이고 시간이고.

지금도 공장자동화 프로그램이나 정부나 은행이나 군사 무기 제어용으로는 

386 CPU에서 돌아가는 DOS 프로그램이 흔하다.


이걸 다시 프로그램을 짜거나 할 수도 있겠지만 그걸 다시개발하거나 하는 것보다는 

VM 에서 에뮬레이션으로 돌리는게 훨씬 나은 경우가 많다.

즉 호스트는 최신 Linux 거나 Window 컴퓨터 하드웨어에 DOS VM 을 만들어 돌리면 

호환성은 완벽하게 보장하면서 성능은 386 에서 돌리는 것보다 수십 수백배나 빠르게 

돌릴 수 있다. 즉 원래 바이너리나 소스는 거의 손댈 필요가 없다.

한 컴퓨터에 그런 DOS VM 을 여러개 병렬로 띄어서 여러대의 제어 장치를 대신할 수도 있다.

또 옛날 컴퓨터에 없던 각 시스템간의 격리나 보안 기능 또는 장애시 백업컴퓨터로 바로 교체 등 

현대적인 기능도 구현할 수 있다. 공장 기계는 자신이 옛날 DOS 컴퓨터에 연결되어 있는 것과

동일한 동작을 하므로 기계를 교체하거나 손볼 필요가 없다.


예를 들어 옛날 1950-60년대 개발된 소련의 로켓 제어장치는 이제 그런 제어장치와 제어컴퓨터가 생산되지 않으니 

현대적 컴퓨터에 그 제어컴퓨터의 에뮬레이터를 돌리고 그 위에 그 로켓제어 프로그램을 돌린다고 한다.


현대 컴퓨터는 과거의 컴퓨터들 보다 속도가 엄청나게 빨라졌기 때문에 

옛날 프로그램이나 게임 들을  원래 native 로 돌아가던 것 보다 훨씬 원활하고 

융통성 있게 운용할 수 있다.