Professional Documents
Culture Documents
Virtual Machines
Livvic Mulish Sitka Text Roboto
1 Tổng quan về máy ảo
-Một máy ảo là trừu tượng hóa phần cứng của một máy tính (CPU, bộ
nhớ, ổ đĩa, thẻ giao diện mạng, v.v.) vào một số môi trường thực thi
khác nhau do đó tạo ảo tưởng rằng mỗi môi trường riêng biệt đang
chạy riêng máy tính.Trong trường hợp ảo hóa, có một lớp tạo ra một
hệ thống ảo trên đó hoạt động hệ thống hoặc ứng dụng có thể chạy.
-Trình quản lý máy ảo– Virtual Machine Manager (VMM) (còn được
gọi là siêu giám sát ) tạo và chạy các máy ảo bằng cách cung cấp giao
diện giống với máy chủ (ngoại trừ trường hợp ảo hóa song song).
-Mỗi quy trình khách được cung cấp một bản sao ảo của máy
chủ.Thông thường, quy trình khách trên thực tế là một hệ điều
hành.Do đó, một máy vật lýcó thể chạy đồng thời nhiều hệ điều hành,
mỗi hệ điều hành trong máy ảo của chính nó.
7. Ví dụ về máy ảo
Máy ảo đang trở thành một phương tiện giải quyết các vấn đề về khả
năng tương thích của hệ thống và chúng ta sẽ tìm hiểu hai máy ảo phổ
biến hiện nay: VMware Workstation và máy ảo Java. 2 loại máy ảo
này có thể chạy trên nhiều hệ điều hành như Linux hay Windows.
7.1. VMware
VMware Workstation là một ứng dụng thương mại phổ biến giúp trừu
tượng hóa Intel X86 và phần cứng tương thích thành các máy ảo biệt
lập.
VMware Workstation là một ví dụ điển hình về siêu giám sát kiểu 2.
Nó chạy như một ứng dụng trên hệ điều hành máy chủ như Windows
hoặc Linux và cho phép hệ thống máy chủ này chạy đồng thời một số
hệ điều hành khách khác nhau dưới dạng các máy ảo độc lập
Trung tâm của VMware là lớp ảo hóa, lớp này trừu tượng hóa
phần
Mỗi máy ảo đều có CPU ảo, bộ nhớ, ổ đĩa, giao diện mạng,
v.v.
7.2. Máy ảo Java
Java là một ngôn ngữ lập trình hướng đối tượng phổ biến được Sun
Microsystems giới thiệu vào năm 1995. Ngoài đặc tả ngôn ngữ và thư
viện API lớn, Java cung cấp một đặc tả cho máy ảo Java, hay còn gọi
là JVM (Java Virtual Machine). Do đó, Java là một ví dụ về ảo hóa
môi trường lập trình
JVM là một đặc tả cho một máy tính trừu tượng.
Bao gồm:
Một trình nạp lớp.
Một trình thông dịch Java thực thi các mã bytecodes trung lập về
kiến trúc, như được biểu đồ trong Hình 16.10.
Bộ tải lớp tải các tệp .class đã biên dịch từ cả chương trình Java
và API Java để trình thông dịch Java thực thi. Sau khi một lớp
được tải,trình xác minh sẽ kiểm tra xem tệp .class có phải là mã
bytecode của Java hợp lệ hay không và nó không làm tràn hoặc
tràn ngăn xếp. Nó cũng đảm bảo rằng mã bytecode không thực
hiện số học con trỏ, điều này có thể cung cấp quyền truy cập bộ
nhớ bất hợp pháp. Nếu lớp vượt qua xác minh, nó được chạy bởi
trình thông dịch Java. JVMcũng tự động quản lý bộ nhớ bằng
cách thực hiện thu dọn rác - thực hành lấy lại bộ nhớ từ các đối
tượng không còn được sử dụng và trả lại cho hệ thống. Nhiều
nghiên cứu tập trung vào các thuật toán thu gom rác để tăng hiệu
suất của các chương trình Java trong máy ảo.
JVM có thể được triển khai trong phần mềm trên hệ điều hành chủ,
chẳng hạn như Windows, Linux hoặc Mac OS X hoặc như một phần
của trình duyệt Web. Ngoài ra, JVM có thể được triển khai trong phần
cứng trên chip được thiết kế đặc biệt để chạy các chương trình Java.
Nếu JVM được triển khai trong phần mềm, trình thông dịch Java sẽ
thông dịch các hoạt động bytecode tại một thời điểm.
Kết Luận
Ảo hóa là một phương pháp cung cấp cho khách một bản sao của phần
cứng cơ bản của hệ thống.
Ảo hóa loại 0 được thực hiện trong phần cứng và yêu cầu các cation
modifi cho hệđiều hành để đảm bảo hoạt động tốt. Trong ảo hóa Loại
1, một màn hình máy ảo chủ (VMM) cung cấp môi trường và các tính
năng cần thiết để tạo, chạy và phá hủy các máy ảo khách. Mỗi khách
bao gồm tất cả phần mềm thường được liên kết với một hệ thống gốc
đầy đủ, bao gồm hệ điều hành, trình điều khiển thiết bị, ứng dụng, tài
khoảnngười dùng, v.v.
Siêu giám sát loại 2 chỉ đơn giản là các ứng dụng chạy trên các hệ
điều hành khác mà không biết rằng quá trình ảo hóa đang diễn ra.
Những hypervi này sẽ không được hỗ trợ phần cứng hoặc máy chủ lưu
trữ vì vậy phải thực hiện tất cả ảo hóa các hoạt động trong bối cảnh
của một quá trình.
Thực hiện ảo hóa là một thách thức, đặc biệt là khi hỗ trợ phần cứng là
tối thiểu. Một số hỗ trợ phần cứng phải tồn tại cho ảo hóa, nhưng hệ
thống càng cung cấp nhiềutính năng thì ảo hóa càng dễ thực hiện và
hiệu suất của khách càng tốt. VMMS tận dụng bất kỳ sự hỗ trợ phần
cứng nào có sẵn khi tối ưu hóa lập lịch CPU, quản lý bộ nhớ và mô-
đun 1/0 để cung cấp cho khách sử dụng tài nguyên tối ưu đồng thời
bảo vệVMM khỏi khách và khách với nhau.