Linux – How to configure a workstation for multiple Linux and Windows users

dual-bootlinuxsystem-installationvirtual machinewindows

I work at a university and a part of my job entails usage of software for
numerical simulation of fluid flow. My department decided to buy a new high-
end workstation that should primarily serve as 'my' desktop, but some of my
colleagues will connect to it in order to perform their calculations. The
problem is that it is not clear to me how to configure the computer to satisfy
the various needs that me and my colleagues have.

Ideally, I would like to install Linux as primary OS, because my plan is to do
some programming and simulation with open-source software that is Linux-only.
In addition to that, I will probably also run Ansys, which might limit the
choice of distribution since Ansys supports primarily RedHat and enterprise
version of SUSE Linux. I will also occasionally need commercial software for
medical image segmentation which runs only on Windows. The main complication
is that my colleagues' computers are all Windows based and most of them have
very limited experience with Linux, so it would be much easier for them if
this new machine was running Windows.

One obvious solution would be plain dual-boot Linux/Windows, but that will
limit the time we have for running simulations under Linux for example – when
someone needs urgently to use a Windows app, we'll all have to stop the
computations. Note that it might not be always possible for everyone to have a
local copy of said software in their own machine, since the number of licenses
available is sometimes limited.

The next thing that comes to my mind is Virtualbox or VMware – I could install
a Windows guest in Linux and then put all Windows apps there. My question is –
how would my colleagues access this from their own machines (i.e. is there
some easy and efficient analog of 'ssh -X' that would enable someone using a
Windows desktop to connect to a Windows guest inside Linux host)? Is this too
much indirection that will incur a serious performance hit? I was also
wondering if (in case of dual boot setup) I can be logged in Linux and run a
Windows application that is installed on Windows partition – sort of like with
Wine, but the app is actually installed in Windows. Is this possible with
Virtualbox or some other software?

Some problems could be avoided by asking each person that uses for example
Ansys to set up their simulation and input data in their machine and then just
copy everything to the new computer and launch the simulation there from
command line. Unfortunately, there is still this problem of software that runs
exclusively
under Windows.

How would you handle this situation? What setup or software do you recommend?
Dual boot? Virtualization? Something completely different?

Best Answer

I might unfortunately decide to use Windows as the host operating system so that my non-Unixy colleagues would not be at a disadvantage - being able to leverage their existing knowledge - and to use the Windows application as needed without waiting for the Linux operations to cease. I would install Linux (RHEL probably, given the choices) in a virtual machine and then configure the virtual machine to consume as much compute (CPU and RAM) as I could give it without severely impacting the performance of the Windows application. As for the virtualization software, VMware Workstation and Virtual Box are both capable Type 2 hypervisors.

Depending on the usage scenario, I might run into the problem that a Windows user and a Linux user want to use each operating system simultaneously which might not be able to happen in that configuration - who is control of the keyboard, mouse, and display? (It could work, it's just that Linux users would be using SSH to log in to the virtual machines from a different workstation.)

A better option might be to use the machine as a Type 1 hypervisor and then install two guests: one Linux, one Windows. In this configuration, both parties are satisfied all the time. I would dedicate just enough compute for the Windows VM and the rest to the Linux VM, which may require more for the computations. In this way, each VM depends on nothing but the hypervisor: e.g: they even reboot independently. Users of Windows would use RDP to connect to the Windows VM, and users of Linux would use SSH to connect to the Linux machine (unless a "remote desktop" technology for Linux is desired, installed, and configured - like nx). Which Type 1 (bare metal) hypervisor? You have good choices.

Related Question