Windows 7 Inside Linux có tốt như chạy như HĐH chính (đặc biệt cho Đồ họa và Video) không?


10

Người dùng Linux mới. Đã tự hỏi nếu chạy Windows 7 bên trong Ubuntu / Linux Mint thông qua VMPlayer sẽ giống như chạy Windows 7 như hệ điều hành chính.

Bởi "cùng" tôi đặc biệt có nghĩa là:

  • Chất lượng kết xuất đồ họa và video sẽ tốt như vậy?

  • Sẽ có bất kỳ vấn đề phần cứng nào như sử dụng HDMI hoặc WiDi?

  • Các ứng dụng sẽ chạy trơn tru miễn là đủ RAM được phân bổ?

Làm thế nào mạnh mẽ để máy phải có để có sự khác biệt đáng chú ý? Thông số kỹ thuật cụ thể của máy của tôi là: http://www.gadgetspecs.info/2011/07/asus-u46e-bal5-review-of-specs-and.html . Tôi cũng đã cài đặt ổ SSD.

Bối cảnh: Hiện tại tôi có thiết lập ngược lại với Linux Mint và Ubuntu trong Windows 7 và tôi thấy rằng chất lượng video không tốt như trong Windows 7.

Câu trả lời:


11

Tôi đã nối rất nhiều vào câu trả lời của tôi dưới đây, nhưng tôi vẫn giữ nguyên câu trả lời ban đầu của mình để tham khảo.

TL: DR: Máy ảo là một công cụ và trong khi chúng cung cấp khả năng dễ dàng sử dụng một hệ điều hành trong một hệ điều hành khác, bạn phải nhận thức rất rõ về mục đích sử dụng chính của máy tính sẽ là gì để sử dụng toàn bộ hệ thống .

Câu hỏi của bạn dường như bị nghiêng mạnh về khả năng thực hiện đồ họa và giao diện khi sử dụng máy ảo và vì vậy tôi sẽ trả lời về các khả năng ở đó.

Vấn đề chính là để quản lý an toàn hệ điều hành khách truy cập vào thiết bị (và do đó ngăn hệ điều hành khách không chà đạp lên máy chủ và phá vỡ mọi thứ), tất cả các thiết bị bạn muốn sử dụng phải được "mô phỏng".

Điều này có nghĩa là card đồ họa mà HĐH khách của bạn có thể nhìn thấy không giống với card đồ họa mà HĐH máy chủ của bạn có thể nhìn thấy. Bạn có thể kích hoạt các tính năng như hiển thị 3D trong máy khách, nhưng điều này được xử lý bởi một trình điều khiển trung gian trong khách của bạn để chuyển các yêu cầu đến máy chủ theo cách an toàn để 3D được hiển thị ở đó.

Điều rất đáng nghi ngờ là các tính năng như những tính năng cần thiết để phát đĩa tia xanh một cách an toàn cho màn hình HDMI được hỗ trợ được mô phỏng bởi trình điều khiển card đồ họa khách và do đó, điều này có thể sẽ không hoạt động.

Về cơ bản, bất cứ điều gì cần hỗ trợ phần cứng trên máy chủ của bạn đều không có khả năng hoạt động tốt, nếu có, trong khách của bạn. Tôi không biết WiDi hoạt động như thế nào, nhưng nếu nó yêu cầu truy cập trực tiếp vào bộ nhớ thẻ video của bạn để chia sẻ nó với TV thì nó sẽ không hoạt động trừ khi bạn sử dụng nó từ hệ điều hành máy chủ (Linux).

Khác về hiệu năng, VM có thể tiến gần đến mức nếu là HĐH chính, nhưng sẽ luôn có các hình phạt về quyền truy cập thiết bị ổ cứng hoặc tranh chấp với các tài nguyên khác mà máy chủ đang sử dụng.

Ở thời điểm bắt đầu...

Lúc đầu chúng tôi có một máy tính, máy tính đó chỉ có thể chạy một hệ điều hành. Hệ điều hành đó có xu hướng chỉ chạy tốt trên bộ xử lý cụ thể và phần cứng khác có trong máy, với các hệ điều hành khác chỉ có thể chạy kém, nếu có, trên phần cứng tự nhiên có sẵn.

Để mọi người có thể sử dụng phần mềm cho một nền tảng cụ thể trên nền tảng khác (ví dụ: sử dụng phần mềm MacOS Pre-OSX trên Commodore Amiga) không chỉ cần "cài đặt phần mềm". Hai máy này sử dụng kiến ​​trúc bộ xử lý hoàn toàn khác nhau và phần cứng phụ trợ. Đơn giản là không có cách nào một HĐH có thể chạy trên phần cứng của máy khác.

Thi đua

Thi đua giống như anh em họ với Ảo hóa, chúng thực sự có liên quan và có mục tiêu tương tự nhau. Một người khác làm như vậy.

Những nền tảng phần cứng khác nhau này có nghĩa là gì nếu bạn muốn sử dụng một phần mềm từ một hệ điều hành khác trên máy của mình thì mọi thứ về máy đó phải được phân tích để tìm ra cách thức hoạt động của nó, và sau đó một đoạn mã được viết có chức năng tương tự như phần cứng đã làm. Điều này phải được thực hiện cho mọi phần, bộ xử lý, bộ điều khiển đồ họa, bộ điều khiển bộ nhớ, mọi thứ .

Sau đó, tất cả các phần này được đặt lại với nhau và vì mỗi phần được mô phỏng một chút phần cứng, chúng tôi gọi đây là một máy mô phỏng . Sau đó chúng tôi chạy một hệ điều hành trên đầu máy giả lập này.

Vấn đề là cách tiếp cận này chậm. Rất đơn giản, bạn đã may mắn nếu bạn có thể đạt được 1/10 tốc độ của phần cứng ban đầu. Bạn thực sự cần một máy nhanh hơn nhiều lần so với máy mô phỏng mục tiêu của bạn để chạy máy tính giả lập ở bất cứ nơi nào gần tốc độ tối đa.

Vậy điều gì đã thay đổi?

Vâng, đây là điều tuyệt vời. Thực sự không nhiều. Sự thay đổi lớn duy nhất là các nền tảng phần cứng được tiêu chuẩn hóa. Chúng tôi đã ngừng nhận phần cứng tùy chỉnh cho mọi HĐH và tất cả các HĐH đều được chuyển sang hoặc được tạo trên một nền tảng tiêu chuẩn duy nhất.

Các thành phần tạo nên máy Mac ngày nay, nói chung, chính là các thành phần tạo nên một PC. Linux luôn chạy trên phần cứng PC nên không có gì mới cả.

Trong một thời gian dài, thi đua vẫn là tiêu chuẩn nếu bạn muốn chạy phần mềm từ HĐH này trên HĐH khác. Hoặc bạn có thể khởi động kép và chạy một trong hai hệ điều hành như bạn muốn, nhưng điều này làm cho nó đau đớn và khó chịu nếu bạn muốn chuyển từ mã hóa trong Linux sang chơi game trong Windows.

Và sau đó..

Đã có ý tưởng rằng phần cứng cơ bản là như nhau, tại sao cả hai hệ điều hành không thể chia sẻ nó?

Chúng tôi đã kết thúc với QEMU và WiNE và các giải pháp phần mềm tương tự. QEMU từ lâu đã được yêu thích để mô phỏng cứng các máy, trong khi WiNE cho phép các ứng dụng Windows chạy trên Linux bằng cách bẫy và vá các lệnh gọi API hệ điều hành của chúng và để mã chạy tự nhiên trên bộ xử lý.

QEMU đã làm một cái gì đó tương tự như WiNE, nhưng đã làm ở cấp độ thấp hơn nhiều. Nó vẫn thực sự là một trình giả lập, nhưng đối với mọi cuộc gọi phần cứng được thực hiện, họ đã sử dụng phương pháp "vá và chuyển hướng" để bất kỳ cuộc gọi nào đi đến nền tảng phần cứng giả lập của riêng họ. bởi vì hầu hết các mã làm việc trong một chương trình không thực sự liên quan đến các cuộc gọi phần cứng (hầu hết là các luồng tính toán đơn giản với một cuộc gọi ở cuối để hiển thị kết quả).

Điều này dẫn đến việc tăng tốc độ tức thời cho hầu hết mọi chương trình trong máy không được mô phỏng thực sự . Các chương trình chạy với tốc độ chậm phụ thuộc nhiều hơn vào mức độ chúng truy cập vào phần cứng "ảo" thay vì phụ thuộc vào mức độ mà máy có thể được mô phỏng. Thay vì chạy ở tốc độ 1/10 tốc độ, giờ đây họ đang chạy với tốc độ gần như tốc độ như thể chúng là nguyên bản.

Vì vậy, nếu bây giờ chúng tôi đang chạy trên bộ xử lý, tại sao card đồ họa của tôi không hoạt động?

Vấn đề duy nhất với các Máy ảo mới này là về bản chất, Hệ điều hành giả định rằng nó có quyền kiểm soát trực tiếp tất cả phần cứng trong máy tính, để chúng có thể cung cấp các tính năng như quản lý bộ nhớ và kiểm soát quyền truy cập vào phần cứng.

Điều này có nghĩa là máy ảo có thể hoàn toàn thoát khỏi sự mô phỏng, ít nhất là về phương thức. Họ vẫn phải mô phỏng một số chức năng nhất định trong phần mềm, ví dụ như card đồ họa hoặc card mạng phải được trình bày cho HĐH chạy trong máy ảo để hệ điều hành "Guest" nghĩ rằng nó có toàn quyền kiểm soát phần cứng đó. HĐH chính (theo yêu cầu bảo mật) phải tự bảo vệ mình trước các chương trình truy cập trực tiếp vào phần cứng và điều này đặt ra các hạn chế đối với hệ điều hành khách.

Để làm được điều này, họ phải mô phỏng các phần cứng "ảo" cho mọi thứ trong máy tính. Hiện tại tất cả các mã được chạy bởi bộ xử lý, vì vậy nó không chậm, nhưng mỗi một phần cứng ảo đó phải được viết bằng phần mềm và điều này phải chịu cả một hình phạt nhỏ về hiệu năng và có khả năng bị phạt lớn về chức năng .

Điều đó có nghĩa là card đồ họa ảo của bạn không thể và sẽ không có các tính năng giống như card đồ họa thực của bạn . Để có được hiệu suất cao nhất, phần cứng ảo có thể được viết để hỗ trợ hầu hết các tính năng được sử dụng và hiện có thể hiển thị 3D trong một máy ảo, nhưng nó vẫn không giống với phần cứng thực.

Điều này có nghĩa là hệ điều hành máy chủ có các tùy chọn phần cứng tốt nhất, trong khi hệ điều hành khách có các tùy chọn phần cứng chung .

Một máy ảo không tốt bằng phần cứng thực, nó chỉ là một công cụ giúp làm việc dễ dàng hơn với các công cụ từ hệ thống này sang hệ thống khác.

Vậy tôi phải làm gì?

Bạn phải chọn những gì bạn muốn mục đích chính của máy tính của bạn là.

Nếu bạn muốn chơi các trò chơi mới nhất trên card đồ họa mạnh mẽ của mình và sử dụng cùng một sức mạnh của card đồ họa đó để phát phim 1080p đầy đủ cho TV HDMI 400 của bạn nhưng đôi khi chỉ muốn thực hiện một số chương trình Linux, thì Windows có thể là lựa chọn tốt nhất của bạn với Linux là khách.

Nếu bạn muốn làm việc với nhân Linux, tạo trình điều khiển phần cứng cho các thiết bị trong máy tính của bạn và thỉnh thoảng viết một số phần mềm cho Windows và kiểm tra phần mềm này gần đúng với hệ thống Windows "chuẩn" thì có thể bạn nên dùng Linux tốt hơn như một máy chủ lưu trữ và Windows như một khách.

Nếu bạn thích sự dễ sử dụng của máy Mac nhưng muốn lập trình cho Windows (hoặc có một gói phần mềm bạn muốn chỉ dành cho Windows) thì đó cũng là một tùy chọn.

Tôi không nói rằng Linux không thể chơi trò chơi, hoặc MacOS không dành cho lập trình viên vì đó đơn giản chỉ là một lời nói dối. Chỉ có một người có thể nói hệ điều hành nào có thể phù hợp hơn với những gì bạn muốn làm là bạn .

Bạn thực sự phải hiểu những gì bạn muốn máy của bạn làm đầu tiên . Chỉ sau đó bạn có thể tìm ra những gì một máy ảo có thể làm cho bạn.

Để trả lời câu hỏi của bạn:

Will the graphics and video rendering quality will be just as good?

Không. Card đồ họa mô phỏng có thể cung cấp một số tính năng của card đồ họa chủ, nhưng có thể nó sẽ không hỗ trợ các tính năng phức tạp như tăng tốc video phần cứng hoặc tính năng lập trình CUDA.

Will there be any hardware issue such as using HDMI or WiDi?

Một lần nữa, các tính năng bổ sung này có thể sẽ không phải là một tính năng của bất kỳ phần cứng giả lập / ảo nào có sẵn.

Will applications run just as smoothly as long as enough RAM is allocated?

Hầu hết các ứng dụng (miễn là chúng không yêu cầu các tính năng phần cứng cụ thể) sẽ chạy gần như nhanh như trên phần cứng thực, miễn là bạn không bỏ đói máy chủ hoặc khách của bộ nhớ.


+1 cảm ơn phản hồi của bạn. Tôi sẽ thay đổi câu hỏi của tôi để phản ánh "xiên".
Kamil Sindi

8

Máy ảo (VM) luôn chạy chậm hơn hệ thống máy chủ vì hệ thống khách phải yêu cầu máy chủ giao tiếp với phần cứng, chẳng hạn như card đồ họa, ổ cứng, bộ nhớ, v.v. vì đây là chương trình chạy trong hệ thống máy chủ và không có quyền kiểm soát trực tiếp phần cứng. Tuy nhiên, nếu phần cứng của bạn có thể xử lý nó, sự chậm chạp có thể không quá đáng chú ý.

Lý do cho điều này là bộ xử lý chỉ có thể thực hiện một lệnh tại một thời điểm. Các chương trình thường bao gồm hàng ngàn hoặc hàng triệu hướng dẫn máy. Khi máy khởi động, nó sẽ quét Bản ghi khởi động chính (MBR) cho bộ tải khởi động. Bộ nạp khởi động sau đó khởi động kernel. Nhân là quá trình chính kiểm soát tất cả phần cứng. Đa nhiệm, chuyển đổi giữa một số tác vụ, cho phép chúng tôi chạy nhiều chương trình cùng một lúc, mặc dù chỉ có một chương trình được thực thi tại một thời điểm nhất định. Hầu hết các bộ xử lý chỉ dành khoảng 20% ​​thời gian để thực hiện các phép tính toán học. Bộ xử lý đa lõi cho phép tìm nạp lệnh tiếp theo trong khi chờ lõi khác làm toán, giảm thời gian nhàn rỗi và tăng tốc hệ thống đáng kể. Ngoài kernel, còn có shell (cung cấp giao diện cho người dùng),

Phần mềm ảo hóa là một ứng dụng, giống như bất kỳ ứng dụng nào khác được quản lý bởi kernel. Do đó, kernel của VM phải đợi permisson từ kernel host để làm bất cứ điều gì và sẽ bị gián đoạn thường xuyên. Càng nhiều tiến trình đang chạy trên hệ thống máy chủ, thời gian thực hiện sẽ được phân bổ cho VM càng ít, làm cho nó chậm hơn. Máy ảo thường chạy chậm hơn ba đến bốn lần so với máy vật lý.

Nếu bạn định chạy game hay bất cứ thứ gì tương tự, tôi sẽ phân bổ nhiều RAM và càng nhiều thời gian kernel càng tốt. Nhiều bộ xử lý giúp. Tuy nhiên, việc phân bổ quá nhiều RAM sẽ làm chậm hệ thống, vì mất nhiều thời gian hơn để truy cập dữ liệu và có thể gây ra tình trạng lưu trữ đĩa cứng quá mức trên hệ thống máy chủ. Nhưng mặt khác, quá ít sẽ gây ra quá nhiều bộ nhớ đệm đĩa cứng cho khách. Vì các cửa sổ rất khao khát tài nguyên, tôi sẽ phân bổ ít nhất 2 đến 4 GB RAM, nhưng không phân bổ hơn một nửa RAM của bạn cho VM.

Nếu nó phản hồi quá chậm, một lựa chọn tốt hơn có thể là khởi động kép. Bằng cách này, cả hai sẽ có thể sử dụng đầy đủ tài nguyên hệ thống, nhưng thật không may, bạn chỉ có thể chạy từng tài nguyên một. Nếu bạn làm điều này, có lẽ bạn sẽ muốn ít nhất ba phân vùng: một cho Linux, một cho Windows và một (hoặc nhiều hơn) cho các tệp của bạn.


Bất kỳ ý tưởng nào máy mạnh mẽ phải có để có sự khác biệt đáng chú ý?
Kamil Sindi

Tôi không chắc lắm, vì tôi chỉ chạy Windows với tư cách là máy chủ lưu trữ trên máy tính của mình. Đề nghị của tôi sẽ là thử nó và xem nếu nó hoạt động đủ tốt. Nếu không tôi sẽ sử dụng một khởi động kép. Kinh nghiệm cá nhân của tôi là những thứ như Wordperinf đủ nhanh, nhưng các trò chơi hoạt động kém trong VM.
ctype.h

Các chi tiết cụ thể cho hệ thống của bạn là gì? Bạn có bao nhiêu RAM? Tần số và số lượng lõi của bộ xử lý của bạn là gì? Nó có hỗ trợ ảo hóa phần cứng hỗ trợ (HAV) không?
ctype.h

+1 cho tổng quan rất thú vị. Thông số kỹ thuật của tôi là RAM 8GB, Solid State Drive và Intel Core i5-2410M (tốc độ xung nhịp 2,3 GHz). Tôi không chắc chắn về HAV. Đó là một mô hình rất mới (2011).
Kamil Sindi

6

Vì thế. VMWare Player là một Hypervisor Loại 2. Điều đó có nghĩa là một vị khách ngồi trên một hệ điều hành. Trên Hypervisor Loại 1, nền tảng ảo hóa nằm phía trên phần cứng. Đó là bởi vì VMWare Player nằm trên Hypervisor Loại 2, nó sẽ chạy chậm hơn so với một cái gì đó trên Loại 1. Tuy nhiên, VMWare Player cung cấp khả năng tùy chỉnh các yêu cầu phần cứng cho VM của bạn. Vì vậy, nếu bạn có một hệ thống với bộ xử lý lõi tứ với 4GB Ram, bạn có thể đủ khả năng cung cấp tối đa 1 hoặc 2 lõi và sau đó là 2GB RAM (tối thiểu req cho Windows x64) để có VM chạy hiệu quả.

Chẳng hạn, tôi có XPS 14z và có Windows 7 trên đó. Tôi cũng chạy Windows 7 VM-- Tôi đã phân bổ cho nó 2GB RAM & 2 lõi xử lý (trong số 4).

Vì vậy, khi tôi chạy các chương trình trên nó (Notepad ++, Transwiz, Outlook, Word, Excel, v.v.), không có sự chậm chạp đáng chú ý nào. Tôi chưa bao giờ thử chạy phần mềm dữ dội trên nó (Photoshop, v.v.). Vì vậy, tùy thuộc vào những gì bạn đang sử dụng nó - một trình ảo hóa loại 2 có thể phù hợp hoặc không phù hợp với nhu cầu của bạn. Nếu bạn muốn sử dụng nó để chơi game, nó sẽ phụ thuộc vào trò chơi. Tôi đã chạy một vài game Steam trên đó và đôi khi không gặp vấn đề gì (tôi RDP từ máy Fedora của tôi sang VM của tôi) nhưng nó thực sự sẽ phụ thuộc vào yêu cầu của trò chơi. Để chơi game theo mọi nghĩa, tôi sẽ không sử dụng VM để làm điều đó. Tôi chơi game trên máy W7 của mình và sau đó sử dụng VM (Fedora, thực tế) để làm những việc khác. Bạn muốn các ứng dụng chuyên sâu nhất có quyền truy cập đầu tiên vào phần cứng.


1

Vì vậy, tôi đã cài đặt Windows 7 trong Linux Mint 12 thông qua VMWare Player. Kết xuất video của Windows 7 bên trong Linux Mint kém hơn Windows 7 là hệ điều hành chính. Tôi chưa định cấu hình bất cứ điều gì và không biết có gì để định cấu hình để giúp hiển thị video của các tệp avi tốt hơn không.

Tôi đã tìm thấy tốc độ chạy các ứng dụng nhanh trong máy nhớ 8GB của mình. Đó không phải là một vấn đề. Điều đó nói rằng, tôi đã không thử bất cứ thứ gì siêu bộ nhớ chuyên sâu như chỉnh sửa video hoặc ảnh. Chỉ cần các ứng dụng Office thông thường.


Bạn luôn có thể phân bổ thêm CPU, RAM hoặc bộ nhớ video cho máy ảo của mình.
iglvzx

1

Vấn đề với công nghệ VM là nó không thể xử lý bộ nhớ vật lý của bạn theo cùng một cách nếu bạn đang chạy một hệ điều hành thực tế sử dụng bộ nhớ đã nói. Một hình ảnh VM sử dụng địa chỉ bộ nhớ logic nếu nó chạy bằng cùng một không gian địa chỉ vật lý mà bạn không thể chạy cả hai hệ điều hành cùng một lúc. Mặc dù VM hiện đại đã đi một chặng đường dài mà bạn thậm chí có thể nói chơi game chất lượng 90% -95%, nhưng chúng vẫn thiếu khả năng chạy các trò chơi của bạn ở tốc độ tối đa. 90% -95% đó hoàn toàn nhắm vào địa chỉ logic so với địa chỉ vật lý của bộ nhớ máy tính của bạn. Bây giờ chỉ bao gồm đối số phân bổ / địa chỉ bộ nhớ, vấn đề khác là Windows sử dụng DirectX vì tôi biết không có phần mềm VM nào kể cả VMware có hỗ trợ đầy đủ cho bất kỳ DX mới nhất nào. Vì vậy, nếu sử dụng bất cứ điều gì ngoài DX 9, bạn sẽ gặp khá nhiều khó khăn.

QEMU trên Linux có lẽ là tốt nhất để chơi game!

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.