10th European BSD Conference: Oct 6-9 2011, Maarssen, The Netherlands

EuroBSDcon 2011 Talks

Schedule (preliminary)

Saturday - October 8th 2011

Time Track 1 Track 2 Devsummit Track
08:30-09:20 Registration - Coffee - Sandwiches
09:20-09:30 Opening
09:30-10:30 Keynote
What must we learn from Diginotar (and other data breaches)
Hans van der Looy
10:30-11:00 Coffee
11:00-11:45 Improving the performance of Open vSwitch
Luigi Rizzo, Marta Carbone, Gaetano Catalli
[paper]
Testing NetBSD Automagically
Martin Husemann
[paper]
11:00-11:20
FreeBSD/sparc64 - Marius Strobl
11:20-11:40
NAND Flash Support in FreeBSD - Andrew Turner
11:40-12:00
pefs: A Stacked Cryptographic File System for FreeBSD - Gleb Kurtsou
11:45-12:30 An update on IPv6 in FreeBSD
Björn Zeeb
[slides]
OpenBSD PF's 10th anniversary
Henning Brauer, Ryan McBride
12:00-12:20
Towards a Portable Build Environment - Marcel Moolenaar
12:20-12:30
netmap - Luigi Rizzo
12:30-13:30 Lunch
13:30-14:15 Webcamd - a modern userspace Linux kernel driver framework for FreeBSD
Hans Petter Selasky
[slides]
NPF: a new packet filter
Zoltan Arnold Nagy, Mindaugas Rasiukevicius
13:30-14:00
Unified Bus and Machine Independent DMA Mapping Interface Implementation - Marcel Moolenaar
14:00-14:20
pkgng - Baptiste Daroussin
14:15-15:00 FreeBSD + nginx
Sergey A. Osokin
[slides]
OpenBSD's New Suspend and Resume Framework
Paul Irofti
[paper]
14:20-14:40
New Options Framework - Baptiste Daroussin
14:40-15:00
Chromium - Rene Ladan
15:00-15:30 Tea
15:30-16:15 PBI reimplementation for FreeBSD and PC-BSD 9
Kris Moore
[paper]
Virtualization under *BSD: the case of Xen
Jean-Yves Migeon
[slides]
15:30-15:50
Converting Different Document Formats - Benedict Reuschling
15:50-16:10
Google Summer of Code 2011 - Brooks Davis
16:10-16:15
Closing
16:15-17:00 History of BSD
Marshall Kirk McKusick
BSD exams
Dru Lavigne
17:00-18:00 Free
18:00-22:00 Social event

Sunday - October 9th 2011

Time Track 1 Track 2 Track 3
08:30-09:20 Registration - Coffee - Sandwiches
09:20-09:30 Opening
09:30-10:30 Keynote
The eight-fold path to reliable operating systems.
Herbert Bos
10:30-11:00 Coffee
11:00-11:45 Capsicum: Practical Capabilities for UNIX
Dr Robert N. M. Watson
[paper]
The MPLS framework in OpenBSD
Claudio Jeker
[paper]
Beastie Meets Raccoon: MINIX 3 as a BSD
Ben Gras, Gianluca Guida, Arun Thomas, Thomas Veerman
[paper]
11:45-12:30 Exploring FreeNAS 8
James T. Nixon III
[paper]
Fossilizing NetBSD: The road to modern version control
Jörg Sonnenberger
[paper]
BSD Multiplicity: An applied survey of BSD multiplicity and virtualization strategies from chroot to BHyVe
Michael Dexter
12:30-13:30 Lunch
13:30-14:15 The Obsoletion of the OS
Andrew Pantyukhin
OpenBSD SCSI Evolution
Ken Westerback
[paper]
Sendmail - History and design
Eric Allman
14:15-15:00 Highly Available Storage for FreeBSD
Pawel Jakub Dawidek
Recent developments in OpenSSH
Damien Miller
[slides]
BSD Certification: How to Create a Psychometrically Valid Certification Examination
Dru Lavigne
[paper]
15:00-15:30 Tea
15:30-16:15 Improving System Management With ZFS
Brooks Davis
[slides]
OpenBSD/sun4v: Porting OpenBSD to Sun's UltraSPARC T1 and T2 processors
Mark Kettenis
[slides]
Practical Data Protection In 2011
Alistair Crooks
[paper]
16:15-16:45 Work in progress
16:45-17:00 Closing ceremony

Keynote talks


What must we learn from Diginotar (and other data breaches)

About the author

Hans Van de Looy

Hans Van de Looy, is the starting founder of Madison Gurkha. He assists organisations in establishing their baseline security and keeping it up-to-date, specifically by performing pentests. He is a well known speaker at (international) conferences, guest lecturer at universities and colleges and regularly publishes in (online) journals about security and breaking in. His interests include, but are not limited to: security in the broadest sense (including pastimes such as ``Lock Picking''), photography, flying quadcopters and and touring with trikes.

The eight-fold path to reliable operating systems.

About the author

Herbert Bos

Herbert Bos is an associate professor at VU University Amsterdam (aka the Vrije Universiteit). He obtained his PhD from the University of Cambridge (UK). After a brief stint at KPN Research in the Netherlands, he moved to Leiden University as an assistant-professor. Approximately four years later Herbert joined VU University Amsterdam, where he heads a research group involved mostly in high-speed networking, security and operating systems. In 2010, he became the first and so far only computer scientist in the Netherlands to win an ERC Ideas Starting Grant to work on reverse engineering of C binaries. Systems developed by his group include the popular Argos intrusion detection system, the Streamline architecture for high-speed network processing. In addition, Herbert is involved in the development of the Minix 3 Operating System. He has published papers in many leading journals and conference proceedings and served on the program committees of venues like SOSP, EUROSYS, ASPLOS, CCS, and Security and Privacy.

All talks, alphabetically by speaker


Sendmail - History and design

Eric Allman

Abstract
Sendmail Revisited -- In which a mailer gets created, several networks get connected, billions upon billions of emails are sent, a book is written, a company is founded, and one person ends up in a totally unexpected and surprisingly long-lived career.

This talk will give insight into how to design and build a system that will survive a long time.
About the author
Eric Allman is the original author of Sendmail, co-founder and Chief Scientist of Sendmail, Inc., and co-author of Sendmail, published by O'Reilly and Associates. He has presented numerous papers on email and programming and while at U.C. Berkeley, he was the chief programmer on the INGRES relational database management project. He then led the Mammoth project to provide large-scale research software and hardware infrastructure. He has also designed database user and application interfaces at Britton Lee (later Sharebase) and has contributed to the Ring Array Processor project for neural-network-based speech recognition at the International Computer Science Institute.

For several years he co-authored the "C Advisor" column for Unix Review magazine and is on the Editorial Review Board of ACM Queue magazine, the Board of Trustees of Cal Performances, and is a former member of the Board of Directors of the USENIX Association. He has been active with the IETF (most recently as co-author of the DomainKeys Identified Mail specification). He received his M.S. in Computer Science from Berkeley in 1980.

Eric has had an extraordinary effect on communications throughout the world which can be seen to have had an impact on all of us in some way or another.

OpenBSD PF's 10th anniversary

Henning Brauer, Ryan McBride

Abstract
2011 marks the 10th anniversary of OpenBSD's packet filter PF, and in May the project will ship it's 20th release containing this firewall implementation. This talk will present an illustrated history of PF's evolution over this period, with highlights of the major changes, adoption by other projects, and other points of interest. In addition to presenting summary performance data for all 20 releases of OpenBSD containing PF, Henning will also present more detailed "best case" and "worst case" performance data for the current version of PF on a variety of popular hardware platforms.

Henning has been involved with PF since it's inaugural release with OpenBSD 3.0. In addition to actively developing the code, he was possibly the first person to run it in a commercial production environment.
About the authors
Henning Brauer is 32 and lives in Hamburg, Germany. He has been running the Internet Service Provider "BS Web Services" there, for more than 10 years.

He joined OpenBSD in 2002 and has been working on many things, most network related, since. He started OpenBGPD and OpenNTPD. The framework he has written for bgpd is used by almost all newer daemons in OpenBSD. He has been working on the OpenBSD packet filter, pf, from the beginning and is now one of the heads behind it. When he's not hacking you can find him mountain biking, traveling, and hiking, or in one of the many bars in his neighborhood with his friends.

Ryan has years of experience wearing a suit in the Information Systems industry, working with public, private, and non-profit organisations ranging in size from small office to "Fortune 50".

His experience includes Security Policy development, Software Development, VPN design and deployment, firewall configuration, and IDS deployment and monitoring. When not wearing a tie, Ryan amuses himself by working on OpenBSD's networking code

Practical Data Protection In 2011

Alistair Crooks

Abstract
This paper looks at various methods of protecting data from corruption at rest or during transmission. Some of the methods are old, but have been given a new slant by new code. Other methods showcase new codes and new techniques which have, until now, not been present or used in any BSD variant. Four different types of protection are presented: detection of changes to data, erasure coding, encryption, and dispersal of information redundantly, and various libraries and utilities are presented to show how data can be protected when faced with challenges in each of these categories. Legacy solutions are examined, and their benefits and drawbacks listed. Threshold scehemes for data protection are presented, providing a more flexible and scalable approach than existing RAID solutions, for example, whilst preserving data from being exposed to snooping methods. Erasure coding methods are presented, as are one-time shared key schemes, in which a threshold number of users can decrypt a secret; knowledge of that secret does not give any other privilege. The examination concludes by presenting practical methods - libraries and programs - of protecting our data.
About the author
Alistair Crooks is the founder of pkgsrc, a NetBSD core member for 12 years, and has just finished a 6 year gig as President of the NetBSD Foundation. He has written various pieces of software, including netpgp, iSCSI target and initiator, and user(8); he lives in Cupertino, California, with his wife, children, mountain bike and slippers.

[paper]


Improving System Management With ZFS

Brooks Davis

Abstract
The Zetabyte File System (ZFS) is a modern file system which combines traditional file system features like a POSIX file system interface with RAID and volume management functionality. Features such as snapshot management and file share management are all managed within the ZFS interface. This management interface provides a number of opportunities to simplify system management. In the Technical Computing Services Sub-division of The Aerospace Corporation we are taking advantage these features in a number of different ways. This paper presents some of the more interesting ones.

ZFS Basics

This section will provide a brief overview of ZFS operations and in particular the two ZFS command line tools zpool and zfs. Features we plan to use later will be introduced including making snapshots, cloning snapshots, promoting snapshots, setting attributes including user defined ones on file systems, and using zfs send/receive to transfer snapshots.

Simple ZFS Use

This section will provide a few simple examples of how we use ZFS for home directories and mailing list archive storage. The goal is to provide a little background on ZFS and reinforce the idea that administrators tend to create a LOT of file systems in normal ZFS operations. Some of the issues this can cause will also be covered.

Fixing Mirror Problems With ZFS

One of the more vexing problems when running a mirror server is the issue of partial and thus non-functional mirror updates where available packages do not match the package database. In the past we adopted a strategy where we performed an integrity check after each rsync and restarted immediately if the mirror was inconsistent. This is fairly effective, but during new releases this can leave the repository out of sync for a significant period of time. We will demonstrate a solution to this problem using ZFS clone and promote operations.

Efficient Replication With ZFS Metadata

Replication of snapshots for disaster recover is a common practice. In this section we will present our method of using a combination of ZFS send/receive and ZFS meta data to let us store all configuration data including replica destinations and last snapshots in ZFS attributes. We use this system to replicate projects in Aerosource, our internal Source Forge like infrastructure.

More ZFS Metadata

On Aerosource we also use metadata to store project configuration data in place of storing it in configuration files. This keeps all the data in one place and directly ties project configuration to project storage.

Summary

This paper presents a few ways ZFS features can be used to provide enhanced integration with applications. By taking advantage of these features we have reduced the number of configuration files in our environment and improved over all robustness. We hope these ideas inspire our readers to try integrating advanced ZFS features in their environment and to help grow the set of ZFS patterns and tools available today.
About the author

[slides]


Highly Available Storage for FreeBSD

Pawel Jakub Dawidek

Abstract
HAST stands for Highly Available STorage. It provides block-level data replication over the TCP/IP network that can be used for Primary-Secondary cluster setups. The talk will provide more details about HAST and will demonstrate how to configure and use HAST (hopefully). HAST allows to transparently store data on two physically separated machines connected over the TCP/IP network. Those two machines together compose a cluster. HAST works in Primary-Secondary (Master-Backup, Master-Slave) configuration, which means that only one of the cluster nodes can be active at any given time. Active node will be called Primary node. This is the node that is able to handle I/O requests to HAST-managed devices. Currently HAST is limited to two cluster nodes in total. HAST operates at block level - it provides disk-like devices in /dev/hast/ directory for use by file systems and/or applications. Working at block level makes it transparent for file systems and applications. There in no difference between using HAST-provided device and raw disk, partition, etc. All of them are just regular GEOM providers in FreeBSD. HAST can be compared to a RAID1 (mirror) where one of the components is local disk (on the primary node) and second component is a disk on the remote machine (secondary node). Every write, delete or flush operation (BIO_WRITE, BIO_DELETE, BIO_FLUSH) is send to the local and to the remote disks over TCP connection (if secondary node is available). Every read operation (BIO_READ) is served from local disk, unless local disk isn't up-to-date or an I/O error occurs, then read operation is send to secondary node (if it is, of course, available).
About the author
Pawel Jakub Dawidek is a CTO at Wheel Systems and an active FreeBSD committer who lives and works in Warsaw, Poland; he is the author of a widely-used VPN, multiple factor authentication/authorization system for e-banking. He is also the author or a contributor to several important security- and storage-related FreeBSD components, including the GELI encrypted disk subsystem, portions of the FreeBSD IPSEC stack, Jail sandboxing, the ZFS file system port, highly-available storage layer, and RAID storage transform modules.

BSD Multiplicity: An applied survey of BSD multiplicity and virtualization strategies from chroot to BHyVe

Michael Dexter

Abstract
Ever since the University of California, Berkeley Computer Science Research Group implemented the chroot(8) command in its "Berkley Software Distribution" operating system in 1982, the community-developed BSD derivatives have set the standard for the introduction of plurality to the conventionally-singular layers of the Unix model. Today's system operators and developers have an array of multiplicity strategies at their disposal that offer various degrees of both isolation and virtualization. This paper will survey established BSD multiplicity strategies including chroot, jail, Xen, Amazon EC2, compat_linux, VMWare, SIMH, GXemul and QEMU, plus experimental strategies such as FreeBSD BHyVe, sysjail and mult. As an applied survey, this paper will both categorize each multiplicity strategy by the Unix layer that it introduces multiplicity to, plus demonstrate the usage of the utilities that are related to the solution. The reader will thus be provided a set of working examples that they can implement on their own. Finally, this paper will also highlight applicable system management strategies that are available outside the base operating systems such as Puppet and CF Engine.
About the author
Michael has used BSD Unix systems since 1991 and wrote his first FreeBSD jail management system in 2005. Dissatisfied with existing multiplicity solutions, he has sponsored the BSD.lv sysjail and mult multiplicity research projects and took his BSD support public with the formation of BSD Fund in 2007. Michael now works independently and lives with his wife and daughter in Portland, Oregon.

Beastie Meets Raccoon: MINIX 3 as a BSD

Ben Gras, Gianluca Guida, Arun Thomas, Thomas Veerman (VU University Amsterdam)

Abstract
MINIX 3 has imported a significant amount of userland BSD code. The trend began several years ago, but the pace has quickened markedly. We have already imported NetBSD's buildsystem, NetBSD's C library, the pkgsrc package management infrastructure, and various userland utilities from NetBSD and FreeBSD. We are currently in the process of porting a full NetBSD userland as well as puffs for increased filesystem support. Though not technically BSD code, we have adopted clang/LLVM as our default toolchain, and we are working to adopt elftoolchain as a binutils replacement. When MINIX 3 was originally conceived, the goal was to create a robust multiserver operating system that maintains POSIX compatibility. We leveraged our multiserver architecture in which most OS code runs in separate usermode processes to provide new functionality, such as driver isolation and restartability. Now, we would like to push farther than just POSIX compatibility and provide a system that looks much like a BSD from a user's perspective. This paper serves as a progress report on our ongoing work turning MINIX 3 into a BSD. We have a long way to go before MINIX implements all BSD functionality, but we have a good start. We will continue to pull in BSD code, and we have identified future opportunities to pull in driver code and kernel components from BSD. This will serve to enable our vision of the best of both worlds: isolation and restartability features unique to Minix combined with the well-maintained, real-world-hardened system code for drivers, filesystems, userland, and other OS code, of a modern BSD OS.
About the author
Ben Gras is a core MINIX 3 developer and is employed by the VU University Amsterdam. Gianluca Guida is a core MINIX 3 developer and is employed by the VU University Amsterdam. Arun Thomas is a core MINIX 3 developer and is employed by the VU University Amsterdam. Thomas Veerman is a core MINIX 3 developer and is employed by the VU University Amsterdam.

[paper]


Testing NetBSD Automagically

Martin Husemann

Abstract
A huge effort is made by the NetBSD project to systematically test "current" - the bleeding edge version - systematically. While the setup is still developing, divers, and somewhat chaotic, this has already proven to be an extremely valuable early notice alarm system during times of massive churn all over the tree, as well when hunting down already concrete bugs. The introduction of tests changes developers mind and approaches to a problem. At the same time it splits the developer community - into the ones that believe in bugs in code and tests that find them, and the ones that believe in bugs in test cases (or the test environment). Testing a full operating system, covering kernel and user land (all of it!) is practically impossible. This paper will try to show the stony way, the problems met on the social side, the ongoing quest to improve the testing framework, show examples of the quickly increasing number of test cases, and discuss in detail and categorize examples from the various types of bugs encountered and solved (or not yet solved). The author is running the NetBSD/sparc64 instance of the regular tests
About the author
Born 1965, got a master in computer science (Diplom-Informatiker) from University of Paderborn. I have been a NetBSD user sind the very beginning (of NetBSD). After some years of teaching various IT topics at various levels (from using MS word for secretaries to programing in pascal) and consultancy work for union oriented organizations I have been working for a small commercial consultancy company some years, mostly doing networking and security stuff in the beginning, but then ending up in a huge project doing heavy C++ stuff in a large team for a few years. I got bored by that and in 1997 switched employers, ending up in the CAD market working on a product called ArCon. In 2001 I founded my own company with a few co-workers, aprisoft GmbH, and also attended Eurobsdcon in Amsterdam - so this year will be my anniversary as well ,-). I have been doing graphical and CAD programing mostly for windows since then. Last year aprisoft was taken over by ELECO Software GmbH, for which I know work as lead of software developement, still doing CAD/graphical stuff in C++ (again for ArCon, as this has been taken over by ELECO as well in the mean time). I joined the NetBSD foundation as a developer in 2000, and have served as a director on board from 2006 to 2010. Since 2003 I am the portmaster for NetBSD/sparc64.

[paper]


OpenBSD's New Suspend and Resume Framework

Paul Irofti

Abstract
Suspend and resume support in OpenBSD was almost complete in the 4.8 Release. During the development, a lot had to be changed - it was a long process, starting from acpi(4) and apm(4) changes, down into the low level parts of autoconf (9) and upwards into the device drivers. What started as i386 and amd64 targeted development turned into a machine independent framework that can now be used by other architectures. Currently, loongson is one such architecture that is still a work in progress.
About the author
I'm an OpenBSD developer since 2008, involved in ACPI, suspend and resume, porting and currently with a keen interest in the Loongson and Itanium platforms. In the past I worked for a telephony company developing VoIP, Voicemail and related software and after that as an antivirus engine developer and reverse engineer. Currently I'm a freelancer working on various interesting projects. In my spare time I enjoy a good game of Go or a nice hike.

[paper]


The MPLS framework in OpenBSD

Claudio Jeker

Abstract
Work on supporting MPLS started in 2008 at the n2k8 mini-hackathon in Ito (Japan). In the last 2 years much work went into this new framework. Apart from the network stack changes ldpd(8) -- the label distribution protocol daemon -- was developed and bgpd(8) was modified to make it possible to setup and terminate MPLS VPNs on OpenBSD. OpenBSD is probably the first open-source system able to do MPLS out of the box without additional patches. But what is MPLS? Most people have heard about MPLS but how it actually works is often unknown. MPLS changes the way networking is done but at a high price. While the label switching part itself is trivial it is just one part of a much larger puzzle. There are changes in many routing protocols and with over 150 RFC about MPLS it shows that this is more then just simple label switching.
About the author
Claudio Jeker is OpenBSD committer since late 2003 and works on many network related projects like bgpd, ospfd, ospf6d and the network stack itself. He is one of the main developers of the MPLS framework in OpenBSD.

[paper]


OpenBSD/sun4v: Porting OpenBSD to Sun's UltraSPARC T1 and T2 processors

Mark Kettenis

Abstract
Sun's UltraSPARC T1 and T2 processors form a radical change to earlier 64-bit SPARC processors from Sun and Fujitsu. They have many cores, many threads per core and offer a unique approach to virtualization. This virtualization approach has characteristics that makes it more attractive from a security standpoint than what's available on other hardware architectures. Therefore it is a very interesting architecture to run OpenBSD on. In this presentation I will discuss how this was achieved and some of the new functionality is offered on these machines. I'll discuss some of the architectural changes introduced with the UltraSPARC T1 processor and their implications for the OpenBSD kernel. For example, the number of trap levels available to the OS kernel was reduced, which provided a big challenge in rewriting the low-level assembly code that does the trap handling. On the other hand some of the functionality that was traditionally implemented in the OS kernel is now implemented by the hypervisor. Since we wanted to provide support for older UltraSPARC, the new UltraSPARC T1/T2 processors and Fujitsu's SPARC64 processors in a single kernel, some trickery was needed as well. I'll continue with a description of the virtualization approach chosen by Sun for the CoolThreads machines based on the UltraSPARC T1 and T2. Virtual network interfaces and virtual disks have been implemented in OpenBSD 4.5 following the protocols defined by Sun. These make it possible to run OpenBSD in a guest domain on top of a so-called control domain running Solaris. This opens up the possibility for some interesting setups, like running a pf firewall protecting one or more Solaris domains in a single 1U box. I'll discuss the security implications for OpenBSD running in such a setup. Virtual disk servers and virtual network switches, also following the protocols defined by Sun, have been implemented in OpenBSD 4.7. This makes it possible to run OpenBSD also in the control domain. As a result it is no longer necessary to run Solaris at all on a CoolThreads machine configured with multiple domains. Virtual disk servers have been implemented in a similar way to the existing vnd(4) pseudo device. Virtual network switches have been designed to be added to a bridge(4) to maximise code re-use. I'll give an example of such a setup to illustrate how this is done.
About the author
Mark Kettenis did his undergraduate in technical physics at the University of Twenete in Enschede, The Netherlands, and has a Ph.D. in Theoretical Physics from the University of Amsterdam. After spending a couple of years in the IT industry, building high available UNIX systems and teaching customers about them, he joined the Joint Institute for VLBI in Europe (JIVE) in 2004 as a software engineer. At JIVE he is involved with several projects related to data processing of long baseline radio astronomy observations in Europe and Beyond. These projects all involve high speed networking and high performance computing in one way or another. Mark contributed to various Open Source software projects such as the GNU C Library, The Hurd, FreeBSD and GDB, the GNU Project Debugger. It was GDB that got him involved with OpenBSD when trying to make GDB useful on OpenBSD/sparc with the StackGhost security feature enabled. He was recruited to improve GDB on all the hardware architectures that OpenBSD runs on, but soon became a hardcore OpenBSD kernel hacker. His interest is mostly on the hardware side of things, and he is the maintainer of the OpenBSD/sparc64 and OpenBSD/hppa ports.

[slides]


BSD Certification: How to Create a Psychometrically Valid Certification Examination

Dru Lavigne

Abstract
The BSD Certification Group Inc. (BSDCG), founded in 2005, is a non-profit organization committed to creating and maintaining a global certification standard for system administration on BSD based operating systems. One of the founding tenets is that its certifications are psychometrically valid in order to provide value to both the system administrator and the employer. The science of psychometrics can guide a certifying organization through the lengthy and time-consuming exam creation process by providing a series of distinct and repeatable steps. Psychometrics helps to maintain the quality of the examination's questions, allowing for a reliable assessment of the skills being certified. This provides great value to those seeking certification, the employers who hire certificants, and the organization that provides the certification. This paper provides a brief introduction to psychometrics and its value proposition. The remainder of this paper outlines the process of creating and maintaining a psychometrically valid examination and how members of the BSD community can contribute to this process.
About the author
Dru Lavigne is founder and current Chair of the BSD Certification Group Inc., a non-profit organization with a mission to create the standard for certifying BSD system administrators. As Director of Community Development for the PC-BSD Project, she leads the documentation team, assists new users, helps to find and fix bugs, and reaches out to the community to discover their needs. She is author of BSD Hacks, The Best of FreeBSD Basics, and The Definitive Guide to PC-BSD and Editor of the PC-BSD Handbook and the FreeNAS Guide. She serves on the Board of the FreeBSD Foundation.

[paper]


History of BSD

Kirk McKusick

Abstract
Learn the history of the BSD (Berkeley Software Distributions) from one of its key developers, who brings the history to life, complete with anecdotes and footnotes to the historical narrative. The BSD community began at the UC Berkeley in the late 1970s. You'll hear about the triumphs and defeats of the project and its releases during its heyday in the 1980s. The Berkeley era concludes with the tumultuous lawsuit, ultimately settled in Berkeley's favor, which allowed the final release in 1992 of 4.4BSD-Lite, an open-source version of BSD. The talk includes a brief commentary on the FreeBSD, NetBSD, OpenBSD, Darwin, and Dragonfly projects that took their genesis from the release of 4.4BSD-Lite.
About the author
Dr. Marshall Kirk McKusick's work with Unix and BSD development spans nearly thirty years. It begins with his first paper on the implementation of Berkeley Pascal in 1979, goes on to his pioneering work in the eighties on the BSD Fast File System, the BSD virtual memory system, the final release of 4.4BSD-Lite from the UC Berkeley Computer Systems Research Group, and carries on with his work on FreeBSD. A key figure in Unix and BSD development, his experiences chronicle not only the innovative technical achievements but also the interesting personalities and philosophical debates in Unix over the past thirty years.

Virtualization under *BSD: the case of Xen

Jean-Yves Migeon

Abstract
Alongside the ever growing importance of virtualization in today's information systems, Xen has been one of the key player that popularized the hypervisor-based approach in the operating system world, focusing on x86 architectures. There is a considerable amount of information that can be found about Xen on the Web; however, the fast pace of virtualization's technology often makes this information hard to follow, or even understand. The purpose of this talk is to present all the underlying aspects of Xen, as seen from a 2011 point of view. We will start by presenting the general ideas behind Xen's hypervisor, together with a brief description of its architecture, both from a developer (kernel and userland) and system administrator's perspective (operating systems, running daemons and services). We will then move on to its history among the *BSD, draw an inventory of the functionalities currently supported as well as their impacts through time (hardware virtualization, power management, SMP, PCI passthrough, migration, ...), and conclude with the roadmap (and challenges!) the *BSD community is facing: being proactive rather than reactive in Xen virtualization's land, support new hardware mechanisms like IOMMUs and SR-IOV, high availability and scalability.
About the author
Jean-Yves Migeon has been a NetBSD developer since 2008, mainly focused on kernel-related work especially in the x86 and Xen ports. He is currently working as a system and software engineer for Cassidian, a division of EADS, where his job primarily relates to operating systems security and administration.

[slides]


Recent developments in OpenSSH

Damien Miller

Abstract
This talk will describe some recent changes in OpenBSD's popular SSH implementation, most notably the implementation of elliptic curve cryptography for authentication and key agreement and the new OpenSSH certificate format for user and host authentication. It will discuss the rationale, design and implementation of these changes and demonstrate their use. Future developments and directions for OpenSSH will also be discussed.
About the author

[slides]


PBI reimplementation for FreeBSD and PC-BSD 9

Kris Moore

Abstract
The PBI format (*P*ush *B*utton *I*nstaller) has been the default package management system for PC-BSD going on 5+ years now. However as we looked to the future it became apparent that it was greatly needing an overhaul to both improve its functionality, and expand its usage outside the scope of just PC-BSD. Among the areas needing improvement were how it dealt with identical libraries between applications, the heavy requirements from being implemented in QT/KDE, and lack of a digital verification mechanism. Starting in April of 2010, work began on re-implementing the PBI format to address these issues, and greatly expand upon its usefulness as a package management system for both PC-BSD and FreeBSD. From this work the *pbi-manager* was born as a subset of command-line functionality for dealing with every aspect of PBIs, from building, installing, distribution and advanced management. The resulting format has been implemented 100% in shell, allowing it to run virtually unmodified on a fresh FreeBSD system, as well as be agnostic towards which desktop a particular user may be running in PC-BSD. Features such as digital signature verification, intelligent library sharing, repository management, *bsdiff* updating and others have already been implemented, along with improved QT4-based front-ends, which behave and look almost identical to the legacy format. The end result is a powerful package format which can be used for traditional FreeBSD users as well as PC-BSD running any window manager, or none for that matter.
About the author
Kris Moore is the founder and lead developer of the PC-BSD project. He lives in the Eastern Tennessee area (USA) with his wife and four kids.

[paper]


NPF: a new packet filter

Mindaugas Rasiukevicius, Zoltan Arnold Nagy

Abstract
Currently, there are several choices of firewalls available in the different BSD systems, namely: IPFilter, PF for OpenBSD and ipfw for FreeBSD. However, several problems arise upon a closer look at them.
IPFilter has been surrounded by legal issues, was not designed with a modern SMP world in mind, and while it has been preferred packet filter for a while - its current focus and future directions are uncertain. OpenBSD's PF lacks general design principles. Potential improvements and maintenance of its code base are problematic. Coming up with a new filter, having a modern design was easier and more advantageous solution in the long term.
NetBSD's new packet filter - NPF - will be introduced in NetBSD 6.0. It was written from scratch by Mindaugas Rasiukevicius, the work was funded by The NetBSD Foundation, and the product got IPv6 support in this year's Google Summer of Code.
High performance and extensibility were the two main motivational points. One of the main NPF differences from other packet filters is protocol-independence and flexibility of using "n-code" processor, which is conceptually a byte-code interpreter, inspired by the Berkeley Packet Filter. General design goals of NPF are to keep engine lightweight, well abstracted, modular and simple, as well as mostly lockless to achieve SMP scalability.
NPF supports common features required by any modern firewall, such as stateful filtering, network address translation (NAT), scalable IP sets (also known as "tables"), packet logging and more.
In the talk, internals of NPF will be overviewed and the benchmark data comparing NPF against aforementioned alternatives will be presented.
About the author
Mindaugas Rasiukevicius is a member of the NetBSD project since 2007, focusing on kernel development, such areas as threading, virtual memory, synchronisation, IPC and various others. Has a particular interest in multi-threading, high performance and real-time computing. Currently has a consulting company, Nox Technologies Ltd.

Zoltan Arnold Nagy is working on his MSc in Computer Science at Eotvos Lorand University in Budapest, and participated in both last year's and this year's Google Summer of Code as a student. He's been working as a full-time Java developer for the 6 years. Main areas of interest are networking stacks and performance, cryptography and infrastructure cloud security.

Exploring FreeNAS 8

James T. Nixon III

Abstract
This presentation will feature a demonstration on installing FreeNAS using the CLI installer, a brief primer on nanobsd with django and sqlite, configuring various services, and navigating the FreeNAS web interface. I will discuss the benefits of using ZFS & FreeNAS 8, such as Thin Provisioning, Periodic Snapshots, and ZFS Datasets. I will demonstrate the ease of configuring a virtual LAN interface, link aggregation, as well as setting up static routes in the Network section of FreeNAS. Next, I will cover adding/importing volumes, scheduling snapshots, and other uses of the Storage section of FreeNAS. I will discuss sharing files on FreeNAS with NFS, AFP, and CIFS. Also, I will detail the added functionality the Services section of FreeNAS provides like FTP, Dynamic DNS, LDAP, Active Discovery, iSCSI, and how you can use FreeNAS to save time and money. Finally, I will show inexpensive solutions for deploying FreeNAS at home, office, or dorm.
About the author
James is a core developer for the FreeNAS project, member of the PC-BSD Team, and Webmaster for iXsystems. He spends his time tinkering with PC-BSD desktop usability enhancements, Django, and Joomla. He recently helped organize and act as Master of Ceremonies for the MeetBSD California conference and volunteers at the FreeBSD booth around the world. When AFK, James is usually playing the drums and watching documentaries.

[paper]


FreeBSD + nginx

Sergey A. Osokin

Abstract
This presentation will be about the continued porting and support of the best web server nginx for the best operationg system FreeBSD. nginx [engine x] is a HTTP and reverse proxy server, as well as a mail proxy server written by Igor Sysoev. It has been running for more than five years on many heavily loaded Russian sites including Rambler (RamblerMedia.com). According to Netcraft nginx served or proxied 4.70% busiest sites in April 2010.
About the author

[slides]


The Obsoletion of the OS

Andrew Pantyukhin

Abstract
For decades now there has been a chasm growing between the computing needs of corporate entities or medium-to-large-scale online projects and the vector of operating systems development. From the day the original Beowulf cluster was built on, to the time a FreeBSD cluster was used to compute special effects for "The Matrix", to the present day of the prevalent cloud computing, to the next days of hybrid cloud grids and ubiquitous computing -- the operating system was being continuously pushed from a ready-made toolkit for easily solving inconceivably difficult problems to the obscure assembler in the food chain of solution stacks, a distraction sheltering painful to debug hardware drivers and annoying software compatibility problems.

Thick virtualization, software appliances, comprehensive management consoles, datacenter systems consolidation suites, cloud supervisors -- are all solutions to the problems which have been stubbornly ignored in the operating systems development landscape, ascetically self-limited to the territory claimed in the early 70s.

The great shift of paradigm from multiuser machines to multimachine, distributed computing was dampened by contagiously spread support for TCP/IP and fortunate presence of fundamental network services, designed for intersystem communications and quickly repurposed for intrasystem tasks. The sharp divide between internal and external protocols so vivid in the telecom industry virtually never happened in the systems world. Numerous academic initiatives, such as project Athena, addressed systems issues of such long terms and large scales that little to no industry interest was attracted, resulting in mostly partial, often proprietary and ultimately dysfunctional implementations.

What is a systems issue today? Where do systems operation extend to? What do they require from the OS? What is happening at the DevOps boundary? How an operating system can become more relevant and useful for solving modern systems problems and stay out of obsolescence?

We shall explore these questions from operational and management perspectives, based on experience architecting a large corporate infrastructure and building highly distributed global-scale systems behind massive cloud services -- all using the FreeBSD operating systems almost exclusively.
About the author
Andrew Pantyukhin has been an aspiring Unix hacker for the last decade, a latent FreeBSD ports committer since 2006, an architect behind Gubkin University IT operations and most recently the CTO with Dream Industries, a disruption lab launching next-generation cloud media services in emerging markets around the world. His primary interest in IT is rethinking development and operations to better suit current demands and those looming on new horizons.

Improving the performance of Open vSwitch

Marta Carbone, Gaetano Catalli, Luigi Rizzo

Abstract

Open vSwitch is a software implementation of a virtual switch, designed to be fully configurable and compatible with the most used protocols. Among other features, the program includes a user space forwarding engine, which can be used to build flexible packet processing systems.

In the process of porting Open vSwitch to FreeBSD, we measured its forwarding performance and found disappointingly low figures, which existed also in the original Linux implementation. As a consequence, we analysed and revised the architecture of some key parts of the code obtaining a speedup of a factor of 10, up to 690 Kpps.

The main contribution of this paper is to illustrate the architecture of the system, its performance bottlenecks, and present how we revised it to achieve huge performance improvements. As a second contribution, we extend the program adding a BPFcompatible driver, enabling operation on BSD systems. This driver is of particular importance because it opens the way to a recently developed network API called netmap, which promises further huge performance improvement.


About the authors

Luigi Rizzo is a professor at the Universita` di Pisa and long time committer for the FreeBSD project, to which he has contributed several subsystems mostly in the networking area. His research is in the area of network congestion control, emulation, fast packet processing.

Marta Carbone is a PhD student in Ingegneria dell'Informazione at the Universita` di Pisa, working on network testbeds and emulation tools. She has worked on improvements and porting of the ipfw firewall and dummynet emulator, and in 2009 participated to Google Summer of Code. Her recent work is on accelerating software packet processing.

Gaetano Catalli graduated in July 2011 in Computer Engineering at the Universita` di Pisa, where he was recently appointed a research contract to work on EC FP7 project OpenLab on OpenFlow-related topics. His master thesis was on porting and improving performance of the OpenvSwitch software.


[paper]


Webcamd - a modern userspace Linux kernel driver framework for FreeBSD

Hans Petter Selasky

Abstract
The FreeBSD's webcamd project first first came to light in 2009 like an extension of another similar hobby project, namely porting of the FreeBSD USB stack to NetBSD. This port was never part of the official NetBSD distribution, though the ideas and principles behind the porting layer lived on. Webcamd is a complete Linux kernel environment that allows you to compile and run typically Linux Webcam and DVB-X drivers in userspace under FreeBSD without any modifications. The primary target is USB devices, hence this kind of devices have a common way to be programmed and do DMA data transfers. This talk is going through the process of compiling webcamd and how you can include your own new drivers. Also how kernel, drivers and users are separated will be explained. Cuse4bsd a dependency of webcamd will be covered in detail. Some example applications will be given too and in the end there will be room for questions.
About the author
Hans Petter Selasky has been contributing to the FreeBSD project for more than a decade and is a well known USB developer in FreeBSD circles. In 2010 he got commit rights to the FreeBSD kernel sources.

[slides]


Fossilizing NetBSD: The road to modern version control

Joerg Sonnenberger

Abstract
The NetBSD project has successfully deployed CVS for over one and a half decades. The main modules, pkgsrc and src, provide a huge challenge for any replacement. The pkgsrc module challenges scalability by having over 60,000 files per working copy and a total of over 100,000 files in the repository. The src module challenges scalability both in the raw size (4.3GB of RCS files) and the large history of 240,000 revisions. Over the last three years a number of attempts to provide conversions to modern version control systems (VCS) have been made. The different VCS and the associated conversion tools all have different shortcomings and no clean consensus could be reached to move into one direction or another. One important tool is Simon Schubert's fromcvs. It was the only option for continously replicating the CVS changes into Git without breaking the normal updating process of the target VCS. This created the question of how much work a RCS/CVS conversion tool would be that fits the requirements of NetBSD: * Be faithful: honor RCS keywords * Be smart: properly deal with vendor branches and magic CVS revisions * Be fast: finish in much less than a day on reasonable modern hardware * Be helpful: provide support for cleaning up the mess that a large scale repository ends up being At the time concrete plans started to form, Richard Hipp had started making his Fossil VCS project more visible and managed to cut the legalese associated with the source code by an order of magnitude. The result is attractive-- a compact binary under a liberal license with few external dependencies and a fitting name. A project was born: converting the NetBSD repository to Fossil and evaluating the scalability issues. The first part of the paper discusses the resulting conversion tool. This includes an overview of how different CVS features work and issues that could be found in the NetBSD repository. It compares the chosen strategy of incremental fix up with the approach of cvs2svn and related tools of ad-hoc adjustments. The second part of the paper analyses the current performance of Fossil for various important operations and changes made in Fossil to deal with scalability limits. A limited comparison to other VCSs is also provided. The results of this work provide a much better foundation for any future conversion attempt. Support of the git-fast-export format in Fossil allows easy conversion to most other changeset oriented VCSs. The included benchmarks compare Fossil with other popular VCSs. They allow the quantification of some of the involved decision factors for a potential migration from CVS for the NetBSD project.
About the author
Joerg Sonnenberger is a NetBSD and pkgsrc developer. In NetBSD he has been working on ACPI, the toolchain and other areas. In pkgsrc his main interest are the infrastructure components. He is currently working as software developer in Germany.

[paper]


Capsicum: Practical Capabilities for UNIX

Dr Robert N. M. Watson

Abstract
Capsicum is a lightweight operating system capability and sandbox framework in FreeBSD 9. Capsicum extends, rather than replaces, UNIX APIs, providing new kernel primitives (sandboxed capability mode and capabilities) and a userspace sandbox API. These tools support compartmentalisation of monolithic UNIX applications into logical applications, an increasingly common goal supported poorly by discretionary and mandatory access control. We demonstrate our approach by adapting core FreeBSD utilities and Google's Chromium web browser to use Capsicum primitives, and compare the complexity and robustness of Capsicum with other sandboxing techniques.
About the author
Dr Watson is a security and operating systems researcher at the Computer Laboratory, University of Cambridge, where he leads research projects in experimental CPU and operating system design, introspective software models, automated program analysis, and cloud computing security. Previously, he was Senior Principal Scientist at SPARTA, Inc., and Senior Research Scientist at McAfee Research. His prior projects include development of the TrustedBSD MAC Framework, a flexible kernel access control framework now used in the FreeBSD, Mac OS X, and Apple iOS operating systems. He is a member of the board of directors (and past president) of the FreeBSD Foundation.

[paper]


OpenBSD SCSI Evolution

Ken Westerback

Abstract
The SCSI protocol has become the lingua franca of block oriented i/o. OpenBSD has always supported SCSI devices, but recently the OpenBSD SCSI stack has been significantly enhanced to improve stability, performance and scalability. This paper presents the architectural details of the recent changes. It describes the state of the SCSI stack at the beginning of the changes, identifies issues driving those changes, describes current state and lays out some near term goals for the SCSI stack.
About the author
Ken made his first commit to OpenBSD on February 6, 2000. Having purchased an unsupported SCSI card, he was encouraged by deraadt@ to add support for it. Since then Ken has added scsi hardware drivers (e.g. iha(4) and trm(4)); significantly updated others such as adv(4), adw(4), siop(4), ahc(4), ahd(4) and isp(4); worked extensively on the SCSI layer and the install scripts. Over the last two or three years Ken has worked with David Gwyne and others in evolving the SCSI layer to solve many long standing problems. In the real world Ken was the Chief IT Architect for the Centre for Addiction and Mental Health in Toronto, Canada until 2010, where he deployed OpenBSD in some infrastructure and patient internet access applications. He is now an independant contractor.

[paper]


An update on IPv6 in FreeBSD

Björn Zeeb

Abstract
FreeBSD has shipped IPv6 support for more than a decade with the KAME-based reference implementation. As IPv6 is becoming more crucial every day, you will hear about the latest improvements on IPv6 in FreeBSD and how you can make use of them to prepare better for your IPv6 future. The talk will start with a quick review on FreeBSD and World IPv6 Day. It will show you what we have done upfront and during that day, as well as some results. Following that you will get a short introduction on the IPv6-only validation work and what has happened since May. You will learn why this is an interesting feature not just for IPv6 geeks but for software developers as well as sysadmins, port maintainers or website operators, why it is needed now and how you can try or use it. The last part will concentrate on new IPv6 configuration options and features in FreeBSD 9.0 you should be aware of. It will give you ideas how to handle various situations for FreeBSD servers, home gateways or desktops. The talk will conclude with a short outlook on the next IPv6 changes we are working on.
About the author
Bjoern Zeeb is a consultant based in Germany and has been an active FreeBSD committer since 2004 interested in networking, security and virtualization. He is currently also a member of the FreeBSD Security and Release Engineering teams.

[slides]