Сценарий:
- Я - независимый разработчик программного обеспечения, который в основном разрабатывает для Linux (Python, MySQL, MongoDB и т. Д.)
- Мой рабочий компьютер - ноутбук Lenovo с процессором i7 и 8 ГБ оперативной памяти. Большой HD + 128 ГБ SSD. ОС Ubuntu Linux
Я могу получить некоторые проекты .NET / C # в ближайшем будущем, поэтому я ищу некоторые рекомендации по следующим вопросам:
- Стоит ли использовать решение с двойной загрузкой или использовать виртуальные машины для Windows?
- Если я использую двойную загрузку: какова рекомендуемая последовательность установки? Сначала Windows или сначала Linux? (Я смотрю на полную переустановку Ubuntu, чтобы получить последнюю версию LTS, чтобы я мог начать все заново)
- Если я перейду к VM: как VMWare Workstation и VirtualBox сравнивают производительность?
- Установка моей мечты, вероятно, будет следующей:
- Двойная загрузка
- Но если я загружаюсь в Linux, я могу загрузить раздел Windows как виртуальную машину. Это возможно?
- И / или: если я загружаюсь в Windows, я могу загрузить раздел Linux как виртуальную машину. Это возможно?
linux
windows
boot
virtualization
visual-studio
codeape
источник
источник
Ответы:
Другие рассмотрели остальную часть вашего вопроса, но я вижу, что они оставили эту часть без внимания:
Краткий ответ: да.
Длинный ответ - да, но с множеством предостережений и последствий.
До января этого года (когда у нас появились новые машины), мой рабочий компьютер был настроен либо на двойную загрузку, либо на использование Linux в качестве хоста для виртуальной машины Windows 7, которая напрямую обращалась к разделу Windows. Я никогда не пытался использовать Windows в качестве хоста для виртуальной машины Linux с прямым диском, но это также возможно. Мой компьютер использовал устаревшую версию BIOS / MBR, я не уверен, как это сделать, если вы используете UEFI / GPT.
Я выбрал VirtualBox, но, насколько я понимаю, это также возможно с VMWare.
Производительность была совершенно приемлемой для моих целей; Я дал Windows 1 процессорное ядро, 2 ГБ памяти, 1 монитор, и я не помню, сколько видеопамяти. Виртуальная машина была способна воспроизводить видео и работать с моим Java-приложением GUI и многими веб-сайтами с богатым контентом.
Я буду обсуждать странности, прежде чем вдаваться в детали:
Переключение между Native-boot и VM-режимом Windows 7 вызвало предупреждение Windows о том, что моя копия Windows не была подлинной. В зависимости от вашей лицензии MS может посчитать это нарушением лицензии, установив на нее два аппаратных элемента. Мне также нужно было «починить» мою установку, потому что многие низкоуровневые драйверы отличаются для реального оборудования и «оборудования» виртуальной машины.
Каждый раз, когда запускался Центр обновления Windows (или любая другая операция ввода-вывода с большим диском), мой жесткий диск ломался под нагрузкой, и все на обеих машинах становилось все медленнее. Перемещение каждой ОС на отдельный жесткий диск решило эту проблему; Использование твердотельного накопителя также решило бы проблему.
По какой-то причине Ubuntu иногда не нравилось просыпаться после приостановки (возможно, в 20% случаев), что было эквивалентно жесткому выключению моей виртуальной машины Windows. В результате я выключал виртуальную машину каждый вечер перед тем, как приостановить работу хоста.
Я должен был быть очень осторожным, чтобы никогда не пытаться смонтировать раздел Windows в Linux, чтобы предотвратить возможное повреждение / потерю данных. Я быстро добавил правило udev, чтобы предотвратить это.
Хорошо, если это не звучит слишком плохо, вот подробности: Наиболее полезная ссылка, которую я нашел для этого, - это блог: http://www.rajatarya.com/website/taming-windows-virtualbox-vm . Вот краткие шаги:
RTFM. В самом деле. Вы будете использовать команды, которые могут привести к повреждению вашей файловой системы, если вы сделали неправильно.
Найдите разделы.
Измените разрешения для ваших разделов (в качестве альтернативы вы можете загрузить виртуальную машину с помощью sudo, но тогда любые файлы, созданные на общем жестком диске хоста / гостя, будут принадлежать пользователю root).
Создайте MBR, чтобы гость не пытался использовать обычный загрузчик.
Используйте внутреннюю команду VirtualBox для создания образа vmdk, который будет использоваться для виртуальной машины.
Создайте ВМ. Пусть он использует созданный вами vmdk.
Загрузите и восстановите вашу установку.
Я ожидал бы найти много таких же проблем при использовании хоста Windows, но Linux, вероятно, справился бы с другим оборудованием более элегантно. Хотя на самом деле может быть проще использовать разделы общего / домашнего (и, возможно, / opt) и просто иметь разные корневые разделы для нативных и гостевых машин.
источник
Обычно я делаю обратное: моя домашняя система - это машина с Windows 7, и я использую различные версии Linux как виртуальные машины. Поскольку Linux может функционировать весьма неплохо при ограниченных ресурсах, это работает для меня, даже если у меня есть только 4 ГБ ОЗУ (учтите, это означает, что я запускаю по одной виртуальной машине за раз и обычно выделяю 1024 МБ ОЗУ максимум для сохранения большого количества памяти). для Windows).
8 ГБ ОЗУ позволят вам довольно легко запускать виртуальную машину Windows. Я думаю, что единственный большой вопрос здесь - это тип результатов, которые вы захотите измерить для своего развития. Я не хотел бы полагаться на любые показатели производительности / пропускной способности для элементов, которые вы разрабатываете на ВМ (если только он не будет развернут в аналогичной среде ВМ с такими же спецификациями по всем направлениям). В противном случае вам должно быть хорошо идти.
И чтобы затронуть комментарии в другой ветке, естественно, если вы будете знать, что вы будете разрабатывать приложения, требующие большого количества ресурсов, тогда оптимизация для этой цели была бы способом (так что в этих случаях двойная загрузка, безусловно, будет предпочтительнее использования виртуальных машин).
Я использовал как VMWare, так и VirtualBox, и я не видел ни одного реального снижения производительности с использованием ни того, ни другого. Я не дошел до уровня сравнительного анализа виртуальных машин внутри, просто я просто не заметил какого-либо негативного влияния ни от одной из платформ (все еще использую VirtualBox дома, а VMware на работе).
источник
Это зависит от того, как вы работаете и как вы хотите, чтобы ОС чувствовала .
Двойная загрузка означает перезагрузку и загрузку, если вы хотите сменить ОС, это занимает время . Будучи фрилансером, вы работаете 8 часов подряд с проектом, не занимаясь "своими" вещами ("вашими вещами" будет вы при загрузке Linux).
Если вы работаете 8 часов подряд в Windows, а затем проводите остаток дня в Linux, используйте двойную загрузку. Если вы работаете 30 минут, а затем хотите что-то сделать в Linux, переключитесь на работу снова на 3 часа, затем снова на Linux и т. Д. Затем я бы выбрал VM.
Если вы не уверены, сделайте оба. Двойная загрузка и когда в Windows запустить виртуальную машину. Вы увидите четкую разницу между обоими, и вы будете предпочитать одно над другим.
Лично я использую виртуальную машину только для тестирования новых дисков linux и иногда фальшивого сервера во время раздачи (возможность испортить виртуальную машину бесценна и намного менее хлопотна, чем выполнение этого на вашем реальном жестком диске). VM также отстает и чувствует себя менее отзывчивым, мне нужно, чтобы моя операционная система чувствовала себя отзывчивой и гладкой, VM не хватает в этой области. Поэтому я предпочитаю двойную загрузку.
Существует также проблема, когда дело доходит до обмена файлами. Это большая работа для двойной загрузки (представьте, что редактирование файла в загрузке Windows, а затем загрузка в Linux только для того, чтобы понять, что вы пропустили строку и вам нужно перезагрузиться в windows, кошмар!), Где на виртуальной машине вы можете использовать NFS или samba для обмена файлами между ОС в режиме реального времени, никаких проб.
Также о недостаточном баране, как сказал Абоба, мусор, я говорю. Я запускаю 4 ГБ и ВМ в Windows8. Однако помните о том, какие ресурсы нужны вашему проекту.
источник
Или как насчет этого. Вы заинтересованы в .net / C #, так почему бы просто не использовать Mono на Linux? Его очень кросс-платформенный в том смысле, как Java.
источник
Лично у меня было много положительного опыта на полпути, использую гипервизор, такой как Xen , и Linux, и Windows могли работать под управлением легкого гипервизора с микроядром, ни тот, ни другой не испытывали значительного снижения производительности, и эта конфигурация гораздо более гибкая. , что позволяет вам легко перераспределять ресурсы между ними в любое время.
Это почти соответствует упомянутой настройке вашей мечты, так как вы можете в любое время независимо загружать или выключать две ОС для перераспределения ресурсов на другую, и вы не сможете заметить какого-либо снижения производительности (в действительности это может быть на несколько% медленнее). В некоторых случаях, но вы не заметите это, если не будете тестировать специально для этого).
Единственная особенность - некоторые функции требуют, чтобы ваш процессор поддерживал визуализацию, однако каждый i7 поддерживает (afaik), поэтому это не должно быть проблемой для вас.
РЕДАКТИРОВАТЬ:
Xen содержит собственное микроядро, Debian не нужен для его запуска, единственная причина, по которой потребуется система Linux, - это перенастройка Xen, поскольку программа конфигурирования - это программа linux, которую вы запускаете на одном из гостей (гостем является термин, используемый Xen означать ВМ). Вы можете в любой момент запустить только linux, только windows или оба, но вам нужно будет запустить linux, чтобы настроить параметры Xen, поэтому рекомендуется оставить небольшой linux работающим в фоновом режиме, чтобы делать это при необходимости.
С аппаратным обеспечением можно работать несколькими способами. Xen предоставляет набор виртуальных устройств, которые позволяют одновременно использовать несколько устройств одновременно, например сетевые карты, звуковые карты и т. Д.
Для оборудования, которое не может работать таким образом или требуется только одному гостю в то время, когда у xen есть транзитные устройства, это означает, что вы можете выбрать и выбрать в любое время, какой гость имеет прямой доступ к части оборудования и может переключать это в любое время. время. Это можно сделать, чтобы предоставить конкретному гостю истинный доступ к графической карте, если вам требуется высокоскоростной ускоренный рендеринг без каких-либо накладных расходов на виртуализацию. .
Также возможно, чтобы один гость напрямую использовал графическую карту в режиме сквозного доступа, как объяснено выше, но все равно просматривал других, используя локальный VNC-подобный протокол, который заставляет экраны других гостей появляться в окнах (например, виртуальный ящик или удаленный рабочий стол) в то время как один имеет прямой контроль над видеокартой; или, конечно, вы можете просто переключаться между экранами гостей, предоставляя один прямой доступ за раз.
Вопреки тому, что вы можете предположить об эффективности этой установки, это на самом деле один из немногих способов одновременного запуска обеих операционных систем, при этом поддерживая эффективную производительность обеих систем. Если вы выполните поиск в Google, вы обнаружите, что многие добились успеха, используя такая настройка для запуска высокопроизводительного игрового автомата или других требовательных систем.
источник
Согласно моему опыту (я также работаю над приложениями .Net, пока тестирую классные вещи и решаю проблемы с альго) в Linux, двойная загрузка будет вашим лучшим выбором.
Как уже отмечали другие, использование виртуальной машины иногда кажется медленным и не отвечает, что может быть болью.
Еще одна вещь, на которую я бы хотел обратить ваше внимание: вы не пожалеете времени и попробуйте запустить виртуальную машину и убедитесь, что она вам удобна.
Что касается порядка
1) сначала установите Windows, а затем Linux (предпочтительно)
2) Сначала установите Linux, а затем Windows (затем вы должны переустановить загрузчик)
Еще одна вещь, которую я хотел бы добавить, - это то, что для небольших проектов .Net вы можете использовать даже Linux с использованием Mono, поэтому нет необходимости переключаться между Windows и Linux.
источник
Я занимаюсь разработкой Linux / Visual Studio для переключателей чуть более года, начиная с Visual Studio и постепенно переходя на Linux (мне нравятся apt, zsh и vim!).
Я начал с Windows, размещающей Ubuntu в VMWare Player, которая работала довольно хорошо, что, безусловно, замечательно, если вы в основном занимаетесь разработкой для Visual Studio и просто время от времени нуждаетесь в каком-то пакете только для Linux или чем-то еще. Со временем я обнаружил, что хочу, чтобы моя работа была в среде Linux чаще, а интеграция с ВМ имела несколько болевых точек, так что ...
Поскольку я переключился в основном на разработку Linux (множество AS3 в IntelliJ и некоторые ноды + python) с редкими потребностями в Windows (сайт ASP.NET), я переключил это на Ubuntu, где размещается VirtualBox (используя disk2vhd -> .vdi из мой старый диск с windows). После большого количества беспокойств я вполне доволен этим, учитывая тот разделение работы, которое у меня обычно есть, но если вы занимаетесь каким-либо серьезным делом в Visual Studio, вам, вероятно, понадобится Windows, на которой размещается Linux, либо VirtualBox, либо VMWare Player должны подойти.
Однако следует отметить несколько болевых точек: со стандартными видеодрайверами AMD для Ubuntu 14.04 3D-ускорение VirtualBox делает Visual Studio примерно в 10-100 раз медленнее, поэтому отключите ускорение за счет некоторой медлительности; и вы действительно хотите работать на SSD)
источник