I'm a developer and my typical environment is to use is a Linux guest OS running inside VirtualBox on a Windows host. Most software companies don't allow developers to install Linux bare metal on their machines. The Windows host/Linux guest solution is a good compromise.

My new workplace is different. They'll let me use any kind of set up I like. I'd still like to use a VirtualBox as I can simply import my existing VM to save the hassle of setting up my entire development environment from scratch.

Is there any reason I should not use a Linux host/Linux guest arrangement?

  • 1
    It might be better long run to use containers rather than a full-blown VM – whatsisname Nov 7 '20 at 5:25
  • I need a desktop environment, so containers are no good for me. – Johnny Alpha Nov 7 '20 at 17:53
  • You might be ready for Docker. – Thorbjørn Ravn Andersen Nov 8 '20 at 12:36
  • As I said, I need a desktop environment, so Docker won't work for me. – Johnny Alpha Nov 9 '20 at 14:20

Using a Linux-on-Linux virtual machine is perfectly fine and can make sense for better configuration management.

For example, you can keep a fairly stable, lean, and secure host system like Debian and go wild with different tools within a VM – before doing something that could go wrong like updating a distro or installing experimental drivers, you can back up the VM image.

The drawback would be that hardware-related things are more difficult in the VM, but whether that matters depends on your work. And the general inconvenience of introducing another tool (virtualization) where none is needed.

But you should not reuse a VM from your previous employer. There's a substantial chance you might leak confidential information that way. Definitely set up the new development environment from scratch, but consider scripting it this time for better reproducibility.

An anecdote on why using a VM could be sensible. This year I worked on a project that dealt with low-level system programming. The software was known to work on a specific libc version. I didn't use a VM and worked on the same system I used for other tasks like writing emails. Unfortunately, my Linux distro was reaching it's end of life – but I couldn't update without breaking the project! This lead to a situation where I was mayyybe running a slightly out of date and insecure system for a few weeks. Using a VM would have prevented this – I could have kept the host system up to date and developed the project in an isolated environment. The next time I need a development system with a particular configuration (rather than a testing or production system that can be more easily managed with Docker), I'll definitely spin up a VM.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.