Operating Systems‎ > ‎Linux‎ > ‎

Ubuntu Page 3

Wine

As I mentioned previously, Ubuntu doesn’t always have an application that fits my needs. Sometimes what I really need is a Windows application but I don’t want to have to boot back in to Windows to get it. The surefire solution to this kind of dilemma is to set up a Windows installation in a virtual machine (Parallels, VMWare, or VirtualBox), but virtual machines are slow to boot, and consume fair amounts of both disk space and RAM. As it turns out, there’s a better solution: Wine.

“Wine is a translation layer (a program loader) capable of running Windows applications on Linux and other POSIX compatible operating systems.” Unlike a virtual machine, Wine doesn’t install or run a complete copy of Windows in the background, rather it’s an implementation of the Win32 API designed to sit on top of *nix operating systems. The compatibility isn’t nearly as good as a virtual machine, but the trade-offs of lower resource usage and faster loading times are worth it. If I can use Wine rather than a virtual machine, then that’s the way I want to go.

I should note that Wine is anything but new (it’s some 16 years old now) and it’s pretty common too. Fully supported versions of it are sold as a product focusing on business applications (Crossover) and there’s quite a number of not-quite-native Mac games that are really Windows games with a Wine-based wrapper (Cider). But it’s definitely new to me. And I should note (having learned this the hard way) that Wine is not an emulator – the Ubuntu community really hates having it called that.

I originally intended to use Wine for 3 things:

  1. iTunes, so that I could sync my iPhone
  2. Games, in order to avoid the primary reason I dual boot
  3. Microsoft Office

iTunes was a long-shot in the first place, and it should not come as a surprise that it didn’t work. I had to settle on dual booting whenever I needed to sync (a virtual machine would have also worked, but I didn’t want to have to deal with two sync databases).

Gaming was a crap-shoot. I’m actually not going to spend too much time talking about this because we’re going to go much more in depth on this in our next piece, but I’ll mention it quickly to discuss usability. The two games I had a particular interest in were Supreme Commander: Forged Alliance, and Team Fortress 2.

The performance on both games was below that on Windows. In the case of Team Fortress 2 running it with DirectX 9 graphics (Shader Model 2/3) was unbearably slow, and with DirectX 8.1 graphics it’s unbearably ugly (this being a product of TF2 simply looking a great deal worse without DX9 functionality). Technically I could play TF2, but it was going to be rougher than I could settle for.

As for Supreme Commander, the speed issue can be particularly problematic. The game is a CPU-eating monster, and it takes nearly everything it can get for its intricate simulations and AI routines. The loss here is that for whatever reason when bogged down the simulation speed was noticeably slower than under Windows, which while not technically unplayable can make a game so slow that it’s not practical to finish it. The other issue was minor graphical corruption with the icons; this was not a game breaker, but it was another sign to go back to Windows.

Now to the credit of the Wine development community, there are a number of games that apparently work well under Wine according to their application database, however the games I wanted on the hardware I had were not functioning as well as I’d like. Wine wasn’t going to meet my gaming needs. When we do Part 2 of our Ubuntu series and take a look at 9.04 Jaunty Jackalope, we’ll take a more concentrated look at gaming inside and outside of Wine.

Finally, we have the success story in my use of Wine, Microsoft Office. As I stated previously when discussing OpenOffice, in spite of its abilities I missed Microsoft Office’s Ribbon UI. As Wine supports Word and Excel well enough to meet my needs, I was able to install those applications and use them as I would regularly use them under Windows. Their behavior under Wine isn’t perfect, as Wine’s application database will attest to, but the problems are not something that I encountered on a day-to-day basis. The biggest difference is that Wine + Ubuntu doesn’t have the same fine level of font anti-aliasing that Vista does, which makes it look slightly different. Meanwhile Outlook wasn’t as well behaved, but I already had Evolution which covered my needs in the first place.

Along with Microsoft Office, I also threw a few other assorted applications at Wine, which it handled without an issue. This includes some .Net 2.0 applications, which after installing the .Net framework in to Wine worked, and was not something I was seriously expecting. Although I wasn’t able to use Wine for everything I needed, it had a lot to do with keeping me in Ubuntu more often.

The User Experience

Now that we’ve had a chance to go over the various features of Ubuntu and its included applications, we can get to the burning question: how is it?

In a nutshell, my own experience with Ubuntu has been that it’s capable of meeting 95% of my daily needs, and 75% of my weekly needs. Outside of the lack of the ability to sync my iPhone (which again is Apple’s fault), on any given day I did not need to boot up Windows. However in any given week I would need to boot in to Windows upwards of several times to run various Windows programs that don’t work under Wine or have a doppelganger for Ubuntu, not counting Windows games which also required booting back in to Windows. The result was that there was more dual booting than I would have liked, but it was acceptable.

What worked best for me under Ubuntu were the most common tasks, which makes sense given Ubuntu’s focus. We’ve already hit on how great Firefox is under Ubuntu, but also music playback, email, and word processing worked well. There was never any point where I felt like I could absolutely not accomplish something related to these tasks when using Ubuntu. However with that I will put the disclaimer that I didn’t find Ubuntu to be significantly better at any of these tasks – it was merely good enough.

If this sounds boring, it is. There’s not a lot to be said about otherwise mundane things that work well. Windows and Mac OS X could do these things, and so could Ubuntu. The distinguishing factor here really isn’t functionality; it’s that all of this was free.

In many situations Windows would still offer a better experience than Ubuntu. Sometimes this is a more polished GUI, as it is Ubuntu often looks like an orange version of Mac OS 9 (the bad Mac OS). Other times this would come down to professionally developed programs having an extra feature or two that while not critical, were nice to have. There are numerous little things like these that still keep Ubuntu well-separated from Windows and Mac OS X.

One item where I feel Ubuntu failed in particular is CLI use, which was a condition I outlined earlier. I wasn’t able to avoid using the CLI under Ubuntu, in fact I didn’t even come close. Some of this comes down to the fact that user generated support often uses CLI commands in lieu of instructions for dealing with the GUI, and in other situations such as mounting ISOs and installing video card drivers the situation was completely unavoidable. These are correctable problems.

Along those lines the default configuration of Ubuntu leaves me scratching my head. For example, Ubuntu has a file indexer and search system ala Windows Search and Spotlight. For whatever reason this indexer is not enabled by default and as a result it’s quite easy to miss. By the same token Compiz defaults to not using v-sync, which means windows will tear when moved. This is something hardware accelerated compositing specifically exists to solve. These items, along with finding a way (any way) to install the Microsoft Core Fonts by default so that the font disparity no longer exists would make the initial experience a better one.

The biggest negative influences in the Ubuntu experience were the items we listed under Things That Went Wrong. It’s easy to pick at things that don’t work, but these also happen to be the things that drove me out of Ubuntu for that moment. Meanwhile the biggest positive influences come down to Firefox and Totem. Neither is perfect, but as I discussed in their respective sections they’re great programs that are much better than the default programs found with Windows and Mac OS X.

Overall I found the Ubuntu experience to be decent, but not spectacular. Next to any issues listed out above, there’s a general lack of killer applications. As a result unless you specifically value the fact that it’s free (in either sense of the word) or the security benefits of it not being Windows, then there’s really nothing there that makes Ubuntu compelling compared to Windows or Mac OS X.

Test Setup

Since this first part is more about the applications and the user experience than the performance, we’re going to keep the benchmarks short. Along with looking at 9.04, part 2 will focus on a greater level of benchmarking, particularly graphics benchmarking.

For now we’re going to be taking a look at general situations – encoding, compression, file operations, etc. Because there’s a lack of a solid benchmarking suite that’s compatible with both Windows and Linux (e.g. PCMark), we don’t currently have a way to benchmark multitasking scenarios. So this is largely a look at single application performance.

Due to some initial issues with the 64bit version of Hardy, all of the following testing is done of the 32bit versions of Hardy and Windows Vista respectively. Future articles will be done with 64bit operating systems.

Our test setup was as follows:

Software Test Bed
Processor Intel Core 2 Quad QX6850
(3.00GHz/1333MHz)
RAM G.Skill DDR2-800 (2x2GB)
Motherboard Gigabyte GA-P35-DR3R (Intel P35)
System Platform Drivers Intel 8.1.1.1012
Hard Drive Seagate 7200.11 500GB SATA
Video Cards 1 x GeForce 8800GTX
Video Drivers NV ForceWare 186.18
Power Supply OCZ GameXStream 700W
Desktop Resolution 1600x1200
Operating Systems Windows Vista Ultimate SP2 32-Bit
Ubuntu 8.04 "Hardy Heron"
.

CPU Benchmarks

We’ll start our short look at Ubuntu’s performance with our CPU intensive benchmarks. Up first is SuperPi, a single-threaded pi-calculating benchmark. Here we time how long it takes to calculate Pi to 1 million digits.

We ran this test several times more than usual just to make sure we weren’t seeing any kind of error. The Linux version of SuperPi really is about 30% faster than the Vista version. Keep this in mind, this will be an important point later.

Meanwhile the situation for LAME is inverted. Vista outscores the Linux version by nearly 20%.

Using the cross-platform X264-based Handbreak for our video encoding test, Vista once again pulls ahead of Linux.

Once more Vista is ahead by a large margin.

From what we can tell, there’s little-if-any innate performance advantage to Vista or Linux in these benchmarks. Our working theory is that the performance difference comes down to the compiler used. Many Linux applications are compiled with GCC, while for Windows it’s either the Visual Studio compiler, or Intel’s own compiler (which is also available for Linux). There’s also a matter of compiler settings, as we saw in our quick breakout of Firefox benchmarks.

Meanwhile SuperPi uses a lot of hand-rolled code, although we’re still not sure why it’s outperforming Vista on Linux by as much as it is.

To shed a little more light on this idea of compiler performance, we have a few benchmarks of Windows application performance under Ubuntu through Wine.

Here we see a most amazing thing: Ubuntu is outperforming Windows at running Windows applications! As we’ve removed the influence of compilers the Photoshop results are particularly interesting. From what we can tell it’s normally as fast under Linux as it is Vista, however there seems to be a short gap of low-CPU usage when running it under Vista that doesn’t occur when running it under Ubuntu. As a result Ubuntu finishes a few seconds earlier.

There are a number of conditional cases that mean that applications running under Wine don’t always match or beat Windows performance, but in our tests there’s no performance hit to using Wine to run Windows applications.

These results also lend a great deal of support to the idea that there’s a significant difference in performance between the two operating systems due to their compilers. This goes particularly for the LAME benchmark, where the performance gap melts away under Wine. This is something we’re going to have to look in to in the future.

Browser & Video Benchmarks

Next up we have our full suite of benchmarks for Firefox, along with a look at video playback performance.

As we discussed in our look at Firefox, the Linux version of Firefox is not compiled with profile guided optimizations, and as a result it underperforms the Windows version in CPU-heavy tasks such as Google’s V8 Javascript benchmark. Running the Windows version under Wine closes this gap, however it’s a limited solution since there are other performance problems (mainly with Flash) in that configuration.

Speaking of Flash, we mentioned previously that it’s slower under Ubuntu (and virtually every other OS) than it is under Windows. This is one of the worst case scenarios, and as GUIMark is capped at 60fps it may actually be worse if we could go higher.

For another look, here’s the CPU usage of Firefox while watching an HD YouTube video. Ubuntu once again underperforms compared to Windows, but not by nearly as much as the worst-case scenario.

In our page loading tests however, this difference melts away. The total loading time of our 4 pages is 12 seconds under both Ubuntu and Vista.

Finally we have VLC as our Linux video playback benchmark. While VLC is not the default media player for Ubuntu, we’re using it instead of Tote due to the fact that it’s cross-platform. Here we’re taking a look at a 30 second section of a 720P H.264 encoded movie.

There’s an interesting phenomena here with respect to CPU usage. VLC uses roughly the same amount of CPU time on both operating systems, however we caught Ubuntu’s X server eating up additional CPU time on Ubuntu, while Windows’ Desktop Window Manager did not move. We’re not entirely sure what’s going on, but it looks like X needs to burn extra CPU time on video playback.

File/Networking Performance

Finally we have file and networking performance. As Ubuntu uses a different file system (ext3 versus Windows’ NTFS) there’s the potential for some significant differences here.

Starting with file performance, we will be using a collection of roughly 1500 files, totaling 380MB.

Even after SP1, file performance has long been a thron in the side of Vista. Here it manages an embarrassing loss to Ubuntu, taking over 50% longer to make a copy of the same folder.

Looking at ZIP compression times, it’s an even larger gap. Vista needs 75% longer to compress the same folder. While compression can be CPU bound, looking at our data this specific test is largely I/O bound. We’ve already established at Windows’ built-in ZIP abilities are pretty bad, but we’ve never figured out why this is.

Decompression is even worse for Windows. It takes nearly 4 times as long to decompress the same archive. It’s not even a contest – Ubuntu wins, if only because it’s the only competent operating system out of the two.

Meanwhile in our network copy tests, we are copying that folder to a server running Windows Server 2003. This gives Windows an advantage since we’re using SMB, but since SMB is the predominant protocol for consumer file server gear, it’s a fair test of such use.

Here it’s nearly a dead heat. Both Ubuntu and Vista need just as long to copy our file collection to the server, meanwhile Windows needs a bit less time to copy that same folder off of the server.

Switching gears, using a 2.6GB ISO we see a clear performance difference. In both copying to and from the server, Ubuntu needs at least 50% longer. Since this test isn’t using a lot of CPU time, our best guess is that Windows is doing some buffering that Ubuntu doesn’t get to do. The transfer rates for Linux are below what the hard drives on either end can manage.

Ultimately for users with lots of local storage, Ubuntu appears to outshine Vista. But for users with lots of remote storage (e.g. a NAS), Vista outshines Ubuntu.

Finally we have the amount of time it takes to start up each operating system, another disk-bound test. Vista is not something I would consider particularly speedy, so I’m a bit surprised that Ubuntu did not manage to outperform it here. The 2 second difference is measurable, but small enough that it won’t make any real impact.

First Thoughts

Since this is Part 1 of a 2 part series, rather than ending on a conclusion, we’ll end on some first thoughts.

In searching for an answer to our question of whether Ubuntu is good enough to convince me to switch, I ultimately have failed to find enough compelling reasons to entice me as a user to switch to Ubuntu for my day-to-day operations. I should make it clear that this is not taking price in to consideration – this is only taking in to account my current situation as a Windows Vista user. Ubuntu does plenty of things well and I could certainly use it for my day-to-day operations, but there are few things it does better and more things it does worse as compared to Vista, such that using Ubuntu likely hurt my productivity even after I adapted to the differences. It’s hard to fully compete with commercially developed software when you’re giving yours away for free, so I don’t consider this a surprise.

From a performance standpoint, there’s little reason to switch in either direction. As I stated early in this article performance was never a serious condition for evaluation anyhow, and the results don’t change that. Ubuntu outperforms Vista at times, but at other times it looks to be held back by compiler differences and the disadvantage of needing to play nicely with proprietary products that don’t return the favor (e.g. SMB performance). As far as I am concerned, Ubuntu performed no worse than Windows for my day-to-day needs.

Now there are some situations where performance is important enough that it can’t be ignored, and the gap wide enough to make a significant difference. In Part 2 we will be looking for these situations.

I do think there are some niches in which Ubuntu works well, where the operating system itself is the killer app. One such situation is (or rather was) the Netbook market. It’s a market that used to be dominated by Linux operating systems, including Ubuntu’s Netbook Remix. On such devices where you don’t have the resources to do anything fancy, Ubuntu’s weaknesses become less important. Meanwhile price becomes more important. However cheap copies of Windows XP specifically for the Netbook market appear to have killed this idea for now.

For what it’s worth I do have an older laptop (for guest use) that currently runs XP. For the same reason as the Netbooks, I’m considering replacing XP with Ubuntu 9.04 for the security benefits of it not being Windows. I’ve already had to wipe the machine once due to a guest getting it infected with malware.

As I haven’t gone too much in depth yet, let’s talk about user-to-user support. In spite of its user-friendly label, I have not been particularly impressed with the Ubuntu support structure. A lot of this comes down to the difficulty in finding help for existing issues, in spite of colorful names like Hardy Heron to help weed out results. Ubuntu’s Wiki, package archives, and forums all have a great deal of old information that turns up with searching. Results for 7.10 Gutsy Gibbon for example are now a historical curiosity – support ended for Gutsy back in April. Those pages and threads are largely unhelpful, and yet they clutter the search results of Google and the Ubuntu site’s search engine, pushing down more relevant information. Meanwhile the opposite is also true: results for newer versions of Ubuntu are also unhelpful.

The source of the problem comes down to 3 things. 1) Old information still exists and apparently doesn’t go away very easily. 2) Particularly for Ubuntu’s forums, they are divided up by topic but not version. 3) New versions of Ubuntu are published too often.

Now #3 is probably going to be a bit of a touchy subject, but it goes back to why we started with 8.04 in the first place. Either you’re on the upgrade treadmill or you’re not. Ubuntu moves so fast that it’s hard to jump on board. This is good from a development perspective since it allows Ubuntu to improve itself and get feedback sooner, but I don’t believe it’s good for users. A working user-to-user support system needs a lot of knowledgeable users, and the Ubuntu community is clearly full of them, but they seem to be spread out all over the place with respect to what versions they have experience with.

It’s to the advantage of less-knowledgeable users that they stick with a well-tested LTS release rather than be on the bleeding edge, but that’s not where the most knowledgeable users are. Compared to the Mac community where everyone is in sync on Leopard, or the Windows community where everyone is hating Vista and lusting over Windows 7, there’s a lack of cohesion. User-to-user support would be better served by having the community less spread out.

I have mentioned this previously, but the driver and packaging situation needs to be reiterated. While I don’t think the Linux kernel developers’ positions are unreasonable, I do think they’re hurting Ubuntu as a user-friendly operating system. The driver hell I had to go through shouldn’t have occurred, and if there was a stable API for “binary blob” drivers perhaps it wouldn’t have. The pragmatic position is that users don’t care if their drivers are open source or not, they would rather things just work. Ideals can only take you so far.

Along these lines, the packaging/repository system and the focus on it needs some kind of similar overhaul. I like how it allows updating software so easily and how easy it is to install software that is in Ubuntu’s repositories. But software that is not in a repository suffers for it. Installing software shouldn’t be so hard.

Finally, there’s the value of free as in gratis. Ubuntu may not be perfect, but I am still amazed by what it does for the price of $0.00. It’s a complete operating system, entirely for free. This is something that needs to be recognized as a credit to the developers, even if it doesn’t encourage anyone to switch.

Looking forward, coming up in the next couple of months will be the launches of Windows 7, Mac OS X 10.6 Snow Leopard, and Ubuntu 9.10. Compared to where Ubuntu stands with 8.04, there’s a year and a half of time for improvements, along with another LTS release due inside of a year. I think the new releases of Windows and Mac OS X are going to tip the scales away from Ubuntu in the immediate future, but given the lifetimes of those operating systems it’s going to give Ubuntu plenty of time to improve. This is something we’ll take a look at first-hand with Part 2 of this series when we look at 9.04 and more.

As a parting thought, we’d like to hear back from you, our readers, on the subject of Ubuntu and Linux in general. We’d like to know what you would like to see in future articles, both on the hardware and software side. Including some form of Linux in some of our hardware tests is something we’re certainly looking at, but we would like specifics. Would you like Linux-focused hardware roundups? What benchmarks would you like to see in Part 2 of this series (and beyond)? We can’t make any promises, but good feedback from you is going to help us determine what is going to be worth the time to try.

Comments