I had tried to switch to Linux several times during the past three or four years, and every time had to roll back to Windows, because of the critical mass of inconvenience, of being unaccustomed to the new environment, of being unable to quickly solve everyday and working tasks, and in the beginning altogether – because of problems with device drivers. But this time, I think, I have switched for good – it is now month 4 into the flight and all systems go. Nowadays Ubuntu, and I have chosen that Linux distributive, has become quite mature, both with hardware support and with application software, also with documentation, published advice and recommendations. Additionally, I have developed some solutions facilitating the switch-over from Windows to Linux, which is the subject of this article.
Let me first of all tell what induced me to switch over.
1. Reasons for switch-over
The most obvious reason – freeware. Although now I would not have put it on the first place for myself. In my youth, the noncompliance to pay for the digital product in general, and software in particular, was a matter of principle. I spent a heap of time polishing the art of stealing software properly.
But since then, I have grown reluctant to use pirate software: both due to ethical and security reasons – more and more valuable and sensitive information is being stored on the computer. Pirate software can contain viruses and Trojans, including those not detectable by anti-virus software. Besides, updates may not work or may break the system. I must admit that this is not an issue for those who work in a company where Windows is bought anyway, and the home computer is used mainly for games, watching videos and browsing the Web. In that case, important information is not stored on the home computer and pirate software is of no real danger, at least until home users are persecuted for pirate software in this country. But even in case of such home usage, if hackers hijack your computer, they can use it to hack other computers, perform DDoS attacks, send spam or just mine crypto-currency at your expense. Besides, you may need to work remotely from home, and then corporate secrets may be stolen.
For freelancers and small companies, however, this issue is more pressing. Even having a multilevel system of backups, including those on detached drives, the computer may contain sensitive information and a leakage may be rather unwanted. Also, if you have to go abroad with your laptop, the licenses may be checked on the border.
You can, of course, buy the license for Windows. And I even bought it twice, together with a laptop and a tablet PC. But you will have to buy it again after each major upgrade. And when you sell your old computer, hardly anyone will want to pay extra for the licensed Windows. Also, if the computer is broken or lost then the license is lost too. Therefore you should compare the time of learning Linux not with the price of one license, but with all of them you will have to buy during your lifetime. And the knowledge of Linux, you invest into it once and it is with you till kingdom come, or possibly even further.
Besides, there is considerably less free software under Windows, so you should take into account the cost of application software too.
Linux works noticeably faster, and occupies several times less space on the drive and in RAM. Especially if you customize it for your needs, disable and delete unused software. Windows can also be customize, but Linux beats it all the same and by far. And the customization of Windows is more complicated (more about it below). This situation with performance is no surprise, taking into consideration the fact that Linux is written by topnotch enthusiastic programmers. They do it for their own use and for the soul. There are strong programmers in Microsoft too, I guess, but there are plenty of mediocre ones, for sure, and anyway the incentive of working for a salary is always weaker than the enthusiasm of the creator, master of his craft. Moreover, a master of his craft will never be left without worthy compensation.
1.3 Customizability and openness.
Linux has practically unlimited capability of customizing the environment, automating repetitive tasks and exporting settings. It is possible to customize, automate and export settings in Windows too, but you are very quickly blocked by various limitations which render the task so difficult it is not worth the trouble. In Linux on the contrary – a lot of tasks and situations have been described by the community, and detailed step-by-step solutions are provided, so that you don’t even need to read the official documentation. And if you are ready to read the documentation and modify the source code, then limitations do not exist in principle.
Also, more settings, hot-keys and utilities are provided from the box. Right after the installation, Ubuntu feels more convenient and powerful.
Open source code gives more assurance that the software will not contain hidden spyware. There are rumors that Microsoft inserts that kind of code in Windows. It can collect not just user experience as they claim, but actually the valuable and/or personal information, or even open remote control to the computer. In case of Linux, it will be possible at least to remove the undesirable code by choosing a different distributive or making one yourself, if/when that issue becomes really important.
1.4 Improving your qualification as IT specialist.
The experience of working in Linux may become handy if you come across a personal computer or server with that operating system and need to do something there. Linux also is often installed in various exotic devices, like network communication equipment. I recently had to update firmware in smartphone Xiaomi Redmi 3, and I was excited to discover that the update from Linux is much simpler and faster.
Also it is a solid skill for your resume, which can be called for at any time.
1.5 Stability, security.
There are more viruses under Windows, that is for sure. It is especially important if you use pirate software, but I already wrote about that.
As for stability, that is a controversial question. There is an opinion that Windows often crashes, hangs or reboots. Indeed, up till version XP SP3 that happened pretty often, but starting with Windows 7, I do not observe any such behavior. Though that may be due to the fact that now I experiment with new software only under virtual machines. And I sometimes restore the image of system partition or reinstall the operating system completely, in order to clean it up. How much Linux clogs during exploitation, I cannot say for the lack of personal experience. But judging by the reviews, Linux should be cleaner. All in all, this issue has become irrelevant for me recently, but it may be important for someone, so I’ve mentioned it here.
1.6 Emotional and rather subjective reason.
I enjoy being involved, at least indirectly, in the glorious open-source community. Also I delight in finding solutions for programming tasks – it is like playing a point-and-click adventure game. Thus I understand that I haven’t yet “userfied” completely while working as a Project Manager.
1.7 Drawbacks of Linux.
For the sake of justice, I must admit that several issues still annoy me in Ubuntu, I hope temporarily. Teamviewer client for Linux has rather limited functionality. Performance and picture quality in RDP are inferior. Canon LBP 6020B driver (self-made, no official one) crashed the system after an OS update. Siemens PC Adapter USB (device for PC-PLC communication) does not work under Windows XP (demands USB 3.0).
2. Advice for switch-over
2.1 Cross-platform applications.
The preparation should begin while you are still working under Windows. You should replace applications with their cross-platform analogues one by one. Thus, the following programs were big anchors which dragged me back to Windows: TheBat email client, Ms Office, FAR file manager, ACDSee photo manager, Photoshop graphics editor, AllwaySync file synchronization software, LightAlloy video player. All those programs have good cross-platform analogues, which are sometimes even better than the original:
- TheBat – Thunderbird
- Ms Office – LibreOffice
- FAR – Double Commander (better)
- ACDSee – Digikam
- Photoshop – Gimp
- AllwaySync – Unison (better)
- LightAlloy – VLC
I had adopted the analogues for TheBat (Thunderbird) and Ms Office (LibreOffice) even before this last attempt at switch-over. And had I adopted all of them, then the switch-over would have been even smoother. The way it happened, I had to learn the rest of the analogues already after the launch. I was lucky to have some free time so that the inconvenience didn’t amount to the critical mass.
I want to remark separately on Double Commander. Usually recommended are Midnight Commander, Konqueror, Dolphin, Krusader, at least for the query “Linux file manager”. And I had to waste a heap of time to find out with chagrin that all those programs did not suit me. I also found WCN Commander, which was supposed to maximally resemble my favorite FAR. I had to “shamanize” a bit before I could install it, but it was unsatisfying too. Again, was my resolve to remain under Linux shattered, since a convenient file manager is an extremely important tool for me. And here, quite accidentally, I discovered Double Commander: I was looking for Total Commander in Ubuntu Software, and DC was suggested as an alternative for TOTAL there. OK, I think, I’ll give it a try. TOTAL was less convenient than FAR (I had worked with it a little when still under Windows), but anyway better then all those Krusaders. And lo and behold, Double Commander turned out to be more powerful and convenient than FAR. I would have never believed that was possible at all, so strong was my attachment to FAR. Of course, some habits had to be relearned, but they were not very good habits anyway, just conventionalities. Again, if you start relearning in advance, not overlapping with other novelties, then the transition will go as painlessly as possible.
2.2 Choosing the right version
Both for the operating system and for some applications, it is possible to use the latest or some previous version. And the latest version may be out of the beta stage for a long time already, but still the developers of Ubuntu may not recommend it for the sake of increased compatibility and stability. Therefore this choice is ambiguous, and should be made separately for each case.
I will be mentioning version numbers as they were during the time of writing. They will become outdated very soon, of course, but the general principle will remain.
When I was installing Ubuntu, it was available in two versions: 16.04 LTS and 17.10. The abbreviation LTS stands for Long Term Support and means that the updates will be available longer (5 years vs 9 months in version 17.10), without having to reinstall the system. Also LTS uses older versions of application and utility software for the sake of increased compatibility and stability. I was planning to reinstall the system after several months of trial operation anyway, in order to clean up the trash and clumsy experimental settings. And by that time, version 18.04 LTS was going to be released, so I decided to install version 17.10 at first. But I quickly ran into an unacceptable limitation – TeamViewer worked only in client mode, because it did not support the new display server Wayland yet, more details here. For me TeamViewer was a key application, without the possibility of replacing it with VNC or xRDP, so I took version 16.04 LTS. I could, of course, replace the display server in 17.10 with the older Xorg, which is supported by TeamViewer completely, but I didn’t want to deal with such subtleties at the start. Moreover, there are other advantages of starting with an LTS version: easier transition, fewer problems and conflicts. By the way, the developers decided to keep Xorg in version 18.04 LTS, precisely because many programs are not yet ready for Wayland.
So I recommend to start learning Ubuntu with an LTS version, but certain applications can be installed of newer versions, rather than those that are represented in the repository which Ubuntu Software installs applications from. Therefore I manually (using apt-get package manager, see more details here) installed the latest stable versions of LibreOffice, VirtualBox and DoubleCommander. I must warn you, though, that conflicts with other system components are possible in that case. Such conflicts may be noticed only later, or emerge after a subsequent update. So I recommend at first to make all the settings and install all the applications which you decide to install from Ubuntu Software. Then you should make an image of the system partition, and only then experiment with the newer versions. That way, you will always be able to restore the image and minimize the time needed for repeated setup. With other applications that I use rarely, I decided not to bother and installed recommended versions from Ubuntu Software.
I installed photo manager Digikam (use it rarely but intensively) via appimage, because the difference of versions was too big. At the time of this writing, Ubuntu Software repository contained version 5.5.0, and it was possible to install version 5.9.0 via appimage. The advantage of installing applications via Ubuntu Software and apt-get package manager is an automatic or automated update. When you install applications via deb-packages or appimage, you have to watch for the updates and install them manually in most cases. Another inconvenience: appimage of Digikam unpacks almost one gigabyte of libraries and dependencies upon each start. The application starts during 4-5 seconds on SSD drive, but it may take several times longer on a traditional hard drive.
2.3 Hard drive partitions.
I advise to make an image of the partition with Windows before you start installing Linux, not to lose important information. You should also check if the backup of your important data is updated (I assume there’s no need to preach about the importance of backups here). Beware – if you follow the installer’s suggestions heedlessly, you may clean up all partitions of your hard drive.
I advise not to delete Windows for a while – you may need to perform some urgent task and there will be no time to investigate how it can be done in Linux. Therefore, you will probably need to resize the existing partitions and free up about 20 Gb for the Linux partitions. If you have some space to spare, you can allocate more, but it is not likely that you will need more than 50 Gb – Linux software is quite thrifty.
During the installation, you will need to create a partition for swap file (I allocated 1 Gb with my 32 Gb RAM), and the partition for root – recommended file system is EXT4, native to Linux. EXT4 file system allows you to search for files very quickly, it is resistant to fragmentation and probably has many other advantages, I didn’t delve into that.
I recommend leaving the partitions with user data under NTFS file system for a while, so that you could use them in Windows if you have to roll back. NTFS partitions can be mounted in Linux in different ways:
- ignoring permissions – the simplest way and the Windows permission settings will be preserved, but it will be impossible to limit permissions on NTFS partitions in Linux;
- reassign Windows permissions – then you will have to take ownership of required folders/files in Windows if you need to work there, and then “chown” them again in Linux;
- adjust joint permissions – troublesome.
I have chosen the middle option, because I do not plan to return to Windows often. I have only needed that once so far, when my printer failed unexpectedly in Linux and I had no time to figure out that issue.
2.4 Scripts and export of settings.
I keep various setup BAT, INI and REG files for Windows too. But in Linux, I discovered/invented a couple of useful innovations (no claim of originality, innovations purely for myself).
Most of the applications keep there settings in user home directory ~/.config, so if you want to export the settings, it is enough just to copy or archive that directory.
I have also created a text file with various commands, separated by topics, for initial setup and everyday use. I use it as a cheat-sheet and it has the form of pseudo-script. You can go through that file after the system was installed and quickly restore all your settings. It is possible to make a full-blown script, of course, which could be just executed after the system is installed and all the settings would be applied. But that is an extra trouble and it is not often needed, and not very beneficial for the other users, since they would have to customize the script anyway. Also it is often useful to observe the reaction for separate commands or change the order of their execution. Creating a totally universal setup script, which would process all reactions and exclusions, is not practically feasible.
In my everyday work, I search that file using keywords. It is simpler than searching among several files, due to the brevity of Linux commands.
I keep that file in my Work folder (which is backed up in several places), and there’s a simlink (shortcut) on the desktop. I’ve published the contents of that file in this post, which I periodically update. I do not at all claim that this file is structured or documented well. I created it without bothering much, and it serves me well enough.
Your comments and suggestions are welcome.