Recently, I have made some great effort to switch my personal development system from Windows 7 to Linux Mint. This is something I always wanted to do, but have put it off for a long time. When I was in college, I have experimented with Linux. I put it off because Windows is a great operating system. I was able to get it almost always, and I build a very rewarding career with it. But it bothers me. The OS is not free, the office software suite is not free (and it cost a lot). The premier photo editing software cost a lot of money, video editing software costs a lot of money. I don't want to be bothered with all these costs any more. And I have always wanted an OS that I can at least customize a little, make it either look like a Windows Desktop or a Mac OSX Desktop. Switching to Linux, made all these possible. I bought a new low cost consumer laptop, and installed Linux Mint on it. This post is intended to discuss the experience I had with the installation. The experience is very pleasant, smooth with little obstacles.
I felt the need to switch to a different OS since the first year in college. At the time, there were guys in the dorm were exploring using Linux. But the process is time consuming, and the end results most likely were not appealing. To me the biggest reason was to move away from Windows. At that time, getting free copy of Windows was not easy. Later on, it became easier. Microsoft made a lot of effort to giving out free copies on campus. That was how I got Windows NT, 2000, 2003 Server editions, etc. It is the time I felt the luck of getting Windows copy would run out one day.
I remember during that time, installing Linux posed a few issues. For one, it is possible that the CD distro would not have the necessary drivers for the network card. Then I can't get online to get vital answers. Then the computer operating system would be a brick. Another issue would be various unknown issue creating awful user experiences. And Google would not have answers to these questions. Google's capability to answer questions at the time is rather limited. I also had this obsession that I need to enter Chinese characters and keep a link back to China. And the input method on Linux would work sometimes, but not at some other times. It is this type of little things would make me give up. I was just impatient and frustrated at that time.
When I was in graduate school (2010 to 2013), I decided to try again, I took an old laptop. I think it was IBM T42. I used it for a few years at work, the retired. I installed Ubuntu on it. And I installed everything like Oracle Java, Eclipse, and various other tools and SDK. Then it was broken. One day, while using it, the screen when black. And the reboot didn't help getting it better. It was dead. When I first successfully gotten it to work, I was really proud and enjoyed the user experience. When it is broken, there was nothing I can do. I went back to Windows.
After graduate school. I was playing with cloud based technologies and was able to configure Linux without Desktop environments. Using them as servers to host web applications. I learned all these by configuring host server on Digital Ocean. The step by step work I have done gave me a lot more confidence on using Linux. And the distro are getting better year by year. This indicated that if I wait long enough, there will be some Linux distro friendly enough for me to use. I wouldn't have to turn back.
From 2014 to just recently, I had another laptop. I was able to get a free copy of Windows 7 Ultimate and installed on it. Then I installed all the necessary drivers. I was very happy with the system and used it until recently. I wrote a couple web application on it. As years went by, the laptop still looks like a new computer. But it is getting slower. I had 16 GB of memory on it. It made a huge difference in terms of performance. But it got slower and I don't know why. Perhaps a defragmentation would help? I feel like I am finally running out of the luck of getting a free Windows install. I didn't like Windows 10. It is time to move on.
I will describe in detail how I setup my new Linux laptop. It is actually not complicated at all. My old computer, which is from 2014, still look like a new computer. It is just getting slow. I like keep it as it is for as long as I can, as a backup. So I needed a new computer. The first step is to shop a new computer.
At first, I was searching for a new Linux pre-installed laptop. Unfortunately, such approach was economically bad for me or for any consumer. This only makes sense to corporate buyers. You see, these laptops cost at least $900 dollars. Even with the price tag of $900, you get a laptop of 8GB of memory. It is a joke. If you want something decent, the joke becomes bigger, the price goes up to $1300. Linux market share is so small that in order for a laptop manufacturer to find profit, the only way is sell it as high end product. So why it make sense for corporate buyers? If a corporate buyer makes an offer, that would be 50 laptops or more, the corporate buyer can get steep discount. Average consumers don't get steep discounts. So it is not advantageous. Another problem I found is that the big laptop maker would bundle a specific distro to the laptop. And it is probable that the distro is optimized for the laptop. If you blow away the installation and put your own distro on it, the optimization will be lost. So my advice, don't buy the laptop with pre-installed Linux. It is not worthy the cost and effort.
The next idea I had is buy a used laptop. The reason I considered this is that I think the most recent version of Linux would have all the drivers available for a laptop that is several years old. This turned out to be a bad decision. I ordered a used laptop Nov 17th, from a shitty online merchant in Chicago. And the laptop didn't arrive until Jan 8th of 2021. I was so furious I created a BBB complaint on the merchant. And the laptop had a bad USB port. Overall it was a great laptop, it had 16 GB of memory and 2.4 GHz multi-core CPU. The merchant did install an OEM version of Windows 10 Pro. So I was happy in the end and didn't pursue any legal action against the merchant. I gave the laptop away as a gift. And I purchased an OEM version of Microsoft Office 2016, plus a wireless mouse. Overall I spent more than $700 on the old laptop. The end result was good.
Because the laptop didn't arrive on time, and I was full of fury, I decided I want the MSI gaming laptop I saw in Costco. It was only $699 after $150 of instant discount. Unfortunately, I got to Costco two days late and the discount disappeared. It was at $849. And I don't feel good buying it. And I didn't want to leave empty handed. So I browsed around and found a good alternative. It was HP Pavilion laptop, with 12 GB of RAM, and 512 GB of SSD. The price is spot on, $599, which is perfect. The laptop is not exactly ideal. It is ugly, and hardware configuration is at the low end. The biggest concern was whether all the drivers from the Linux Distro were available for this laptop. Anyways, I took a photo of the laptop price and paid it at the counter, then left for home.
Before I did this, I spent many months playing with VMPlayer to install Linux. It is how I learned how to configure a Linux server and hosting Tomcat/Jetty Application Servers. So I used the same way to install Linux desktop system. At first, I didn't update the VMPlayer, and it was at least 3 years old. And the Linux system I installed, were behaving in strange ways. One big issue was the resolution of the installation was always default to 800x600 when started up. And I had to use the resolution configuration tool to set it right. After I upgrade VMPlayer, it was getting better. Another issue I found was that the system always overheated the CPU and I can hear the fan inside running wild. I was afraid that the computer would break if I run the VM all the time. The trial run was great. It affirmed my decision of switching. The most appealing aspect was that I can customizing the Desktop. I wanted to put an apple dock on the bottom, and panel on the top. And I couldn't wait to get a laptop to install it.
The choice of Linux OS I picked out is Linux Mint. I tried Ubuntu, and some weird offshoot from Ubuntu. I even tried GhostBSD, none of these were satisfactory to what I needed. Then I tried Debian. For some reason it was really slow and unstable. Finally I tried Linux Mint, and it was really easy to use. So I decided that I will use this distro. There were three different editions, the one seems to be the fastest, is the LXDE edition. I chose it.
After I got the new computer, I put it aside for a couple hours. Then I used an USB drive to create a bootable disk. I tried to use a SD disk, and found it to be very inconvenient. The recommended way is to use a tool on Windows to copy the Linux ISO file onto it as a bootable USB flash drive. So I took the first tool I can find, called UNetBootIn, and created the disk. The process took about 10 minutes.
Before dinner time, I started the OS installation. With the new laptop, I had to do a couple things first. I had to change the boot sequence so that it can be boot from USB first, not the hard-drive. Also I had to disable the security configuration in the BIOS in order to boot from USB, that was the UEFI setting or something. Once this is done, I was able to boo from the USB, not the hard drive. Once booted up, the desktop environment looks find, the screen resolution detected was 1920x1080. WIFI device was working no problem. This was the indication that everything will be OK if I push it to the hard drive. So I went ahead. The installation process is very straight forward. I need to set the computer name, the user name, and password. The keyboard, the language, and the time zone. The interesting part was the disk partition. In the old days, it was very hard, I had to use a 3rd party software to do first before pushing the installation to the computer. Now, it is easy. I set the disk as the destination, and there is a slider that I can move left or right to set how much the available disk I want to to new install. I don't need to do any advanced configuration because I don't need it. So I allocated about 100GB to the Windows OS, and rest about 396 GB to the new Linux system. Afterwards, it was the copy of files. The installation took about 12 minutes. Surprise!
Then I hit a snag. I reboot the computer and it immediately booted into Windows. WTF? I thought the GRUB boot was bad after install, so I installed Linux OS again, another 12 minutes. When I booted it up again, Windows again. WTF? Googled some more and the answer was apparent. There were two boot menus, One is Windows only and one is the GRUB, the order of two were not set correctly and Windows one was by default. I had to go into BIOS and change the orders so that GRUB boot menu will show first. The problem I found was that, I can't save the change. There were no instructions on the BIOS setting that showed how to save the change, after some more messing around, I found that the key is F10 not ESCAPE to save the change. Then all were well. I was able to boot into Linux. That was it. It took about an hour to do all that. After boot up, I did some testing, everything seemed to work, even with the touch screen, and the old wireless mouse.
Next, it is the time consuming process of installing and configuring all the software. I want something look a bit like the Mac layout. At first I tried Cairo dock, there were some display issue with the context menu items. So I throw it out. Then I tried Latte, that one was not working. The context menu was not displaying in the XFCE environment. I throw it out as well. Finally, I settled with the Plank dock. Then I had to remove the default Panel (which looks like the Windows taskbar) and set a new one. On the new panel I put all my needed applications on there.
Next, I installed Java 14 on the system, then Eclipse. For Eclipse, I have to install plug ins WEP, EGit, and Python development. No need to install Python. Python 3 was already installed (or I installed by accident, not sure). I would not install Node JS. There is no need yet. For video editing, I installed ffmpeg, Handbrake, OBS Studio, OpenShot Video Editor. My expectation for these are simple, I need tools to cut and join videos to create new ones. I like to option to capture the screen cast and edit into video. OBS Studio could be used for this. I tested, the video capture was extremely smooth. OpenShot could be used for the simple editing I needed. I tested, the editing was better than the version on Windows. However there were some minor issues. But it wasn't a show stopper. Handbrake was used for video encoding, to make video small. It was something I was familiar with. I would learn along the way.
For leisure, I installed VLC player for video playing, Clementine for MP3 playing. For browsing, I installed Chrome, and Vivaldi browser. Then I upgraded Firefox developer edition. This was a bit over the top, but I wanted to experience all these choices. Right now, I used Firefox and Chrome almost together all the time. And I noticed that they consumed the most of the memory usage. But still they were better than running on Windows 7. Windows 7 was definitely not the up-to-date OS. It was meant to be replaced, eventually.
For document viewing, I installed Okular. For word processing, I left Libre Office as it is. There is no need to install another alternative. It was good enough. I don't use word processing as much. There was also Google Docs, so it is low priority. Other than web browser, I don't use any mail applications to read emails, so there is no need to install Thunderbird or Evolution. To make my life a bit easier, I also installed FileZilla for SFTP access, PuTTY for SSH connection to remote servers. I didn't like PuTTY because the font size was too small. I can change it, but the change was not persistent. I had to do this every time. SSH can be used on command line, so PuTTY is not all necessary. I installed 7Zip, but there is no integration with the file explorer. I installed Dolphin and set it as default file explorer.
Just for fun, I installed fcitx and Google Pinyin Input. And it worked. Took some time to figure out how to configure it. Once it is done, I can use CTRL+Space to toggle between English and Chinese. I didn't need the Chinese input but it was good to have the option. Even if this didn't work, I could still find a web based input method to use. At this point, I was done with the setup.
Shortly after the completion, Linux Mint 20.1 became available. The upgrade was done from the system report. And there is the recommendation of merge binary. Both were very easy (less than 10 minutes, both were done). Before that, I have created a system checkpoint, in case I have to rollback. That was very easy too. Anyways, after the upgrade, everything seems to be OK.
Here are a series of testing I have done:
All these were working after the initial install. In addition, I plugged in my Dell wireless mouse (KM632). And it was working almost instantly. I used my finger on the screen, and the screen was responding as expected. I seldom used my finger on the screen, but it is very nice to know the driver of touch screen worked.
The next test is the update of the system. I did this via command line. It took a short while, shorter than I did when I used VMPlayer, about 25 minutes and everything is done. Afterwards, the five tests I have done before were still OK. From there, I proceeded with the installation of necessary software.
Another test I had to do is support for the external hard drives. Most of my drives are formatted with NTFS file system. They plugged in and all files are viewable, and writable as well. This is one thing I love Linux the most, it can read almost all file systems (NTFS, ext32, the weird Apple stuff). With the NTFS supported, this made the file migration really easy. I have not moved all my files from the old Windows system. The first few files I have move were sample codes which I will be doing. The rest, I will slowly moving them over time.
The new laptop is in used for a while. Occasionally, I still used the old system. There is one thing that was hard to replace, using .NET writing Windows desktop application. But I like the new system more. It was very fast. Booting takes 20 seconds. Shutting down the system takes about 10 seconds. All applications starts up in a split second. And moving, dragging around the windows are all very fast. I think the SSD helped a lot. The large size RAM is also a great help.
This is definitely a long journey. It is not done yet. Getting to the end is not the goal, going through the journey and learning new thing is the true joy that I loved. There were a lot to learn, I am sure. I am not the one who creates a pleasure PC. What I do is all for practical purposes. It is at first a development machine. I also loaded software for leisure purposes, which I can watch video and listen to music. I can also do some video editing when needed. This process has proved that Linux is really general purposes, and had something truly special. This operating system evolved over time, the effort of lots of developers tried really hard to make it compatible to the other two main stream systems. I think the effort has paid off and will continue to pay off as it will become more popular.
Han Sulu's recommendation for new Linux computer:
That is all the advice I have. Good luck with your new system.
The truth: There is no difference. Windows, Linux, and MacOSX, they all provide the same functionality. The most popular applications can all be installed on these OSes. Or you can find alternative for corresponding OS. You can perform the same exact function on all three OSes if you know how. Let me give you an example, on Windows I use Source Tree to manage my GIT repository in BitBucket. This application is probably available in MacOSX. But it is not available in Linux. What I did to get equivalent functionality, is to install EGit on Eclipse. And I was able to get the same functionality on Linux. Sure! The user interface was different, but it was not different to the point I can't figure out the functionality in 5 minutes. I would be in real trouble if I have to drop what I was doing, get on to Google and search for something to solve an immediate concern. I didn't have to do this.
Another example, I need to use 7zip to zip up a folder. On Windows I can right click on the folder and select context menu option 7Zip and add to zip archive or something like it. On Linux, there is no such option. In this case, I have installed 7Zip, and had to get on to Google and search the command to do this. This took 5 minutes and I was able to zip the whole folder up. I have to type a lot of characters to do this. But It wasn't too bad. Let me just give you a final example. The XEd (the Text Editor on XFCE). It looks shockingly similar to the Scintilla Editor I use on Windows. So there you go, common functionalities can all be handled in ways you know on one system to another. If some one try to explain to me why a MacOSX is better than anything else, I just can't be convinced. The overall cost to performance ratio does not make any sense.
What many tech writers have describe is the freedom one felt after they get used to Linux. Yes, it is true. To me the feeling is more of guilt free. The guilt is not about getting illegal copied software. The guilt is more about if it is necessary to buy more software in order to get Windows OS more productive. You see, just an OS can be purchases as part of a computer purchase, then you need Office software, maybe some professional tools like Adobe Photoshop. Plus the anti-virus software. The cost can add up quickly. It is like a beast that I have to feed. And it won't last. I feel bad that I have to repeat this type of cycle every time I get a new computer. By switching to Linux and rely on everything free (almost everything free), I can cut the cost, and have the opportunity to learn how to do things efficiently. This is the most refreshing aspect of the switch. Yes, there is difference when switching from one system to the next. But that is an illusion. If one can see through such illusion, then the comparison of one system better than the other is self contradicting. It is not which system that is better, it is we who do things that determines what is efficient, for ourselves.