El escenario:
- Soy un desarrollador de software independiente que se desarrolla principalmente en Linux (Python, MySQL, MongoDB, etc.)
- Mi computadora de trabajo es una laptop Lenovo con un procesador i7 y 8GB de RAM. Big HD + SSD de 128 GB. El sistema operativo es Ubuntu Linux
Podría obtener algunos proyectos .NET / C # en el futuro cercano, por lo tanto, estoy buscando orientación sobre lo siguiente:
- ¿Debo optar por una solución de arranque dual o usar máquinas virtuales para Windows?
- Si hago un arranque dual: ¿Cuál es la secuencia de instalación recomendada? ¿Windows primero o Linux primero? (Estoy buscando una reinstalación completa de Ubuntu para obtener el último LTS de todos modos, así puedo comenzar a instalar todo nuevo)
- Si voy a VM: ¿Cómo se compara VMWare Workstation y VirtualBox en cuanto al rendimiento?
- La configuración de mi sueño probablemente sería la siguiente:
- Arranque dual
- Pero si inicio en Linux, puedo iniciar la partición de Windows como una máquina virtual. es posible?
- Y / o: si inicio en Windows, puedo iniciar la partición de Linux como una máquina virtual. es posible?
linux
windows
boot
virtualization
visual-studio
codeape
fuente
fuente
Respuestas:
Otros han cubierto el resto de su pregunta, pero veo que han dejado esta parte sin abordar:
La respuesta corta es sí.
La respuesta larga es sí, pero con varias advertencias e implicaciones.
Hasta este enero (cuando obtuvimos nuevas máquinas), tenía mi computadora de trabajo configurada para arranque dual o para usar Linux como host para una VM con Windows 7 que accedía directamente a la partición de Windows. Nunca me molesté en tratar de usar Windows como host para una máquina virtual Linux de disco directo, pero también es posible. Mi computadora usaba BIOS / MBR heredado, no estoy seguro de cómo hacerlo si usa UEFI / GPT.
Elegí VirtualBox para hacerlo, pero por lo que entiendo, también debería ser posible con VMWare.
El rendimiento fue perfectamente aceptable para mis propósitos; Le di a Windows 1 CPU core, 2GB de memoria, 1 monitor, y no recuerdo cuánta memoria de video. La VM era capaz de reproducir videos y trabajar con mi aplicación Java GUI y muchos sitios web de contenido enriquecido.
Discutiré la rareza antes de entrar en detalles:
Al cambiar entre Windows 7 de arranque nativo y modo VM, se activó la advertencia de Windows de que mi copia de Windows no era genuina. Dependiendo de su licencia, MS puede considerar esto como una violación de la licencia al instalar en dos piezas de hardware. También necesitaba "reparar" mi instalación porque muchos de los controladores de bajo nivel son diferentes para el hardware real y el "hardware" de VM.
Cada vez que se ejecuta Windows Update (o cualquier otra operación de E / S de disco grande), mi disco duro se aplastó bajo carga y todo en ambas máquinas se volvió lento. Mover cada sistema operativo a su propio disco duro dedicado solucionó este problema muy bien; El uso de una unidad de estado sólido también habría resuelto el problema.
Por alguna razón, a Ubuntu no le gustaba despertarse ocasionalmente después de suspenderlo (tal vez el 20% del tiempo), que era el equivalente a un apagado total para mi VM de Windows. Como resultado, apagaba la máquina virtual todas las noches antes de suspender el host.
Tenía que tener mucho cuidado de nunca intentar montar la partición de Windows en Linux para evitar posibles daños / pérdidas de datos. Rápidamente agregué una regla de udev para evitar esto.
Bien, si eso no suena tan mal, aquí están los detalles: La referencia más útil que encontré para hacer esto es este blog: http://www.rajatarya.com/website/taming-windows-virtualbox-vm . Aquí están los pasos resumidos:
RTFM. De Verdad. Utilizará comandos que podrían dañar su sistema de archivos si se hace mal.
Encuentra las particiones.
Cambie los permisos para sus particiones (alternativamente, puede iniciar su VM usando sudo, pero cualquier archivo creado en la unidad compartida host / invitado será propiedad de root).
Cree un MBR para que el invitado no intente usar el gestor de arranque normal.
Use un comando interno de VirtualBox para crear la imagen vmdk para usar para la VM.
Crea la VM. Haga que use el vmdk que acaba de crear.
Arranca y repara tu instalación.
Esperaría encontrar muchos de los mismos problemas usando un host de Windows, pero Linux probablemente manejaría los diferentes hardware de manera más elegante. Sin embargo, podría ser más fácil usar una (s) partición (es) compartida / doméstica (y tal vez / opcional) y solo tener diferentes particiones raíz para las máquinas nativas frente a las invitadas.
fuente
En general, hago lo contrario, es decir, mi sistema doméstico es una máquina con Windows 7 y ejecuto varios sabores de Linux como máquinas virtuales. Siendo que Linux puede funcionar bastante bien con recursos limitados, esto funciona para mí, aunque solo tengo 4 GB de RAM (ten en cuenta que esto significa que ejecuto una sola VM a la vez y, por lo general, le doy 1024 MB de RAM como máximo para mantener un montón para ventanas).
Sus 8 GB de RAM deberían permitirle ejecutar una VM de Windows con bastante facilidad. Creo que la única gran pregunta aquí es el tipo de resultados que querrás medir para tu desarrollo. Dudaría en confiar en las métricas de rendimiento / rendimiento para los elementos que desarrolle en una VM (a menos que se implemente en un entorno de VM similar con las mismas especificaciones en todos los ámbitos). De lo contrario, deberías estar listo.
Y para tocar los comentarios en otro hilo, naturalmente si entras sabiendo que desarrollarás aplicaciones que requieren una gran cantidad de recursos, entonces la optimización para ese fin sería el camino a seguir (por lo tanto, en esos casos, el arranque dual ciertamente ser preferible a usar máquinas virtuales).
He usado VMWare y VirtualBox, y tampoco he visto ningún éxito real en el rendimiento. No he llegado al punto de comparar los VM dentro, simplemente no he notado ningún impacto negativo de ninguna de las plataformas (todavía uso VirtualBox en casa y VMware en el trabajo).
fuente
Depende de cómo trabajes y cómo quieras que se sienta el sistema operativo .
El arranque dual significa reiniciar y arrancar si desea cambiar el sistema operativo, esto lleva tiempo . A medida que trabaja independientemente, ¿trabaja 8 horas seguidas con un proyecto sin hacer "sus" cosas ("sus cosas" sería usted en su arranque de Linux).
Si trabaja 8 horas seguidas en Windows y luego pasa el resto del día en Linux, use el arranque dual. Si trabaja 30 minutos y luego quiere hacer algo en Linux, cambie a trabajar nuevamente durante 3 horas, luego a linux nuevamente, etc. Luego elegiría VM.
Si no está seguro, haga ambas cosas. Arranque dual y cuando en Windows ejecuta una VM. Verá una clara diferencia entre ambos y preferirá uno sobre el otro.
Personalmente, solo utilizo una máquina virtual para probar nuevos discos de Linux y, a veces, un servidor falso cuando lo desarrollo (poder fastidiar una máquina virtual no tiene precio y es mucho menos complicado que hacerlo en su disco duro real). VM también se retrasa y se siente menos receptiva, necesito mi sistema operativo para sentirme receptivo y suave, la VM carece de esta área. Entonces prefiero el arranque dual.
También hay un problema cuando se trata de compartir archivos. Es más trabajo compartir en un arranque dual (imagina editar un archivo en el arranque de Windows y luego arrancar en Linux solo para darte cuenta de que perdiste una línea y tienes que reiniciar en Windows, ¡la pesadilla!) Donde en una máquina virtual puedes usar NFS o samba para compartir archivos entre el sistema operativo en tiempo real, sin problemas.
También sobre la falta de carnero como dijo Aboba, basura, digo. Ejecuto 4gb y una VM en Windows8. Sin embargo, recuerde qué recursos necesita su proyecto.
fuente
¿O qué tal esto? Estás interesado en .net / C #, entonces ¿por qué no usar Mono en linux? Su plataforma muy cruzada en el sentido de Java es.
fuente
Personalmente, he tenido muchas experiencias positivas tomando la casa de la mitad del camino, use un hipervisor como Xen , entonces puede hacer que Linux y Windows se ejecuten bajo un hipervisor de micro kernel liviano, ni recibir un impacto significativo en el rendimiento y esta configuración es mucho más flexible , lo que le permite reasignar fácilmente recursos entre los dos en cualquier momento.
Esto casi coincide con la configuración de sus sueños mencionada, ya que puede iniciar o apagar los dos sistemas operativos de forma independiente en cualquier momento para reasignar recursos al otro y no podrá notar ningún impacto en el rendimiento (en realidad, puede ser una fracción de un% más lento en algunos casos, pero no lo notará a menos que esté haciendo una evaluación comparativa específica para probar esto).
El único inconveniente es que ciertas características requieren que su CPU admita la visualización; sin embargo, cada i7 lo hace (afaik), por lo que esto no debería ser un problema para usted.
EDITAR:
Xen contiene su propio microkernel, no se necesita Debian para ejecutarlo, la única razón por la que uno necesitaría un sistema Linux es reconfigurar Xen ya que el programa de configuración es un programa Linux que se ejecuta en uno de los invitados (invitado es el término que Xen usa para significar una VM). Puede tener solo Linux, solo Windows o ambos ejecutándose en cualquier momento, pero necesitará Linux ejecutándose para configurar los ajustes de Xen, por lo que es aconsejable dejar un pequeño Linux ejecutándose en segundo plano para hacer esto cuando sea necesario.
El hardware se puede manejar de varias maneras, Xen proporciona un conjunto de dispositivos virtuales que permiten que varios invitados usen una pieza de hardware a la vez, como tarjetas de red y tarjetas de sonido, etc.
Para el hardware que no puede funcionar de esta manera o que solo lo necesita un invitado a la vez, xen tiene dispositivos de paso, esto significa que puede seleccionar y elegir en cualquier momento qué invitado tiene acceso directo a la pieza de hardware y puede cambiar esto en cualquier momento hora. Esto se puede hacer para dar a un invitado específico un verdadero acceso a la tarjeta gráfica si necesita un procesamiento acelerado de alta velocidad sin sobrecarga de virtualización .
También es posible tener un invitado directamente usando la tarjeta gráfica en modo de paso como se explicó anteriormente, pero aún así ver a otros usando un protocolo similar a VNC local que hace que las pantallas de otros invitados aparezcan en ventanas (piense en una caja virtual o un escritorio remoto) mientras que uno tiene control directo de la tarjeta gráfica; o, por supuesto, solo puede cambiar entre las pantallas de invitados para tener un acceso directo a la vez.
Al contrario de lo que puede suponer acerca de la eficiencia de esta configuración, de hecho, es una de las pocas formas de ejecutar ambos sistemas operativos al mismo tiempo, al tiempo que mantiene un rendimiento nativo efectivo en ambos, si busca en Google, encontrará que muchos han tenido éxito usando Tal configuración para ejecutar una máquina de juego de alto rendimiento u otros sistemas exigentes.
fuente
Según mi experiencia (también trabajo en aplicaciones .Net mientras pruebo cosas interesantes y resuelvo problemas en Linux), la mejor opción será el arranque dual.
Como otros han señalado, el uso de una máquina virtual a veces se siente lento e insensible, lo que puede ser un dolor.
Una cosa más que señalaría es que se toma su tiempo e intenta ejecutar una VM y verificar si se siente cómodo con ella.
En cuanto a la orden
1) instale Windows primero y luego Linux (preferido)
2) Instale Linux primero y luego Windows (luego debe reinstalar el gestor de arranque)
Una cosa más que me gustaría agregar es que para pequeños proyectos .Net puede usar incluso Linux usando mono, por lo que no es necesario cambiar de Windows a Linux.
fuente
He estado haciendo mucho desarrollo de Linux / Visual Studio conmutado durante poco más de un año, comenzando con Visual Studio y pasando a Linux con el tiempo (¡me gusta apt, zsh y vim!).
Comencé con Windows alojando Ubuntu en VMWare Player, que funcionó bastante bien, ciertamente excelente si principalmente está desarrollando Visual Studio y solo de vez en cuando necesita algún paquete de Linux o lo que sea. Con el tiempo descubrí que quería que mi trabajo estuviera en el entorno de Linux con más frecuencia y la integración de VM tenía algunos puntos débiles, así que ...
Cuando cambié al desarrollo principalmente de Linux (muchos AS3 en IntelliJ y algunos nodos + python) con solo una necesidad ocasional de Windows (sitio ASP.NET), cambié eso a Ubuntu que aloja un VirtualBox (usando un disk2vhd -> .vdi de mi viejo disco de windows). Después de una buena cantidad de violines, estoy bastante contento con esto dada la división del trabajo que generalmente tengo, pero si está haciendo una gran cantidad de Visual Studio, probablemente desee que Windows aloje Linux, ya sea VirtualBox o VMWare Player.
Sin embargo, debo tener en cuenta algunos puntos débiles: con los controladores de video AMD Ubuntu 14.04 estándar, la aceleración 3D de VirtualBox hace que Visual Studio ~ 10-100x sea más lento, por lo que deshabilite la aceleración a costa de cierta lentitud; y realmente quieres estar corriendo en un SSD)
fuente