BSDCan Banner
Call for papers


The presentations will be held on 12 and 13 May, 2006.

If you would like to add an item to this list, please contact us at

27 presentations found

"Free as in Free Beer", or "The Foundations of Civilization"

This talk starts by describing the fundamental importance of beer not only to software developers, but also in the development of civilization. It continues by describing the technology of beer brewing and how computers can help produce better beers. In particular, Groggy describes the fermentation temperature program that was discussed in Slashdot last year.

About the author:

Greg Lehey is a senior software developer at MySQL AB. He is also a FreeBSD and NetBSD developer and an ex-member of the FreeBSD core team. He has been in the computer industry for 30 years, most of them spent in Germany, in which time he has performed most jobs, ranging from kernel development to product management, from systems programming to systems administration, from processing satellite data to programming petrol pumps, from the production of CD-ROMs of ported free software to DSP instruction set design. He is the author of "`Porting UNIX Software" (O'Reilly and Associates, 1995) and "The Complete FreeBSD" (O'Reilly and Associates, 2003).

speaker: Greg Lehey

location: SITE A0150

A Scalable Concurrent malloc(3) Implementation for FreeBSD

The FreeBSD project has been engaged in ongoing work to provide scalable support for multi-processor computer systems since version 5. Sufficient progress has been made that the C library's malloc(3) memory allocator is now a potential bottleneck for multi-threaded applications running on multi-processor systems. In this paper, I present a new memory allocator that builds on the state of the art to provide scalable concurrent allocation for applications. Benchmarks indicate that with this allocator, memory allocation for multi- threaded applications scales well as the number of processors increases. At the same time, single-threaded allocation performance is on par with the previous allocator implementation.

speaker: Jason Evans

location: SITE A0150

Back to the Future: BSD on the Edge of the Enterprise

I have been running FreeBSD on a cluster of standard Intel based servers as an economical and functional alternative to "normal" dedicated/expensive (Cisco/Foundry/Juniper) routers on the edge of our campus for the past 2.5 years. Using Zebra/Quagga and ipfw/dummynet we have set up a system which is both flexible in terms of meeting our external routing and packet filtering needs.

We are the largest University in Canada, serving some 70,000 students and 11,000 staff and faculty. There are an estimated 50000 machines which are served by our external routing cluster.

speaker: Russell Sutherland

location: SITE B0138

Bio and Sensors in OpenBSD

If the only computer you're responsible for is your desktop or notebook computer it is easy to keep an eye on the health of the system and to get an idea of how well it is running. As soon as a component fails the service relying on that component fails as well. If a disk starts to fail or the CPU gets too hot you get pretty immediate feedback on that issue.

However, in the server space there is a continual push to provide services on redundant hardware. The systems we can put in place these days may sport redundant hardware such as raid controllers and disks, power supplies, cooling elements, memory and CPUs. Some services can even take advantage of using multiple computers to provide fail-over in the event of a whole machine dying. All of this means that if one of these components fails the service will just keep running. The problem with this is that we no longer get the friendly phone call from our users telling us when something isn't working anymore. Instead we need to be able to get the status of the components so that in the event of a failure we can take appropriate action and maintain redundancy.

Fortunately servers these days are built with a variety of sensors onboard so you can monitor their health. In the case of raid, the controller is aware of the health of the disks and is able to report their state. However, like all hardware, unless there is appropriate software you cannot take advantage of all this information simply because you can't get at it. We intend to present the sensors and bio interfaces and several drivers in OpenBSD as examples of how you can take advantage of this hardware to keep an eye on your systems.

speakers: David Gwynne, Marco Peereboom

location: SITE H0104

BSD firewalling, pfSense and m0n0wall

Scott Ullrich and I attended BSDCan for the first time last year. We were both very happy with the quality of the conference, probably for the quality of conversations with attendees as much as, or more than the quality of the presentations (though that's not to say they were bad, quite the contrary!). Scott ended up presenting part of the FreeSBIE talk, as he's a FreeSBIE committer, and I pitched in a bit there as well. We'll definitely be attending again this year.

This year we would like to give a presentation on firewalling and the BSD's. We're very involved with the two most popular BSD-based firewall packages, m0n0wall and pfSense. I'm very involved with the m0n0wall community, as a committer and most frequent contributor to the mailing lists. Scott and I co-founded pfSense as a fork of m0n0wall, taking a different direction with different and conflicting goals from m0n0wall (hence the reason for the fork). But, with the type of audience at BSDCan, we would not focus heavily on these packages.

This email is basically to get a feel for your interest in this topic. I'll briefly outline what we're thinking about, and if you have any interest in this, I can get you something much more detailed.

Think of this as three distinct areas of focus:

1) Current status of firewalling and the BSD's

An overview of the firewalling options with Free, Net, Open, and DragonFly. What options are available (ipfw, ipfilter, pf, etc.), and their level of stability and maturity on each. Provide several reference links for each, for info on how to implement them on each OS.

2) The BSD-based firewall packages

Introduction and overview of the two major open source firewall packages, m0n0wall and pfSense, that implement BSD firewalling technologies, with a GUI to greatly increase the usability of the underlying system. At least half the user base of these packages does not use BSD in any other regard, and are not familiar much at all with the underlying OS. Thus, they're not really the typical audience member from what we saw at BSDCan last year, so we won't focus very heavily in this area.

3) Firewalling best practices

Very few firewalls are implemented as tightly as they could and should be. This part would be a discussion of firewalling best practices and how they can be implemented using m0n0wall and pfSense (including how to just use the GUI systems for generating rule sets for use on stand alone systems).

speakers: Scott Ullrich, Chris Buechler

location: SITE A0150

Building a FreeBSD Appliance With NanoBSD

It's awfully tempting to nail a FreeBSD computer to the wall to solve some particular problem. NanoBSD is a build framework for FreeBSD which generates read-to-use Flash images for such "appliance" use.

In addition to a tour of NanoBSD, the talk will look at some of the issues one should think about before reaching for the hammer and gives examples of solutions to problems people often don't realize exist until they have manifested themselves as "unforeseen expenses".

speaker: Poul-Henning Kamp

location: SITE B0138

Creating a firewall for use with Jail(8)

Jails are great, but it's not a great idea for jail users to firewall their virtual interface. Best practices involve firewalling upstream, but this generally means someone has to maintain the firewall rules. We present an automated system that allows Jailed accounts to modify an upstream firewall using a combination of Guardian ( and Snort. The benefit of this system is that Jailed users can now directly control their own firewall rules without adminstrator assistance.

The system comprises of a script that the Jailed user can execute which sends a packet through the upstream firewall. This packet contains a digitally signed set of instructions for modifying the firewall rules. The packet triggers a signature match in Snort, which is then captured by Guardian, which then adjusts the firewall rules accordingly.

speaker: Wes Sonnenreich

location not assigned

Distributed VCS

FreeBSD, like many open source projects, uses CVS as its main version control system (VCS), which an extended history of all modifications made since the beginning of the project in 1993. CVS is a cornerstone of FreeBSD in two ways: not only does it record the history of the project, but it is a fundamental tool for the FreeBSD core team and developers.

CVS is built around a concept of centralized repository, which has a number of limitations and suffers from many flaws. Although FreeBSD is also using Perforce for specific projects, having two VCS is cumbersome.

Recently, a new type of VCS has arisen: Distributed VCS, one of the first being BK from BitMover, Inc. Better known from the controversy it generated when Linus Torvalds started using it, it has nonetheless changed the way some people develop software.

This paper explores the area of distributed VCS. We analyse two of them Arch (in its Bazaar incarnation) and Mercurial. I'll try to show how such a tool could help further FreeBSD development, both as a tool and as a new development process. Migrating VCS is a tedious task and there are several issues that we must look at before undertaking this project.

speaker: Ollivier Robert

location: SITE B0138

Experiences Bringing FreeBSD/arm up on Atmel AT91RM9200

FreeBSD/arm supports a wide array of ARM processors. Unlike Intel x86 systems, ARM processors are aimed at the embedded market and are packaged as a SoC (System on Chip). The integrated peripherals vary widely between the different offerings from different vendors.

This paper will expore the issues encountered in porting FreeBSD/arm to the AT91RM9200 processor. We will talk about the initial bring up of the board, device driver support for the SoC devices, and packaging concerns for an embedded processor. This paper may explore the issues around cross building a release.

speakers: Olivier Houchard, Warner Losh

location: SITE H0104

Filesystem Performance on FreeBSD

I have spent quite a bit of effort over the past few months on benchmarking the performance of UFS filesystems on FreeBSD 4.x, 5.x and 6.x, with UP and SMP hardware. The results are quite interesting and reveal both the enormous progress made in SMP performance and scalability with the release of FreeBSD 6.0, and a remaining performance limitation which should direct future work. I am planning to write up these observations, and BSDCan should be a good venue for presenting the results.

Depending on my time and hardware availability, I may also be able to extend the analysis to cover other BSD versions.

speaker: Kris Kennaway

location: SITE A0150

FreeBSD Hypervisor Support

FreeBSD has been ported to run on the Xen hypervisor on x86 and is in the process of being ported to Sun's hypervisor on the sun4v. This commoditization of hypervisors has made the open source community increasingly aware of the benefits that they can bring to the data center and the developer.

Benefits frequently cited are:

  • Server Consolidation, increasing server utilization, typical is at 15%
  • Business Continuity, live relocation
    • zero downtime maintenance
    • instant-on provisioning
    • optimizing application resource provisioning
  • Decoupling the OS from the underlying hardware
    • MMU changes can be made independently of the OS, e.g. Sun's T1 HV
    • live migration
    • virtual devices can map to arbitrary physical devices
    • debugging / fault isolating drivers, running drivers in their own domain

This talk will cover the services provided by hypervisors, the changes that need to be made to FreeBSD to support them as paravirtual guests, the tradeoffs versus emulation (VMWare, QEMU, etc.), and the up and coming support on the next generation of AMD / Intel processors.

As part of the talk will bring up a FreeBSD instance on Xen - time and hardware permitting will do a live migration.

speaker: Kip Macy

location: SITE A0150

How the FreeBSD Project Works

The FreeBSD Project is one of the oldest and most successful open source operating system projects, seeing wide deployment across the IT industry. From the root name servers, to top tier ISPs, to core router operating systems, to firewalls, to embedded appliances, you can't use a networked computer for ten minutes without using FreeBSD dozens of times. Part of FreeBSD's reputation for quality and reliability comes from the nature of its development organization--driven by a hundreds of highly skilled volunteers, from high school students to university professors. And unlike most open source projects, the FreeBSD Project has developers who have been working on the same source base for over twenty years. But how does this organization work? Who pays the bandwidth bills, runs the web servers, writes the documentation, writes the code, and calls the shots? And how can developers in a dozen time zones reach agreement on the time of day, let alone a kernel architecture? This presentation will attempt to provide, in 45 minutes, a brief if entertaining snapshot into what makes FreeBSD run.

speaker: Robert Watson

location not assigned

How to write a Device Driver in FreeBSD

A core part of the Unix system is the drivers that interact with the hardware that we run on. Drivers are needed as new hardware and technology becomes available on the market. FreeBSD has a rich set of constructs that makes writing a device driver easy. This includes making the module loadable and handling configuration via sysctl's and tunables.

The presentation will be on how to write a device driver for FreeBSD. This will cover things like presenting a character device which you can read/write/mmap/select/kqueue upon along with properly using bus_dma for cards that can DMA. It will focus on PCI as the primary attachment, but will cover other device attachments such as I2C.

speaker: John-Mark Gurney

location: SITE B0138

Improving TCP/IP Security Through Randomization Without Sacrificing Interoperability

The TCP/IP protocol suite has become the networking standard of the world, carrying nearly all traffic on the Internet, and a large percentage of traffic on LANs as well. All types of data traverse TCP connections, from the unimportant to the highly confidential. While network layer protocols such as IPsec have been created to add encryption to TCP/IP, they require special configuration and are not generally used except in VPN configurations. The SSL protocol, which sits on top of TCP, has become much more widespread. While SSL can ensure data confidentiality and integrity, it can not ensure the availability of service if the TCP layer below it is disrupted. If implemented according to the original standards, TCP connections can be easily disrupted even by an attacker who is not monitoring the actual traffic of the connection. These blind spoofing attacks are mostly a problem for long-lived connections, such as BGP sessions between routers or SSH/SSL sessions used to remotely administer servers. Tweaks to solve these blind spoofing attacks have been implemented in many operating systems, but many fixes have the problem that they reduce interoperability with other operating systems. This paper demonstrates how interoperability has been harmed by certain TCP changes and discusses better solutions to the problems at hand. The topics of TCP initial sequence numbers, TCP timestamps, IP ID values, and ephemeral port randomization are discussed. The majority of the paper is spent discussing TCP initial sequence numbers, as they are the primary point of attack for blind spoofing. Points of interest include a survey of the initial sequence number generation methods of some popular operating systems, an improvement to RFC 1948, and a proposal for how to use TCP timestamps to increase resistance to spoofing attacks.

speaker: Mike Silbersack

location: SITE H0104

Keeping an eye on weird stuff with FreeBSD

One of the things UNIX is really good at is interfacing to all sorts of weird hardware. But once the communicatoins part of the task is over, what then to do about the data ? An extensible application for management of weird stuff called "measured" will be presented, the design and implementation will be discussed and examples shown of what it can do.

speaker: Poul-Henning Kamp

location: SITE B0138

Mobile IPv6 integration in [Free]BSD

Originally part of the KAME code (KAME-Shisa), but not included in the recently announced[1] "final merge", MIPv6 is now taken care of by the (linux centric) WIDE-Nautilus[2] project. I am involved with a research group[3] at our university that is enhancing MIPv6. Our development and testing is completely based on FreeBSD 5.4 + KAME-snap and I am looking at porting the efforts to FreeBSD 6/CURRENT later.

For the talk I'd like to give a short introduction to MIPv6 in general and it's implications. Later on I'd spend some time with explaining our optimizations and how they have been implemented. This would be mainly to foster some interest in MIPv6 in general within the BSD community again. Unfortunately, the linux folks have taken over most of the current developlent (eventhough KAME is a great foundation for IPv6 development).

speaker: Max Laier

location not assigned

This talk presents a new SSH version 2 implementation, independent from all pre-existing codebases. Motivation, advantages, disadvantages, and plans for future work are discussed.

speaker: der Mouse

location: SITE H0104

NetBSD LiveCDs
LiveCDs provide an easy and convenient way for users to try out a new operating system by letting them run the software directly from a bootable CD (or DVD). Some LiveCDs allow users to not only testdrive the operating system, but also to install it directly from the same media, while specialized LiveCDs based on many different operating systems are developed to solve very different and very specific problems.

NetBSD LiveCDs have been around for several years, but just like their FreeBSD and OpenBSD counterparts, they have never been integrated into the official releases, and instead are maintained by third parties. To take advantage of the ease with which LiveCDs allow users to try out and install a new operating system, it is important to allow automatic generation of LiveCD images for each release.

This paper presents the framework for building a Live CD to be integrated into NetBSD's release process and building tool ( to ensure that users can experience a no-hype LiveCD that accurately reflects what a running system looks like. The result will easily provide the basis for third parties to develop specialized products for any given NetBSD release, and will open the door for many more new applications of NetBSD Live CDs.

speaker: Jan Schaumann

location: SITE B0138

Network Protocol and Kernel Development in a Virtual Environment

In order to develop and debug network protocols it is either necessary to have a large laboratory filled with computers and networking equipment or to have a way to simulate several machines talking on a network. Until recently simulated systems have only partially implemented some part of a protocol so that the protocol code could be tested within a single machine. With the advent of cheap and ubiquitious virtualization technology, as well as cheap, fast computers with large secondary storage it is possible to simulate teams of machines on networks of varying shape and sizes. Unlike the partial simulations of the past virtualized machines have the advantage of being full systems in their own right, able to run just as a "real" machine would and to reproduce the same problems that users in the field would see.

This talk covers setting up and working with multiple systems in a virtual environment, using VMware Workstation as the virtualization technology and FreeBSD as the system being developed and debugged. Network conditions permitting this may include a full demonstration, but the machine in question ( is in Tokyo so I don't want to promise this.

speaker: George V. Neville-Neil

location: SITE B0138

Proactive Wireless Networks with OpenBSD

The OpenBSD project produces a free, multi-platform 4.4BSD-based UNIX-like operating system. Their efforts emphasize portability, standardization, correctness, proactive security and integrated cryptography.

But what about Wireless LAN support in OpenBSD? A few years ago WLAN support in Open Source operating systems was only an unimportant side-issue. Meanwhile, wireless networks are spread all over the world and the IEEE 802.11 protocol has become the leading approach. During the last years, consumer-grade WLAN products have become available mostly everywhere. OpenBSD is probably the operating system with the best out-of-the-box support for most of the current wireless network devices. And of course, it is free without any non-free code or binary driver blobs.

The WLAN support in OpenBSD provides everything to run host-based Access Points, clients and even proactive wireless monitoring nodes. OpenBSD does not support all of the latest industry standards and IEEE 802.11 subtypes, but it provides support for a powerful basic operation and some bleeding-edge wireless network and security concepts. Some of the advanced proactive wireless networking capabilities, such as roaming and WIDS, are provided by the OpenHostAPD, which first appeared in the OpenBSD 3.8 release. Latest works like the improved and easy IPsec support, authpf and even SSH-VPN are reliable and secure alternatives to existing wireless security standards like WEP and IEEE 802.11i/WPA2.

This talk will address the latest wireless capabilities in the latest release OpenBSD 3.9 with a brief introduction of the concepts and basics. Even for advanced setups, like large and secure distributed wireless networks- Most of the required software is already part of the OpenBSD base system. The talk will illustrate how the pieces belong together, including a live demonstration of selected scenarios.

speaker: Reyk Floeter

location: SITE H0104

Subverting the FreeBSD ABI subsystem for phun and profit

This talk is the final result of personal research into the FreeBSD kernel with the goal of building a clever kernel rootkit framework. The main goal was building tools that would be helpful in the development of FreeBSD rookits.

An hypothetical rootkit, written with these tools, might be:

  • Flexible
  • Simple to trigger
  • Simple to apply (not passing from /dev/kmem or kernel .text overwriting)
  • Efficient
  • Opaque (very difficult to discover)

All these conditions are met by passing through the ABI (kernel binary emulation layer) subsystem.

The talk will show theoretical issues and a practical approach to crafting stealth rootkits with this new technique (in particular the remote usage of rootkits).

speaker: Attilio Rao

location: SITE A0150

Taking a lesson from Darwin: evolving the FreeBSD interrupt model

Moving FreeBSD from an ithread-centric model to an interrupt-filter model. The ithread model is a cornerstone of the FreeBSD SMPng project, but has a number of flaws relating to latency/performance and incompatibilities with common Intel hardware. The interrupt filter model is inspired from Mac OSX and addresses these problems nicely. The paper will focus on the technology history of both approaches as well as some alternate approaches found in other OS's, performance comparisons, and discussion on what this means to driver authors and how they can easily adapt to the new model.

speaker: Scott Long

location not assigned

The FreeBSD Ports Monitoring System

Among the least-publicized strengths of the FreeBSD development model are users' access to the CVS source tree and the continual QA work being done via onging build processes. The work described in this talk attempts to leverage these strengths to help ease the process of porting, and maintaining, applications for FreeBSD.

There were several automated processes that already existed to provide Quality Assurance (QA) feedback for the ports tree. Each of these processes produces results that are generally posted in HTML format on a regular basis. In addition, there are other sources of information (in particular, the Problem Report (PR) database), which are also suitable for mining information from.

Until the creation of portsmon there was no way to correlate these sources of information in a way that could be browsed by a human. portsmon grabs the HTML pages, parses them, puts them into a database, and allows interactive queries from HTML forms. In addition, it periodically outputs email with the status of ports that have some kind of error.

speaker: Mark Linimon

location: SITE A0150

Towards a BSD Certification
In this talk, Dru Lavigne ( discusses the current progress of the BSD Certification Group ( and the steps used to bring both the BSDA (BSD Associate) and BSDP (BSD Professional) certifications to fruition. She will discuss:
  • the organizational structure of the BSD Certification Group
  • the coordination of hundreds of volunteers scattered throughout the globe
  • the importance of psychometric analysis and its impact on the price of certification
  • the task analysis, BSD usage, and country-specific surveys
  • the current publications, including the roadmap, certification requirements document, and educational guidelines
  • the testing methodology and test delivery process
  • what remains to be done
  • what you can do to help
  • how the organization will continue once the exams have gone "live".

speaker: Dru Lavigne

location: SITE A0150

Using the Andrew File System with BSD

Since the beginning of networks, one of the basic ideas has been sharing of files; even with the Internet as advanced as today, simple platform independent sharing is not common. Why is the closest thing we use WebDAV, a 'neat trick over http', instead of a real protocol?

In this paper the Andrew File System will be described which has been (and is) the file sharing core of many universities and companies world-wide. Also the reason for its relative unawareness in the community will be answered, and its actual features and performance in comparison with alternative filesystems. Finally some information will be given on how to use with our favourite OS: BSD.

speaker: Hugo Meiland

location: SITE H0104

What is a security flaw?
What is a security flaw? Aside from the tongue-in-cheek definition that a security flaw is "anything which allows Bad People to do Bad Things", there has been little said about this and even less agreed upon. In this talk, I will consider both real and hypothetical bugs and how they were or should be classified, and conclude by giving my answer to this question.

speaker: Colin Percival

location: SITE H0104

Work In Progress Session

I'm pleased to announce the WIP session signup for BSDCan 2006. Last year, the WIP session was very successful, with presentations on topics as diverse as new SSH implementations to BSD-based voicemail systems, and we hope to replicate that success this year. The format remains essentially the same: in a one hour period, audiences are entertained and informed by a rapid fire series of short talks on interesting new or on-going work by individuals or groups. Slides aer permitted, but not obligatory; pictures are highly recommended. Topic areas include new open source software projects, works in progress for future releases of existing projects, student projects, etc. WIP topics this year may make good conference papers next year!

The number of slots is limited, and experience suggests there will be more takers than slots. Sign up well in advance to be assured a spot. Please e-mail <> to sign up. Send a one or two paragraph summary of the topic to be presented, and the names of the person(s) presenting it. Also, please give a time estimate -- typically times will be one to five minutes. The time limit will be strictly enforced -- you will be cut off if you try to run over! The WIP e-mail registration deadline is May 6, after which remaining slots (if any) may be signed up for in person. Any slides must be received by the WIP session chair by, at latest, May 11 at 11:59pm GMT. The session chair this year is Robert Watson.

speaker: Robert Watson

location: SITE B0138

27 presentations found

Hotel + Travel
U of O Campus
About Ottawa

Help out!
Contact Us
What is BSD?

BSDCan 2004
BSDCan 2005
BSDCan 2006
BSDCan 2007
BSDCan 2008
BSDCan 2009
BSDCan 2010
BSDCan 2011
BSDCan 2012
BSDCan 2013
BSDCan 2014
BSDCan 2015
BSDCan 2016
BSDCan 2017
BSDCan 2018
BSDCan 2019
BSDCan 2020
Copyright © 2003-2011 BSDCan. All rights reserved.
Valid HTML, and CSS