Language: EN  JA

Registration

  • Delegate (non-student): 18,000JPY
  • Student: 5,000JPY
  • Banquet ticket on 14th: Delegate 6,000JPY, Student: 3,000JPY.

This registration fee includes name card, printed proceedings, T-shirt, and tickets of lunch during the last two days. Banquet on 14th needs banquet ticket (not included in the registration). Note that you need to register even if you are planning to attend one of the tutorial sessions or meetings in the first two days and not to attend the last two days.

Tutorial Fees

  • 2-day Tutorial (T1A+T2A+T4A+T5A): 20,000JPY/class (8,000JPY for students)
  • 2-day Tutorial (T1B+T2B+T4B+T5B): 10,000JPY/class (5,000JPY for students)
  • 3-hour Tutorial (T3A, T4C, T5C): 8,000JPY/class (3,000JPY for students)
  • 3-hour Tutorial (T3B, in Japanese): 5,000JPY/class (3,000JPY for students)

Hotel Accommodations (see also Access Map)

AsiaBSDCon organizing committee recommends HotelsCombined.com to find your hotel accommodation. The location keyword "Tokyo Dome" would be useful for you to find hotels near the venue (see also Access Map).

Please contact if you need support and/or have a specific question about the accommodation.

Conference Timetable

NOTE: this page will be updated when more detailed information is available.


Day 1 (March 12, 2015) - Tutorials and Small Meetings I

Please note that Day 1 is for tutorials and meetings only. No exhibition and no paper session for unregistered attendees to them.

Room ARoom BRoom CRoom D
09:30 - 12:30 Tutorial T1A:
An Introduction to the FreeBSD Open-Source Operating System
Dr. Marshall Kirk McKusick
Tutorial T1B:
A Look Inside FreeBSD with DTrace
George Neville-Neil
- Meeting M1:
FreeBSD Developer Summit (invited only)
13:30 - 16:30 -
17:00 - 20:00 Tutorial T3A:
Advanced networking and routing on OpenBSD
Claudio Jeker
Tutorial T3B:
Managing Virtual Environment Using VIMAGE jail (in Japanese)
Hiroki Sato
- Meeting M5:
bhyvecon
Michael Dexter

Day 2 (March 13, 2015) - Tutorials and Small Meetings II

Please note that Day 2 is for tutorials and meetings only. No exhibition and no paper session for unregistered attendees to them.

Room ARoom BRoom CRoom DRoom E
09:30 - 12:30 Tutorial T4A:
An Introduction to the FreeBSD Open-Source Operating System (cont'd)
Dr. Marshall Kirk McKusick
Tutorial T4B:
A Look Inside FreeBSD with DTrace (cont'd)
George Neville-Neil
Tutorial T4C:
You like Linux? You'll love FreeBSD!
Kamila Souckova and Paul Schenkeveld
Meeting M1:
FreeBSD Developer Summit (invited only)
Meeting M3 (9:30-13:00):
NetBSD Developer Summit (invited only)
13:30 - 16:30 Tutorial T5C:
Xen virtualization on FreeBSD
Roger Pau Monne
Meeting M2 (14:00-17:00):
*BSD Vendor Summit
-
18:30 - 21:00 - - - - Meeting M4:
NetBSD BoF

Day 3 (March 14, 2015) - Paper Session I

Room ARoom BRoom CRoom D
10:00 - 10:15 Opening
10:15 - 11:00 P1A: Block Storage Device Life Cycles
Michael Dexter
P1B: Introducing OpenBSD's new httpd
Reyk Floeter
11:00 - 11:45 P2A: Smartcom's control plane software, a customized version of FreeBSD
Boris Astardzhiev
P2B: kcgi: securing CGI applications in C
Kristaps Dzonsons
P2C: Pipecut - Interactive Pipeline Editor
David Maxwell
11:45 - 12:45 Lunch (bento box)
12:45 - 13:45 K1: Modernizing BSD Networking
Dennis Ferguson
13:45 - 14:00 Break
14:00 - 14:45 P3A: Unifying jail and package management for PC-BSD, FreeNAS and FreeBSD
Kris Moore
P3B: The results of using BGP for realtime import and export of spam whitelist/blacklist entries
Peter Hessler
P3C-1: Pretty-printing of kernel data structures
Daniel Lovasko
P3C-2: FreeBSD preseed installation (PXE)
Kamil Czekirda
14:45 - 15:30 P4A: Lumina-DE: Redefining the Desktop Environment for Modern Hardware
Ken Moore
P4B: Go based content filtering software on FreeBSD
Ganbold Tsagaankhuu
P4C: Modernizing NetBSD Networking Facilities and Interrupt Handling
Ryota Ozaki
15:30 - 15:45 Break
15:45 - 16:30 P5A: Advanced Open Source Storage with FreeNAS 9.3
Dru Lavigne
P5B: The LLDB Debugger in FreeBSD
Ed Maste
P5C: The odd kid on the block
Martin Husemann
16:30 - 17:15 P6A: Programmable Realtime Units in FreeBSD
Rui Paulo
P6B: A Universal Configuration File Format for FreeBSD
Allan Jude
P6C: Development of the BSD Professional Lab Exam
Jim Brown
18:00 - 21:00 Banquet

Day 4 (March 15, 2015) - Paper Session II

Room ARoom BRoom CRoom D
09:30 - 10:15 P7A: Optimizing TLS for High-Bandwidth Applications in FreeBSD
John-Mark Gurney
P7B: OpenBSD sucks
Henning Brauer
P7C: Cross-compilation in pkgsrc
Taylor "Riastradh" Campbell
10:15 - 11:00 P8A: A CAM Level I/O Scheduler
Warner Losh
P8B: Pruning and Polishing: Keeping OpenBSD Modern
Ted Unangst
P8C: The rump kernel: A tool for driver development and a toolkit for applications
Justin Cormack
11:00 - 11:15 Break
11:15 - 12:15 K2: Reflections on some aspects of early BSD development
Robert Elz
12:15 - 13:30 Lunch (bento box)
13:30 - 14:30 K3: 5 years of pkg(8) development
Baptiste Daroussin
14:30 - 14:45 Break
14:45 - 15:30 P9A: A netmap passthrough for virtual machines
Stefano Garzarella
P9B: Journaled Soft-Updates
Dr. Marshall Kirk McKusick
P9C-1: Instruction caching for bhyve
Mihai Carabas
P9C-2: Lua as the FreeBSD loader scripting language
Pedro Arthur
15:30 - 16:15 P10A: Measure Twice, Code Once: Network Performance Analysis for FreeBSD
George Neville-Neil
P10B: New OpenZFS features supporting remote replication
Matt Ahrens
P10C: Converting OpenBSD to PIE
Pascal Stumpf
16:15-16:30 Break
16:30 - 19:30 Work-In-Progress session and Closing

Keynote


K1: Modernizing BSD Networking

Abstract:

The network stack in BSD kernels has a long and venerable history: the author came to learn and love networking by reading, using and modifying BSD networking code starting with a pre-4.2BSD release in 1983. He subsequently contributed to the design and development of four different router platforms that were each advanced for their time, with capacities growing from a Megabit to many Terabits per second, all of which used the BSD network stack as the basis for the host-in-the-router.

What was learned from this experience is how good the original BSD networking was when it was for the time it was originally developed, but also how old it has become; it incorporates many assumptions about the behaviour, use and configuration of networks which were perfectly true when the code was originally developed in the 1980's but are much, much less true today, and which make it hard to deal with the kinds of networking problems which are very common now.

The talk hence tours the BSD network stack for the purpose of examining aspects of the implementation which made perfect sense at the time the code was written, given the state of the networking art and the capabilities of the machines the code ran on but are much less useful given the scale of hardware and the styles of networking that exist today, 30 years later. What could be (and has been) done to address these in a more modern reimplementation is discussed in some architectural detail.

Note that while much of this work has been done to address the needs of a "host-in-a-router", that is the place where a router's applications are run if not necessarily where packets are forwarded, it is argued that a network stack which provides good, advantageous networking base for a host-in-a-router will also provide a good, advantageous networking base for a host running different applications; while the applications may be different the networking problems that need to be addressed are not.

Speaker:

Dennis Ferguson has spent the last quarter century designing routers, writing software for routers and building networks with those routers. He contributed to the construction of CA*net, the first Canadian national Internet service, and its routers, wrote routing protocol software used by routers in the T3 NSFnet, the US core of the Internet in the early 1990's, helped build an even larger network at MCI, and co-founded Juniper Networks where he helped in the architecture of both host-in-the-router software and the forwarding paths.


K2: Reflections on some aspects of early BSD development

Abstract:

This talk will discuss some anecdotes relating to early BSD development with which the speaker was involved, their history, and perhaps a few lessons that might still be relevant to open source software development today. Examples include the original auto-configuration code, disk quotas, the gettytab version of getty, better localtime, and more.

Speaker:

Robert Elz studied Law and Computer Science at the University of Melbourne during the 1970's - a period that coincided with the development of UNIX. During this period, unix software development and source sharing were common and widespread within the comparatively small community. He became one of many contributors and collaborators with CSRG at the University of California, Berkeley during the 1980's. After that he switched to focus more on networking, registering the AU domain (one of the earliest country domains allocated) and being appointed to the Internet Architecture Board for a period during the 1990's. He moved to pretend to be an academic at the Prince of Songkla University, Thailand at the start of the current millennium, where he remained until retirement in 2014. During this entire period, all of his computing needs have been met exclusively by software derived from the systems distributed by CSRG at UCB.


K3: 5 years of pkg(8) development

Abstract:

After a bit more than 4 years of hacking on pkg(8) (new package manager for FreeBSD) lots have happened, this talk will explain why a new package manager, what problems does it address, what mistakes has been done during those 4 years. It will also explain what problems on the ports tree have been found, how they were fixed, what remains. It will also explain what features and directions are planed for the future of both pkg(8) and the ports tree, but also about packaging the base system into regular packages.

Speaker:

Baptiste Daroussin (bapt@FreeBSD.org) is a unix system enginner, FreeBSD ports committer for around 5 years source committer for 4 years member of the port management team (portmgr), member of the core team.


Tutorials


T1A: An Introduction to the FreeBSD Open-Source Operating System

Who Should Take this Course:

This course provides a broad overview of how the FreeBSD kernel implements its basic services. It will be most useful to those who need to learn how these services are provided. Individuals involved in technical and sales support can learn the capabilities and limitations of the system; applications developers can learn how to effectively and efficiently interface to the system; systems programmers without direct experience with the FreeBSD kernel can learn how to maintain, tune, and interface to such systems. This course is directed to users who have had at least a year of experience using a UNIX-like system. They should have an understanding of fundamental algorithms (searching, sorting, and hashing) and data structures (lists, queues, and arrays).

The course is divided into two days. Together they cover the entire FreeBSD kernel but subjects have been arranged such that students can also decide to attend only the first or the second day depending on the subjects in which they are interested.

Description:

This course will provide a firm background in the FreeBSD kernel. The POSIX kernel interfaces will be used as examples where they are defined. Where they are not defined, the FreeBSD interfaces will be described. The course will cover basic kernel services, process structure, locking, jails, scheduling, signal handling, and virtual and physical memory management. The kernel I/O structure will be described showing disk management, how I/O is multiplexed, and the configuration of special devices. Next the organization of the filesystem will be described showing how its buffer pool is integrated with the virtual memory system. The course then covers the implementation of the fast filesystem and its capabilities including soft updates and snapshots. The filesystem interface will then be generalized to show how to support multiple filesystem types. The course also covers the socket-based network architecture, layering, and implementation. The socket communications primitives and internal layering will be discussed, with emphasis on the interfaces between the layers; the TCP/IP implementation will be used as an example. A discussion of routing issues will be included. The presentations will emphasize code organization, data structure navigation, and algorithms. It will not cover the machine specific parts of the system such as the implementation of device drivers.

Day 1 morning

  • Kernel Overview
  • Process structure
  • Locking
  • Communications
  • Process Groups and Sessions
  • Jails
  • Scheduling
  • Signals and timers
  • Virtual memory management

Day 1 afternoon

  • Kernel I/O structure
  • I/O data structures
  • Disk Management
  • Multiplexing I/O
  • Autoconfiguration strategy
  • Configuration of a device driver

Day 2 morning

  • Filesystems Overview
  • Filesystem organization
  • Block I/O system (buffer cache)
  • Filesystem implementation
  • Soft Updates and Snapshots
  • Support for multiple filesystems

Day 2 afternoon

  • Networking Implementation
  • System layers and interfaces
  • Internet Protocols
  • Mbufs and control blocks
  • Routing issues
  • TCP algorithms
Course Text

Marshall Kirk McKusick, George Neville-Neil, and Robert N. M. Watson, ``The Design and Implementation of the FreeBSD Operating System'', Second Edition, Pearson Education, Boston, MA September 2014, ISBN-13: 978-0-321-96897-5, ISBN-10: 0-321-96897-2. http://click.linksynergy.com/fs-bin/click?id=NZS3W7D*uS0&offerid=145238.10000444&type=3&subid=0

Instructor:

Dr. Marshall Kirk McKusick writes books and articles, teaches classes on UNIX- and BSD-related subjects, and provides expert-witness testimony on software patent, trade secret, and copyright issues particularly those related to operating systems and filesystems. He has been a developer and commiter to the FreeBSD Project since its founding in 1994. While at the University of California at Berkeley, he implemented the 4.2BSD fast filesystem and was the Research Computer Scientist at the Berkeley Computer Systems Research Group (CSRG) overseeing the development and release of 4.3BSD and 4.4BSD. He earned his undergraduate degree in electrical engineering from Cornell University and did his graduate work at the University of California at Berkeley, where he received master's degrees in computer science and business administration and a doctoral degree in computer science. He has twice been president of the board of the Usenix Association, is currently a member of the FreeBSD Foundation Board of Directors, a member of the editorial board of ACM's Queue magazine, a senior member of the IEEE, and a member of the Usenix Association, ACM, and AAAS.

In his spare time, he enjoys swimming, scuba diving, and wine collecting. The wine is stored in a specially constructed wine cellar (accessible from the Web at http://www.mckusick.com/~mckusick/) in the basement of the house that he shares with Eric Allman, his partner of 35-and-some-odd years and husband since 2013.


T1B: A Look Inside FreeBSD with DTrace

Abstract:

One of the largest challenges to understanding complex software is a lack of run time visibility into what the system is doing at any particular time. DTrace is a modern tool that gives the user, whether they are a student, system admin, or software developer the ability to look insidea running system to understand how the system works and identify logical and performanc problems.

In this tutorial we will cover the basics of DTrace on FreeBSD, including basic and advanced uses, and then work through several of the major subsystems, including processes, memory, I/O and networking to achieve a better overall understanding of how the system operates. The tutorial includes a set of short labs, carried out on virtual machines, that give the students hands on experience working with DTrace.

Students are expected to have a laptop computer which can run Virtual Machine software such as VMWare (preferred), Virtual Box or QEMU.

Instructor:

George Neville-Neil works on networking and operating system code for fun and profit. He also teaches various courses on subjects related to computer programming. His professional areas of interest include code spelunking, operating systems, networking, time and security. He is the co-author with Marshall Kirk McKusick and Robert Watson of _The Design and Implementation of the FreeBSD Operating System_ and is the columnist behind ACM Queue's "Kode Vicious." Mr. Neville-Neil earned his bachelor's degree in computer science at Northeastern University in Boston, Massachusetts, and is a member of the ACM, the Usenix Association, the IEEE, and is one of the Directors of the FreeBSD Foundation. He is an avid bicyclist and traveler who currently resides in New York City.


T2A: An Introduction to the FreeBSD Open-Source Operating System (cont'd)

See T1A.


T2B: A Look Inside FreeBSD with DTrace (cont'd)

See T1B.


T3A: Advanced networking and routing on OpenBSD

Abstract:

OpenBSD is well known for it strenght as a firewall and also the routing daemons are somewhat well known but many people hesitate using dynamic routing in their networks. This tutorial will try to show best common practices on how to use ospfd, bgpd and other networking daemons to build better networks.

Topics will include:

  • Introduction to dynamic routing
  • Using ospfd for dynamic routing inside an organization
  • Participating in the global default free zone using bgpd
    • Basic multihoming with BGP
    • Filtering and traffic shaping
    • Redundancy: using CARP, OSPF and BGP together
  • Introduction to multiple routing tables and rdomains
  • How and when to use multiple routing tables
    • A practical example using it with BGP and multiple uplinks
  • How and when to use rdomains (VRF / VRF Lite)
    • A practical example using gif tunnels and ipsec
    • Things to consider
Instructor:

Claudio Jeker is OpenBSD committer since late 2003 and works on many network related projects like bgpd, ospfd, ospf6d and the network stack itself. At work he operates a redundant set of OpenBSD routers and firewalls running bgpd, ospfd and ospf6d.


T3B: Managing Virtual Environment Using VIMAGE jail

Abstract:

VIMAGE is an implementation which virtualizes of FreeBSD's network with very low performance overhead. It is integrated into FreeBSD 9 releases and tightly-coupled with the existing jail subsystem.

In this tutorial, the attendees will learn basics of management of VIMAGE-enabled jails and typical scenarios where this subsystem does and does not work well.

Target Audience:

Basic knowledge of system administration of UNIX-like OSs is required.

Instructor:

Hiroki Sato is an assistant professor at Tokyo Institute of Technology. He joined FreeBSD Project as a committer since 2000, and has been working as a member of Documentation Engineering Team, Release Engineering Team, and FreeBSD Core Team, and also working as a director at FreeBSD Foundation. He also joined the NetBSD Foundation in 2003. His primary research areas are integrated circuit design, signal processing, and computer architecture.


T4A: An Introduction to the FreeBSD Open-Source Operating System (cont'd)

See T1A.


T4B: A Look Inside FreeBSD with DTrace (cont'd)

See T1B.


T4C: You like Linux? You'll love FreeBSD!

Abstract:

If you can drive one brand of cars, then cars of another brand present few surprises. But UNIX-like operating systems, although they share a lot of look and feel, can be very different if you want to install and configure them for the first time.

Kamila has administered Linux machines for several years and took a stab at FreeBSD last year. Paul helped her overcome the sense of cold water and taught her the tricks of the trade of a FreeBSD sysadmin. Together they present a survival training for Linux users and system administrators who would like to give FreeBSD a try.

After a brief overview explaining the conceptual differences between Linux and FreeBSD, the tutorial will continue with the installation process, package management and then dive into system administration topics like configuring storage, networking, jails, and setting up a graphical user interface. A side-by-side comparison of the most important commands for reference will get you started quickly if you have been working with Linux before.

Target Audience:

Although this tutorial is specifically targeted at users and system administrators of Linux systems, it gives a good overview of the FreeBSD operating system for anyone who has little or no experience with FreeBSD but wants a comprehensive overview of FreeBSD seen through the eyes of someone who recently converted.

Instructor:

Kamila Souckova is a talented CS student at the Comenius University in Bratislava, Slovak Republic, who loves experiencing new things. Although young, she already has several years' worth of experience using and administering Linux systems at home and at the university. During a summer internship with Google last summer, Kamila decided to try out FreeBSD, and now she is using it on both personal and production systems. In her free time, Kamila loves hiking in the mountains, listening to and playing music, and she is crazy about everything that flies (including herself in a glider).

Paul Schenkeveld has more than 30 years of experience working with UNIX and similar operating systems, more than 20 years with FreeBSD. He ran his own consultancy company for 22 years after which he made a career change and works for Google now. Paul is a frequent speaker at Open Source conferences.

Paul likes travelling, good food and wants to renew his private pilots license which expired in the early 1990's. Since Kamila's internship at Google last summer, Paul has mentored her with her steps into the FreeBSD world.


T5A: An Introduction to the FreeBSD Open-Source Operating System (cont'd)

See T1A.


T4B: A Look Inside FreeBSD with DTrace (cont'd)

See T1A.


T5C: Xen virtualization on FreeBSD

Abstract:

This tutorial session will be split into two parts. The first one will consist of an introduction to Xen and how FreeBSD has been adapted in order to work as a Xen PVH DomU and Dom0. This will cover some of the basic concepts specific to Xen systems, like memory sharing amongst guests, virtual interrupt delivery and early guest start up.

The second part of the tutorial will be a hands-on session, featuring a live install of a pure FreeBSD/Xen system. We'll show how to setup FreeBSD as control domain and give live examples about how to create and run several different kind of guests on top of it.

By the end of the tutorial session the attendees should be able to setup their own FreeBSD/Xen install and be able to create any kind of guest supported by the Xen Hypervisor.

Instructor:

Roger Pau Monne is a Software Engineer at Citrix and a FreeBSD developer. He is currently working on maintaining and improving Xen support in FreeBSD, focusing mainly on PVH and Dom0. He also contributes to other Xen-related projects, like the Xen Hypervisor itself, the Linux kernel and Qemu.


Meetings


M1: FreeBSD Developer Summit (invited only)

Chair:
Hiroki Sato

M2: *BSD Vendor Summit

Chair:
TBA
Schedule:
  • 14:00-14:30 Opening
  • 14:30-15:00 TBA by Masazumi Koga (Hewlett-Packard Japan, Ltd.)
  • 15:00-15:30 Hyper-V on FreeBSD by Wei Hu (Microsoft)
  • 15:30-16:00 Break
  • 16:00-16:30 Introduction of NEC Micro Modular Server by Ishii Hiroshi (IT Platform division, NEC)
  • 16:30-17:00 An OpenBSD-based Firewall product by Esdenera and IIJ by Reyk Floeter (Esdenera Networks GmbH)

M3: NetBSD Developer Summit (invited only)

Chair:
Masanobu Saitoh ()

M4: NetBSD BoF

Chair:
Jun Ebihara ()
Abstract:

Please visit https://github.com/ebijun/NetBSD/blob/master/Guide/Place/asiabsdcon.rst for more details.


M5: bhyvecon Tokyo 2015

Chair:
Michael Dexter
Abstract:

The second annual bhyvecon Tokyo will take place on March 12th, 2015 from 16:30 to 20:00 at the Tokyo University of Science after the FreeBSD DevSummit. We will discuss the latest developments in bhyve and FreeBSD Xen Dom0 plus have an open discussion of user success stories and desired features. The good people at ScaleEngine will provide approximately 35 bento meals that will be available on a first-come, first-serve basis. Please RSVP via the link at bhyvecon.org

Website and registration:

Please visit http://bhyvecon.org.


Papers


P1A: Block Storage Device Life Cycles

Abstract:

Block storage has joined electricity as one of the fundamental technologies on which we are completely and irrevocably dependent. The two technologies are in fact becoming inextricable now that computers control virtually every electrical system from the distribution grids on up, and computers themselves are completely dependent on electricity to operate. Both technologies have undergone countless innovations yet still operate largely on their original basic principles. While high in capacity, fast and affordable, the modern hardware block storage device or "hard disk" operates on the same principles as the original 1956 IBM 350 disk storage unit and most solid-state alternatives emulate hard disks. Beginning with the Berkeley Fast File System, the BSD family of operating systems has played a key role in the evolution of general purpose block storage and continues this innovation with technologies like virtual block storage devices, GEOM, UFS2, ZFS, GELI, HAST, GEOM Journaling, FUSE, tmpfs and the NAND Flash framework. This paper will survey the available block device options in the FreeBSD operating system and explore their practical uses in modern storage architectures.

Author:

Michael Dexter has used BSD Unix systems since January of 1991 and provides BSD and ZFS support at Gainframe. He has supported BSD through download mirrors, events and organizations for over a decade and in his spare time edits Call For Testing, a BSD technical journal. Michael lives with his wife, daughter and son in Portland, Oregon.


P1B: Introducing OpenBSD's new httpd

Abstract:

OpenBSD includes a brand new web server that was started just two weeks before the 5.6 release was nished. Work is in active progress and signicant improvements have been done since its initial appearance. But why do we need another web server? This talk is about the history, design and implementation of the new httpd(8). About 17 years ago, OpenBSD rst imported the Apache web server into its base system. It got cleaned up and improved and patched to drop privileges and to chroot itself by default. But years of struggle with the growing codebase, upstream, and the inacceptable disaster of Apache 2 left OpenBSD with an unintended fork of the ageing Apache 1.3.29 for many years. When nginx came up, it promised a much better alternative of a popular, modern web server with a suitable BSD license and a superior design. It was patched to drop privileges and to chroot itself by default and eventually replaced Apache as OpenBSD's default web server. But history repeated itself: a growing codebase, struggle with upstream and the direction of its newly formed commercial entity created a discontent among many developers. Until one day at OpenBSD's g2k14 Hackathon in Slovenia, I experimented with relayd and turned it into a simple web server. A chain of events that were supported by Bob Beck and Theo de Raadt turned it into a serious project that eventually replaced nginx as the new default. It was quickly adopted by many users: "OpenBSD httpd" was born, a simple and secure web server for static les, FastCGI and LibreSSL-powered TLS. And, of course, "httpd is web scale".

Author:

Reyk Floeter is the founder of Esdenera Networks GmbH, a company that develops OpenBSD-based networking and security products for cloud-based and software-dened networks. For more than ten years, he gained experience in creating and commercially supporting enterprise-class products based on OpenBSD, like most recently the Esdenera Firewall. Reyk is located in Hannover, Germany, but works with international customers like Internet Initiative Japan Inc. (IIJ) in Tokyo. He is the author of the popular relayd load balancer and a hacker in the OpenBSD project, where he contributed various features, xes, networking drivers and daemons since 2004, like OpenBSD's ath, trunk (a.k.a. lagg), vic, hostapd, relayd, snmpd, iked, and httpd.


P2A: Smartcom's control plane software, a customized version of FreeBSD

Abstract:

Smartcom-Bulgaria AD's switching family consists of active Ethernet switches targeted at offering access and aggregation layer L2 and L3 switching solutions for FTTX deployments that satisfy today's requirements for delivering TriplePlay services with appropriate levels of QoS and security. A customized version of FreeBSD is used as a control plane OS in the aforementioned platforms.

Author:

Boris Astardzhiev is a software developer in the R&D team for Smartcom Bulgaria AD and, as such, has been involved in the development of Smartcom's line of CPE, Access and Aggregation Ethernet products since their inception. He comes from networking and software development background and has been in the industry for more than 9 years. *BSD user since 2002.


P2B: kcgi: securing CGI applications in C

Abstract:

With privsep, sandboxes, capabilities, and jails, BSD systems are gaining more and more tools to protect developers from themselves. These tools constrain an application's environment to a functional minimum, limiting the crash exposure of valuable system resources.

In this talk, I'll introduce an ISC-licensed C library, kcgi, that brings these systems to bear on a special class of applications: web applications.

All web applications have two common factors: a significant attack surface and the necessary treatment of toxic network-facing data. kcgi helps by parsing and proxying this data in a sandboxed child, detoxifying input for the application to further (mis-)handle.

I'll talk briefly about kcgi's design, development, and usage, but will primarily address the security itself and its practical costs in terms of throughput (costly) and system complexity (also costly).

Author:

Kristaps Dzonsons is a consultant in computational mathematics, building open source software when existing tools don't fit the bill. He currently lives in southern France.


P2C: Pipecut - Interactive Pipeline Editor

Abstract:

Pipecut is a new interactive interface for creating, editing, and debugging Unix command pipelines.

Instead of writing a pipeline one command at a time, and alternating between command line editing and inspecting the results of your data transformation, pipecut lets you do both at the same time. With a full-screen vi-like interface, you can create a long pipeline with as few as five keystrokes, and inspect what is happening to the data between each stage of your pipeline.

The presentation will include demonstrations of many features of the tool, and a discussion of the design of the application and the abstract syntax tree representation of Unix pipelines.

Finally, a roadmap for future feature development will be discussed, including an examination of how the backend libpipecut library will enable embedding flexible data manipulation functionality into other tools.

Author:

David Maxwell is the Director of Threat Intelligence at eSentire Inc. David has over 25 years of experience as an open source user and developer, and has been particularly active in the NetBSD community. He currently sits on the advisory board for the BSD Certification Group and the program committee for the annual BSDCan conference. He was also a NetBSD Security Officer from 2001-2005, on the NetBSD Foundation Board of Directors 2009-2011 and a contributor to the best-selling O'Reilly title "BSD Hacks." Maxwell worked at Coverity running the DHS sponsored Scan project to identify and resolve tens of thousands of flaws in open source codebases, and participates with the DHS Software Assurance Forums to promote new ways of analyzing system security. Maxwell has previously worked as a lead kernel developer for Nokia and held network security positions at firms such as Coventus and Fundy Communications.


P3A: Unifying jail and package management for PC-BSD, FreeNAS and FreeBSD

Abstract:

Historically the PC-BSD project has had easy-to-use, powerful GUI utilities for package and jail management. However, being X11/Qt applications, this made their usefulness limited only to workstations, or other systems running a graphical environment, not particularly well suited for FreeNAS or a traditional FreeBSD server. With the rise of web-browser driven system management, it was also time for PC-BSD to begin converting some of its more popular tools into web-manageable forms. Over the summer of 2014, a new project was started to re-create the AppCafe, a pkgng front-end, and the Warden, a jail manager, into web-accessible utilities for inclusion into both PC-BSD and FreeNAS. This front-end allows remote management of jails and packages on the upcoming FreeNAS 10, as well as system package management on FreeBSD and PC-BSD. This talk will provide a high-level overview of the functionality of the new AppCafe / Warden, along with technical details about the implementation for developers.

Author:

Kris Moore is the founder and lead developer of the PC-BSD project. He is also the co-host of the popular BSDNow video podcast. When not at home programming, he travels around the world giving talks and tutorials on various BSD related topics at Linux and BSD conferences alike. He currently lives in Tennessee (USA) with his wife and five children and enjoys playing bass guitar / video gaming in his (very limited) spare time.


P3B: The results of using BGP for realtime import and export of spam whitelist/blacklist entries

Abstract:

At AsiaBSDCon 2013, I introduced a new method to distribute spam whitelist/blacklist entries. Now, I am able to present the results of 2 years of usage.

This project uses the new solution originally presented in 2013: using BGP to distribute the IP addresses in a real-time manner.

Author:

Peter Hessler is 34 and has been a developer with the OpenBSD project since 2008.

Originally from San Francisco he has an interest in how things work. An OpenBSD user since 2000, he moved to Germany in 2008 and then to Switzerland in 2013, then *back* to Germany in 2015. In his spare time, Peter enjoys drinking beer, filling out Immigration documentation, and bad puns.


P3C-1: Pretty-printing of kernel data structures

Abstract:

One of the key features of a debugger is the ability to examine memory and the associated data structures. For a long time, DDB, the FreeBSD kernel debugger, has been shipping with limited functionality in this area. By borrowing a core part of the DTrace technology, the Compact C Type Format (CTF), we aim to provide a convenient and self-maintainable way for DDB to pretty-print all C data structures used in the currently loaded kernel image. In order to satisfy technological and licensing criteria we developed a custom library implementation of the CTF. While implementing the idea, we faced many challenges, such as intelligent printing of recursive data structures, avoiding the need to perform disk I/O inside the debugger, supporting cross-compilation by being endian-independent or designing the library to achieve predictable speed and memory consumption. We conclude with musings about other potential usage of the format in FreeBSD and we discuss the possibility to extend the format to support C++ classes.

Author:

Daniel Lovasko is a bachelor candidate in the field of Computer Science at the Charles University in Prague. His main areas of interest are Unix programming, improving/creating debuggers, experimenting with Haskell and Erlang and DevOps infrastructure. He was previously employed at SUSE Linux, German AI Research Centre. His current position is a software engineer at CERN in Geneva. In the year 2014, Daniel successfully completed the Google Summer of Code with the FreeBSD Project with George Neville-Neil as his mentor. He developed the BSD-licensed implementation of the Compact C Type Format and utilised it in the kernel debugger DDB.


P3C-2: FreeBSD preseed installation (PXE)

Abstract:

"FreeBSD preseed installation" is a Google Summer of Code 2014 project for FreeBSD organization to provide a non interactive, unattended FreeBSD installation process from the network and without the usage of NFS server. It's an extension for scripted bsdinstall and allows to install many instances of FreeBSD easily, without complicating configuration services like NFS or TFTP, which is not obvious for beginning users. The second part of the project is about booting the FAI (Fully Automatic Installer) from the network by PXE. An installer distro was created and based on mfsBSD.

Author:

Kamil Czekirda is a final-year student at Warsaw University of Technology. He also works as a network and systems administrator in Core Infrastructure System department in the ICM, which is a part of Warsaw University. He is a successful Google Summer of Code 2014 student, mentored by Devin Teske. Kamil is interested in diskless workstations and unattended installations of different kinds of systems. He also manages two official FreeBSD mirror sites in Poland.


P4A: Lumina-DE: Redefining the Desktop Environment for Modern Hardware

Abstract:

As computers continue to advance into every aspect of our daily lives through the pervasiveness of cell phones and tablets, the traditional "desktop computer" is gradually being shifted to a smaller subset of the total systems in use. This presents a problem for open source operating systems, as the available open source graphical environments are increasingly designed for systems with powerful hardware or traditional mouse/keyboard inputs \u2013 resulting in a much lower percentage of devices that are physically capable of utilizing the OS. The open-source Lumina desktop environment is designed to solve these problems by meeting its goals of being a highly flexible and scalable interface that runs with relatively little hardware requirements. The project also provides a simple framework for integrating OS-specific functionality directly into the interface for ease-of-use without causing conflict with the underlying system or affecting portability. This paper will take a top-level view of the Lumina desktop project, breaking it down to its components, explaining the framework and methodology, and listing the work that is still yet to be completed to achieve its goals.

Author:

Ken Moore is one of the main developers of the PC-BSD project, mainly focusing on graphical utility development. He is the creator and maintainer of several utilities for PC-BSD: such as the Lumina desktop environment, EasyPBI, PCDM, and the most recent Qt iteration of the AppCafe.


P4B: Go based content filtering software on FreeBSD

Abstract:

Go is a new programming language compared to many other programming languages like C, C++, Java, etc., but it has many practical and useful features and in most cases more productive. On the other hand, FreeBSD has been around for very long time and proven to be the most reliable, one of the most powerful operating system available today. In this paper, we will discuss the issues, pros, cons, and common pitfalls of developing software in Go on FreeBSD and we chose content filtering software for this purpose, and called our project Shuultuur. First, we will describe a rational behind our choices for setting up our development environment and toolchain. In addition, we will list specific hurdles, that we faced, related to content filtering software, Go and FreeBSD. Furthermore, our real world benchmarking results in contrast to Dansguardian and other findings will be presented. Finally, we will conclude and discuss possible future works.

Author:

Ganbold Tsagaankhuu is a freelancer and working on various FreeBSD related projects. He is also promoting Unix like operating systems and Open Source in Mongolia. He is the one of the founders of Mongolian Unix User Group. He received his Masters degree in Computer science from Novosibirsk State Technical University in 1994. After graduating from university he worked for Secretariat office of Parliament of Mongolia, where he learned a lot, from repairing personal computers to installing and configuring LAN, tuning Windows, Netware and Linux servers. From 1998 to 2001 he worked as a national professional connecting government agencies and organizations to WAN for joint project that was implemented by Mongolian Government and United Nations Development Programme. Since 2002 to 2009 he worked for local ISP where he had to administer more than 30 FreeBSD servers and develop various software. He translated FreeBSD handbook to Mongolian language and started contributing to FreeBSD project since 2007. From April, 2009 to July, 2014 he worked for local mobile operator where he was in charge of IT division that had to develop software, administer servers and improve security of the company.

Dr. Esbold Unurkhaan is a lecturer of Network and System security at the School of Information and Communication Technology (SICT) of Mongolian University of Science and Technology (MUST), Ulaanbaatar. He received his PhD from Duisburg-Essen University (Germany) in 2005. From 2001 to 2004 He was a researcher in Institute for Experimental Mathematic of Duisburg-Essen University and worked on his PhD thesis which is named "Secure End-to-End Transport over SCTP -- A new security extension for SCTP". In 1997, He has graduated his bachelor degree program and begun to work as a researcher in MUST until moving to Germany. After research work in Germany he came back to Mongolia and worked in Computer Science and Management School of MUST. He can be contacted at esbold@must.edu.mn and living in Ulaanbaatar, Mongolia.

Erdenebat Gantumur is a security engineer at ESCRYPT, Inc. He received a B.S. dual degree in Software and Hardware engineering from the Mongolian University of Science and Technology and a M.S. in Information Technology and Information Security from the Carnegie Mellon University. Mr. Gantumur has over 10 years of experience in security areas including network security, information assurance, computer security, and embedded data security. He led and worked on number of V2X and in-vehicle security related projects including at ESCRYPT, Inc. In the past, he has worked as a network engineer, system and network administrator, and information security administrator. He has also co-founded Mongolian first cyber incident response team and has worked as a network security analyst.


P4C: Modernizing NetBSD Networking Facilities and Interrupt Handling

Abstract:

Networking facilities of NetBSD still have a lot of room for improvement, especially the scalability of its network processing is one of big issues that we have to address. We have been working on making the network stack and device drivers MP-safe to scale up NetBSD network processing. Supporting MSI/MSI-X and multi-queue (with interrupt affinity) features of network devices in NetBSD is also an important task towards the goal.

This paper describes the current status of NetBSD networking facilities and our recent work to improve them. The paper also reports results of preliminary evaluations for our implementation and shows that our implementation scales up well on a multi-core system.

Author:

Ryota Ozaki has been working on developing consumer premises equipments at Internet Initiative Japan Inc. (IIJ) in recent years and he is in charge of researching, designing and implementing new features of them. He is a NetBSD developer since February 2014. His interests are operating systems, networking and virtualization.

Kengo Nakahara is an employee of Internet Initiative Japan Inc. (IIJ) since 2013. IIJ develops Customer Premises Equipment (CPE) routers based on NetBSD. He became a NetBSD developer 2014 December. He is implementing NetBSD MSI/MSI-X and interrupt affinity for i386 and amd64. Additionally, he is interested in NetBSD intel NIC driver (if_wm) and working on support of multi-queue in the driver.


P5A: Advanced Open Source Storage with FreeNAS 9.3

Abstract:

FreeNAS is an open source, BSD-licensed, network attached storage (NAS) operating system based on FreeBSD. It uses OpenZFS, the open source version of ZFS, a self-healing filesystem which is particularly suited for storage and for maintaining the integrity of the data being stored. Though freely available as an open source operating system, the advanced features and ease-of-use allow FreeNAS to scale from the casual home user up to large, enterprise-grade storage environments.

The latest version, FreeNAS 9.3, adds several new features which make FreeNAS an even more compelling storage solution. This paper provides an overview of some of these features. Refer to the FreeNAS 9.3 User Guide1 for more information about FreeNAS, its features, and configuration options.

Author:

Dru Lavigne is the lead documentation writer for the PC-BSD and FreeNAS projects. She is author of BSD Hacks, The Best of FreeBSD Basics, and The Definitive Guide to PC-BSD. She 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, and serves on the Board of the FreeBSD Foundation.


P5B: The LLDB Debugger in FreeBSD

Abstract:

LLDB is a modern, high-performance debugger in the LLVM family of projects, and is built as a modular and reusable set of components on top of the Clang/LLVM foundation. Originally developed for Mac OS X, it now also supports FreeBSD and Linux with ongoing work towards Windows support. This talk will provide an overview of the design of LLDB, compare it with the existing GNU debugger in the FreeBSD base system, and present the path to importing LLDB as FreeBSD's debugger.

Author:

Ed Maste manages project development for the FreeBSD Foundation and works in an engineering support role with the University of Cambridge Computer Laboratory. He is also a member of the elected FreeBSD Core Team. Aside from FreeBSD and LLDB, he is a contributor to a number of other open-source projects, including QEMU and Open vSwitch. He lives in Kitchener, Canada, with his wife, Anna, and sons, Pieter and Daniel.


P5C: The odd kid on the block

Abstract:

Modern ARM SoCs offer bi-endian support: the CPU can switch between little and big endian mode. Similar to the old hacker phrase "all the world is a vax" of course everyone (and most software) expects ARM processors to be little endian.

Matt Thomas realized this would be an interesting challenge for the NetBSD portability mantra and added support for this mode to NetBSD/evbarm. When the NetBSD foundation offered me a CubieTruck for my regular "test runs on strange hardware" lab, I decided to use the big endian kernel and see what fallout happens.

This paper describes the problems I found and the solutions chosen.

Of course in the end it is not the identification of a bug that counts, but its elimination. The whole process so far was a big success: currently the automatic test runs show a tie between armv5-little endian, armv7-big endian, and sparc64 at the top rank of all architectures with only 1 unexpected failure in NetBSD-current in the last run and 5 unexpected failures on the netbsd-7 branch, of which one is a race condition and four are analysed, fixes will be pulled up soon.

Author:

Martin Husemann received a master degree in computer science from University of Paderborn, Germany.

He worked as consultant for several years, until he ended up in a big C++ team doing calculation software for huge building sites. From there on he worked in the building and CAD market - and doing 3D visualizations in internet browsers (starting in 1998). He ran his own company for ten years, until it got bought by his current employer, ELECO Software GmbH, where he is now head of development.

Martin has been a NetBSD user since the first days of NetBSD, and a developer since 2000. Originally working on ISDN support, he later also served on the board of directors of the NetBSD foundation for four years and currently is port-master for NetBSD/sparc64.

He is now member of the NetBSD release engineering team and heavily involved in the regular test runs of NetBSD-current on real hardware (there are also fully automated test runs on emulated hardware).


P6A: Programmable Realtime Units in FreeBSD

Abstract:

Programmable Realtime Units (PRU) are small CPUs that have recently become widely available due to the explosion of some ARM-based System-on-Chips. These units have multiple uses and can even replace the need for an FPGA in some cases, making them interesting additions to SoC itself. However, they aren't widely known, possibly because the software support is missing in most open source operating systems. This paper describes the architecture of one Texas Instruments PRU and the necessary software to make full use of it on the FreeBSD operating system. We also analyse the security of this PRU and the implications when it's misused.

Author:

Rui Paulo is a software engineer living in San Jose, CA with his wife. He enjoys working on operating systems, networking protocols, embedded systems, and functional programming languages. He's been a FreeBSD committer since 2007 and, in a past life, also improved NetBSD. He enjoys flying airplanes, riding motorcycles or driving cars in his spare time.


P6B: A Universal Configuration File Format for FreeBSD

Abstract:

The FreeBSD base system contains a number of unique one-off config file formats for various utilities. I would like to see those replaced with UCL, the universal config language, a common syntax that is easier to read and write, both by hand and programmatically. A library for parsing UCL, libUCL, already exists (created by a fellow FreeBSD developers) and is included in the base system, where it is already used by the pkg utility. This project has also spawned the creation of additional tools to parse, extract values, and modify UCL config files via the command line to simplify administration with tools such as Puppet, Saltstack, or Ansible. libUCL based config files support a feature rich include system, including override priorities, allowing the creation of *.conf.d/ directories for everything, with cascading priorities for conflicting settings. As a result of this feature, an additional tool to compile the 'resultant configuration' is necessary, so the administrator can view what the final configuration will be, and this tool can also perform other functions including syntax and schema validation.

The paper presents the work finished to date:

  • Creation of uclcmd, to allow shell scripts to parse UCL config files, and to allow the scripted modification of config files

  • Raised issues and upstreamed modifications to libUCL to create the required features

  • Modification of newsyslog to read a UCL config file. Much improved config format is more expressive and more human writable. Replace existing 'bunch of letters', flags field with human readable flags (J = bzip2, R = run_command, separate field for command or pid, instead of overloading the meaning of a single field).

Author:

Allan Jude is VP of Operations at ScaleEngine Inc., a global HTTP and Video Streaming Content Distribution Network, where he makes extensive use of ZFS and Puppet on FreeBSD. He is also the host of the video podcasts "BSD Now" (with Kris Moore) and TechSNAP on JupiterBroadcasting.com. Allan is also a FreeBSD docs committer, and author of large portions of the ZFS chapter of the renowned FreeBSD Handbook, as well as a number of articles in the FreeBSD Journal. He taught FreeBSD and NetBSD at Mohawk College in Hamilton, Canada from 2007-2010 and has 12 years of BSD sysadmin experience.


P6C: Development of the BSD Professional Lab Exam

Abstract:

The BSD Professional certification requires a written exam and a hands-on lab exam. This paper describes the development of the hands-on exam from concept through design, implementation, and beta launch in 2014.

Author:

Jim Brown is one of the founding members of the BSD Certification Group and has worked in the computer industry since the early 1980s. His experience includes applications, systems and database programming, in a variety of languages. He has been an active BSD user and applications developer since the mid 1990's. Currently, he works for Walmart in the Information Systems Division, and is located in Northwest Arkansas, USA.


P7A: Optimizing TLS for High-Bandwidth Applications in FreeBSD

Abstract:

Transport Layer Security (TLS) is becoming increasingly desirable and necessary in the modern Internet. Unfortunately it also induces heavy penalties on application CPU performance for both the client and server. In this paper we examine the server-side performance implications on CPU computational and data-movement overhead when enabling TLS on Netflix's Open Connect Appliance (OCA) network. We then explore enhancements to FreeBSD to reduce the costs that TLS adds when serving high volumes of video traffic. Finally we describe recent changes and future improvements to FreeBSD's OpenCrypto Framework that can be used to further improve performance.

Author:

Randall Stewart currently works for Netflix Inc. as a Senior Software Engineer. His current duties include optimizing and enhancing FreeBSD's network stack within the Netflix Open Connect Appliance. Previously Mr Stewart was a Distinguished Engineer at Cisco systems. In other lives he has also worked for Adara, Motorola, NYNEX S&T, Nortel and AT&T Communication. Throughout his career he has focused on Operating System Development, fault tolerance, and call control signaling protocols. Mr. Stewart is also a FreeBSD committer having responsibility for the SCTP reference implementation within FreeBSD.

John-Mark Gurney is a consultant specializing in FreeBSD and crypto systems. He has recently made improvements to FreeBSD's OpenCrypto Framework improving speed and adding additional cipher modes. Previously, Mr. Gurney was a Principal Engineer at Cryptography Research where he worked on embedded and crypto systems among other tasks. Mr Gurney is a long time FreBSD committer contributing to various ports to other architectures and locking the kqueue subsystem.

Scott Long currently works for Netflix Inc. as a Senior Software Engineer, focusing on improving the scalability, performance, and stability of the FreeBSD VM, network, and storage subsystems. Previously he has worked at Yahoo Inc and Adaptec. Scott has been involved with FreeBSD for 22 years and a committer for 15 years. He and a lives in Colorado, USA, and holds a bachelor of science degree in Aviation.


P7B: OpenBSD sucks

Abstract:

(intentionally left blank)

Author:

Henning Brauer lives in Hamburg, Germany. He;s serving as CEO of the Internet Service Provider "BS Web Services GmbH" there, and has done so for more than 15 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 has architected and written a very large fraction of today's pf. Whe 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, enjoying brewer's art and often playing tabletop soccer. He's also actively involved in local politics.


P7C: Cross-compilation in pkgsrc

Abstract:

When you want to compile applications for your feeble PowerPC network appliance, you don't want to run the compiler on the appliance: you want to use your 32-core Intel Xeon build machine.

Pkgsrc, the portable package build system, supports cross-compiling thousands of packages on NetBSD between any two CPU architectures. Provided a basic cross-compilation toolchain built by NetBSD's "build.sh tools", pkgsrc cross-compiles the packages you ask it to build, natively compiling and installing any additional tools it needs.

I will discuss how the pkgsrc infrastructure supports cross-compilation, and how to make your package cross-compilable if it isn't already.

Future work will enable cross-compiling between operating systems, not just between CPU architectures of a single operating system, and automatic building of the target OS's toolchain in the pkgsrc build process.

Author:

Taylor "Riastradh" Campbell's first encounter with NetBSD was on an Apple PowerBook, and he immediately appreciated that every build is a cross-build in NetBSD when he started developing patches to the kernel on his x86 laptop.

He has been a NetBSD and pkgsrc committer since 2011, and, unsatisfied by OpenWrt for his network appliances and with the regular argument that "XYZ can't be cross-compiled in pkgsrc, so we'd better put it in the NetBSD base system!", decided to make pkgsrc cross-compilation really work and perhaps some day be a first-class citizen in pkgsrc too.


P8A: A CAM Level I/O Scheduler

Abstract:

FreeBSD's default I/O scheduling policy strives for a general purpose performance across a wide range of applications and media types. Its scheduler does not allow some I/O requests to be given priority over others. It makes no allowances for write amplification in flash devices. GEOM level scheduling is available, but it is limited in what it provides. It is too high in the stack to allow precise control over I/O access patterns. A scheduler in Common Access Method (CAM) can exploit characteristics of the device to precisely control I/O patterns to improve performance. At Netflix, we found that limiting write requests to the drive limited the effects of write amplification on read latency. In addition, we found that favoring reads over writes improves average read latency, but does not fix extreme outliers.

Author:

Warner Losh has spent many years working with NAND Flash storage. Prior to that he's worked in the storage, networking and precision time fields. He's served on FreeBSD's core team in the past, and has contributed to open source software for over 20 years. Warner works currently at Netflix where he helps optimize video delivery to subscribers from our Open Connect Appliances, built on FreeBSD. Warner's past contribution to FreeBSD include embedded projects as well as PC Card, CardBus and SD Card drivers. Warner currently lives in a straw bale house in Colorado with his family.


P8B: Pruning and Polishing: Keeping OpenBSD Modern

Abstract:

Due to their BSD roots, some parts of the OpenBSD code base are more than 30 years old. The computing world has changed considerably since then, but without careful attention it's easy for the systems we use to be left behind. There are two ways to deal with legacy code: pruning (removing) it and polishing (improving) it. OpenBSD has experience with both.

Pruning old code involves identifying code that's no longer used. This isn't always easy, because it's not always immediately apparent when the code stops being used. Device drivers can continue to be built and linked into the kernel for years after the last user has retired the hardware. Similarly, userland programs for legacy protocols may be valuable at certain installations until one day all such sites are upgraded.

Polishing what's left improves the quality of the code base. Preferred idioms and functions evolve over time. The art of programming is as subject to fashion as clothing. While new code in OpenBSD is written to conform to our current standards, it's equally important to return to existing code and refine it as well.

These processes have been taking place for the nearly 20 year history of OpenBSD. We've learned a lot about maintenance approaches that work and some that don't.

Author:

Ted Unangst has been an OpenBSD developer for 12 years, working in many parts of the source tree, but recently having developed something of a specialty in removing stale code.


P8C: The rump kernel: A tool for driver development and a toolkit for applications

Abstract:

The NetBSD rump kernel is a way to run device drivers outside the kernel. Until recently the most common use was as a tool for running tests on NetBSD subsystems. In the last year much more infrastructure has been built around it so that a much wider set of uses are possible. We cover some of these new uses here, in particular using the rump kernel as a tool for driver development, debugging and testing, and as a way to use it to run NetBSD applications in new environments.

In this talk I will show how to take a NetBSD application, link it to the rump kernel and run the combined binary as a userspace process. This allows very simple development, debugging and testing, using familiar userspace tools such as debuggers, or more advanced tools such as valgrind and fuzzers, on the combination of userspace and kernel code. New device drivers can also be developed purely in userspace.

Author:

Justin Cormack is a developer based in London, UK. He has been involved in Unix systems as a sysadmin and developer for many years, in a range of areas including embedded systems, high performance computing, graphics, web development and more. He started working on rump kernels a few years ago, initially to get Lua applications working directly on Xen. He has been a NetBSD developer since 2014. He organized a conference on new research and development in operating systems, https://operatingsystems.io/ in 2014 in London, which will run again in 2015.


P9A: A netmap passthrough for virtual machines

Abstract:

Fast network packet I/O from virtual machines has become increasingly important for Cloud data centers. Existing solutions either rely on SR-IOV and hardware passthrough or are based on Intel's DPDK. Busy polling is often used as a simple solution to reduce latency and avoid guest-host notification costs. We present ptnetmap: a netmap passthrough for virtual machines. It allows applications running in a guest userspace to safely use any netmap port (physical devices, software switches, netmap pipes) which are opened in the host with near-native performance. Compared to existing solutions, this kind of passthrough has most of netmap strengths, namely: i) vendor independence; ii) use of commodity hardware; iii) the possibility to avoid busy polling. Moreover, it offers a degree of flexibility on the amount of memory sharing among virtual machines: VALE ports can be used to isolate untrusted VMs from each other, while netmap pipes can be used to create chains of trusted VMs accessing the same buffer memory. Unlike previous related work we offer a high-speed data path also to untrusted VMs. Running on top of ptnetmap, VMs can saturate a 10Gbps link at 14.88 Mpps, talk at over 20 Mpps to untrusted VMs, and over 70 Mpps to trusted VMs.

Author:

Stefano Garzarella is a PhD Student (Supervisors: Prof. Luigi Rizzo, Dr. Ing. Giuseppe Lettieri) at the Dipartimento di Ingegneria dell'Informazione of the Universite di Pisa, Italy. He received a Master's Degree (summa cum laude) in Computer Engineering from the University of Pisa in February, 2014.

He has been a FreeBSD and Linux developer since 2013. Now he is working on several kernel and user space projects, particularly in the virtualization and networking fields.


P9B: Journaled Soft-Updates

Abstract:

This paper describes the work to add "journaling lite" to soft updates and its incorporation into the FreeBSD fast filesystem. 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.

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.


P9C-1: Instruction caching for bhyve

Abstract:

The Virtual Machine Monitor (VMM - bhyve) must emulate all guest accesses to APIC control registers which requires the CPU to cause VMexits and VMentries. In order to emulate, one needs to fetch and decode the instruction which are very expensive operations. Instead of doing this at each VM exit, one can cache the instruction and only emulate it. However when using the cached instruction from a particular instruction pointer, you must guarantee that the guest won't modify that instruction in memory.

Author:

Mihai Carabas is a teaching assistant and Phd student at University POLITEHNICA of Bucharest. His main research interest is on studying and developing mechanisms to improve virtualization in operating systems. Other interests include system administration, high performance computing and advanced network protocols.


P9C-2: Lua as the FreeBSD loader scripting language

Abstract:

The FreeBSD loader is an important component in the booting process. It's responsible for loading configurations and modules. That being said, this Google Summer of Code project aimed to embed the Lua scripting language into the loader replacing the Forth scripts. Since the Forth language isn't much attractive, due to its unusual syntax, we expect with this project, provide an easy way to add new features to the loader. We choose the Lua language based on its flexibility: being very powerful but at the same time simple and of ease embedding.

Author:

Pedro Arthur is currently a undergraduate student in computer engineering at Polytechnic Institute, Rio de Janeiro, Brazil. In his undergraduate career, he had the opportunity to work as a Google Summer of Code student twice (2013, 2014), and in 2014 he was accepted with the 'Lua loader' project by the FreeBSD organization. He is also a collaborator of the Scilab numerical computation software since 2012.


P10A: Measure Twice, Code Once: Network Performance Analysis for FreeBSD

Abstract:

The networking subsystems of any operating system have grown in complexity as the set of protocols and features supported has grown since the birth of the Internet. Firewalls, Virtual Private Networking, and IPv6 are just a few of the features present in the FreeBSD kernel that were not even envisioned when the original BSD releases were developed at U.C. Berkeley over 30 years ago. Advances in networking hardware, with 10Gbps NIC cards being available for only a few hundred dollars, have far outstripped the speeds for which the kernel's network software was originally written. As with the increasing speed of processors over the last 30 years, systems developers and integrators have always depended on the next generation of hardware to solve the current generation's performance bottlenecks, often without resorting to any coherent form of measurement. Our paper shows developers and systems integrators at all proficiency levels how to benchmark networking systems, with specific examples drawn from our experiences with the FreeBSD kernel. Common pitfalls are called out and addressed and a set of representative tests are given. A secondary outcome of this work is a simple system for network test coordination, Conductor, which is also described. The Conductor system, as well as all the tests and results are published, in parallel, in two open source projects (http://github.com/gvnn3/netperf) and (http://github.com/gvnn3/conductor)

Author:

George Neville-Neil works on networking and operating system code for fun and profit. He also teaches various courses on subjects related to computer programming. His professional areas of interest include code spelunking, operating systems, networking, time and security. He is the co-author with Marshall Kirk McKusick and Robert Watson of _The Design and Implementation of the FreeBSD Operating System_ and is the columnist behind ACM Queue's "Kode Vicious." Mr. Neville-Neil earned his bachelor's degree in computer science at Northeastern University in Boston, Massachusetts, and is a member of the ACM, the Usenix Association, the IEEE, and is one of the Directors of the FreeBSD Foundation. He is an avid bicyclist and traveler who currently resides in New York City.

Jim Thompson is a co-owner at Netgate, and also a co-owner at Electric Sheep Fencing, the company behind pfSense. Prior positions include Director of Product Development at Vivato, a maker of phased-array WiFi products, CTO at Musenki, a developer of open-source wireless networking products, and CTO / VP of Engineeering at Wayport, now AT&T WiFi Services.


P10B: New OpenZFS features supporting remote replication

Abstract:

OpenZFS send and receive forms the core of remote replication products, allowing incremental changes between snapshots to be serialized and transmitted to remote systems. In the past year, we have implemented several new features and performance enhancements to ZFS send/receive, which we will describe in this talk:

  • Resumable ZFS send/receive allows send/receive to pick up where it left off after a failed receive (e.g. due to network outage or machine reboot).

  • ZFS receive prefetch, which is especially helpful with objects that are updated by random writes (e.g. databases or zvols/VMDKs).

  • ZFS send "rebase", which can send changes between arbitrary snapshots; the incremental source is not restricted to being an ancestor of the snapshot being sent.

In this talk, I will cover the impact of these changes to users of ZFS send/receive, including how to integrate them into remote replication products. I will also give an overview of how zfs send/receive works, and how these enhancements fit into the send/recv codebase.

Author:

Matt Ahrens co-founded the ZFS project at Sun Microsystems in 2001, designed and implemented major components of ZFS including snapshots and remote replication, and helped lead Sun's ZFS team for 9 years. Matt is now a software engineer at Delphix, where he works on ZFS for Delphix's database virtualization appliance. He continues to improve ZFS, most recently working on resumable send/receive, as well as coordinating open-source ZFS development across companies and platforms.

Matt founded the OpenZFS community, a collaboration among FreeBSD, Linux, Mac OS X, and illumos ZFS developers. He organizes and keynotes the annual OpenZFS Developer Summit conference.

Matt advises several companies that use ZFS in their products, providing training and helping them design new features and performance enhancements for their specific use cases.

In his spare time, Matt enjoys woodworking, traveling, and working on dtrace.

Matt has a degree in Computer Science from Brown University.


P10C: Converting OpenBSD to PIE

Abstract:

Position-independent executables (PIEs) are the last step on the journey to a fully randomised userland address space on OpenBSD, with the goal of providing improved defense against return-oriented programming. This talk details the measures undertaken to successfully make this conversion on a broad, system-wide scale and also the recent developments regarding static PIE, which will feature in OpenBSD's 5.7 release.

It also provides a perspective on both the future of practically deployed ROP mitigations and the prevalence of such features (including PIE) on other operating systems, such as *BSD, Linux and Windows.

Author:

Pascal Stumpf is a student of Classics living in Koblenz, Germany. His field of interest also extends to software security, exploit mitigations and compilers. He joined the OpenBSD project in 2011 and has since contributed to a number of ports as well as OpenBSD's implementation of PIE.