A name was mentioned. An application was tested. In my Gnome apps review from several weeks back, one of the comments pointed out Boxes, a virtualization product that is native to this desktop environment, and which I completely missed. Indeed, as far as software goes, there are no other desktop-specific virtualization products.
To amend my wicked ways, I decided to do a full, proper test. But not only. Another reason for looking at this tool is because virtualization is, inherently, NOT meant to be easy. Therefore, a virtualization product that hails uber simplicity sounds like a contradiction. You can’t expect people to be testing operating systems and then also act all clueless about things like drivers, mouse integration or CPU extensions. It’s like being a helicopter pilot. Only different. Let’s test.
I performed my virtual shenanigans in Fedora 29 Gnome, which turns out to be a relatively neat little distro if you go with an in-vivo upgrade, so all the pains of a fresh install are behidden from you. The program does require VT-x, otherwise you’ll get weird errors, the likes of which I’ve seen in a freshly tested ’29. Now, like most Gnome apps, it looks nude, with tons of empty space, and a hard-coded dark theme that does not align well into my desktop.
When I clicked the New button (ignore the ergonomic mess of putting things up in the top row and not according to the left-to-right language reading hierarchy and spatial awareness), the UI resized itself to be ever so slightly taller than my screen height minus the top bar and the dock. Apparently, the Boxes designers didn’t take this into account, and the program seems to be completely unaware of how it opens. Worse, the actual window cannot be resized, which would have solved all the problems. Also, I’m not sure if the floating box image is rendered correctly, or if it has tiny pixel displacement, the likes of which I pointed out about four or five years ago.
Create virtual machine
This was a somewhat clunky process. The quick-select list has older operating systems there – you can see two, but it has three, including Ubuntu 16.04, openSUSE 42.3 and Fedora 27, NONE of which are the current versions. For that matter, Fedora 27 makes no sense at all, because it’s no longer supported.
You can click on Download an OS, and this gives you far more options, including the latest versions. But the search is busted. It did give me results for say Fedora or Debian, but searching for Ubuntu, lowercase or uppercase, returned nothing at all, even though the distro is clearly listed. I selected Ubuntu 18.04 LTS for download, and it actually downloaded the SERVER edition, yet it does not say this anywhere. A waste of time and bandwidth, and then I manually downloaded an ISO, and used the last option in the wizard.
BTW, while downloading the image, Boxes was eating CPU like mad. I don’t understand why so much CPU is needed for what is essentially a trivial wget or curl action. Very inefficient something somewhere under the hood.
The next step is to customize your virtual machine. There are very few options here. Maddeningly few. There is such a thing as not enough detail, and the level of abstractization in Boxes is a good example of that. You can basically only tweak the RAM and disk at this point. No precise numbers. A slider. A silly slider. Why not let professionals just write 2048 or 4096 or whatever? The disk slider was also highlighted for some reason, even though I had not used it.
Booting inside the box
Eventually, I had things sorted – sort of – and I let the virtual machine boot. It did. No problems there. The actual virtual machine interface was resizable, and I had seamless mouse integration. The networking was also enabled. Again, as a professional doing the testing, I’d like the necessary freedom to choose specific options. They can be hidden by default, but they should be available, like NAT or Bridged network, or audio or whatever. Sometimes, you may even want to do a test without any network. Then, I don’t know how many cores my machine was assigned on this first boot, nor whether any 2D/3D acceleration was available. To the best of my knowledge, it’s qemu/KVM behind the scenes, but it would still be good to understand what Boxes was doing and why.
There are a handful of options available through the VM GUI – very similar if not identical to the classic virt-manager, so I’m wondering, apart from the serious visual rebranding, what the essential differences between these two are. And if they are the same, except the theming and such, then there’s no real reason for both to exist, when a single UI with toggles for simple and advanced options would solve the problem quickly and easily.
You have the ability to manage the machine from outside, take screenshots, and send several keyboard combo signals into the virtual machine. You can also expand the VM to full screen, and this worked all right, but the resizing is relatively slow, about 2-3 seconds for Boxes to figure out the change, and there’s a visible black screen flicker when the transition happens. Grabbing the VM controls in the full screen is a bit tricky, so you might panic thinking you can’t switch out of the guest operating systems. Doable, but not as predictable as I’d like – especially compared to the competition.
Virtual machine properties
If you click on Properties in the rightmost row of buttons, you will have the option to tweak advanced settings for your machine. The problem is, you do this AFTER it’s been created, and there’s never an option [sic] to see these options unless the virtual machine is powered. So, some level of flexibility does exist, but it is presented in a cumbersome way.
Under General, you get to see the VM IP address and the type of Display protocol being used. You can also toggle the clipboard sharing. I am not sure how to tweak the network through this interface, if that’s possible at all, or how to switch to a different network type. I also don’t know what SPICE is. This is where trying to be simple becomes cryptic. None of these options makes sense without the bigger, nerdier context. After all, if you tell someone an IP address of the guest operating system, then I presume you expect them to use it some way, and if so, why not give them all the relevant management options and tweaks? And if they don’t care, then they don’t need to know it at all.
On the second tab, you have resource usage graphs – so this is JUST like virt-manager after all! You can tweak memory and disk again, but no CPU. Feels like a very selective set of options that don’t give you enough to work with, and leave you baffled. If yes to memory and disk, why not processor? And what about the boot order? This is something that exists on any machine, and anyone trying an operating system in some way WILL have to know and understand how to toggle the boot order in their machine. The same logic applies here. Partial simplicity is confusing. A lot.
Devices & Shares has an overview of your peripherals. I was using an ISO – not sure how to detach it. I could also use various USB devices, which is cool, but I’m not sure about shared folders, for example. It would also seem that Boxes only support USB 2.0, but I also have a USB 3.0 port on this machine.
The last tab is about Snapshots. Look at all that unused UI equity. Anyway, I did create a snapshot, and it took almost a minute to complete (VirtualBox on this same machine does it in a second or two). Looks like a useful feature, but again, it’s one of those nerdy things that you can’t just magic around without proper context and understanding.
I continued using Boxes for a while, and it was okay. The performance was reasonable, and there were no hard glitches. You can switch back to the main interface and create additional virtual machines. If you have many, you can select them, make favorites, open an instance in a new window, or delete them as you see fit. You can also pause and unpause machines. Not bad, but then, basic usage hardly justifies virtualization in that sense and the moment you want to do something more complex, you’re sort of left wondering what and how you should proceed. The UI layout is also not efficient, with mouse clicks lost going back and forth on opening sub-menus that could easily be part of the main interface, and yet, seem to have been tucked away for the sake of visual spartanism. This minimalism impedes on functionality.
Boxes is not a bad product. It does its job. But it can do a better job of doing. For one thing, purely on the UI side, the interface should respect the host theme, be resizable, and be laid out in a smarter way that minimizes unnecessary clicks. If anything, this is the least smartphone-like usage of any possible software application, so there’s no reason for the ultra-simplicity whereby most of the UI is just empty space sparsely populated with a few timid buttons. Second, the workflow is clunky, especially the first steps with outdated lists and a broken search. Third, virtualization is not something that can just be made into a super-easy magic product without losing functionality or business logic.
Virtualization as a concept already places it into a separate category, beyond the reach of 99% of people out there. So if you happen to be using Linux, plus virtualization, it means you’re not some casual blogger randomly stumbling around the Web, and therefore, you need the most accurate interface to manage your various operating systems. And that means having lots of buttons and features and options, which is what most virtualization products offer. There’s no middle ground here. The end result of a simplified virtualization tool is confusion.
It is nice to see Boxes as an integral part of a desktop environment – think big, long-term, and it makes even more sense for if and when Gnome is used in businesses and corporations. But the minimalism of design goes completely against the function it’s supposed to serve. If you can’t tweak the network and processor for your virtual machine, then you’re not really doing a good job. And if you have no inclination to learn or figure this out, then you shouldn’t be using Boxes to begin with. Thus, Boxes feels like a utility for a non-existent user base, clueless people who want to be nerds. All in all, it ain’t bad, but it’s not practical, either.
Until the next time.