It’s been almost five years since I last tried using a Linux distribution as a Windows replacement (both laptop and desktop). I’ve never been a fan of spending money when I don’t have to, so I figured I would give the Linux community another shot at convincing me that switching to the lovable penguin is doable.
I decided on the following metrics for judge how well my experiment went over 3 months:
- Configuration and Install: Getting the OS and programs up and running as they should be
- Performance: For the same hardware, how is my performance under Linux compared to Windows
- Productivity – Everyday use: How does the system fair for everyday use
- Productivity – Work: For this I broke the metrics down into the sub categories I need for work
Configuration and Install:
This category and everyday use is where I feel the Linux community has improved the most over the last five years. When I last attempted to install Linux on a laptop, it was hell. Finding out what driver versions worked with what hardware and configuring everything was a nightmare. At the recommendation of a friend I went with a 64-bit version of Ubuntu. I have to say… I am very impressed. The GUI based install went flawlessly from a USB drive. It even offered to modify my system to allow me to dual boot into Windows. All I had to do was picked how much hard disk space I wanted for Ubuntu and away it went. Easy, simple and clean.
What made me even happier is that when I booted into my fresh new OS, everything worked. I’m going to qualify that with an everything worked functionally with the exception of some features (which are in no way the fault of Ubuntu or Linux). The sound works, the trackpad worked, the video drivers worked, the WiFi worked, the Bluetooth worked. I was amazed. I didn’t get that installing Windows 7 Ultimate on this laptop until I spent hours updating and installing no less than nine driver packs from different manufactures. The feature I was most impressed by: all of the function keys on my keyboard worked. Volume up, volume down, screen brightness, WiFi, all worked as advertised. The only one that didn’t was the display switch, which again is not the fault of the OS.
The features not supported out of the box were all related to my fancy Sandy Bridge architecture. This is a recent feature from Intel that allows the system to dynamically, on the fly switch from the integrated Intel graphics engine to an external graphics engine, in my case provided by Nvidia. This is a very nice feature for laptops as it lets you switch between the very power-hungry but powerful Nvidia graphics processor or the less powerful and less power-hungry integrated Intel graphics. However, there is a very nice driver called Bumblebee, easily installed on Ubunutu that allows this switch for Nvidia / Intel combos.
The only hardware feature I have yet to get to work is the external video connection via an HDMI port. This is entirely the fault of Nvidia for not providing an open source driver for their hardware that the Bumblebee guys and gals could use to get that feature working. But I was able to go from Windows to a fully working Ubuntu system in less than two hours. Very, very impressive Ubuntu.
Performance:
Honestly, I really don’t care about MIPS and FLOPS and frame rates and all the other performance numbers that people through around. If I can do the work I need to do then it is good enough.
The exception I have to this power, specifically battery life. This is a laptop and the weather in Phoenix is nice enough that I work outside as often as I can. One of the many things I like about Linux systems is the depth of hardware control and monitoring that is available. From my default Ubunutu install, I was pulling approximately 20 W from my battery doing general computing such as email, web browsing and chatting. After following some instructions I found, I was able to drop this by half. Most of the changes had to do with video drivers and features.
After fully discharging the battery a few times to get the Ubuntu battery monitor, I can easily get 6 hours of battery life out of my laptop, more if I don’t need the WiFi. That’s pretty damn good for my purposes and on par with, if not better than the performance I received from Windows 7.
Productivity – Everyday:
This was by far the simplest part of my switch, mainly because the majority of my everyday software is open source or provides native Linux binaries.
| Application | Software | Comments |
|---|---|---|
| Web Browsing | Opera & Firefox | No problem; native Linux binaries available |
| Thunderbird | No problem; native Linux binaries available | |
| Music & Video | VLC | No problem; native Linux binaries available |
| Password Management | KeePass | Source available; easily installed from Ubuntu package manager |
Productivity – Work:
This category was going to be the real make or break for this experiment. If I can’t get any work done, then there is no reason for me to switch to Linux. My work with embedded systems means I need a staggering amount of support software, from debug/testing tools, compilers, block diagrams, schematic, layout and the list goes on. Some things went better than others.
| Application | Software | Replaces | Comments |
|---|---|---|---|
| Document Creation | LaTeX & Libre Writer | LaTeX on Windows and MS Word | No problem; both have native Linux binaries available. I use LaTeX to build my documents and I use Libre Writer to open all versions of Word documents sent by clients. |
| Finances | Libre Calc | MS Excel | No problem; the Libre Suite is execllent and provides a native Linux install. I use this for project estimates, invoices, etc. |
| Diagrams | Dia | MS Visio | This was my first major disappointment with Linux. I make digrams all the time. Block diagrams, UML, etc. Visio is an excellent program and Dia just doesn't hold up. Worse, there isn't another program that comes close. |
| x86 Compilers & Interpreters | GCC & Python | Same on Windows | No problem; both of these have native Linux binaries. I use GCC for prototyping embedded C code and Python for testing, automation and all host programming. |
| Cross-Compilers | Code Composer Studio | Same on Windows | This was my biggest concern switching to Linux. I'm a TI shop, so if I can't compile for TI OMAPs, DSP and MSP430s I'm in trouble. TI has finally produced a Linux install for CCS, but product support is still limited. |
| FTDI Driver | FTDI Drivers | Same on Windows | No problem; native Linux drivers available. All of my debug tools that I have build use an FTDI USB chip to interface with my Python programs. |
| Debug Software | Wireshark | Same on Windows | No problem; native Linux binary available. I use this for USB and Ethernet packet inspection and debug |
| Scematic / Layout | Eagle | DipTrace | Native Linux binary available; had issuies figuring out what depenancies were needed and how to install them. There are only three serious options for schematic and layout on Linux and Eagle is the only one in my price range. |
Can I perform everything I need to do for work? Almost. At the time of this writing I can’t build binaries for the MSP430 or Stellaris MCUs, but support is coming in the next major release (5.1). Is it different? Most definitely. However, everything is working.
Results:
Honestly, I don’t really see any advantages of switching to Linux. I’m still using Windows in a virtual machine to run Visio and compile MCU binaries, so I still need my Windows and Visio licenses. If I still need that, then I might as well just run Windows. Coupled with the fact that I can’t compile the MCU binaries I need in Linux, I don’t foresee myself switching to Linux in the near future. Window is the more expensive choice, but if you need it to get work done, you need it to get work done.
I would like to point out that I think Linux (and Ubuntu in particular) is now most definitely a viable candidate for the average user. By average user, I mean the stereotypical consumer : Internet, Email, Music & Video. I was very impressed with Libre Office. I will skip buying the next version of Office in favor of this suite.
Ugh, time to wipe the hard disk and dig out the driver CDs.






