I recently decided that I would benefit from using a Linux virtual machine as a workspace for managing my developer accounts for various platforms, such as google and twitter. After some basic testing, I decided to opt for Linux Mint 19 due to its very user friendly GUI and its default theme/style.
You may be asking ‘what is a virtual machine’. Basically, a virtual machine is an operating system contained within an application. There are many applications available that allow the creation and usage of VM’s, but I opted to use ‘OracleVM Virtual Box Manager‘.
Once I had installed Virtual Box, which was a standard installation process, all that remained was to obtain a copy of Linux. I tasted a few flavours and eventually opted to use ‘Linux Mint 19 – Cinnamon‘. IMO, the combination of Mint and Cinnamon blends very well and makes for a very appealing interface. Of course, being Linux, its incredibly customizable…
After downloading Linux Mint it was a very simple process to create a machine that used it. I simply opened Virtual Box, selected the mint .iso file, and allocated some of my ram and cpu cores for the machine to use. Once everything was setup, I simply had to click to start the boot process.
Initially, Linux Mint boots up, and then has to be fully installed from within the operating system, which felt a little strange at first, but it didn’t take long at all (less than two minutes). When it had completed I also installed ‘guest additions’, which allows my VM to benefit from 3D hardware acceleration by using the hardware available in my pc. Basically, it made the GUI much more responsive and ‘snappy’.
My initial impression on Linux Mint was very positive. The programs it installed with included many of the tools I use regularly, such as gimp and firefox browser. Which was very convenient as I didn’t have to download them individually. Actually, the only things I did download was: node.js, yarn, visual studio code, git, and heroku cli. These tools are things I use regularly for programming, and pushing edits to my websites.
So, now my virtual environment was almost fully setup. Next I setup preferences for general settings, colors, and themes. Set log-out to occur after 1 minute of inactivity inside the VM. Then learned how to share folders between my main windows 10 operating system and the mint VM’s operating system. This wasn’t overly challenging, but it did require a quick google as my initial attempts failed. I had basically missed a step where I had to right click and select to ‘share folder with everyone on network’ from within the windows 10 environment. After I had done that, the main Virtual Box program has settings to enable shared folders, and to auto mount the folder on boot. Very easy.
All that was left to do was create a shortcut in windows that launches my Linux VM without having to open Virtual Box first. Again, very easy to do. While my VM was running, I closed the main Virtual Box window, right clicked the icon for my mint VM window, and pinned it to taskbar. Then I right clicked the pinned icon, selected the properties, and gave it a nice custom icon (the red M icon next to chrome).
Well, that’s everything setup, but what is it actually for?! The main benefit for me, was to easily isolate my various development tools and social media platforms. I now use my Windows 10 operating system for personal things, facebook, email, games, etc. I do still write a lot of my code in windows too; however, I can very easily switch between machines for writing code as each machine (both Windows and Linux) share my main projects folders, and each use the same visual studio code settings – so all files are autosaved as soon as changes are made. This way even if I switch machines without my brain realizing, both environments have access to the latest code.
Additionally, being able to have a web browser that is dedicated to handling my developer related online activity, such as social media, blog, email, and heroku accounts is fantastic! I set two applications to load on system boot for the Linux environment, the system monitor, and the firefox web browser (with pinned tabs). This allows me very quick access to all platforms that I use regularly for developmental purposes, but it keeps it all isolated from my personal pc contents… So if anyone somehow gained access to my pc with malicious intent, at most, they can post something silly on my personal facebook page, but they cannot gain access to my website, blog, or other social media!!
In short, it creates a contained work environment that has an additional level of security, but it does not cause any restrictions in my workflow, it actually enhances them.
Not sure if anyone will enjoy, or benefit from this article, if you do, be sure to drop a like, share, or comment your thoughts below! ❤
As a side note: My CPU usage is slightly higher now; however, running the VM constantly seems to have only increased the average overall CPU usage by around 4-8%, which really isn’t that much. The ram usage has increased considerably (since I allocated 4/16GB to my VM), but im still running below 50% total ram usage for most of the time.