Hệ thống máy ảo và máy ảo quá trình đến thập niên 1960, và tiếp tục là lĩnh vực hoạt động phát triển.Hệ thống máy ảo phát triển từ time-sharing, đáng chú ý như là thực hiện trong các tương thích Time-Sharing hệ thống (CTSS). Time-Sharing cho phép nhiều người dùng sử dụng một máy tính đồng thời: mỗi chương trình xuất hiện để có thể truy cập vào máy tính, nhưng chỉ có một chương trình đã được thực hiện tại thời điểm, với hệ thống chuyển đổi giữa các chương trình trong thời gian lát, tiết kiệm và khôi phục trạng thái mỗi lần. Điều này phát triển thành máy ảo, đặc biệt là thông qua hệ thống nghiên cứu của hãng IBM: M44/44 X, mà sử dụng ảo hóa một phần, và CP-40 và SIMMON, sử dụng ảo hóa đầy đủ và là các ví dụ đầu của hypervisors. Kiến trúc máy ảo có sẵn rộng rãi đầu tiên là CP-67/CMS; Xem lịch sử của CP/CMS để biết chi tiết. Một khác biệt quan trọng là giữa sử dụng nhiều máy ảo trên một máy chủ lưu trữ hệ thống cho time-sharing, như trong M44/44 X và CP-40, và bằng cách sử dụng một máy ảo trên hệ thống máy chủ cho prototyping, như trong SIMMON. Trình giả lập, với phần cứng thi đua của các hệ thống trước đó cho tương thích, ngày trở lại của IBM 360 vào năm 1963, [6] [7] trong khi phần mềm mô phỏng (sau đó gọi là "mô phỏng") trước đó.Máy ảo quá trình phát sinh ban đầu như các nền tảng trừu tượng cho một ngôn ngữ trung gian, được sử dụng như là các đại diện trung gian của một chương trình bằng một trình biên dịch; Ví dụ đầu hẹn hò vào khoảng năm 1966. Một ví dụ đầu năm 1966 là O-mã máy, một máy ảo mà thực hiện O-mã (mã đối tượng) phát ra từ cuối phía trước của trình biên dịch BCPL. Trừu tượng này được cho phép trình biên dịch phải được dễ dàng chuyển đến một kiến trúc mới bằng cách thực hiện một kết thúc trở lại mới lấy hiện tại O-mã và biên dịch nó vào máy mã cho máy vật lý cơ bản. Ngôn ngữ Euler sử dụng một thiết kế tương tự, với các ngôn ngữ trung gian, đặt tên là P (xách tay). [8] điều này đã được phổ biến khoảng năm 1970 bởi Pascal, đặc biệt là trong các hệ thống Pascal-P (1973) và trình biên dịch Pascal-S (1975), trong đó nó được gọi là p-Mã và kết quả là máy như một máy p-Mã. Điều này đã ảnh hưởng lớn, và máy ảo trong ý nghĩa này đã thường thường được gọi là máy p-code. Ngoài việc là một ngôn ngữ trung gian, Pascal p-Mã cũng đã được thực hiện trực tiếp bởi một thông dịch viên thực hiện các máy ảo, đáng chú ý là ở UCSD Pascal (1978); Điều này ảnh hưởng sau này phiên dịch viên, đặc biệt là máy ảo Java (JVM). Một ví dụ khác đầu là SNOBOL4 (1967), được viết trong các SNOBOL thực hiện ngôn ngữ (SIL), ngôn ngữ lắp ráp một máy ảo, sau đó nhắm mục tiêu đến vật lý máy bởi transpiling để họ lắp ráp bản xứ thông qua một lắp ráp vĩ mô. [9] macro có kể từ khi rơi ra khỏi lợi, Tuy nhiên, do đó, cách tiếp cận này đã ít có ảnh hưởng.Những tiến bộ đáng kể xảy ra trong việc thực hiện của Smalltalk-80, [10] đặc biệt Deutsch/Schiffmann thực hiện [11] mà đẩy just-in-time (JIT) trình biên dịch về phía trước như là một việc thực hiện phương pháp tiếp cận máy ảo đó quá trình sử dụng. [12] sau đó các máy ảo Smalltalk đáng chú ý là VisualWorks, Squeak máy ảo [13] và Strongtalk. [14] một ngôn ngữ liên quan đến sản xuất rất nhiều cải tiến máy ảo là tự lập trình ngôn ngữ, [15] đi tiên phong trong thích ứng tối ưu hóa [16] và thu gom rác thải thế hệ. Các kỹ thuật này tỏ ra thương mại thành công vào năm 1999 tại máy ảo HotSpot Java. [17] đổi mới khác bao gồm có một máy ảo dựa trên đăng ký để tốt hơn phù hợp với phần cứng cơ bản, chứ không phải là một ngăn xếp trên máy ảo, mà là gần gũi hơn phù hợp với ngôn ngữ lập trình; năm 1995, điều này đã đi tiên phong của Dis máy ảo cho ngôn ngữ Limbo.
đang được dịch, vui lòng đợi..
