Чи Windows 7 Insinux Linux настільки ж хороший, як і основна ОС (особливо для графіки та відео)?


10

Новий користувач Linux. Цікаво, чи запуск Windows 7 всередині Ubuntu / Linux Mint через VMPlayer буде таким самим, як запуск Windows 7 як основної ОС.

Під "тим же" я маю на увазі:

  • Чи буде якість графіки та відеозапису настільки ж хороша?

  • Чи будуть якісь апаратні проблеми, такі як використання HDMI чи WiDi?

  • Чи будуть програми працювати так само гладко, доки буде виділено достатньо оперативної пам’яті?

Наскільки потужною повинна бути машина, щоб не було помітної різниці? Конкретні характеристики моєї машини: http://www.gadgetspecs.info/2011/07/asus-u46e-bal5-review-of-specs-and.html . У мене також встановлений SSD.

Передумови: В даний час у мене є протилежне налаштування з Linux Mint та Ubuntu всередині Windows 7, і я вважаю, що якість відео не настільки хороша, як у Windows 7.

Відповіді:


11

Я доклав багато до своєї відповіді нижче, але свою оригінальну відповідь я залишив недоторканою для довідки.

TL: DR: Віртуальні машини - це інструмент, і, хоча вони пропонують просту можливість використання однієї ОС всередині іншої, ви повинні дуже добре знати, яким буде призначене вами основне використання комп'ютера, щоб повною мірою використовувати систему. .

Здається, ваше запитання сильно нахилене до можливостей графічної та інтерфейсної роботи віртуальної машини, тому я відповім щодо можливостей, які існують там.

Основна проблема полягає в тому, що для безпечного управління гостьовими операційними системами доступ до пристроїв (і тим самим не дозволяє гостям ОС топтати хоста і порушувати речі) усі пристрої, які ви хочете використовувати, повинні бути "емульовані".

Це означає, що відеокарта, яку може бачити ваша гостьова ОС, - це не та сама відеокарта, яку може бачити ваша хост-операційна система. Можливо, ви зможете ввімкнути такі функції, як 3D-рендерінг у гостях, але цим керує проміжний драйвер вашого гостя, який передає запити хосту безпечно, щоб 3D-рендерінг там був наданий.

Дуже сумнівно, що такі функції, як ті, які необхідні для надійного відтворення дискових синіх променів на підтримуваний дисплей HDMI, імітують гостьові драйвери відеокарти, тому це, ймовірно, не спрацює.

В основному все, що вимагає апаратної підтримки вашого хоста, швидше за все, не спрацює, якщо взагалі, у вашого гостя. Я не знаю, як працює WiDi, але якщо йому потрібен прямий доступ до пам'яті вашої відеокарти для того, щоб поділитися ним на телебаченні, це не працюватиме, якщо ви не використовуєте його з вашої хост (Linux) операційної системи.

Крім того, що стосується продуктивності, VM може наблизитися до того, що було б, якби це була основна ОС, але завжди будуть штрафи за доступ до пристроїв жорсткого диска або суперечки з іншими ресурсами, якими користується хост.

На початку...

На початку у нас був комп’ютер, на якому комп'ютер міг працювати лише однією операційною системою. Ця операційна система, як правило, працювала лише на конкретному процесорі та іншому апаратному забезпеченні, яке було в машині, а інші операційні системи могли працювати погано, якщо взагалі, на наявному наявному апаратному забезпеченні.

Для того, щоб люди могли використовувати програмне забезпечення для однієї конкретної платформи на іншій платформі (наприклад, за допомогою програмного забезпечення Mac OS Pre-OSX на Commodore Amiga), потрібно більше, ніж просто "встановлення програмного забезпечення". Ці дві машини використовували абсолютно різні архітектури процесорів та допоміжне обладнання. Просто жодна операційна система не могла працювати на апараті іншої машини.

Емуляція

Емуляція - це як двоюрідний брат по віртуалізації, вони насправді споріднені і мають подібні цілі. Один породив іншого, як би.

Що означали ці різні апаратні платформи, це те, що якщо ви хочете використовувати на вашій машині один фрагмент програмного забезпечення з іншої ОС, то все про цю машину потрібно було проаналізувати, щоб дізнатися, як вона працює, а потім написаний фрагмент коду, який функціонував у так само, як і апаратну частину. Це потрібно було зробити для кожного фрагмента, процесора, графічного контролера, контролера пам'яті, всього .

Потім всі ці шматки складаються разом, і так як кожен шматок імітує трохи обладнання, ми називали це емульованою машиною . Потім ми запускаємо операційну систему поверх цієї емуляції машини.

Проблема полягає в тому, що такий підхід повільний. Досить просто вам пощастило, якщо ви могли досягти 1/10 швидкості оригінального обладнання. Вам буквально потрібна машина в кілька разів швидше, ніж ваша цільова емульована машина, щоб запустити емуляційний комп'ютер в будь-якому місці, майже на повній швидкості.

Так що змінилося?

Ну ось ось класна річ. Не дуже. Єдиною великою зміною було те, що апаратні платформи стандартизовані. Ми перестали отримувати спеціальне обладнання для кожної ОС, і всі ОС переміщені до єдиної стандартної платформи або були створені на ній.

Компоненти, що складають Mac в ці дні, за великим рахунком - це ті самі компоненти, які складають ПК. Linux завжди працював на апаратному забезпеченні ПК, тому нічого нового там немає.

Надовго емуляція все ще була нормою, якщо ви хотіли запускати програмне забезпечення з однієї ОС на іншу. Або ви могли подвійно завантажуватись та запускати будь-яку операційну систему, як хотіли, але це зробило болісно і дратує, якщо ви хочете перейти від кодування в Linux до гри в ігри в Windows.

І потім..

Прийшла думка, що як базове обладнання однакове, чому обидві ОС не можуть його поділити?

Ми закінчилися QEMU та WiNE та подібними програмними рішеннями. QEMU давно був улюбленим для жорсткої емуляції машин, тоді як WiNE дозволяла програмам Windows запускатись на Linux, захоплюючи та виправляючи їх виклики API ОС та дозволяючи коду запускатись на самому процесорі.

QEMU зробив щось подібне до WiNE, але зробив на значно нижчому рівні. Це все ще ефективно емулятор, але для кожного апаратного дзвінка вони застосовували метод "виправлення та переадресації", щоб будь-які виклики перейшли на власну емульовану апаратну платформу. тому що більшість робочих кодів програми насправді не передбачає апаратних викликів (більшість - це прості потоки обчислень з викликом в кінці для відображення результатів).

Це призвело до миттєвого збільшення швидкості майже для кожної програми в тепер не справді емульованій машині. Програми працювали з уповільненнями, залежачи більше від того, наскільки вони отримали доступ до "віртуальної" апаратури, а не від того, наскільки добре може бути емуляція машини. Замість того, щоб бігати на 1/10 швидкості, вони тепер бігали майже з тією ж швидкістю, як ніби вони були вдома.

Отже, якщо ми зараз працюємо на процесорі, чому моя відеокарта не працює?

Єдина проблема з цими новими віртуальними машинами полягає в тому, що за своєю суттю Операційна система передбачає, що вона має безпосередній контроль над усім обладнанням, яке є в комп'ютері, щоб вони могли надавати такі функції, як управління пам'яттю та контроль доступу до обладнання.

Однак це означає, що віртуальні машини не можуть повністю відійти від емуляції, принаймні методом. Вони все ще повинні імітувати певні функції в програмному забезпеченні, наприклад, відеокарта або мережева карта повинні бути представлені ОС, що працює у віртуальній машині, щоб операційна система "Гість" вважала, що вона повністю контролює це обладнання. Основна ОС (відповідно до вимог безпеки) повинна захищати себе від програм, що безпосередньо мають доступ до апаратних засобів, і це обмежує гостьову операційну систему.

Для цього вони повинні імітувати "віртуальні" частини обладнання для всього комп'ютера. Весь код зараз керується процесором, тому він не є повільним, але кожен з цих частин віртуальної апаратури повинен бути записаний у програмному забезпеченні, і це спричиняє як невеликий штраф у продуктивності, так і потенційно великий штраф в плані функціональності .

Це означає, що ваша віртуальна відеокарта не може і не матиме тих самих функцій, що і ваша реальна відеокарта. Для отримання максимальної продуктивності віртуальна апаратура може бути записана для підтримки більшості використовуваних функцій, і 3D-рендерінг тепер можливий у віртуальній машині, але це все ще не те саме, що і реальне обладнання.

Це означає, що хост-операційна система отримує найкращі апаратні варіанти, а гостьова операційна система отримує загальні апаратні параметри.

Віртуальна машина не настільки гарна, як справжня апаратура, це лише інструмент для полегшення роботи з інструментами з однієї системи на іншу.

То що мені робити?

Ви повинні вибрати те, що ви хочете, щоб основне призначення вашого комп'ютера було.

Якщо ви хочете грати в найсвіжіші ігри на вашій потужній відеокарті та використовуєте ці самі відеокарти, щоб відтворювати всі 1080p фільми на вашому 400-дюймовому HDMI-телевізорі, але лише час від часу хочете зробити деякі програми програмування Linux, тоді Windows може бути найкращою ставкою з Linux як гість.

Якщо ви хочете працювати над ядром Linux, створюючи драйвери апаратного забезпечення для пристроїв на вашому комп’ютері, а також час від часу пишіть якесь програмне забезпечення для Windows і перевіряйте його на гарне наближення до "стандартної" системи Windows, то, можливо, вам краще з Linux як хост і Windows як гість.

Якщо вам подобається простота використання Mac, але ви хочете програмувати для Windows (або є програмний пакет, який ви хочете, це лише Windows), це теж варіант.

Я не кажу, що Linux не може грати в ігри, або що MacOS не для програмістів, тому що це просто брехня. Просто ти одна людина, яка може сказати, яка ОС може бути більше підходить до того, що ти хочеш зробити, - це ти .

Ви дійсно повинні зрозуміти, що ви хочете, щоб ваша машина зробила спочатку . Тільки тоді ви зможете розробити, що може зробити для вас віртуальна машина.

Щоб відповісти на ваші запитання:

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

Ні. Емульована відеокарта може надавати деякі функції хост-відеокарти, але вона, ймовірно, не підтримує складних функцій, таких як апаратне відео прискорення або функції програмування CUDA.

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

Знову ж таки, ці додаткові функції, ймовірно, не будуть характерними для будь-якого емульованого / віртуального обладнання, яке є.

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

Більшість програм (до тих пір, поки вони не потребують конкретних апаратних функцій) працюватимуть майже так само швидко, як і на реальному апаратному забезпеченні, доки ви не голодуєте ні з хостом, ні з гостем пам'яті.


+1 дякую за вашу відповідь. Я зміню своє питання, щоб відобразити «косий».
Каміль Сінді

8

Віртуальні машини (VM) завжди працюють повільніше, ніж хост-система, оскільки гостьова система повинна просити хоста на взаємодію з обладнанням, таким як ваша відеокарта, жорсткі диски, пам'ять тощо, оскільки це програма, що працює в хост-системі і не має безпосереднього контролю за обладнанням. Однак якщо ваше обладнання може це впоратися, повільність може бути не надто помітною.

Причиною цього є те, що процесор може виконувати лише одну інструкцію за один раз. Програми зазвичай складаються з тисяч або мільйонів машинних інструкцій. Коли машина запускається, вона сканує головний запис завантаження (MBR) для завантажувача. Потім завантажувач запускає ядро. Ядро - це основний процес, який контролює все обладнання. Багатозадачність, яка переключається між декількома завданнями, дозволяє запускати більше однієї програми одночасно, навіть якщо в даний момент виконується лише одна. Більшість процесорів витрачають лише близько 20% свого часу на виконання математичних обчислень. Багатоядерні процесори дозволяють отримати наступну інструкцію під час очікування, коли інше ядро ​​зробить математику, скорочуючи час простою та значно прискоривши роботу системи. Окрім ядра, є оболонка (яка забезпечує інтерфейс для користувачів),

Програмне забезпечення для віртуалізації - це додаток, яким, як і будь-яким іншим додатком, керує ядро. Таким чином, ядро ​​VM повинно чекати дозволу від ядра хоста, щоб зробити що-небудь, і воно буде часто перериватися. Чим більше процесів, що працюють в хост-системі, тим менше часу виконання буде виділено VM, що робить його повільніше. ВМ зазвичай працюють в три-чотири рази повільніше, ніж фізичні машини.

Якщо ви збираєтеся запускати ігри чи щось подібне, я б виділив багато оперативної пам’яті та якомога більше часу ядра. Допомагають кілька процесорів. Однак виділення занадто багато оперативної пам’яті призведе до уповільнення роботи системи, оскільки це займе більше часу для доступу до даних і може спричинити надмірне кешування жорсткого диска в хост-системі. Але з іншого боку, занадто мало призведе до надмірної кількості кешування жорсткого диска у гостя. Оскільки Windows так голодний ресурсів, я б виділив щонайменше 2 - 4 ГБ оперативної пам’яті, але не виділяю більше половини вашої оперативної пам’яті для VM.

Якщо вона реагує занадто повільно, кращим варіантом може бути подвійне завантаження. Таким чином обидва зможуть повністю використовувати системні ресурси, але, на жаль, ви можете запускати лише один за одним. Якщо ви це зробите, ви, ймовірно, захочете принаймні три розділи: один для Linux, один для Windows і один (або більше) для ваших файлів.


Будь-яка ідея, якою потужною повинна бути машина, щоб не було помітної різниці?
Каміль Сінді

Я не зовсім впевнений, так як я працював Windows лише як хост на своїх комп’ютерах. Моя рекомендація полягала б у тому, щоб спробувати його і переконатися, чи працює він досить добре. Якщо ні, я б використовував подвійне завантаження. Мій особистий досвід полягав у тому, що такі речі, як Wordperfect, проходять досить швидко, але ігри працюють в VM.
ctype.h

Які конкретні деталі для вашої системи? Скільки оперативної пам’яті у вас є? Яка частота та кількість ядер вашого процесора? Чи підтримує апаратну віртуалізацію (HAV)?
ctype.h

+1 за дуже цікавий огляд. Мої характеристики - 8 Гб оперативної пам’яті, твердотільний накопичувач та Intel Core i5-2410M (тактова частота 2,3 ГГц). Я не впевнений у ВАВ. Це зовсім нова модель (2011).
Каміль Сінді

6

Так. Програвач VMWare - це гіпервізор типу 2. Це означає, що гість сидить поверх ОС. На Hypervisor типу 1 платформа віртуалізації сидить над апаратними засобами. Це тому, що VMWare Player, який перебуває на Hypervisor Type 2, буде працювати повільніше, ніж щось на Type 1. Однак VMWare Player пропонує можливість налаштувати ваші вимоги до обладнання для вашої VM. Отже, якщо у вас є система з чотирьохядерним процесором з 4 Гб оперативної пам’яті, ви можете дозволити собі запропонувати до 1 або 2 ядер, а потім 2 Гб оперативної пам’яті (мінімум req для Windows x64), щоб мати VM, який працює ефективно.

Наприклад, у мене XPS 14z і Windows 7 на ньому. Я також запускаю Windows 7 VM - я виділив йому 2 ГБ оперативної пам’яті та 2 процесорних ядра (з моїх 4).

Тому коли я запускаю програми на ньому (Блокнот ++, Transwiz, Outlook, Word, Excel тощо), помітного уповільнення не спостерігається. Я ніколи не намагався запускати на ньому інтенсивне програмне забезпечення (Photoshop тощо). Отже, залежно від того, для чого ви його використовуєте - гіпервізор типу 2 може або не відповідає вашим потребам. Якщо ви хочете використовувати його для ігор, це залежатиме від гри. Я провів на ньому кілька ігор Steam і не мав жодних проблем (я іноді передавався з моєї машини Fedora на свій VM іноді), але це дійсно залежатиме від вимог гри. Для ігор у будь-якому сенсі я б не використовував VM для цього. Я граю на своїй машині W7, а потім використовую VM (насправді Fedora), щоб робити інші речі. Ви хочете, щоб найінтенсивніші програми мали перший доступ до обладнання.


1

Тому я встановив Windows 7 в Linux Mint 12 через VMWare Player. Візуалізація відео Windows 7 всередині Linux Mint гірша, ніж Windows 7 як основна ОС. Я нічого не конфігурував і не знаю, чи є що-небудь налаштувати, щоб поліпшити відеовідтворення avi-файлів.

Я знайшов швидкість запуску додатків, щоб бути швидкою в моїй 8 Гб пам'яті. Це не було проблемою. При цьому я не намагався нічого надзвичайно інтенсивного запам'ятовування, наприклад, редагування відео чи фотографій. Просто звичайні програми Office.


Ви завжди можете виділити більше процесора, оперативної пам’яті або відеопам'яті для своєї віртуальної машини.
iglvzx

1

Проблема технології VM полягає в тому, що вона не може вирішувати вашу фізичну пам’ять так само, якщо ви працювали з реальною ОС за допомогою вказаної пам'яті. Образ VM використовує адресацію логічної пам’яті, якщо б вона працювала з використанням одного фізичного простору адресації, ви б не змогли запустити обидві операційні системи одночасно. Незважаючи на те, що сучасні віртуальні машини пройшли довгий шлях, навіть можна сказати, на 90% -95% якісні ігри, вони все ще не мають можливості запускати свої ігри на повній швидкості. Ці 90% -95% спрямовані виключно на логічну адресацію та фізичну адресацію пам'яті ваших комп'ютерів. Тепер, коли охоплюється лише аргумент адреси / розподілу пам'яті, інша проблема полягає в тому, що Windows використовує DirectX, наскільки я не знаю, що програмне забезпечення VM, включаючи VMware, не має повної підтримки для будь-якого з останніх DX. Тож якщо використовувати що-небудь за межі DX 9, ви сильно накрутили.

QEMU в Linux, мабуть, найкращий для ігор!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.