<?xml version="1.0" encoding="UTF-8"?>
<schedule>
  <conference>
    <title>BSDCan 2010</title>
    <subtitle>The Technical BSD Conference</subtitle>
    <venue>University of Ottawa</venue>
    <city>Ottawa</city>
    <start>2010-05-11</start>
    <end>2010-05-15</end>
    <days>5</days>
    <release>Final Release</release>
    <day_change>09:00</day_change>
    <timeslot_duration>00:30</timeslot_duration>
  </conference>
  <day date="2010-05-11" index="1">
    <room name="DMS 1160">
    </room>
    <room name="DMS 1120">
    </room>
    <room name="DMS 1140">
    </room>
    <room name="DMS 1110">
      <event id="187">
        <start>09:00</start>
        <duration>03:00</duration>
        <room>DMS 1110</room>
        <slug></slug>
        <title>Networking from the Bottom Up: IPv6</title>
        <subtitle></subtitle>
        <track>Tutorial</track>
        <type>workshop</type>
        <language></language>
        <abstract>All of the BSDs have had rich support for version 6 of the Internet Protocols from the very beginning of the work to specify a new set of network layer protocols for the Internet.  While many references exist for engineers interested in version 4 of the IP protocols, to date, very little has been published describing the newer code.  This tutorial will present an in depth discussion and code walk through of version 6 of the IP protocols, describing and dissecting the paths that packets take from the driver layer up to the socket layer of the network stack.
</abstract>
        <description>All of the BSDs have had rich support for version 6 of the Internet Protocols from the very beginning of the work to specify a new set of network layer protocols for the Internet.  While many references exist for engineers interested in version 4 of the IP protocols, to date, very little has been published describing the newer code.  This tutorial will present an in depth discussion and code walk through of version 6 of the IP protocols, describing and dissecting the paths that packets take from the driver layer up to the socket layer of the network stack.

The tutorial will follow the four paths packets travel through the network stack: reception, transmission, forwarding, and error.

Outline:

1) Introduction

An introduction to IPv6, including new terms and addressing modes as well as a brief overview of common structures seen in the BSD IPv6
stack.

2) Packet Reception

A code walk through of packet reception including how and where packets might be diverted or modified in flight.

3) Packet Transmission

Starting from the socket layer we will trace packets as they leave the system, showing all the major subsystems
that are dealt with as packets are sent from a user program to the network.  Differences in how transport layer
protocols, such as TCP and UDP, interact with IPv6 will be highlighted.

4) Packet Forwarding

A key component of BSD network stacks is their ability to forward packets.  At this point in the deployment of IPv6 
there are still many networks that use off the shelf hardware, rather than high end routers, to create IPv6 networks
and understanding how forwarding is achieved in the stack is important for proper performance tuning.

5) Error Handling

How and where do errors occur and get reported in the stack.  In order to diagnose issues with IPv6 networks
it is necessary to know where the errors are occurring and what they mean.  Differences between the
errors seen in IPv4 and IPv6 will be highlighted in this section.

</description>
        <persons>
          <person id="20">George Neville-Neil</person>
        </persons>
        <links>
        </links>
      </event>
      <event id="179">
        <start>13:00</start>
        <duration>03:00</duration>
        <room>DMS 1110</room>
        <slug></slug>
        <title>Building the Network You Need with PF</title>
        <subtitle>The OpenBSD packet filter</subtitle>
        <track>Tutorial</track>
        <type>workshop</type>
        <language>en</language>
        <abstract>Building the network you need is the central theme for any network
admin.  This tutorial is for aspiring or seasoned network
professionals with at least a basic knowledge of networking in general
and TCP/IP particular.  The session aims at teaching tools and
techniques to make sure you build your network to work the way it's
supposed to, keeping you in charge.  Central to the toolbox is the
OpenBSD PF packet filter, supplemented with tools that interact with
it.  Whether you are a greybeard looking for ways to optimize your
setups or a greenhorn just starting out, this session will give you
valuable insight into the inner life of your network and provide
pointers to how to use that knowledge to build the network you need.

The session will provide updates on the new pf syntax and features
introduced in OpenBSD 4.7, the most recent version of PF and OpenBSD.
The tutorial is loosely based on Hansteen's book, /The Book of PF/ (No
Starch Press), whose second edition should be available soon after BSDCan 2010.</abstract>
        <description>Building the network you need is the central theme for any network
admin.  This tutorial is for aspiring or seasoned network
professionals with at least a basic knowledge of networking in general
and TCP/IP particular.  The session aims at teaching tools and
techniques to make sure you build your network to work the way it's
supposed to, keeping you in charge.  Central to the toolbox is the
OpenBSD PF packet filter, supplemented with tools that interact with
it.  Whether you are a greybeard looking for ways to optimize your
setups or a greenhorn just starting out, this session will give you
valuable insight into the inner life of your network and provide
pointers to how to use that knowledge to build the network you need.

The session will provide updates on the new pf syntax and features
introduced in OpenBSD 4.7, the most recent version of PF and OpenBSD.
The tutorial is loosely based on Hansteen's book, /The Book of PF/ (No
Starch Press), whose second edition should be available soon after BSDCan 2010</description>
        <persons>
          <person id="19">Peter Hansteen</person>
        </persons>
        <links>
          <link href="http://home.nuug.no/~peter/pf/london2008/">full text of a short version of the tutorial</link>
          <link href="http://nostarch.com/pf.htm">The Book of pf</link>
          <link href="http://bsdly.blogspot.com/">That Grumpy BSD Guy: Field notes blog</link>
        </links>
      </event>
    </room>
    <room name="Patty Boland's">
    </room>
    <room name="Royal Oak Pub">
    </room>
    <room name="Out and About">
    </room>
    <room name="DMS 8161">
    </room>
    <room name="DMS 3102">
    </room>
  </day>
  <day date="2010-05-12" index="2">
    <room name="DMS 1160">
    </room>
    <room name="DMS 1120">
    </room>
    <room name="DMS 1140">
    </room>
    <room name="DMS 1110">
      <event id="181">
        <start>09:00</start>
        <duration>03:00</duration>
        <room>DMS 1110</room>
        <slug></slug>
        <title>Debuggers</title>
        <subtitle>Architecture and Implementation</subtitle>
        <track>Tutorial</track>
        <type>lecture</type>
        <language>en</language>
        <abstract>This tutorial is for for those interested in understanding the internals of a source code debugger.  It will cover both a debugger's high-level design and the low-level algorithms needed to implement key functionality.  Topics will include the process model, state machines, unwinding, expressions, stepping, breakpoints, shared libraries, and object files and debug information.</abstract>
        <description>This tutorial is for for those interested in understanding the internals of a source code debugger.  It will cover both a debugger's high-level design, and the low-level algorithms needed to implement key functionality.  Topics will include the process model, state machines, unwinding, expressions, stepping, breakpoints, shared libraries, and object files and debug information.

Examples, positive and negative, will be drawn from a number of existing debuggers, operating systems, and instruction set architectures.

A rudimentary knowledge of operating systems principals, machine programming, and/or programming languages is assumed.

There will be a small materials fee of a few dollars.
</description>
        <persons>
          <person id="115">Andrew Cagney</person>
        </persons>
        <links>
        </links>
      </event>
      <event id="180">
        <start>13:00</start>
        <duration>03:00</duration>
        <room>DMS 1110</room>
        <slug></slug>
        <title>pfSense 2.0 Tutorial</title>
        <subtitle></subtitle>
        <track>Tutorial</track>
        <type>lecture</type>
        <language>en</language>
        <abstract>pfSense is a BSD licensed customized distribution of FreeBSD tailored for use as a firewall and router. In addition to being a powerful, flexible firewalling and routing platform, it includes a long list of related features and a package system allowing further expandability without adding bloat and potential security vulnerabilities to the base distribution. This tutorial is being presented by the founders of the pfSense project, Chris Buechler and Scott Ullrich.</abstract>
        <description>At the time of BSDCan 2010, pfSense 2.0 will be nearing release. This tutorial 
will be a training-focused session, covering many of the changes in the 2.0 
release, both from the perspective of a new user and providing information on 
changes for existing users of the project. Common usage scenarios, deployment 
considerations, step by step configuration guidance, and best practices will 
be covered for many features. Many configurations will be demonstrated in a 
live lab environment.

Attendees are assumed to have basic knowledge of TCP/IP and firewalling 
concepts, however no in-depth knowledge in these areas or prior knowledge of 
pfSense or FreeBSD is necessary.
</description>
        <persons>
          <person id="32">Chris Buechler</person>
          <person id="48">Scott Ullrich</person>
        </persons>
        <links>
        </links>
      </event>
    </room>
    <room name="Patty Boland's">
    </room>
    <room name="Royal Oak Pub">
      <event id="212">
        <start>15:00</start>
        <duration>03:30</duration>
        <room>Royal Oak Pub</room>
        <slug>register</slug>
        <title>Registration - pub</title>
        <subtitle>Pick up your registration pack, have a beer!</subtitle>
        <track>Social</track>
        <type>other</type>
        <language>en</language>
        <abstract>Registration pick up</abstract>
        <description>Avoid the line ups of the first day! Pick up your registration pack early, at the pub. Sit back. Have a drink, some food. Enjoy the company.

A BSDCan tradition. :)</description>
        <persons>
          <person id="1">Dan Langille</person>
          <person id="10">Dru Lavigne</person>
        </persons>
        <links>
          <link href="http://www.bsdcan.org/">The map is linked to from the home page.</link>
        </links>
      </event>
    </room>
    <room name="Out and About">
    </room>
    <room name="DMS 8161">
    </room>
    <room name="DMS 3102">
    </room>
  </day>
  <day date="2010-05-13" index="3">
    <room name="DMS 1160">
      <event id="209">
        <start>09:30</start>
        <duration>01:00</duration>
        <room>DMS 1160</room>
        <slug>keynote</slug>
        <title>The Microphone as Mirror</title>
        <subtitle>What the BSD community says about itself</subtitle>
        <track>Plenary</track>
        <type></type>
        <language>en</language>
        <abstract>Will Backman is the voice behind BSDTalk.</abstract>
        <description>Will has been running BSDTalk, a regular podcast, since December 2005.  Over this time, he has gained a unique insight into the BSD community and will share his observations with us.</description>
        <persons>
          <person id="136">Will Backman</person>
        </persons>
        <links>
          <link href="http://www.fosslc.org/drupal/content/microphone-mirror-what-bsd-community-says-about-itself">video</link>
          <link href="http://www.bsdcan.org/2010/audio/01%20The%20Microphone%20as%20Mirror.mp3">audio</link>
        </links>
      </event>
      <event id="175">
        <start>11:00</start>
        <duration>01:00</duration>
        <room>DMS 1160</room>
        <slug>clang</slug>
        <title>ClangBSD</title>
        <subtitle>Replacing gcc with clang as the FreeBSD system compiler</subtitle>
        <track>Hacking</track>
        <type>lecture</type>
        <language>en</language>
        <abstract>FreeBSD currently uses gcc as its system compiler. Because of a political decision on GPLv3 we are stuck with version 4.2.1. Recently a new possible candidate for system compiler arised - clang (based on LLVM). We are currently maintaining a branch of FreeBSD that uses clang as the system compiler for C/ObjC/C++. The talk aims to describe the history, current status and future possibilities of clang in FreeBSD as presented in the clangbsd branch.</abstract>
        <description>The system compiler is integral and absolutely necessary part of the FreeBSD operating system. We have used gcc for almost the whole life of FreeBSD. It supports all of the architectures we need, it provides some tweaks we added over the time and generally serves us quite well. Unfortunatelly gcc switched to GPLv3 which is incompatible with FreeBSD, as decided by core, thus we are stuck with quite old gcc version 4.2.1. There are other problems with gcc, mostly awkward dealing with upstream. A very similar story goes on with the assembler and linker.

At first a students project that grew into industry supported solution, mostly backed by Apple, the LLVM emerged. One of the LLVM's subprojects is a C/ObjC/C++ compiler. The whole package of LLVM+clang reached the state when it can compile basically all of FreeBSD and a branch of FreeBSD integrating clang into it was established and is being maintained. The other interesting LLVM subproject is llvm-mc, the assembler and dissasembler based on LLVM. There's also compiler-rt, a possible replacement for libgcc.

This talk aims to introduce you to the current state of clang/llvm on FreeBSD, what it can do, what are the advantages over gcc and what are the last missing pieces. At last I'd like to discuss the possibility of integrating clang into FreeBSD as the system compiler.
</description>
        <persons>
          <person id="124">Roman Div&#225;ck&#253;</person>
        </persons>
        <links>
          <link href="http://www.fosslc.org/drupal/content/clangbsd">video</link>
          <link href="http://www.bsdcan.org/2010/audio/01%20ClangBSD.mp3">audio</link>
        </links>
      </event>
      <event id="196">
        <start>13:00</start>
        <duration>01:00</duration>
        <room>DMS 1160</room>
        <slug></slug>
        <title>The New VVorld</title>
        <subtitle>Bjoern Zeeb (presenting) and Robert Watson</subtitle>
        <track>System Administration</track>
        <type>lecture</type>
        <language>en</language>
        <abstract>For over a decade, FreeBSD has supported lightweight OS virtualization through the Jail framework. The jail approach allows a single kernel to share multiple user
space installations, each with their own root user and management environment. Jail has been widely adopted by Internet service providers to achieve virtual machine
densities of hundreds or thousands of virtual instance, per server, but also for enterprise service virtualisation. However, a key limitation of the Jail technology
has been the one-IP-address-per-Jail constraint, a property of how Jail was integrated with the FreeBSD network stack. This talk describes exciting on-going work to
virtualise the FreeBSD network stack, giving each Jail to operate with its own virtual network interfaces, firewalls, traffic management, IPsec stack and forwarding
tables, and much more.</abstract>
        <description>What makes FreeBSD's virtualisation framework different from other approaches, such as fully virtualised hardware, and when is it appropriate? What are the design
principles and how are things implemented? How does it scale? Why could this approach be interesting to people doing R&amp;D, Internet Service Providers, and other
businesses? What interesting things can be done using the framework? How could you extend the framework for your needs, and what are our future plans?

This presentation will attempt to answer these questions to help you evaluate how to use FreeBSD jail-based virtualisation to save time and resources for your
business or research.</description>
        <persons>
          <person id="121">Bjoern A. Zeeb</person>
        </persons>
        <links>
          <link href="http://www.bsdcan.org/2010/audio/01%20The%20New%20VVorld.mp3">audio</link>
        </links>
      </event>
      <event id="201">
        <start>14:30</start>
        <duration>01:00</duration>
        <room>DMS 1160</room>
        <slug>packet</slug>
        <title>A new packet scheduling architecture for FreeBSD</title>
        <subtitle></subtitle>
        <track>Hacking</track>
        <type>lecture</type>
        <language>en</language>
        <abstract>Historically, FreeBSD has had two packet scheduling options:
AltQ, which can do output scheduling using the network card
as a transmission clock, and "dummynet", which was born as
a link emulator but also included one scheduling algorithm.
</abstract>
        <description>We have recently made an almost complete rewrite of dummynet 
to support multiple scheduling algorithms, so that users
can pick the ones that fit best their needs. In the process,
we also performed a thorough performance analysis of the
tool, so now users can make more informed choices on how
to configure their packet scheduling/shaping architecture
and on which tradeoffs are involved.

In this talk we will make the following contributions:
1. describe the internal architecture of the new version of
"dummynet", and the API used by the loadable packet schedulers;
2. give a "user view" of the new features made available by this
updated version of dummynet;
3. briefly discuss the theory behind packet scheduling, and
show how different solutions expose different tradeoffs
betweeen service properties, guarantees and run-time
complexity;
4. show a number of examples and experiments, running real code 
from the SVN tree, to demonstrate that the (apparently dry)
theory discussed in #3 has actual implications in practice.
</description>
        <persons>
          <person id="101">Luigi Rizzo</person>
        </persons>
        <links>
          <link href="http://www.bsdcan.org/2010/audio/01%20A%20new%20packet%20scheduling%20architect.mp3">audio</link>
          <link href="http://www.fosslc.org/drupal/content/new-packet-scheduling-architecture-freebsd">video</link>
        </links>
      </event>
      <event id="193">
        <start>16:00</start>
        <duration>01:00</duration>
        <room>DMS 1160</room>
        <slug></slug>
        <title>eXecute In Place support in NetBSD</title>
        <subtitle></subtitle>
        <track>Embedded</track>
        <type>lecture</type>
        <language>en</language>
        <abstract>Embedded products prefer smaller RAM to reduce the hardware cost.  XIP is a technique to execute programs directly from NOR FlashROMs without programs copied into RAM as page cache.</abstract>
        <description>It is realized with small changes in NetBSD because page cache management is already concentrated in single place called UBC, where all file data access (read() / write(), and mmap()) go through.  This paper explains the design and implementation of the changes made to the NetBSD kernel to support XIP.
</description>
        <persons>
          <person id="129">Masao Uebayashi</person>
        </persons>
        <links>
          <link href="http://www.bsdcan.org/2010/audio/01%20eXecute%20In%20Place%20support%20in%20NetBS.mp3">video</link>
        </links>
      </event>
    </room>
    <room name="DMS 1120">
      <event id="202">
        <start>11:00</start>
        <duration>01:00</duration>
        <room>DMS 1120</room>
        <slug></slug>
        <title>Consideration for the BSD Professional Exam</title>
        <subtitle></subtitle>
        <track>Certification</track>
        <type></type>
        <language>en</language>
        <abstract>This talk introduces the BSD Professional exam, including the back story about the exam, a description of the how the Job Task Analysis was created, what happens to the results, and how the exam objectives are created. </abstract>
        <description>A description of requirements for a "hands-on lab" will be presented, along with some possible scenarios for implementation.  An interactive discussion with the audience will help determine the eventual direction for some aspects of the exam.</description>
        <persons>
          <person id="133">Jim Brown</person>
        </persons>
        <links>
          <link href="http://www.fosslc.org/drupal/content/consideration-bsd-professional-exam">video</link>
        </links>
      </event>
      <event id="199">
        <start>13:00</start>
        <duration>01:00</duration>
        <room>DMS 1120</room>
        <slug></slug>
        <title>Security Implications of the Internet Protocol version 6 (IPv6)</title>
        <subtitle></subtitle>
        <track>Hacking</track>
        <type>lecture</type>
        <language>en</language>
        <abstract>Fernando Gont will discuss some of the results of a Security Assessment of the Internet Protocol version 6 (IPv6) carried out on behalf of the UK CPNI (United Kingdom's Centre for the Protection of National Infrastructure). He will explain some of the security implications arising from the protocol specifications themselves, and from a number of implementation strategies followed by some of the most popular IPv6 implementations (including KAME). He will describe ongoing efforts to mitigate the aforementioned issues, and will explain the different system knobs that are available in the different BSD-flavours to control different aspects of the IPv6 stack.</abstract>
        <description>The IPv6 protocol suite was designed to accommodate the present and future growth of the Internet, by providing a much larger address space than that of its IPv4 counterpart, and is expected to be the successor of the original IPv4 protocol suite. It has already been deployed in a number of production environments, and many organizations have already scheduled or planned its deployment in the next few years.

There are a number of factors that make the IPv6 protocol suite interesting from a security standpoint. Firstly, being a new technology, technical personnel has much less confidence with the IPv6 protocols than with their IPv4 counterpart, and thus it is more likely that the security implications of the protocols be overlooked when they are deployed. Secondly, IPv6 implementations are much less mature than their IPv4 counterparts, and thus it is very likely that a number of vulnerabilities will be discovered in them before their robustness can be compared to that of the existing IPv4 implementations. Thirdly, there is much less implementation experience with the IPv6 protocols than with their IPv4 counterpart, and &#8220;best current practices&#8221; for their implementation are not available. Fourthly, security products such as firewalls and NIDS&#8217;s (Network Intrusion Detection Systems) usually have less support for the IPv6 protocols than for their IPv4 counterparts.

While a number of papers have been published on the security aspects of the IPv6 protocol suite, they usually provide general discussion on the security implications of IPv6, but do not delve into much detail regarding the security implications of each of the mechanisms, header fields, and options of all the involved protocols.

There is a clear need to raise awareness about the security aspects and implications of the IPv6 protocol suite, to improve the confidence of both IPv6 implementers and the personnel working on the deployment of IPv6 in production environments.
</description>
        <persons>
          <person id="105">Fernando Gont</person>
        </persons>
        <links>
          <link href="http://www.fosslc.org/drupal/content/security-implications-ipv6">video</link>
        </links>
      </event>
      <event id="168">
        <start>14:30</start>
        <duration>01:00</duration>
        <room>DMS 1120</room>
        <slug></slug>
        <title>Developing an appliance starting with a general purpose operating system</title>
        <subtitle></subtitle>
        <track>Embedded</track>
        <type>lecture</type>
        <language>en</language>
        <abstract>Creating a specialized appliance using a general purpose operating system, using the roadmap for the FreeNAS revamp as an example. </abstract>
        <description>Using a general purpose operating system as the base for developing a specialized appliance is a challenging task. Using the roadmap for revamping FreeNAS as an example a number of topics will be covered.  

- How design goals impact the system
- How to manage project specific differences from the underlying base OS
- The benefits of starting with a general purpose OS
- The drawbacks of the same

Along the way the new features and benefits of the FreeNAS revamp will be explored.

Including, but not limited to:

An AMD64 version
Improved ZFS support
Support for optional packages/modules</description>
        <persons>
          <person id="66">Josh Paetzel</person>
        </persons>
        <links>
        </links>
      </event>
      <event id="183">
        <start>16:00</start>
        <duration>01:00</duration>
        <room>DMS 1120</room>
        <slug></slug>
        <title>Everything you need to know about cryptography in 1 hour</title>
        <subtitle></subtitle>
        <track>Hacking</track>
        <type>lecture</type>
        <language>en</language>
        <abstract>Cryptography is hard.  It usually takes many years of study before it is possible to make any serious contribution to the field; and even expert cryptographers often have flaws discovered in their work.

However, merely _using_ cryptography requires far less expertise.  In this talk, I will cover everything most software developers will ever need to know about cryptography -- starting from the very beginning -- along with (time allowing) some of the reasons behind the recommendations I provide.</abstract>
        <description>Specific topics covered will include symmetric vs. asymmetric encryption; symmetric vs. asymmetric signatures; block ciphers; block cipher modes; key lengths; message authentication codes; hash algorithms; password handling; padding for asymmetric encryption; padding for asymmetric signing; Diffie-Hellman groups; and side channel attacks.  Specific attacks will be discussed only to the extent of mentioning that they exist and explaining how cryptography-using systems should be designed to thwart them.</description>
        <persons>
          <person id="43">Colin Percival</person>
        </persons>
        <links>
        </links>
      </event>
    </room>
    <room name="DMS 1140">
      <event id="173">
        <start>11:00</start>
        <duration>01:00</duration>
        <room>DMS 1140</room>
        <slug></slug>
        <title>PC-SYSINSTALL</title>
        <subtitle>A new system installer backend for PC-BSD &amp; FreeBSD</subtitle>
        <track>System Administration</track>
        <type>lecture</type>
        <language>en</language>
        <abstract>This talk will cover many of the ways in which the new system installation backend for PC-BSD 8.0 fixes many common issues, and adds a host of new features, such as choosing between PC-BSD or FreeBSD installations, support for ZFS, gmirror, geli and more. We will also discuss some of the design choices made for the new backend, along with details on usage when installing with some of the new features. </abstract>
        <description>Since its very first beta many years ago, PC-BSD has been using a custom-built installer routine, which consisted of a graphical user interface, tied into some scripts which performed the actual installation process of the system. While the process worked reasonably well, it lacked many important features which would become desired and critical down the road. Features such as automated installation, an independent installer backend with interchangeable front-ends, support for advanced custom partitioning, and full error logging. In addition to these features, many times the idea had been brought up about enabling the new installer to also support traditional FreeBSD installations. This could be used as a way for users to bypass regular &#8220;sysinstall&#8221; and install using some new features such as ZFS, Encryption, and Mirroring.

Over the course of 2009 this new installer (pc-sysinstall) has been in development and is now in production in the latest version of PC-BSD, 8.0. This talk will cover some of the new features and direct usage of the backend, including support for advanced partitioning, choosing between installing FreeBSD or PC-BSD, ZFS root support, disk encryption and more. </description>
        <persons>
          <person id="79">Kris Moore</person>
        </persons>
        <links>
          <link href="http://www.fosslc.org/drupal/content/pc-sysinstall">video</link>
          <link href="http://www.bsdcan.org/2010/audio/01%20PC-SYSINSTALL.mp3">audio</link>
        </links>
      </event>
      <event id="172">
        <start>13:00</start>
        <duration>01:00</duration>
        <room>DMS 1140</room>
        <slug></slug>
        <title>Puffy At Work -- Getting Code Right And Secure, The OpenBSD Way</title>
        <subtitle>Secure programming is simple: Don't make mistakes.</subtitle>
        <track>Invited Talks</track>
        <type>lecture</type>
        <language>en</language>
        <abstract>Secure programming is simple: Don't make mistakes.

Now of course that doesn't work out in practice. But one can get close. Security is mostly a side effect of quality. We'll show you how to write good, simple, high quality code, and what not to do.

On top, if you account for own failure and apply techniques like privilege dropping or privilege separation, chances of exploitable bugs are low.
And the best part: you don't need to waste time at color-of-choice-hat conferences. </abstract>
        <description>Secure programming is simple: Don't make mistakes.

Now of course that doesn't work out in practice. But one can get close. Security is mostly a side effect of quality. We'll show you how to write good, simple, high quality code, and what not to do.

On top, if you account for own failure and apply techniques like privilege dropping or privilege seperation, chances of exploitable bugs are low.
And the best part: you don't need to waste time at color-of-choice-hat conferences. </description>
        <persons>
          <person id="127">Henning Brauer</person>
          <person id="125">Sven Dehmlow</person>
        </persons>
        <links>
          <link href="http://quigon.bsws.de/papers/aalborg2009/">Slides</link>
          <link href="http://www.bsdcan.org/2010/audio/01%20Puffy%20At%20Work%20--%20Getting%20Code%20Rig.mp3">audio</link>
        </links>
      </event>
      <event id="197">
        <start>14:30</start>
        <duration>01:00</duration>
        <room>DMS 1140</room>
        <slug></slug>
        <title>ECDYSIS: OPEN-SOURCE NAT64</title>
        <subtitle>Implementation in OpenBSD PF</subtitle>
        <track>System Administration</track>
        <type>lecture</type>
        <language>en</language>
        <abstract>The Ecdysis project's goal is to develop open-source implementations of an IPv4/IPv6 gateway that
run on open-source operating systems such as the various BSD flavours and Linux. The gateway is
comprised of two distinct modules: the DNS64 and the NAT64. The DNS64 module was developed
by modifying two open-source DNS servers: Bind and Unbound. The NAT64 module was
developed by modifying pf (the firewall and NAT code in the OpenBSD kernel, which is used also
in other BSD variants) and Netfilter (the firewall and NAT code in the Linux kernel). As part of the
development process, stand-alone implementations of DNS64 and NAT64 were developed for
experimentation purposes. They have also been made available under open-source licenses in the
hope that others will find them useful in their own experimentation endeavours. The project is
funded by the NLnet Foundation and Viag&#233;nie.
</abstract>
        <description>IPv4 and IPv6 networks are &#8220;incompatible.&#8221; The IETF recommendation has usually been to rely on
dual-stack deployment: have both networks coexist until IPv6 takes over IPv4. However, IPv6
growth has been much slower than anticipated. Therefore, new IPv6-only deployments face an
interesting challenge, that of communicating with the predominantly IPv4-only rest of the world. A
similar problem is encountered when legacy IPv4-only devices need to reach the IPv6 Internet.
Translation between IPv4 and IPv6 is one framework engineered within the IETF as a solution to
the problem of IPv6 transition.

This talk will focus on aspects of interest to the BSD community:
&#8226; An overview of the DNS64 and NAT64 protocols.
&#8226; An overview of the DNS64 implementations in Bind and Unbound.
&#8226; A detailed analysis of the kernel-space NAT64 implementation in pf.
&#8226; A discussion of operational and deployment issues, as well as lessons learned while running
NAT64.</description>
        <persons>
          <person id="131">Jean-Philippe Dionne</person>
        </persons>
        <links>
          <link href="http://ecdysis.viagenie.ca/">Ecdysis Project Page</link>
          <link href="http://www.bsdcan.org/2010/audio/01%20ECDYSIS_%20OPEN-SOURCE%20NAT64.mp3">audio</link>
        </links>
      </event>
      <event id="185">
        <start>16:00</start>
        <duration>01:00</duration>
        <room>DMS 1140</room>
        <slug></slug>
        <title>Enhanced compatibility through device mapping</title>
        <subtitle>lying to the drivers for fun and profit</subtitle>
        <track>Hacking</track>
        <type>lecture</type>
        <language>en</language>
        <abstract>An easy way to support new hardware that lacks support in the driver, but is similar enough to old hardware, is presented.  A generic means of matching hardware, in a bus independent manner, is used to instruct the bus layer to lie about the plug and play properties of a device so as trick the driver into thinking the device is of a different, supported type.  Compatible hardware will then work with this driver.  Additional application for the matching or the mapping technology is discussed.</abstract>
        <description>For years, new hardware has been released after FreeBSD does its releases.  This new hardware often times is upwardly compatible with the prior generation of the hardware.  Many times, the drive writers add support for this new hardware by having the driver treat it just like earlier versions of the hardware, possibly with additional capabilities.  Today, FreeBSD users need to recompile the kernel or driver module to support this new hardware.  A generic mapping capability will allow users of these devices to use them, possibly without the new features, until the drivers can be updated.  There are also hooks in the system to allow users to 'downgrade' newer hardware when driver bugs prevent the usage of newer features of a card as well.  Buses in the system cooperate with this mapping system by providing caching the plug and play data used to match devices and feeding that data to drivers bidding on a device.  By hooking the mapping layer in at this point, buses can implement the mapping transparently to client drivers.  This reduces the amount of work necessary to implement the feature because there's a relatively small number of bus drivers compared to the number of client drivers in the system.

In addition to providing a means to map the plug and play data used to match devices, this matching portin of this software also allows for other features to be implemented based on the mapping.  Since location is included in this data, wiring devices to a specific location can be implemented with this method.  New quirks can be added at run time, and can be more selective about which devices are matched that has traditionally been available.

This paper explores the current implementation, as well as outlines additional applications for the technology.
</description>
        <persons>
          <person id="31">Warner Losh</person>
        </persons>
        <links>
          <link href="http://www.fosslc.org/drupal/content/enhanced-compatibility-through-device-mapping">video</link>
          <link href="http://www.bsdcan.org/2010/audio/01%20Enhanced%20compatibility%20through%20de.mp3">audio</link>
        </links>
      </event>
    </room>
    <room name="DMS 1110">
    </room>
    <room name="Patty Boland's">
    </room>
    <room name="Royal Oak Pub">
    </room>
    <room name="Out and About">
    </room>
    <room name="DMS 8161">
      <event id="206">
        <start>12:00</start>
        <duration>01:30</duration>
        <room>DMS 8161</room>
        <slug>bsda1</slug>
        <title>BSDA</title>
        <subtitle>BSD Certification</subtitle>
        <track>Exams</track>
        <type>other</type>
        <language>en</language>
        <abstract>Take the BSDA certification.</abstract>
        <description>The BSD Certification Group Inc. is a non-profit organization committed to creating and maintaining a global certification standard for system administration on BSD based operating systems.

YOU MUST register and pay for this event.  See the link for details.</description>
        <persons>
          <person id="10">Dru Lavigne</person>
        </persons>
        <links>
          <link href="https://register.bsdcertification.org//register/events/bsdcan-2010">Register here</link>
        </links>
      </event>
    </room>
    <room name="DMS 3102">
    </room>
  </day>
  <day date="2010-05-14" index="4">
    <room name="DMS 1160">
      <event id="182">
        <start>10:00</start>
        <duration>01:00</duration>
        <room>DMS 1160</room>
        <slug></slug>
        <title>FreeBSD Development for Smarties</title>
        <subtitle>The quest for a better kernel development environment</subtitle>
        <track>Hacking</track>
        <type>lecture</type>
        <language>en</language>
        <abstract>Developing good code is hard. Developing good operating system code is harder
still. This talk will cover in as concise and complete a manner as possible,
the information obtained during my quest for a better FreeBSD kernel development
environment.</abstract>
        <description>My work on the FreeBSD TCP stack ( [1](http://caia.swin.edu.au/urp/newtcp/) , [2](http://caia.swin.edu.au/freebsd/etcp09/) , [3](http://www.bsdcan.org/2009/schedule/events/121.en.html) ) involves a great deal of time spent investigating behaviour within the kernel. Becoming frustrated with my development cycle, I started researching and creating a hardware and software development environment that would improve my productivity. I found that so much of the really useful information came from non-authoritative sources scattered around the Internet and from talking with other developers. This talk attempts to collate everything into a single place, with the aim of lowering the barrier to entry for kernel hacking by making useful information more accessible.

Covering everything from hardware considerations to PXE booting and entry level use of KGDB, this talk aims to arm budding to intermediate FreeBSD developers alike with the information and tools required to code more correctly and efficiently than they otherwise might have been able to using more primitive means.

Note that the paper this talk is based on is far from a comprehensive reference yet, and I welcome all suggestions for improvement. My goal is to get the information incorporated into a more official FreeBSD documentation source (e.g. the [FreeBSD developer's handbook](http://www.freebsd.org/doc/en/books/developers-handbook/) ) once it has reached critical mass.</description>
        <persons>
          <person id="82">Lawrence Stewart</person>
        </persons>
        <links>
          <link href="http://caia.swin.edu.au/">Centre for Advanced Internet Architectures</link>
          <link href="http://www.fosslc.org/drupal/content/freebsd-development-smarties">video</link>
          <link href="http://www.bsdcan.org/2010/audio/01%20FreeBSD%20Development%20for%20Smarties.mp3">audio</link>
        </links>
      </event>
      <event id="194">
        <start>11:30</start>
        <duration>01:00</duration>
        <room>DMS 1160</room>
        <slug></slug>
        <title>Maintaining a Customized FreeBSD Distribution</title>
        <subtitle></subtitle>
        <track>System Administration</track>
        <type>lecture</type>
        <language>en</language>
        <abstract>FreeBSD works great for many tasks out of the box.  As an open source operating system, FreeBSD can be customized to optimally perform specialized tasks.  This talk will cover some of the nuts and bolts of managing a customized version of FreeBSD.  It is aimed at the server market rather than the embedded space.  Topics will include strategies for maintaining local patches to the source tree, deploying unattended installs, and upgrading the OS version.</abstract>
        <description></description>
        <persons>
          <person id="5">John Baldwin</person>
        </persons>
        <links>
          <link href="http://www.fosslc.org/drupal/content/maintaining-customized-freebsd-distribution">video</link>
          <link href="http://www.bsdcan.org/2010/audio/01%20Maintaining%20a%20Customized%20FreeBSD.mp3">audio</link>
        </links>
      </event>
      <event id="198">
        <start>13:30</start>
        <duration>01:00</duration>
        <room>DMS 1160</room>
        <slug>jbuild</slug>
        <title>jbuild</title>
        <subtitle>next generation build tool for FreeBSD</subtitle>
        <track>Hacking</track>
        <type>lecture</type>
        <language>en</language>
        <abstract>jbuild - next generation build tool for FreeBSD
===============================================

This presentation will discuss a modified
version of the FreeBSD make(1) utility
named "jbuild".  jbuild was originally
developed by FreeBSD developer, John Birrell,
to solve large scale software build issues
by improving the dependency tracking
of make(1).  jbuild improves dependency tracking by tracing all 
file system reads and writes by programs invoked by
fork().  This traced data is used to augment
the dependency tracking in make(1).

This presentation will be an in-depth technical presentation
of jbuild, and will discuss some possible ways in 
which it can be used to improve the software build
of FreeBSD.

</abstract>
        <description>jbuild - next generation build tool for FreeBSD
===============================================

The make(1) utility has been part of the FreeBSD base
system since the beginning of the project.  Before FreeBSD,
the make utility was included with PWB/Unix 1.0
In FreeBSD, one of make(1)'s most important uses is used to build 
all the software that comprises the FreeBSD base system (userland and kernel).

Over time, the size of the FreeBSD codebase has grown, as has
the number of architectures that it can build on.
The scale of the software build requirements for FreeBSD has exposed some
fundamental limitations in make(1) and the core sys.mk Makefile rules
used to build FreeBSD.  Some of the problems that end-users see due to these
limitations include:
  -&gt; Parallel builds with very high values of -j [n] often fail.
  -&gt; "make universe" rebuilds a lot of the same software multiple times,
     and takes a very long time.  Consequently most FreeBSD developers
     do not test their code against this target, so sometimes code changes are introduced
     which break the build on less frequently used machine architectures.

For the FreeBSD project, these problems are annoying, but may be somewhat tolerable.
However, for commercial products that are derived from FreeBSD, with much
larger codebases, these problems can result in huge productivity losses.

FreeBSD developer John Birrell saw many of these problems in the software build at 
his employer, Juniper Networks.  John decided to address some
of these fundamental software build problems by:
      (1) modifying FreeBSD's make(1) to trace all programs invoked from make(1) 
          via fork(), in order to log all file system read and write calls
      (2) using this tracing information to generate dependency
          information which could be used by make(1)
      (3) writing core Makefile rules in sys.mk to make it easier to add new machine
          architectures to the build, and make it easy to test
          compilation of code across multiple architectures

John implemented his changes as a fork of the make(1) utility,
named "build", and later "jbuild".  The code for jbuild is available
in a branch of the FreeBSD SVN repository.

This presentation will discuss some of technical details of
jbuild, and also John's vision for how this utility could
be applied to improving the FreeBSD build.</description>
        <persons>
          <person id="132">Craig Rodrigues</person>
        </persons>
        <links>
          <link href="http://www.fosslc.org/drupal/category/event/bsdcan2010?page=1">video</link>
        </links>
      </event>
      <event id="195">
        <start>15:00</start>
        <duration>01:00</duration>
        <room>DMS 1160</room>
        <slug>journaling</slug>
        <title>Journaled Soft-Updates</title>
        <subtitle>Adding "journaling lite'' to soft  updates and its incorporation into the FreeBSD fast filesystem</subtitle>
        <track>Hacking</track>
        <type>lecture</type>
        <language>en</language>
        <abstract>This talk describes the work to add ``journaling lite'' to soft 
updates and its incorporation into the FreeBSD fast filesystem.</abstract>
        <description>Because soft updates prevent most inconsistencies, the journaling
need only deal with tracking those inconsistencies that soft updates
fails to address.  Specifically, the journal contains the information
needed to recover the block and inode resources that have been freed
but whose freed status failed to make it to disk before a system
failure.  After a crash, a variant of the venerable fsck program
runs through the journal to identify and free the lost resources.
Only if a corruption of the log is detected is it necessary to run
background fsck.  The journal is tiny, 16Mb is usually enough
independent of filesystem size.  Although journal processing needs
to be done before restarting, the processing time is typically just
a few seconds and in the worst case a minute.  It is not necessary
to build a new filesystem to use soft-updates journalling.  The
addition or deletion of soft-updates journaling to existing FreeBSD
fast filesystems is done using the tunefs program.</description>
        <persons>
          <person id="130">Kirk McKusick</person>
        </persons>
        <links>
          <link href="http://www.mckusick.com/BSDCan/bsdcan2010.pdf">Paper for Talk</link>
          <link href="http://www.fosslc.org/drupal/content/journaled-soft-updates">video</link>
          <link href="http://www.bsdcan.org/2010/audio/01%20Journaled%20Soft-Updates.mp3">audio</link>
        </links>
      </event>
      <event id="188">
        <start>16:00</start>
        <duration>01:00</duration>
        <room>DMS 1160</room>
        <slug>wipo</slug>
        <title>Works in Progress Sessions</title>
        <subtitle>Short stories from projects around the world</subtitle>
        <track>Plenary</track>
        <type>lecture</type>
        <language>en</language>
        <abstract>For the fifth year running, BSDCan will have a WIP (Works In Progress) session, with presentations on diverse topics.</abstract>
        <description>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 &lt;wip@bsdcan.org&gt; 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 9, 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 13 at 11:59pm GMT. The session chair this year is Robert Watson.</description>
        <persons>
          <person id="33">Robert Watson</person>
        </persons>
        <links>
          <link href="http://www.bsdcan.org/2010/audio/01%20Works%20in%20Progress%20Sessions.mp3">audio</link>
        </links>
      </event>
      <event id="189">
        <start>17:00</start>
        <duration>00:30</duration>
        <room>DMS 1160</room>
        <slug>close</slug>
        <title>Closing session</title>
        <subtitle>The wrap up</subtitle>
        <track>Plenary</track>
        <type>lecture</type>
        <language>en</language>
        <abstract>The closing</abstract>
        <description>Fun.  Games.  Awards.</description>
        <persons>
          <person id="1">Dan Langille</person>
          <person id="33">Robert Watson</person>
        </persons>
        <links>
          <link href="http://www.bsdcan.org/2010/audio/01%20Closing%20Session%20(and%20last%20bit%20of.mp3">audio</link>
        </links>
      </event>
    </room>
    <room name="DMS 1120">
      <event id="170">
        <start>10:00</start>
        <duration>01:00</duration>
        <room>DMS 1120</room>
        <slug>packages</slug>
        <title>Introducing the FreeBSD package building cluster</title>
        <subtitle>Dude, where's my packages?</subtitle>
        <track>System Administration</track>
        <type></type>
        <language>en</language>
        <abstract>Introducing the FreeBSD package building cluster, or, "Dude, where's my packages?"</abstract>
        <description>The FreeBSD ports management team (portmgr) maintains a cluster of machines to build packages from individual ports.  This talk attempts to explain the technical challenges involved.

 - Introduction: the purpose of the build cluster
 - Introduction: the dispatch machine 'pointyhat'
 - Introduction: the package build nodes
 - Release builds, incremental builds, and experimental builds
 - What is done with the results of package builds
 - Discussion of the scheduling algorithm
 - Performance characterization of individual nodes
 - Common problems seen on the nodes
 - Common problems seen on pointyhat
 - Notes on characterizing the overall performance
</description>
        <persons>
          <person id="26">Mark Linimon</person>
        </persons>
        <links>
          <link href="http://www.fosslc.org/drupal/content/introducing-freebsd-package-building-cluster">video</link>
        </links>
      </event>
      <event id="186">
        <start>11:30</start>
        <duration>01:00</duration>
        <room>DMS 1120</room>
        <slug></slug>
        <title>Porting hwpmc to non x86 platforms</title>
        <subtitle></subtitle>
        <track>Hacking</track>
        <type>lecture</type>
        <language>en</language>
        <abstract>Hardware Performance Monitoring Counters provide programmers and systems integrators with the ability to gather accurate, low level, information about the performance of their code, both at the user and kernel levels.  Until recently these counters were only available on Intel and AMD chips but they have now been made available on alternate, embedded, architectures such as MIPS and XScale.  This talk will cover porting support for the hwpmc(4) driver and associated libraries to non-x86 architectures as well as give details about how the counters provided on these new architectures differ from those available on the x86.</abstract>
        <description>Hardware Performance Monitoring Counters provide programmers and systems integrators with the ability to gather accurate, low level, information about the performance of their code, both at the user and kernel levels.  Until recently these counters were only available on Intel and AMD chips but they have now been made available on alternate, embedded, architectures such as MIPS and XScale.  This talk will cover porting support for the hwpmc(4) driver and associated libraries to non-x86 architectures as well as give details about how the counters provided on these new architectures differ from those available on the x86.

A brief outline:

*) History 

The history of support for performance monitoring counters will be described, from the early, limited sets on Pentium processors to the much more rich set of counters on modern hardware.

*) Motivation

Why these counters are important and how they are used in the real world to help to improve the performance of running software.

*) Driver and Library API and Architecture

A high level overview of how the driver and user level API interact giving details on where changes need to be made to port the driver to newer hardware and to make sure that it is up to date.

*) MIPS Counters

Specific examples from the new MIPS driver which is being developed for FreeBSD.

*) Conclusions and Questions

</description>
        <persons>
          <person id="20">George Neville-Neil</person>
        </persons>
        <links>
          <link href="http://www.fosslc.org/drupal/content/porting-hwpmc-non-x86-platforms">video</link>
        </links>
      </event>
      <event id="174">
        <start>13:30</start>
        <duration>01:00</duration>
        <room>DMS 1120</room>
        <slug></slug>
        <title>Wireless mesh networks under FreeBSD</title>
        <subtitle></subtitle>
        <track>Hacking</track>
        <type>lecture</type>
        <language>en</language>
        <abstract>With the advent of low cost wireless chipsets, wireless mesh networks became much more attractive for both companies, governments, and the general consumer. This talk will describe the FreeBSD implementation of 802.11s.</abstract>
        <description>Wireless mesh networks are being used extensively since the popularization of the 802.11 wireless technologies, but usually they worked with the help of layer 3 routing technologies. Since 802.11 didn't provide any kind of support for wireless mesh networks, in 2004, IEEE created the Task Group s (TGs) to create a new amendment to 802.11 which would define the operation of a wireless mesh network using existing 802.11 hardware and having a routing protocol work at layer 2. Later, the amendment also included provisions for mesh authentication, encryption, link management, bridging mesh networks with other types of networks, and channel reservation.

On this lecture I will talk about the FreeBSD implementation of 802.11s that's available in version 8.0 and beyond.
This work was sponsored by The FreeBSD Foundation.</description>
        <persons>
          <person id="126">Rui Paulo</person>
        </persons>
        <links>
          <link href="http://www.fosslc.org/drupal/content/wireless-mesh-networks-under-freebsd">video</link>
        </links>
      </event>
    </room>
    <room name="DMS 1140">
      <event id="200">
        <start>10:00</start>
        <duration>01:00</duration>
        <room>DMS 1140</room>
        <slug>dummynet</slug>
        <title>Porting dummynet to Linux and Windows</title>
        <subtitle>(and to userland)</subtitle>
        <track>Hacking</track>
        <type>lecture</type>
        <language>en</language>
        <abstract>Porting userland code to different platforms is a common
practice. Porting kernel code is much less common for many
reasons, including the absence of common APIs, a fact which
often prevents code reuse and suggest complete rewrites.
There are however areas (including pieces of the network
stack) where such differences are less important and porting
becomes attractive. Furthermore, writing code with portability
in mind also helps running kernel code in user-space,
which is a huge help in testing and performance analysis.
    In this talk we will discuss our experience in porting the
ipfw and dummynet subsystems to Linux and Windows.  We will
describe how we dealt with the OS-specific features in the
subsystems we used: packet representation, locking, timers
and other OS services, compilers and build environments. 
The experience helped us a lot in the development of the
new (ipfw3) version of these two subsystems, which runs
almost the same code on all three platforms.
</abstract>
        <description></description>
        <persons>
          <person id="101">Luigi Rizzo</person>
        </persons>
        <links>
          <link href="http://info.iet.unipi.it/~luigi/bsdcan10port.pdf">slides</link>
          <link href="http://www.fosslc.org/drupal/content/porting-dummynet-linux-and-windows">video</link>
          <link href="http://www.bsdcan.org/2010/audio/01%20Porting%20dummynet%20to%20Linux%20and%20Win.mp3">audio</link>
        </links>
      </event>
      <event id="171">
        <start>11:30</start>
        <duration>01:00</duration>
        <room>DMS 1140</room>
        <slug></slug>
        <title>Flattened Device Tree on FreeBSD.</title>
        <subtitle></subtitle>
        <track>Embedded</track>
        <type>lecture</type>
        <language>en</language>
        <abstract>This talk covers the development work on providing FreeBSD with the ability to use Flattened Device Tree (FDT) technology, which allows for describing hardware resources of a computer system and their dependencies in a platform-neutral and portable way. </abstract>
        <description>The primary consumer of this functionality are embedded FreeBSD platforms (ARM, AVR32, MIPS, PowerPC) where a lot of designs are based on similar silicon chips, but have different assignment of pins, memory layout, addresses bindings, interrupts routing and other resources.

Configuration data, which cannot be self discovered in run-time, has to be supplied from external source. The concept of flattened device trees is a platform and architecture independent approach to resolve such problems. The concept is inherited from Open Firmware IEEE 1275 device-tree notion, and has been successfully adopted by the embedded industry (for example, it is a basis for Power.org embedded platform reference specification, ePAPR).

Starting with an overview of the technology, tools and existing conventions, the talk explains all major design decisions, and presents development steps taken during its course.  Particular examples of platforms converted to the FDT approach are given (Freescale embedded PowerPC, Marvell embedded ARM), and finally a summary of the project is presented covering benefits for the FreeBSD, the current state of work and possible future directions.

Work on this project has been sponsored by the FreeBSD Foundation.</description>
        <persons>
          <person id="38">Rafal Jaworowski</person>
        </persons>
        <links>
          <link href="http://wiki.freebsd.org/FlattenedDeviceTree">http://wiki.freebsd.org/FlattenedDeviceTree</link>
          <link href="http://www.bsdcan.org/2010/audio/01%20Flattened%20Device%20Tree%20on%20FreeBSD.mp3">audio</link>
        </links>
      </event>
      <event id="169">
        <start>13:30</start>
        <duration>01:00</duration>
        <room>DMS 1140</room>
        <slug></slug>
        <title>Porting HPC Tools to FreeBSD</title>
        <subtitle></subtitle>
        <track>Hacking</track>
        <type>lecture</type>
        <language>en</language>
        <abstract>Since 2001 we have used FreeBSD as a high performance computing (HPC) cluster operating system. In the process we have ported a number of HPC tools including Ganglia, Globus, Open MPI, and Sun Grid Engine. 
</abstract>
        <description>In this talk we will discuss the process of porting these types of applications and issues encountered while maintaining these tools. In addition to generally issues of porting code from one Unix-like operating system to another, there are several type of porting common to many HPC infrastructure codes which we will explore. Beyond porting, we will discuss how the ports collection aids our use of HPC applications and ways we think overall integration could be improved.</description>
        <persons>
          <person id="122">Brooks Davis</person>
        </persons>
        <links>
          <link href="http://www.bsdcan.org/2010/audio/01%20Porting%20HPC%20Tools%20to%20FreeBSD.mp3">audio</link>
        </links>
      </event>
    </room>
    <room name="DMS 1110">
    </room>
    <room name="Patty Boland's">
    </room>
    <room name="Royal Oak Pub">
    </room>
    <room name="Out and About">
    </room>
    <room name="DMS 8161">
      <event id="207">
        <start>12:00</start>
        <duration>01:30</duration>
        <room>DMS 8161</room>
        <slug>bsda2</slug>
        <title>BSDA</title>
        <subtitle>BSD Certification</subtitle>
        <track>Exams</track>
        <type>other</type>
        <language>en</language>
        <abstract>Take the BSDA certification.</abstract>
        <description>The BSD Certification Group Inc. is a non-profit organization committed to creating and maintaining a global certification standard for system administration on BSD based operating systems.

YOU MUST register and pay for this event.  See the link for details.</description>
        <persons>
          <person id="10">Dru Lavigne</person>
        </persons>
        <links>
          <link href="https://register.bsdcertification.org//register/events/bsdcan-2010">Register here</link>
        </links>
      </event>
    </room>
    <room name="DMS 3102">
    </room>
  </day>
  <day date="2010-05-15" index="5">
    <room name="DMS 1160">
    </room>
    <room name="DMS 1120">
    </room>
    <room name="DMS 1140">
    </room>
    <room name="DMS 1110">
    </room>
    <room name="Patty Boland's">
    </room>
    <room name="Royal Oak Pub">
    </room>
    <room name="Out and About">
      <event id="211">
        <start>09:30</start>
        <duration>06:00</duration>
        <room>Out and About</room>
        <slug>tourist</slug>
        <title>Tourist stuff</title>
        <subtitle>Spend some time exploring</subtitle>
        <track>Social</track>
        <type>other</type>
        <language>en</language>
        <abstract>Explore Ottawa</abstract>
        <description>Ottawa has a large number of great attractions.  Spend some time looking around and explore.  Spend as much time as you want with us, or leave early.  We will walk everywhere we go.  Wear sensible shoes. Bring your camera.  We'll probably have lunch somewhere along the way.  Consider the weather (sun block, rain coat, umbrella, swim suit).

We will depart from the National Memorial at 9:30 AM *if the weather is good*.

If it's raining, we'll assemble in the lobby of Residence instead (same time).

If you have ideas/suggestions/plans, please let others know via the forum.  From that list, we'll decide what to do on the day.</description>
        <persons>
          <person id="1">Dan Langille</person>
        </persons>
        <links>
          <link href="http://maps.google.ca/maps/ms?ie=UTF8&amp;hl=en&amp;t=h&amp;msa=0&amp;msid=115376119403106089489.000468dc2232e50072e40&amp;ll=45.423094,-75.690479&amp;spn=0.029759,0.055189&amp;z=14&amp;iwloc=000468dc2480096f4f9f3">National Memorial</link>
          <link href="http://maps.google.ca/maps/ms?ie=UTF8&amp;hl=en&amp;t=h&amp;msa=0&amp;msid=115376119403106089489.000468dc2232e50072e40&amp;ll=45.424058,-75.690479&amp;spn=0.029759,0.055189&amp;z=14&amp;iwloc=000468dc248009063acf6">Residence</link>
          <link href="http://www.bsdcan.org/phorum/list.php?f=9">Forum</link>
        </links>
      </event>
    </room>
    <room name="DMS 8161">
    </room>
    <room name="DMS 3102">
      <event id="210">
        <start>09:30</start>
        <duration>06:30</duration>
        <room>DMS 3102</room>
        <slug>bsdp</slug>
        <title>BSDP planning day</title>
        <subtitle></subtitle>
        <track>Certification</track>
        <type>workshop</type>
        <language>en</language>
        <abstract>BSDP planning day</abstract>
        <description>BSDP planning day</description>
        <persons>
          <person id="10">Dru Lavigne</person>
        </persons>
        <links>
        </links>
      </event>
    </room>
  </day>
</schedule>

