Sunday, May 18, 2008

BSDCan Trip Report

BSDCan wrapped up yesterday and I'm back in the SF Bay Area. As usual, Dan did a great job organizing everything. A scheduling conflict prevented me from attending the developer summit before the conference, but I was mostly able to sync up with those working in areas of interest. Some of my highlights from this year's conference include :


  • Having lunch with Bosko. I hadn't seen him since USENIX 2004 and he hasn't been around the FreeBSD development community much recently but previously did a lot of work on TCP and it was great to catch up with him.

  • Discussing finstall with Ivan. I reviewed his latest alpha4 ISO image and provided additional feedback in person about what I think the priorities should be for getting this to the point of being the default installer for FreeBSD 8.0. Downloaded the code from sourceforge and discussed PyGTK interface for selecting/installing packages. I think I volunteered to implement a few menus, doh!

  • Talking with Denise (iXsystems), Leslie (Google), and others about doing a MeetBSD Conference at Google in Mountain View in November. More details to follow once facilities are confirmed. Open source gatherings at the googleplex usually work pretty well, with free food, wireless, and copious conference rooms available.

  • Dinner with Mike Silbersack, Doug Rabson, and Zach Loafman (Isilon) about Kerberized NFS, NFSv4, Microsoft, and general kvetching.

  • Recording a BSDTalk podcast with the rest of the FreeBSD Core Team in attendance (not yet posted, audio coming soon).

  • Talking with Deb from the FreeBSD Foundation about fundraising and more prominent links to the foundation website from www.freebsd.org.

  • Discussing the pending Subversion conversion of the FreeBSD CVS repository and the necessary updates to our committer guide.

  • Drinking a very nice single malt scotch with Brooks Davis and others in the hacker lounge late into the night, teasing Kip Macy, and learning all about some fine San Francisco establishments from George Neville-Neil.

  • And of course, in addition to the hallway track there were actually lots of interesting talks such as Chris Lattner on BSD Licensed C++ compiler, LLVM, John Baldwin on kernel debugging, and Leslie Hawthorne on Summer of Code.

Wednesday, May 14, 2008

finstall alpha4 review


finstall is Ivan Voras's installer project for FreeBSD. His goal is to create a more user friendly, extensible, and maintainable replacement for the venerable sysinstall program. Replacing sysinstall is something that has been near and dear to my heart since I was first granted a commit bit to work on sysinstall over 8 years ago.

In the past decade a number of projects (libh, anyone?) have been initiated with the goal of replacing sysinstall and none have succeeded. Ivan began his 2007 Summer of Code project with a survey of the existing BSD/Linux installer landscape and his finstall project aims to provide functionality not possible with the alternatives while avoiding some of the pitfalls.

Today Ivan gave a presentation about finstall at the FreeBSD Developer Summit preceding BSDCan but work is keeping me in San Francisco until Friday. Since I'm missing the in person discussions about finstall and FreeBSD 8.0 I thought I'd at least download the latest ISO and publish my findings here. The latest code for finstall is available on SourceForge but Ivan also provides ISO images on his blog.

The first thing you'll notice is that the installer is LiveCD based. Sysinstall was traditionally installed from boot floppy disks or as floppy images on El-Torrito bootable CDs. This led to the use of crunchgen(1) and other techniques for keeping the size of the installation environment within the confines of 1.44MB disks.

Freed from this anachronism, finstall boots into FreeBSD 7.0 and provides a login prompt where users can login as root to use the disk as a LiveCD / recovery CD, or as install to complete an installation onto local disk.

Immediately after logging in as install, the user is prompted to choose a keymap and timezone using the same text libdialog(3) based tools that sysinstall users are familiar with. There is no back button if you accidentally choose the wrong keymap, and no easy way to intuitively scroll through the long list of options in each menu. Thankfully, these are the only two parts of the system that still rely on libdialog(3).

After the timezone is selected, X Windows starts up and the user is dropped into an XFce desktop with a 'FreeBSD Install' icon. Selecting this icon launches the graphical installer. Only the novice (minimum interaction) menu item is available, but standard and advanced modes which allow for RAID configuration are being worked on.

The novice installation process sets up a default partition layout based on the available space on the drive selected by the user, without allowing the user to change the partitions in any way. On my 4 GB VMWare image it chose 512MB /, 409MB /var, 256MB swap, 2048MB /usr, and 865MB /home. The user is then given a choice of file systems to use (UFS+SU, UFS+GJ, ZFS, ext2). finstall refuses to install on a disk with less than 2.3GB of space. This seems excessive until you realize that the current version isn't going to give you the option of pruning down the installed package set -- everything on the ISO will be installed.

After file system selection, the installation begins with the format/partitioning of the disk, installation of the base system, and installation of all the packages on the LiveCD. During installation a number of helpful system tips are provided to the user beneath the status bar ("BSD stands for ...", pointers to the FreeBSD Handbook, etc..)

After installation is completed the user is asked to enter a root password, create a user account, setup network interfaces, and enable system daemons. These configuration menus are pretty standard but are much more user friendly than the sysinstall equivalents.

After installation, the user is left at the XFce desktop. It would probably be more useful at this point to actually reboot into the newly installed system. Perhaps the last message of the installer could say something like "Click here to reboot into your new FreeBSD 7.0 system."

This post is far longer than I expected so I'll end here, and follow up tomorrow with some specific suggestions that I'd like to see added to finstall. In the mean time, by all means check out the code on SourceForge and send Ivan your patches.

Tuesday, May 13, 2008

Summer of Code Students in Community Bonding Period


We're over halfway through the community bonding period and in less than 2 weeks it will be time for our Summer of Code students to start coding.

At this point we've created Perforce accounts for our students and over half of them have already started submitting to their project directory. Ten of our students have started wikis about their projects over on wiki.FreeBSD.org and 8 students have setup blogs which are now aggregated on Planet FreeBSD SoC 2008. Many students sent introduction emails to the freebsd-hackers list over the last 3 weeks.

We ended up getting one extra student in the final allocation for a total of 21 Summer of Code students this year. Two of our students are previous summer of code participants (Gábor Kövesdán from SoC 2006, and 2007 and Rui Paulo from SoC 2007). We also have a former student, Attilio Rao (SoC 2007), serving as a mentor this year.

The graphs in this post present a breakdown of the current country of residence/study for the FreeBSD Summer of Code students that have shared this information. The countries with the most participating students are represented by darker shades of red on the world map above. The statistics for the entire Google Summer of Code program are available here. If you haven't already, please take a moment to send a welcome mail to our students in response to one of the introductions on hackers@ or use the forums above to get in contact with any students working in areas you are particularly interested in.

Update 3/14/2008 - We have a student from Portugal who was misclassified on the original graphs.