Language: EN  JA

Registration Fees

  • Delegate (non-student): 12,000JPY (until March 16, 2008), 15,000JPY (on and after March 17, 2008, or on site)
  • Student: 3,500JPY (regardless of the above periods)

This registration fee includes name card, printed proceedings, T-shirt, and tickets of lunch and banquet during the last two days. 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

  • Full-day Tutorial (T1A and T3A): 10,000JPY/class (3,000JPY for students)
  • Half-day Tutorial (others): 6,000JPY/class (1,500JPY for students)

This tutorial fee includes printed materials.

Hotel Accommodations (see also Access Map)

You can book the following hotels via the on-line registration system as an option. For the details please check the registration form when it is ready.

Hotel NameRate (single/double occupancy, per room)Location
Tokyo Green Hotel Ochanomizu7,600JPY/-near JR Ochanomizu station
Suidobashi Grand Hotel
(hotel's official web page in Japanese only)
8,085JPY/13,860JPYnear JR Suidobashi station
Tokyo Green Hotel Korakuen8,715JPY/-near JR Suidobashi station
Tokyo Dome Hotel15,115JPY/18,480JPYnear JR Suidobashi station

Please contact if you have a specific question about the accommodation.

Conference Timetable

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


Day 1 (March 27, 2008) - Tutorials and Small Meetings I

Room ARoom BRoom CRoom D
10:00 - 12:30 Tutorial T1A:
"An Introduction to the FreeBSD Open-Source Operating System: Kernel Functions"
Marshall Kirk McKusick, PhD
(full-day)
Tutorial T1B:
"Detangling and Debugging: Friends in Unexpected Places"
Philip Paeps
(half-day)
Meeting B1C:
FreeBSD DevSummit
(invited only)
Chair: George Neville-Neil
-
14:00 - 16:30 - -

Day 2 (March 28, 2008) - Tutorials and Small Meetings II

Room ARoom BRoom CRoom D
10:00 - 12:30 Tutorial T3A:
"An Introduction to the FreeBSD Open-Source Operating System: Filesystems and Networking"
Marshall Kirk McKusick, PhD
(full-day)
Tutorial T3B:
"Development Technique for BSD Embedded Systems" (in Japanese)
Shozo Takeoka
(half-day)
Meeting B3C:
FreeBSD DevSummit
(invited only)
Chair: George Neville-Neil
Tutorial T3D:
"High-Performance Computing Clusters With FreeBSD"
Brooks Davis
(half-day)
14:00 - 16:30 Tutorial T4B:
Underlying Risk Factors in DNS and BIND Configuration (in Japanese)
Masato Minda
(half-day)
Meeting B4D: NetBSD Discussion
(15:00-18:00)
Chair: Masao Uebayashi

Day 3 (March 29, 2008) - Paper Session I (2 Tracks)

Room ARoom B
10:50 - 11:00 Opening
11:00 - 11:45 P1A: PC-BSD: FreeBSD on the Desktop
Matt Olander
P1B: Tracking FreeBSD in a Commercial Setting
M. Warner Losh
11:45 - 13:00 Lunch
13:00 - 13:45 P2: Keynote: Peter Losher (Internet Systems Consortium, Inc.)
14:00 - 14:45 P3A: Gaols: Implementing Jails Under the kauth Framework
Christoph Badura
P3B: BSD Implementations of XCAST6
Yuji Imai
15:00 - 15:45 P4A: Using FreeBSD to Promote Open Source Development Methods
Brooks Davis
P4B: Send and Receive of File System Protocols: Userspace Approach With puffs
Antti Kantee
18:00 - 20:30 Banquet

Day 4 (March 30, 2008) - Paper Session II (2 Tracks)

Room ARoom B
10:00 - 10:45 P5A: Logical Isolation in the NetBSD Kernel
Kristaps Džonsons
P5B: GEOM - in Infrastructure We Trust
Pawel Jakub Dawidek
11:00 - 11:45 P6A: A Portable iSCSI Initiator
Alistair Crooks
P6B: TBD
TBD
11:45 - 13:00 Lunch
13:00 - 13:45 P7: Keynote: Prof. Hideki Sunahara (Nara Institute of Science and Technology)
14:00 - 14:45 P8A: OpenBSD Network Stack Internals
Claudio Jeker
P8B: Reducing Lock Contention in a Multi-Core System
Randall Stewart
15:00 - 15:45 P9A: Sleeping Beauty - NetBSD on Modern Laptops
Jörg Sonnenberger
P9B: A Brief History of the BSD Fast Filesystem
Marshall Kirk McKusick
18:00 - 20:30 Closing and Banquet

Tutorials


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

Abstract:

Who Should Take this Course?

This course is of direct use to the professionals who work with FreeBSD systems. Individuals involved in technical and sales support can learn the capabilities and limitations of the system; system administrators without direct experience with the FreeBSD kernel can learn how to maintain, tune, and configure the system; applications developers can learn how to effectively and efficiently interface with the system; and systems programmers can learn how to extend, enhance, and interface to the system.

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. Students who will benefit from this course include operating-system implementors, system programmers, UNIX application developers, administrators, and curious users. This course is directed to users who have had at least a year of experience using a UNIX-like system. Knowledge of the C programming language is helpful, but not essential. They should have an understanding of fundamental algorithms (searching, sorting, and hashing) and data structures (lists, queues, and arrays).

Description

This course will provide a firm background in the FreeBSD kernel. The course will cover basic kernel services, process structure, the FreeBSD jail facility for hosting virtual machines, scheduling, signal handling, and virtual and physical memory management. The kernel I/O structure will be described showing how I/O is multiplexed, and how special devices are handled. The presentations will emphasize code organization, data structure navigation, and algorithms. It will not cover the machine specific parts of the system such as device drivers.

Morning - Kernel Overview
  • Process structure
  • Locking
  • Communications
  • Process groups and sessions
  • Jails
  • Scheduling
  • Signals and timers
  • Virtual memory management
Afternoon - Kernel I/O structure
  • I/O data structures
  • Disk management
  • Multiplexing I/O
  • Autoconfiguration strategy
  • Configuration of a device driver
Instructor:
Dr. Marshall Kirk McKusick writes books and articles, consults, and teaches classes on UNIX- and BSD-related subjects. For the past ten years he has been a developer and commiter to the FreeBSD Project. His particular areas of interest are the virtual-memory system and the filesystem. While at the University of California at Berkeley, he implemented the 4.2BSD fast file system, 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 Masters degrees in Computer Science and Business Administration, and a doctoral degree in Computer Science. He is a past president of the Usenix Association, is on the editorial board of ACM's Queue magazine, and is a member of ACM and IEEE.

T1B: Detangling and Debugging: Friends in Unexpected Places

Abstract:

Debugging is universally anticipated with distaste, performed with reluctance and bragged about forever. This tutorial will demonstrate how clever use of the right tools can reduce the distaste and the reluctance and thus maximize the bragging.

The tutorial consists of two parts.

The first part explains in depth what a software program looks like from a hardware point of view and how bugs affect correct execution. An thorough demonstration of nm, objdump and gdb will show how to identify common problems quickly and will offer insight on how to avoid them on a high level.

The second part of the tutorial is more hands-on. A USB stick with some creative bugs will be provided and will be tackled interactively.

Participants are encouraged to bring bugs and war stories of their own.

Instructor:
Philip Paeps is a software consultant and contractor based in Belgium. He spends most of his energy on embedded systems. Currently, he is working full-time on the network stack of a widely-deployed internet gateway device. Philip is a FreeBSD committer, contributing mainly to the kernel, a member of the FreeBSD security team and the FreeBSD core secretary. He has been using FreeBSD for longer than he can remember.

T3A: An Introduction to the FreeBSD Open-Source Operating System: Filesystems and Networking

Abstract:

Who Should Take this Course?

This course is of direct use to the professionals who work with FreeBSD systems. Individuals involved in technical and sales support can learn the capabilities and limitations of the system; system administrators without direct experience with the FreeBSD kernel can learn how to maintain, tune, and configure the system; applications developers can learn how to effectively and efficiently interface with the system; and systems programmers can learn how to extend, enhance, and interface to the system.

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. Students who will benefit from this course include operating-system implementors, system programmers, UNIX application developers, administrators, and curious users. This course is directed to users who have had at least a year of experience using a UNIX-like system. Knowledge of the C programming language is helpful, but not essential. They should have an understanding of fundamental algorithms (searching, sorting, and hashing) and data structures (lists, queues, and arrays).

Description

This course will provide a firm background in the FreeBSD kernel. The course will begin wiath a description of how the filesystem buffers are managed. The implementation of the filesystem and its capabilities including soft updates and snapshots will be described. The filesystem interface will then be generalized to show how to support multiple filesystem types. The course will also cover the FreeBSD 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. 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 device drivers.

Morning - Filesystem Overview
  • Filesystem organization
  • Block I/O system (buffer cache)
  • Filesystem implementation
  • Soft Updates
  • Snapshots
  • Support for multiple filesystems
Afternoon - Networking Implementation
  • System layers and interfaces
  • Internet protocols (TCP/IP)
  • Data structures (mbufs and control blocks)
  • Routing issues
Instructor:
Dr. Marshall Kirk McKusick writes books and articles, consults, and teaches classes on UNIX- and BSD-related subjects. For the past ten years he has been a developer and commiter to the FreeBSD Project. His particular areas of interest are the virtual-memory system and the filesystem. While at the University of California at Berkeley, he implemented the 4.2BSD fast file system, 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 Masters degrees in Computer Science and Business Administration, and a doctoral degree in Computer Science. He is a past president of the Usenix Association, is on the editorial board of ACM's Queue magazine, and is a member of ACM and IEEE.

T3B: Development Technique for BSD Embedded Systems (in Japanese only)

Abstract:
This tutorial will provide various technique for embedded BSD systems. The talk consists of two parts: the first half covers hardware requirements, configuration tips, HDD-less BSD, and basic procedure of porting BSD to a not-yet-supported CPU architecture. The another half covers the instructor's real-life experiences on porting BSD and developing embedded systems such as issues on non-x86 systems and how to make it without documentation. The talk itself will not be BSD flavor specific, but most of the examples are based on NetBSD.
Note that this tutorial will be in Japanese only.
Instructor:
Shozo Takeoka is the president of AXE, Inc. He worked on development of Wnn (Kana-Kanji conversion software) and X Window terminals in 1980s as well as operating system design for X Window terminals and TCP/IP protocol software, and then worked on LSI hardware and software design of 1024PE-class parallel computer. In 1992 he founded AXE, Inc. and developed a embedded-system-friendly microkernel called XTAL. XTAL has been adopted by Zaurus series (PDA by Sharp Corporation), digital cameras by Olympus Corporation, and 6Mbps IP communication system for satellite. He is now working on BSD/Linux embedded system and real-time system along with his company's management. AXE, Inc.'s anchor products are middleware for cellular phones, embedded BSD, embedded Linux, and so on, and it provides them to vendors of network equipment, home electric appliance, and digital camera.

T3D: High-Performance Computing Clusters With FreeBSD

Abstract:
This tutorial will be composed of two somewhat intertwined parts. The first part will be a updated and extended version of the talk on cluster architecture considerations I gave at BSDCon 2003 based on several more years of experience. The idea is to hit the major design points cluster builders need to address. This part is platform neutral.
The second part will be a detailed overview of the FreeBSD features I've used to build and manage my cluster. In particular diskless booting, useful ports, and some specifics of configuring Sun Grid Engine and Ganglia.
Instructor:
Brooks Davis is a Senior Member of Technical Staff in the High Performance Computing Section if the Computer Systems Research Department at The Aerospace Corporation. He has been a FreeBSD user since 1994, a FreeBSD committer since 2001, and a core team member since 2006. He earned a Bachelors Degree in Computer Science from Harvey Mudd College in 1998. His computing interests include high performance computing, networking, security, mobility, and, of course, finding ways to use FreeBSD in all these areas. When not computing, he enjoys reading, cooking, brewing and pounding on red-hot iron in his garage blacksmith shop.

T4B: Underlying Risk Factors in DNS and BIND Configuration (in Japanese only)

Abstract:
(to be updated)
Instructor:
Masato Minda, Japan Registry Services Co., Ltd.

Meetings


B1C, B3C: FreeBSD Developer Summit (invited only)

Chair:
George Neville-Neil

B4D: NetBSD Discussion

Chair:
Masao Uebayashi (uebayasi at gmail.com)
Abstract:

Anything about NetBSD for anyone - demo a new product running NetBSD, exchange information about hardware which you want to use on NetBSD. Some foreign (== non-Japanese) developers will attend.

Visit http://www.netbsd.org/~uebayasi/abc2008bof.txt for more details.


Papers


P1A: PC-BSD: FreeBSD on the Desktop

Author:
Matt Olander (iXSystems, USA)
Abstract:

(to be updated)


P1B: Tracking FreeBSD in a Commercial Setting

Author:
M. Warner Losh (imp at FreeBSD.org, Cisco Systems, Inc.)
Abstract:

The FreeBSD project publishes two lines of source code: current and stable. All changes must first be committed to current and then are merged into stable. Commercial organizations wishing to use FreeBSD in their products must be aware of this policy. Four different strategies have developed for tracking FreeBSD over time. A company can choose to run only unmodified release versions of FreeBSD. A company may choose to import FreeBSD's sources once and then never merge newer versions. A company can choose to import each new stable branch as it is created, adding its own changes to that branch, as well as integrating new versions from FreeBSD from time to time. A company can track FreeBSD's current branch, adding to it their changes as well as newer FreeBSD changes. Which method a company chooses depends on the needs of the company. These methods are explored in detail, and their advantages and disadvantages are discussed. Tracking FreeBSD's ports and packages is not discussed.


P3A: Gaols: Implementing Jails Under the kauth Framework

Author:
Christoph Badura (bad at netbsd.org, The NetBSD Foundation)
Abstract:

FreeBSD's jail facility provides a light-weight form of virtualization by restricting access to the file system, to privileged system calls, to network resources and the ability to see and interfere with processes in other jails for the imprisoned processes.

NetBSD 4.0 introduced a clean-room implementation of Apple's kauth(9) framework. This framework replaces the open-coded checks for appropriate privilege with standardized calls for authorization of specific enumerated actions. Thus allowing fine-grained control over which actions are allowed and which are denied. The kauth(9) framework also provides a mechanisms to dynamically add and remove security modules that take part in the authorization process and can alter the default behaviour.

This paper explores the implementation of FreeBSD style jails under the NetBSD kauth(9) framework. Jail-like functionality was chosen because it is both relatively simple to implement and at the same time stresses the limits of the framework because of the need to not only return "allowed"/"not allowed" decisions but also to modify network addresses in the callers environment.

This paper presents work in progress.


P3B: BSD implementations of XCAST6

Authors:
Yuji IMAI, Takahiro KUROSAWA, Koichi SUZUKI, Eiichi MURAMOTO, Katsuomi HAMAJIMA, Hajimu UMEMOTO, Nobuo KAWAGUTI (XCAST fan club, Japan)
Abstract:

XCAST [RFC5058] is a complementary protocol of Multicast. In contrast with the group address of Multicast, XCAST specifies the destinations by the list of unicast addresses, explicitly. Multicast is very scalable in terms of the number of receivers because membership of the group-address destination is implicitly managed on the intermediate routers and the number of receivers is potentially infinite. On the other hand XCAST is very scalable with respect to the number of groups. It is necessary for bi-directional multi-party communication systems such as tele-presence to deal with the large number of groups. We implemented XCAST6, the IPv6 version of XCAST, to prove the concept. Using our implementation, we operate multi-party video conference systems both on experimental overlay network and on native IPv6 network. In this paper, we will describe detailed implementation of XCAST6 on FreeBSD and NetBSD. We will also discuss about simplicity not only of implementation but also of operation.


P4A: Using FreeBSD to Promote Open Source Development Methods

Authors:
Brooks Davis, Michael AuYeung, Mark Thomas (The Aerospace Corporation, USA)
Abstract:

In this paper we present AeroSource, an initiative to bring open source software development methods to internal software developers at The Aerospace Corporation. Within AeroSource, FreeBSD is used in several key roles. First, we run most of our tools on top of FreeBSD. Second, the ports collection (both official ports and custom internal ones) eases our administrative burden. Third, and most importantly the FreeBSD project serves as an example and role model for the results that can be achieved by an open source software projects. We discuss the development infrastructure we have built for AeroSource based largely on BSD licensed software including FreeBSD, PostgreSQL, Apache, and Trac. We will also discuss our custom management tools including our system for managing our custom internal ports. Finally, we will cover our development successes and how we use projects like FreeBSD as exemplars of open source software development.


P4B: Send and Receive of File System Protocols: Userspace Approach With puffs

Author:
Antti Kantee (pooka at cs.hut.fi, Helsinki University of Technology, Finland)
Abstract:

A file system is a protocol translator: it interprets incoming requests and transforms them into a form suitable to store and retrieve data. In other words, a file system has the knowledge of how to convert abstract requests to concrete ones. The differences between how this request translation is handled for local and distributed file systems are multiple, yet both must present the same semantics to a user. This paper discusses implementing distributed file system drivers as virtual file system clients in userspace using the Pass-to-Userspace Framework File System, puffs. The details of distributed file systems when compared to local file systems are identified, and implementation strategies for them are outlined along with discussion on where and how to optimize for maximal performance.

The design and implementation of an abstract framework for implementing distributed file systems on top of puffs is presented. Two distributed file system implementations are presented and evaluated: psshfs, which uses the ssh sftp protocol, and 9puffs, which uses the Plan9 9P resource sharing protocol. Additionally, the 4.4BSD portal file system and puffs user-kernel communication are implemented on top of the framework. The performance of userspace distributed file systems are evaluated against the in-kernel NFS client and they are measured to outperform NFS in some situations.


P5A: Logical Resource Isolation in the NetBSD Kernel

Author:
Kristaps Džonsons (kristaps at kth.se, Swedish Royal Institute of Technology, Centre for Parallel Computing)
Abstract:

Resource isolation is a strategy of multiplicity, the state of many isolated contexts within a parent context. Isolated resource contexts have functionally non-isomorphic resource mappings: contexts with equivalent domain identities map to non-intersecting ranges in the resource co-domain. Thus, in practise, if processes a and b return different values to an equivalent identity (say, for the hostname), then the callee context, for this identity, demonstrates resource non-isomorphism. Although isolation is by no means a new study in operating systems, the BSD family offers few implementations, at this time limited to FreeBSD's Jail and, potentially, the kauth(9) subsystem in NetBSD. These systems provide a framework with which one may construct isolated environments by cross-checking and switching over credentials at the kernel's boundary. In this document, we consider a radically different approach to resource isolation: instead of isolating at the kernel boundary, we consider a strategy of collecting entire kernel sub-systems into contexts, effecting bottom-up resource isolation. This document describes a work- in-progress, although a considerable implementation exists.


P5B: GEOM - in Infrastructure We Trust

Author:
Pawel Jakub Dawidek, The FreeBSD Project
Abstract:

The GEOM framework provides an infrastructure in which GEOM classes can perform transformations on I/O requests on their path from the upper kernel (e.g. file system) to the device drivers and back.

The infrastructure doesn't work alone, there have to be code that makes use of it. The author will focus on his work in GEOM area, mostly on GEOM classes he implemented for FreeBSD. The talk will show why invisible for end user thing like GEOM infrastructure is so important for the FreeBSD operating system in a long run.

Various GEOM classes will be explained in detail, as well as geom(8) control utility.

The talk will also provide simple overview of GEOM itself, will point out common mistakes that people do while dealing with GEOM, etc.


P6A: A Portable iSCSI Initiator

Author:
Alistair Crooks (agc at NetBSD.org, The NetBSD Foundation)
Abstract:

iSCSI is a method of accessing block storage across a network; it enables the SCSI protocol to work remotely, using a TCP/IP transport mechanism. The iSCSI infrastructure has two components - the target, which is the device; and the initiator, which is the end which communicates with the target. The initiator is normally situated in the operating system, sitting underneath the file system code, and making the remote storage appear as a normal, local SCSI device.

The NetBSD iSCSI target is implemented as a userspace iSCSI target. This paper covers the other half of the iSCSI world; the initiator, its interaction with the iSCSI target, and the desirable attributes for an ideal initiator. The portable iSCSI initiator is then described, and in particular describes the unique approach that was taken in the design and implementation of the portable iSCSI initiator. There follows some analysis and discussion of the overall iSCSI performance in real world benchmarks. The initiator's portability between operating systems is also discussed, along with experience gained from its deployment on other BSD systems, and further afield on Linux and Solaris. Some interesting uses of the initiator are described. The paper continues by examining remote storage as a whole, and outlines some places where remote storage could be used to considerable effect. The paper concludes by examining some areas in which iSCSI can bring benefits, and also some other areas in which iSCSI could be extended.


P6B: TBD

Author:
TBD
Abstract:

(to be updated)


P8A: OpenBSD Network Stack Internals

Author:
Claudio Jeker (claudio at openbsd.org, The OpenBSD Project)
Abstract:

The OpenBSD network stack is under constant development mainly to implement features that are more and more used in todays core networks. Various changes were made over the last few years to allow features like flow tagging, route labels, multipath routing and multiple routing tables. New features like VRF (virtual routing and forwarding), MPLS and L2TP are worked on or planned. This paper tries to cover the design decisions and implementation of these features.


P8B: Reducing Lock Contention in a Multi-Core System

Author:
Randall Stewart (Cisco Systems, Inc.)
Abstract:

Many O/S's, including FreeBSD, have moved to a full SMP kernel. This has necessitated the use of locking. Locking, by itself, is a challenge to get right. FreeBSD as implemented many tools to deal with these issues including WITNESS and PROFILING.

This talk will discuss how to profile locking within t the kernel and methods a kernel developer (or application developer) can take to mitigate lock contention. We will walk through an example of how lock contention in SCTP was discovered (using the profiling) and then look at the mitigation put in place to correct the contention.


P9A: Sleeping Beauty - NetBSD on Modern Laptops

Authors:
Jörg Sonnenberger, Jared D. McNeill (The NetBSD Foundation)
Abstract:

This paper discusses the NetBSD Power Management Framework (PMF) and related changes to the kernel. The outlined changes allow NetBSD to support essential functions like suspend-to-RAM on most post-Y2K X86 machines. They are also the fundation for intelligent handling of device activity by enabling devices on-demand.

This work is still progressing. Many of the features will be available in the up-coming NetBSD 5.0 release.


P9B: A Brief History of the BSD Fast Filesystem

Author:
Dr. Marshall Kirk McKusick
Abstract:

This talk provides a taxonomy of filesystem and storage development from 1979 to the present with the BSD Fast Filesystem as its focus. It describes the early performance work done by increasing the disk block size and by being aware of the disk geometry and using that knowledge to optimize rotational layout. With the abstraction of the geometry in the late 1980's and the ability of the hardware to cache and handle multiple requests, filesystems performance ceased trying to track geometry and instead sought to maximize performance by doing contiguous file layout. Small file performance was optimized through the use of techniques such as journaling and soft updates. By the late 1990's, filesystems had to be redesigned to handle the ever growing disk capacities. The addition of snapshots allowed for faster and more frequent backups. The increasingly harsh environment of the Internet required greater data protection provided by access-control lists and mandatory-access controls. The paper concludes with a discussion of the addition of symmetric multi-processing support needed to utilize all the CPUs found in the increasingly ubiquitous multi-core processors.