summaryrefslogtreecommitdiff
path: root/ars-technica/ubuntu1910review.txt
blob: 0715a545d710de6e149a9cd65af6c05292d00b00 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
Leaves are turning, temperatures dipping, sure signs -- if you live in the northern hemisphere -- that Canonical's Autumn release is upon us. Ubuntu 19.10 is nicknamed Eoan Ermine -- I don't know how you pronounce it either -- and it's the best non-LTS Ubuntu release Canonical has ever put out.

I should qualify that statement somewhat, because really, as the newest version, it had damn well better be the best Ubuntu ever. But it's more than that this time around. I've been reviewing Ubuntu for ten years now, using and interacting with it in some form or another for another three or four years before that, and Ubuntu 19.10 is quite simply the best Ubuntu Canonical has ever released. 

The reason I am like 19.10 so much is that it feels insanely fast. Everyday tasks like opening applications, dragging windows, activating the search interface, and even just moving the cursor around are all noticeably faster than in 19.04. 

I happened to be testing a top of the line MacBook around the time I first installed the 19.10 beta on my aging Lenovo x240, and it instantly made the Mac feel like a sloth. Ubuntu 19.10 ran circles around the Mac even on much, much less powerful hardware. Nothing says success in my testing like software that makes old hardware feel newer and even if that were all you got out of Ubuntu 19.10, I'd call it a win.

The speed boost is immediately noticeable from the minute you pop in the live CD, and it's even faster when you have it installed, but that's not all that's new. As is typical of Ubuntu's October release there's a number of new features that are not quite ready for prime time, but show considerable promise including support for the ZFS file system. While still clearly labelled "experimental" (in all caps even), I have had not problems running 19.10 on a root partition formatted with ZFS. That's not to say that you should go try it, it is EXPERIMENTAL, but it appears that what's really lacking are tools for managing and working with ZFS. Using ZFS enables some powerful backup and replication possibilities, but the tools for working with ZFS in Ubuntu are still somewhat limited. More on that in minute.

But first, let's dig into the speed improvements and what's new under the hood in Ubuntu 19.10.

### Like GNOME, But Fast

Most of improvements in 19.10 can be attributed to the latest release of GNOME 3.34, the default desktop for Ubuntu. However, GNOME 3.34 is faster largely because of work Canonical engineers put in. As an aside, I think the current state of GNOME and the work Canonical has done to make it better are the best argument around for why Canonical made the right call when it shut down Unity.

If you'd like to understand the finer details of what Canonical did to improve GNOME and how they did it, there's a post over on the Ubuntu Discourse board that [goes into considerable detail](https://discourse.ubuntu.com/t/boosting-the-real-time-performance-of-gnome-shell-3-34-in-ubuntu-19-10/13095). The biggest takeaway is that Canonical's engineers looked not for the typical "hot spots," places RAM or CPU usage spiked, but what it calls "cold spots." That is, places where GNOME was "was idle instead of updating the screen smoothly." 

Canonical developers found a bunch of places where this was happening. Three that jumped out at me are improvements to how Mutter refreshes, changes that transferred some work from the GPU *back* to the CPU, and a fix to frame lagging in Xorg. The latter is interesting because one of the things that I noticed in this release is that GNOME under Wayland did not feel dramatically faster than under Xorg the way it did for me in 19.04. I lost my Wayland envy with the speed improvements in this release.

Canonical's write up of the work done to improve GNOME is also interesting for the long list of what didn't work, and how wrong some of the developers' initial assumptions were -- especially regarding GNOME's use of JavaScript, which turns out to have next to no effect on performance. Sorry JavaScript haters, but it turns out "assuming that JavaScript is slower than everything else written in C," is a bad assumption.

Canonical is not done improving GNOME. The project's goal for the next release is better performance on faster, modern hardware. Then in 20.10 it wants to improve performance on older, slower machines. As Canonical's Daniel Van Vugt puts it, "the future of Gnome Shell is bright and worth getting excited about."

Even the present is pretty bright. As primarily an i3 user, I still find GNOME Shell overkill, but in 19.10 it's fast enough that I no longer rush to uninstall it.

This release sees some tweaks to Ubuntu's default "Yaru" themes. Yaru is a mix of light and dark elements, though as of 19.10 it's leaning more toward the light end of the theme spectrum. Personally I rather like the new default look. Ubuntu's mix of light and dark elements is well thought out and updates in this release include making notifications, menus, and dialogs all share the same light skin, while the top GNOME Shell panel remains dark.

If the changes aren't to your liking both a full light theme, and full dark theme are included as well. However, to change themes you'll need to install GNOME Tweak. 

As detailed above, the big news in GNOME 3.34 is the speed boost, but it also has a handful of new features worth noting. Two of the best new features are in the main search view,  and in the application overview section. Here you can now group applications into folders, making it easier to organize and find frequently used apps. Creating a folder works just like it does on mobile OSes -- drag one app icon onto another and a folder will be automatically created.

In a related feature, you can now order the types of results shown in GNOME's global search feature. To do so head to the Search panel in settings and you can now, in addition to turning items on and off, drag and drop to reorder them. For example if you want files to always be the first results show, just drag the files option to the top of the settings list.

### ZFS and the Kernel

The Ubuntu 19.10 installer includes an option to format the root drive using the Z file system, better known as ZFS. This support is label experimental (in all caps even), and it bears heeding this warning. Do not format your root disk to ZFS on production hardware. I went ahead and formatted a root drive with ZFS on a machine I have to return anyway, and I have had no problems (which, frankly, is amazing), but if Canonical changes some implementation detail between now and when ZFS support is declared stable, that data could be lost. Again, don't use it now, but having kernel-level support for ZFS is a huge deal, not the least because Canonical thinks the license allows for it.

Ubuntu has been working on ZFS support for quite a few years now. It started with file-based ZFS in 15.10, which drew on the work of the ZFS On Linux  project. Later that support was extended to ZFS for containers in Ubuntu 16.10. Having used ZFS for my LXC containers for nearly a year now with no problems, I can say that Canonical's handling of the ZFS implementation details makes using ZFS with LXC/LXD no different than using any other file system.

Fedora and other distros also have good support for ZFS, but most distros have thus far not included kernel level support. One reason is may be that ZFS is licensed under the Common Development and Distribution License, which [some claim](https://sfconservancy.org/blog/2016/feb/25/zfs-and-linux/) is incompatible with the GNU General Public License. Canonical and others disagree, but Canonical is one of the first to actual ship with ZFS in the kernel. 

Ubuntu 19.10 adds support for ZFS as the root file system and has tools to create and partition a ZFS file system layout directly from the installer.

If you're not familiar with ZFS you may be wondering why you should care. Indeed it's possible you shouldn't. There's nothing wrong with ext4, the default file system used by Ubuntu (and nearly every other distro). ZFS, however, enables some powerful tools that you wouldn't have access to otherwise, including pooled storage, disk snapshots, data integrity verification and good bit more. A full background on ZFS is beyond the scope of this article, but for those of us using Ubuntu as a workstation, the two biggest wins ZFS offers are probably pooled storage and disk snapshots.

Because ZFS acts as both a file system and volume manager, it can create a file system that spans multiple hard drives (this is a "pool" in ZFS parlance). How many disks can you pool? Fun fact, Oracle [has done the math](https://blogs.oracle.com/bonwick/128-bit-storage:-are-you-high) and fully populating a 128-bit ZFS storage pool would require more energy than boiling the oceans. Which is to say, ZFS has large datasets covered. 

The disk snapshots feature though is more useful on your root partition. Imagine for a moment you have root formatted to ZFS and snapshots are enabled. You install an update that breaks some piece of software you rely on. No problem, you can just roll back the file system to a prior state, effectively wiping the update. This is where Ubuntu is headed, but it's not there yet. Getting ZFS on the root file system is easy (if EXPERIMENTAL), but there aren't really any tools yet to manage and take advantage of ZFS's features. If, however, Canonical can bundle a nice GUI for interacting with and managing ZFS it's going to have an edge over the competition, especially in the enterprise market.

The kernel in 19.10 is based on Linux kernel 5.3, which is notable for adding support for the new Radeon RX 5700 series graphics card, as well as the beginnings of support for Intel Speed Select which adds some easier power tuning options. 

Also noteworthy under the hood in the release is the inclusion of proprietary Nvidia drivers on the Ubuntu installation disk. That means you can now install the Nvidia drivers right from the start without any glitchy post-installation hassles.

### Snaps and Bugs

Ubuntu 19.10 ships with quite a few more default apps as Snap packages, notably the Chromium web browser. This change is coming for all version of Ubuntu once the kinks have been worked out. This will save considerable engineering effort on Canonical's side since it eliminates the need to build every new version of Chromium for all supported Ubuntu releases.

I had no problems using the Snap version of Chromium, and indeed the only real indicator that it's a Snap is that it takes just a bit longer to open than usual. That said, there are quite a few reports of bugs over on the [relevant Ubuntu Discourse thread](https://discourse.ubuntu.com/t/call-for-testing-chromium-browser-deb-to-snap-transition/11179/11). The main complaints seem to center around the Snap version not adopting the look when using other GNOME themes, and, for some users, problems with Chromium save dialogs. There are also edge case issues using some advanced features of the Chromium developer tools.

While I can see how moving Chromium in particular to a Snap would be a huge time and effort savings for Canonical, judging by user feedback it's not quite there yet. So far anyway, it hasn't been pushed out to users of older Ubuntu releases.

Ubuntu 19.10 ships with new ‘Media Sharing’ toggle in the Settings app, under the Sharing panel. It shares files that any DLNA or UPnP compatible device can access, which means it should have out of the box support for sharing files with smart TVs, some consoles (Playstation 4, for example), and other devices on your network. There's a couple things to note here though. First off this feature shares three folders by default -- Pictures, Videos and Music -- and it shares them to every device on your LAN. If you want more fine-grained control you're out of luck.

The other more serious note is that initial release of Ubuntu 19.10 shipped with a bug that enabled this sharing by default. That's been fixed, but if you installed 19.10 right away, definitely make sure to update your system and double-check to make sure the sharing feature is off. I tested this feature using VLC on Android to play videos. Everything works fine, but it lacks the polish and speed of Plex. Given how easy it is to install and run Plex (or my personal favorite of the DLNA players, Jellyfin), I'd suggest using a third-party media sharing app.

One final note for those of you waiting on support for the Raspberry Pi 4, Ubuntu has published a [roadmap](https://ubuntu.com/blog/roadmap-for-official-support-for-the-raspberry-pi-4). The short story is that Ubuntu 19.10 support for the Raspberry Pi 4 model B is currently limited to the 1GB and 2GB versions. Canonical's Galem Kayo writes on the Ubuntu blog that, "due to a kernel bug, USB ports are not supported out of the box in the official arm64 image on the 4GB RAM version."

Canonical's engineers have identified the necessary kernel fixes and are currently testing them, but so far there's no official support for the 4 GB model. There is, however, a workaround. I have successfully installed 19.10 on my 4 GB Raspberry Pi 4 using a boot param to tell the kernel it only has 3 GB of RAM. It's hardly ideal, but if you want to play around with it today it is technically possible to do so.

### Conclusion

Ubuntu 19.10 is unusual for an October Ubuntu release in that I'd call it a must-have upgrade. While it retains some of the experimental elements Ubuntu's Fall releases have always been noted for, the speed boosts to GNOME alone make it will worth your time. If you prefer to stick with more stable releases, most of what's new in 19.10 will eventually be backported to 19.04 and possibly even the last LTS release, 18.04.

Still, unless you're committed to the stability of LTS releases, I see no reason not to upgrade. As I said at the beginning of this review, Ubuntu 19.10 is quite possibly the best release of Ubuntu Canonical has ever delivered and it's well worth upgrading if you're already an Ubuntu user and well worth trying if you're not.