Josh Ourisman » On the other hand

Navigation: Blog, Portfolio

New features in Apple's upcoming Snow Leopard

June 23rd, 2008

Anyone who pays attention to Apple news is, I'm sure, aware of their recent announcement of Snow Leopard, the successor to Leopard, which will be coming out in about a year. They're also probably aware that Apple is advertising this release primarily as a code refactoring that will add stability, optimization, and 'no new features'. Since that announcement there have been any number of blog posts explaining how there actually will be some significant new features, they're just mainly under the hood enhancements that the average user wouldn't actually be aware of. RoughlyDrafted has an excellent post explicating what some of those features are, so I'm not going to rehash that discussion. I do, however, want to address one of the points made, specifically that 'ZFS isn’t going to replace HFS+ outright in Snow Leopard, and has limited relevance today to desktop and laptop users, particularly those who never move beyond the single disk drive installed in their system'. I disagree.

This statement is partly true in that most people, especially those with only a single HDD, won't benefit from ZFS' pooling and the various benefits that come from that (such as RAID-Z). But I still think it's inclusion in OS X will be a coup for the average user as well. Specifically, the use of ZFS means that silent data corruption will be a thing of the past thanks to copy on write and full data checksumming. Also, the advantages that ZFS' snapshots will bring to TimeMachine will greatly enhance it's usability, speed, and effectiveness for anyone with an external hard drive, network hard drive, or Time Capsule. On top of that, there are, in fact, a few benefits of ZFS pooling for those with just a single hard drive. In particular, filesystem level compression will allow the user (or, more likely, Apple) to designate certain folders to be their own filesystems that are automatically compressed to to provide a) more efficient use of space and b) faster access. This won't help much with your music and video files, but it should do a lot to greatly reduce the size and increase the access speed of the configuration and preferences files in your Library (mine is currently 3.24 GB uncompressed). I don't imagine it would be difficult for Apple to update OS X so that /Library, /System/Library, and /Users/*/Library are all their own filesystems with compression turned on. And even if they don't a savvy user could do this themselves if they really wanted to.

ZFS will also be a boon to those who might want to create their own home server. A niche market for now, perhaps, but the ability to just keep adding new USB or FireWire (or eSATA?) hard drives to their computer and have that storage space just seamlessly added into their storage capacity will make it significantly easier to manage.

I, for one, think that ZFS is probably the best news related to Snow Leopard that I've heard. I've already been using ZFS in both Leopard (you can download an update from the ADC that gives you full read/write access to ZFS) and FreeBSD and loving every minute of it. I just wish Sun would release it under the GPL so it could be included in Linux as well...

FreeBSD on an Apple MacBook

April 6th, 2008

For the past week or so, I've been running FreeBSD on my MacBook. So far, I've got to say, I absolutely love it. I have a lot of experience running a range of Linux distributions on all sorts of hardware including both PPC and Intel Macs, but just a week or so of FreeBSD usage has convinced me of the OS' value over Linux.

A standard FreeBSD install is incredibly simple. If you don't want to dive into any messy details you don't have to (though you do need to be comfortable with the fact that you're going to be using a curses interface rather than a real GUI). You could probably have a full, working install of FreeBSD, complete with X.org, in 15-30 minutes if you didn't want to do anything crazy.

I, of course, wanted to do some crazy things. Namely, I wanted to have it running on Sun's ZFS, which took a little extra work. If you just want to run FreeBSD on your MacBook easily, I highly recommend this howto from Goddess-Gate.com. It's very good and very easy to follow (just remember that you might not use a French-layout keyboard and you'll be fine).

To start things off, after partitioning my drive with BootCamp, I used this ish.com howto to get a minimal FreeBSD install running with ZFS. At this point, my Airport card was working with the built-in drivers, which was absolutely stunning after all the work and effort I've put into trying to get WiFi to work with Linux in the past. After that I took a few tips from zenspider to get the basics setup like configuring my own user with sudo privs, and ZSH as the default shell (I'm a fan of things that start with Z, I guess...). After that, just a few tips from the Goddess-Gate.com howto as well as the MacBook page o the FreeBSD wiki (the wiki page will be important later) got me to a basically complete and usable stage.

In addition to the basics, I installed the e17 window manager, which so far I really like, gvim and xemacs, for my basic work needs (traditionally I'm an emacs guy, but lately I've been playing around with vim a lot), Opera for web browsing and some of the KDE packages, though I don't want or plan to use KDE, I just wanted a few of the applications to play with (Konqueror and Kate), so I removed all the KDE packages other than kdebase and it's dependencies.

At this point I only had a few issues with my install:

  1. the trackpad - FreeBSD currently has no support for advanced features with the MacBook trackpad. The synaptics drivers available in FreeBSD don't recognize the USB trackpad that Apple uses, so you're forced to use basic mouse drivers which means no two-finger scrolling or right-click. The best solution out there (and I'll address this in a bit) is to configure xbindkeys so that F10 sets your mouse button to left-click, F11 sets it to middle-click, and F12 sets it to right-click.

  2. fn key - FreeBSD also currently has no support for the fn key on the MacBook keyboard which means that the home, end, pgup and pgdn keys are unusable. This isn't a huge deal as you can use various other keybindings to the same effect, but it's annoying.

  3. battery monitor - For some reason the battery monitor widget that comes with e17 only sort of works with my MacBook. If my battery is full, it says so. Otherwise, it just says 'DRIVER'. Oddly enough, this doesn't seem to indicate an actual driver problem, because I can get the full info on my batter at the command line including time remaining and all that fun stuff. Since the information is obviously all available I'm going to try and patch the e17 widget to work with a MacBook when I've got the time. Meanwhile, I'm sure that other battery monitor probably work, though I haven't had a chance to try any yet.

  4. Firefox - I simply have not been able to get Firefox to work properly. I've tried various ports (firefox, firefox-devel,linux-firefox, and linux-firefox-devel), but sometimes they fail to compile, and even when they do, they won't run. Since I've got both Opera and Konquerer installed I'm just going to ignore this issue until Firefox 3 is released and makes it into the ports tree.

Other than those four things, everything else has really been a dream in terms of ease of setup and use. And, I'm happy to announce, I've come up with a better solution to the right-click issue!

You have to install xvkbd and then add the following to your .bindkeysrc:

"xvkbd -text '\m3'"
Control + b:1

"xvkbd -text '\m2'"
Alt + b:1

This will allow you to use ctrl-click for right-click, as in the Mac OS, and alt-click for a middle-click.

The one caveat, which Rui Paolo, writer of the MacBook entry in the FreeBSD wiki helped me discover, is that you have to compile the latest version of xvkbd yourself, as the one in ports is outdated and doesn't work for this. So I'm going to work on building a new port with the latest code. The lack of a simple way to right-click was the one thing that was really bothering me with my FreeBSD install, so this is a pretty huge deal as far as I'm concerned.

Well, that was a very long and geeky post. Now I have to get ready for my international flight tonight.


copyright © Joshua Ourisman 2006-2010 all rights reserved