Why some people need to continue running an old OS
New versions of an operating system offer many advantages. They usually fix bugs and annoyances in the previous system and offer many new features to both users and developers. Attracted to these advantages, most users soon replace an older system with the new update.
As users increasingly switch to the newer version, programmers start to put less and less effort into writing and updating programs for the older system. Because of this new programs or major updates to older programs increasingly either won’t run on the older OS or run poorly. This in turn causes even more people to abandoned the older system. It’s a natural progression that has played out many times since the first computer was powered up.
But there is also another side to this situation. In addition to adding new features, developers of newer versions of an operating systems also often remove features that older programs may have relied upon to run. As a result older programs sometimes no longer run properly on the newly updated OS.
In some cases programmers will update older programs to run on the newer system. But no matter how popular a program may be, many developers may still find they lack either the time, resources, ability and/or desire to upgrade their programs.
So when it comes time to update an older computer, users sometimes face a dilemma. While they may be excited about running all the new software that their older operating system won’t support, they may also need to continue using older programs that the updated operating system won’t run.
This is a problem I began facing several years ago when I started to consider upgrading my aging Windows XP computers. I knew, based on past experience, that upgrading would not be a simple task because of several legacy applications I used to run my business. But I also believed I could eventually get everything transitioned. Transitioning to a new version of Windows was never trouble free, but up until that time I always found work arounds to keep my older programs running.
Unfortunately I soon found that this time my assumptions were not entirely correct. Starting with Windows Vista, Microsoft decided to become more aggressive in removing support for legacy software. As a result I and others found that the programs I relied upon everyday to do my job simply would not run properly on either Windows Vista or Windows 7, much less Windows 10. I also realized that keeping my older programs running on future version of Windows would likely become an uphill battle since Microsoft seems determined to continue leaving its past behind.
I wasn’t the only person who discovered what Microsoft was doing. Businesses in particular realized that this time the cost of transitioning to a newer version of Windows wasn’t going to just be the cost of buying a new computer. This time many organizations also needed to develop entirely new business processes based on new software. This is particularly a problem for businesses who bought expensive industrial equipment designed to last decades and that require custom applications to operate. Not surprisingly many have dragged their feet as long as possible. A process that is repeating itself now with Windows 7.
Keeping key software running while moving forward
At first I thought my only choice was to bite the bullet and find replacements for all my legacy software. But I decided that if I was going to go to all that trouble, why stick with Windows at all? When I really thought about it, I realized I wasn’t finding any of the post Windows XP upgrades to be all that compelling. If I was going to be forced into a forklift upgrade, why not take my time and explore other options?
At first I tried several different versions of Linux. But eventually I took a chance and bought a Chromebook. I found, much to my surprise, that I really loved how Chrome OS worked. The system isn’t perfect, but I like the direction it is heading and it was a good fit for my lifestyle.
What I particularly liked was the fact that I typically don’t install applications on Chrome OS like I did with all my previous operating systems. Instead of running applications naively, Chrome OS is designed to access applications running on other computers. Instead of me having to be responsible for maintaining and updating all my applications, I can now rely on others to do so for me.
Are there risks? Of course. Obviously the maintainers of online applications can (and have) shut down their software at any time. But as I pointed out above, continuing to rely on traditional software is hardly a safe bet either. What good is having a physical copy of a piece of software if you can’t find a machine to run it on?
So while I decided I wanted to move forward with Chrome OS, I still needed to figure out what to do about the older applications I had to continue running. I could find replacements for a few applications, but several were specialized programs that I knew would never be updated. Abandoning them all at once would be costly and wasn’t a viable option.
For better or worse I needed to find a way to run both a new, modern operating system like Chrome OS and my old Windows system at the same time. The challenge was to do this as seamlessly as possible. Instead of having two independent systems, what I wanted to do was create what would appear to be a single solution. I don’t entirely have this figured out and it is still a work in progress, but for those who might be interested what follows are a few things I have discovered on how to make this work.
New on new, old on old
One of the first things I noticed doesn’t even involve installing new hardware or software. It was simply that I found things worked more smoothly when I used an application only on either one operating system or the other. Even when it is possible, I noticed that trying to keep two versions of the same application running on two different systems is complicated and time consuming. In most cases it simply isn’t worth the effort.
For example I quickly found there was little benefit in trying to maintain the ability to check my email on both my Chrome OS device and my legacy Windows system. Checking email is much easier and more convenient on my Chrome devices so why fight to maintain that ability on my Windows machine? This was also true with browsing the web and was among the first actives I stopped on my legacy OS.
A second related issue is that I have given up on trying to keep programs on my legacy system updated. This is particularly true with large complicated programs like web browsers and office suites. Even when these programs continue to be officially supported on my older Windows system, I often find developers have little interest in doing any more than the minimum work needed to keep them running. Because of this I have increasingly noticed new updates are more unstable than the versions they replace.
So as a rule I try to only run newer and updated applications on Chrome OS and only older legacy applications on Windows. Also since most of these older applications rarely access the Internet, I no longer consider the lack of new security updates on a legacy OS like Windows XP to be a significant concern.
Running a single desktop
I knew early on that the only way I could run both Chrome OS applications and Windows applications was by running two separate machines. In my case I decided to retain my existing legacy desktop machine (uninstalling all but my legacy applications) and buying new Chrome OS devices that would become my daily drivers.
Side note: One issue that I have discovered since I began this project is that older hardware doesn’t run forever and that it is almost impossible to buy new hardware that will run old operating systems. The way to get around this is to purchase a new machine running a current operating system, install a virtual machine like VirtualBox, and then install my legacy operating system and applications within the virtual machine.
Since virtual machines are assigned their own IP address, at the network level they are treated as a separate machine. As a result you can generally either ignore or use the newer host operating system as you see fit. Installing a virtual machine is a bit beyond the scope of this article. But the process is not particularly difficult. Oddly enough while Chrome OS does use virtual machine software to run both the Android and Linux operating systems, it is not currently possible to fire up your own virtual machine and install something like Windows. End side note.
Having to separate devices usually means having to deal with the headache of rotating between two different keyboard/mouse/monitor setups, one set connected to each system. I quickly realized I needed to figure out some way to integrate my legacy Windows desktop directly into the Chrome OS desktop.
My first thought was to use Chrome Remote Desktop (CRD) to access my legacy machine. While this is a functional solution, I found it to be a less than ideal for a couple of reasons. The first is that CRD (at least as currently implemented) tends to be slow even over a local network. In the world of networking tools it is what is known as a “screen scraper” and by default screen scrapping has a tendency to have relatively high latency and be bandwidth intensive.
The second issue was that CRD relies on the Chrome browser being installed on both machines. With Google having ended Chrome updates for Windows XP in early 2016 (and Windows 7 shortly), I knew this wasn’t a viable long term solution.
I decided a better alternative was to utilize a desktop sharing solution that was already available on many Windows machines. Remote Desktop Protocol (RDP, formerly Terminal Services) is a Microsoft protocol for viewing a Windows desktop across a network. It is a multiplatform, multiuser solution that is even functional over the Internet if you open port 3389 on your router. Because it is based on a lower level protocal performance has a tendency to be quick even in low bandwidth situations (an RDP server sends compact information that describes a desktop rather than what is essentially a series of screenshots of the desktop).
A RDP server is built into all Pro versions of Windows. All that I needed was a Chrome OS RDP client. A quick search of the Chrome Store soon found two. Chrome RDP is the least expensive option ($10) but lacks the ability to pass sound. Xtralogic makes a client that passes sound as well for a slightly higher price ($10/year). Both work fast enough over a local network that it seems like I am directly connected to my Windows computer.
There is one minor issue to be aware if you are trying to use the Chrome RDP client to access a RDP server running on Windows XP or earlier. By default Chrome RDP won’t log into these version of Windows. But there is an easy fix. You just need to change a setting that disables Network Level Authentication (Options:Advanced, check “Allow Non-NLA Connections).
The only downside for some users is that a RDP server is not available on either Windows XP Home or Windows 7 Home. In this case there are two alternatives. Probably the best bet is to just upgrade to a Pro version of Windows. For Windows XP you need to find a retail copy of Windows Pro (either the full or upgrade version – the OEM versions usually won’t work). You can commonly find a copy of this and other Windows Pro versions on places like Ebay if you look around. [Yes, I am also aware that technically a RDP server is already built into most version of Windows including the Home edition and that there are various hacks to enable it. I’m sure most of these probably work fine, but since there are always possible issues with any hack I won’t make any recommendations here. Google and proceed at your own risk if you want to explore this option.]
If you can’t upgrade to Window Pro, find Chrome RDP to be a less than ideal solution, and/or are running a legacy OS other than Windows, the other alternative is to use something similar to CRD called VNC. The VNC protocol has been around for years and there are multiple different clients and servers available for different operating systems including a free client in the Chrome store.
I have found the open source version of RealVNC server works well on Windows XP. There are also versions available for various Linux distributions. My understanding is that a VNC server is also included in Mac OS X version 10.4 and later.
Overall VNC is lightweight and easy to install. While it is still a “screen scraper”, personally I found the performance to be better than CRD and for me it is more stable and easier to use. Also unlike CRD, VNC doesn’t require the installation of the Chrome browser on your legacy machine. Keep in mind that in many situations you also have the option of running both Chrome RDP and VNC and can rotate between them as you see fit.
While using either a RDP or VNC client to access my legacy Windows machine works well most of the time, there are a couple of minor issues that I have run across mainly related to the keyboard layout used by Chrome devices. Even though I might see a legacy application on my screen, the keys on my keyboard still function like they would if I was using a Chrome OS application.
In my case some of my legacy Windows programs require use of function keys (F1, F2, etc) to run properly. By default Chrome OS doesn’t enable these keys even if you plug in a PC/Windows keyboard. Fortunately there are two easy solutions. The first is to just hold down the “Search” key and press one of the keys on the top of your keyboard. For example pressing Search+]] = F5 (if you are using a Windows keyboard on a Chromebox press the “Windows” key and the F5 key instead). The other alternative is to change a setting in Chrome OS to force it recognize the top row of keys on your keyboard as function keys. In this case if you want to again use a Chrome key as usual (e.g. to mute sound or darken the screen), simply hold down the Search and press the appropriate key to temporarily restore that function.
Sharing files between Chrome OS and a legacy OS
The next issue I faced was how to share files between Chrome OS and my legacy Windows OS. In Windows files are typically stored on a local hard drive and shared via the SMB/CIFS protocol (aka Windows File Sharing). Macs and most Linux systems also usually support this protocol via some implementation of Samba.
When Chrome OS was first released, the only way to store files was either on a small local drive or remotely on Google Drive. However support for other file systems has been added to Chrome OS through the File System Provider API. While this API doesn’t directly support any particular file system, it does allow third party developers to add support for many alternative systems.
In addition Chrome OS now has a built-in SMB/CIFS client. Assuming your legacy OS machine has been setup to share files. using the built-in SMB/CIFS plugin is easy. Simply go to Settings|Advanced|File|Network File Shares and click the “Add file share” button. All you need to do is fill in the URL of your Windows share (usually “//ip address/sharename” and enter your username and password.
Unfortunately there is one annoying bug in both the File System Provider API and the built-in SMB/CIFS client that for some reason Google seems to be in no hurry to fix. The native File app in Chrome OS can always access a remote file system. But the Chrome browser itself cannot. What this means is if you find a file on a website that you want to save, the Chrome “Save” dialog box will only give you two choices – the local “Download” folder on your machine and Google Drive. A remote file system won’t be an option. This means you have to download the file locally and then open the File app to transfer the file to your remote file system (highly annoying). Oddly enough you are able to upload a file from your remote file system to a website in most cases. So adding an attachment to GMail thankfully works.
A more significant problem is that the built-in SMB/CIFS client only access files using the newer versions of the SMB protocol (SMB 2 and 3). Older operating systems (like XP) only use version 1 of the SMB protocol and so can’t be accessed using the built-in SMB/CIFS client.
There are multiple ways around both of these issues. But I strongly recommend pursuing only one. Keep all of your data on a separate file server. Doing so will make maintaining and securing your data much easier.
Years ago setting up a file server was complicated and expensive. But today you can purchase a small NAS appliance for a few hundred dollars depending on the size and number of the hard drives you need.
Currently I’m running one of Synology’s inexpensive dual drive units in a RAID 1 configuration (each drive is a duplicate of the other in case one fails). It runs all versiona of the SMB protocol so it can be accessed by both older and newer operating systems. Although that said, over the years I’ve worked with Chrome OS I’ve found it works best when you can keep all or most of your data in Google Drive.
Fortunately my Synology box makes this easy. It allows me to synchronize any folder on my NAS with any folder on Google Drive. Personally I just create a folder called “NAS” on Google Drive that I synchronize with most of the contents of my NAS. The only things I don’t put in this folder are things like Google Docs and Sheets since these aren’t typically readable on other operating systems. Since I started doing this I don’t even bother using Chrome OS’s built-in SMB/CIFS client.
Finally no discussion about file management would be complete without addressing the issue of backup. While each situation is different, in most cases you want to accomplish three things with a backup system. The first is you want to get copies of your files off site (in case your house burns down and/or your online account is closed or hacked). The second is ideally you want to make additional copies and store them over time (in case you find you suddenly need something you accidentally deleted last week or last month). Finally both these things should happen automatically.
My Synology box makes all of this super easy. First of all by synchronizing with Google Drive I have effectively moved most of my data off site. Synology also has a small app that makes it easy to keep backups of my data over time. I usually keep a snapshot of my data from one day ago, one month ago and one year ago in case something gets accidentally deleted. For extra protection I also have my Synology backup all my files (including my timed snapshots) to Backblaze’s inexensive B2 cloud storage. My Synology box handles all of this automatically. Highly recommended.
Finally I also recommend backing up Google accounts using a cloud to cloud backup service. While backing up G-Suite type accounts is the most commonly available through places like Backupify typical Google accounts can also be backed up at Spinbackup or Upsafe. If for some reason you find yourself locked out of your Google account or have all your data wiped out, these services will allow you to restore restore everything to a new account if necessary.
Sharing printers and scanners
Printing on Chrome OS while at the same time also being able to print from a legacy operating system is a bit of a challenge because the native printing system on Chrome OS has traditionally been mostly networked based. In the past all printing was done via a service called Google Cloud Print (GCP). As a result you typically needed a printer that was both Google Cloud Print ready and that would also had legacy driver support for your older operating system. This limited your selection and typically prevented most people from using older printers.
Today things are a bit more flexible. Google has decided to largely abandon Google Cloud Print and has instead replaced it with the “CUPS” printing system from Linux. What this means is that Chrome OS now has built in drivers for a number of different printers. In addition Chrome OS now has excellent support for most network based printing protocols. As a result Chrome OS will see and connect to many wireless printers automatically (Go to Settings|Advanced|Printing|Printers).
As a result finding a printer that will still have drivers available for your legacy system is quickly becoming the more significant problem. Fortunately most major manufactures seem to be doing a pretty good job of maintaining legacy drivers. But I would recommend verifying this before making a purchase.
In most cases I would recommend a good quality, network based wireless printer that supports your legacy operating system. Keep in mind printing over a network has been happening for a long time and almost all older operating systems will support some type of network printing protocol (support for LPD was particularly common).
The most convenient way to add scanning capability is to use a network connected multifunction device that can print, scan, copy and/or fax. Similar to stand alone network printers, these devices usually come with all the software needed to handle most scanning, copying and faxing functions already installed in the machine itself. Unlike in the past, you no longer need to install separate software packages on your computer (either Chrome OS or your legacy operating system) in order to use them (one example).
What this means is that you can walk up to these machines and scan a document without dealing directly with your computer. Depending on the device settings, scanned documents are immediately converted to a file (pdf, jpeg, tiff, etc) and sent to some type of local or remote storage device (network share, ftp site, website (e.g. Google Drive), flash drive, etc). Some even have built in optical character recognition (OCR). Unless you have unique requirements, odds are you can find a device that will fit your needs.
My current machine allows me to scan either directly to my Google Drive account or to a network share on my NAS. Having set up shortcuts with common default settings, I can usually scan documents by only hitting a few buttons. I then just look for the file in either a Google Drive folder or a folder on my legacy machine. In many cases this can eliminate the need for dedicated scanning drivers or software on either your Chrome OS or legacy machine.
When choosing a scanner there are a few limitations on some machines that you may want to be aware of and avoid. First of all I have found that some scanners don’t always scan edge to edge. This is particularly true of automatic document feeders that sometimes cut off the top and bottom of a page (this is usually not a problem when you scan using a devices flatbed scanner). Depending on what you are scanning, this may or may not be a problem.
In addition image quality can vary significantly. Text based documents usually look fine, but detailed grayscale and color photographs will quickly reveal a marginal scanner. Unfortunately price isn’t always a reliable indicator in this regard and testing directly isn’t always an option today when most are bought online. But if you ask around you might find someone who has the model you are interested in and is willing to post or email you a sample scan in the format and resolution you typically use. I usually find 300 dpi grayscale or color is the minimum necessary to archive common paper documents in a readable form. In most cases avoid the black and white setting.
Of course not all of the above advice is entirely unique to Chrome OS. Much of it could also apply to almost anyone who has invested heavily in a particular operating system and now needs to move on. Perhaps a few of them will find some of these strategies helpful.