- 一般: 12,000 円 (2009 年 3 月 1 日まで), 15,000 円 (2009 年 3 月 2 日以降、当日受付も含む)
- 学生: 3,500 円 (期間によらず)
参加登録費には、名札、予稿集、記念Tシャツ、昼食・バンケット (後半 2 日間) のチケットが含まれています。前半2日間のチュートリアルやミーティングのみ参加で、後半2日間に参加しない場合でも、参加登録が必要になりますのでご注意ください。
- 全日チュートリアル(T1B, T1C, T4B): 8,000 円/講座 (学生は 3,000 円)
- 夕方チュートリアル(T3A, T6A): 2,500 円/講座
- 半日チュートリアル(その他): 5,000 円/講座 (学生は 2,500 円)
1 日目 (2009 年 3 月 12 日) - チュートリアルとミーティング I
|ルーム A||ルーム B||ルーム C||ルーム D|
|10:00 - 12:30||-||チュートリアル T1B:
Installing and Running FreeBSD and NetBSD on Small x86-based Systems
座長: 下川 英敏
|14:00 - 16:30||チュートリアル T2A:
|17:00 - 19:30||チュートリアル T3A:
FreeBSD システム管理 I (日本語)
2 日目 (2009 年 3 月 13 日) - チュートリアルとミーティング II
|ルーム A||ルーム B||ルーム C||ルーム D|
|10:00 - 12:30||
Building the Network You Need with PF, the OpenBSD packet filter
Peter N. M. Hansteen
Building embedded systems with NanoBSD
Paul Schenkeveld and Cor Hilbrink
座長: 下川 英敏
|14:00 - 16:30||チュートリアル T5A:
The Operation and Installation of the Varnish HTTP Accelerator (日本語)
|17:00 - 19:30||チュートリアル T6A:
FreeBSD システム管理 II (日本語)
座長: 上林 将郎
3 日目 (2009 年 3 月 14 日) - 論文セッション I (並列2トラック)
|ルーム A||ルーム B|
|10:50 - 11:00||オープニング|
|11:00 - 11:45||P1A: PC-BSD - Making FreeBSD on the Desktop a reality
Kris Moore <firstname.lastname@example.org>
|P1B: Crypto Acceleration on FreeBSD
Philip Paeps <philip@FreeBSD.org>
|11:45 - 13:00||昼食|
|13:00 - 14:00||特別講演: The OpenBSD Release Process: A Success Story
Theo de Raadt
|14:00 - 14:45||P2A: OpenBGPD — Bringing full views to OpenBSD since 2004
Claudio Jeker <email@example.com>
|P2B: FreeBSD on high performance multi-core embedded PowerPC systems
Rafal Jaworowski <firstname.lastname@example.org>
|15:00 - 15:45||P3A: Isolating Cluster Users (and Their Jobs) for Performance and Predictability
Brooks Davis <email@example.com>
|P3B: OpenBSD Hardware Sensors Framework
Constantine A. Murenin <firstname.lastname@example.org>
|16:00 - 16:45||P4A: FreeBSD and SOI-Asia Project
Mohamad Dikshie Fauzie <email@example.com>
|P4B: An Overview of FreeBSD/mips
M. Warner Losh <imp@FreeBSD.org>
|16:45 - 18:45||BSD Associate 検定試験
|19:00 - 20:30||バンケット|
4 日目 (2009 年 3 月 15 日) - 論文セッション II (並列2トラック)
|ルーム A||ルーム B|
|11:00 - 11:45||P5A: Environmental Independence: BSD Kernel TCP/IP in Userspace
Antti Kantee <firstname.lastname@example.org>
|P5B: Active-Active Firewall Cluster Support in OpenBSD
|11:45 - 13:00||昼食|
|13:00 - 14:30||基調講演: K1: Internet Mail — Past, Present, and (a bit of) the Future
|15:00 - 15:45||P6A: The Locking Infrastructure in the FreeBSD kernel
Attilio Rao <attilio@FreeBSD.org>
|P6B: Deprecating groff for BSD manual display
Kristaps Dzonsons <email@example.com>
|16:15 - 17:00||P7B: Mail system for distributed network
Andrey Zakharchenko <firstname.lastname@example.org>
|17:30 - 18:15||Work-In-Progress Session
座長: Mark T. Uemura
|18:30 - 20:30||閉会とバンケット|
K1: Internet Mail — Past, Present, and (a bit of) the Future
Email existed before the Internet was invented, and grew with the Internet over six orders of magnitude. Email has gone from serving a small community of highly technical colleagues to being ubiquitous, even for people who are not technically adept. It has changed from a tiny, no-profit service to a billion dollar business.
But email has not gone without growing pains. Spam, viruses, and phishing are just two examples of malware that didn't even exist when email was born. Email has changed both business and social lives in ways both good and bad. Some of those pressures have pushed users from email to Instant Messaging and Social Networking. Today the research and development of email has focused on control, either "on the wire" (anti-spam, data loss prevention, etc.) or directly for the user (such as mobile access or managing information overload).
This talk covers the history of email and reviews where we are today, including current technologies such as email authentication (DKIM and SenderID) and reputation. It concludes with some personal speculation about how email will continue to grow both short- and long-term.
Eric Allman is the original author of sendmail, and a long time contributor to Berkeley UNIX. He also wrote the -me macros, tset, trek, syslog, and vacation. Besides UNIX and sendmail, Eric has worked on database management, window systems, neural-net-based speech recognition, system administration, and networking.
Allman is Chief Science Officer and co-founder of Sendmail, Inc. Before joining Sendmail, Allman served as CTO for Sift, Inc., which is now part of 24/7 Media, Inc. He was lead developer and provided a large-scale research software infrastructure on the Mammoth project at U.C. Berkeley. Allman has contributed as a senior developer at the International Computer Science Institute to neural network systems design. Allman was also Chief Programmer on the INGRES Relational Database Management System.
Formerly, Allman co-authored the "C Advisor" column for UNIX Review magazine and was a member of the Board of Directors of USENIX Association. He is currently a Program Chair for the Conference on Email and Anti-Spam and a member of the ACM Queue Editorial Review Board and the Board of Trustees of Cal Performances.
Allman holds an Masters of Science degree in Computer Science from the University of California at Berkeley.
PT1: The OpenBSD Release Process: A Success Story
Twelve years ago OpenBSD developers started engineering a release process that has resulted in quality software being delivered on a consistent 6 month schedule -- 25 times in a row, exactly on the date promised, and with no critical bugs. This on-time delivery process is very different from how corporations manage their product releases and much more in tune with how volunteer driven communities are supposed to function. Developer and testing laziness is mostly circumvented and leader frustration is kept to a minimum. The reasons, mechanics and social workings of our process have never been detailed outside the project, but now will be, hopefully providing some insight to others who face delays and quality issues with their own product lines.
Theo de Raadt is the project leader of the OpenBSD project, and the founder of OpenSSH. He started writing free unix tools in 1988. In 1995 he convinced a bunch of strange foreigners to work with him on a security-focused unix operating system. He lives in Calgary, and has no time for a job since the OpenBSD developers consume too much of his time. He only accepts invitations to speak at conferences if excellent hiking is nearby.
T1B: Installing and Running FreeBSD and NetBSD on Small x86-based Systems
This tutorial in english is intended for users who want to learn how to install and run FreeBSD or NetBSD on compact flash (CF) based systems. We begin by reviewing the history of "small" and "Live CD" BSD distributions to discover technology important for embedded systems:
- Running a minimal OS on "headless" systems (and without PC keyboard)
- Using a RAMdisk OS for initial installation and upgrades
Custom built Soekris and PC-Engines systems are explained and demonstrated in detail. In the process, a FreeBSD and a NetBSD system are re-installed from scratch. In the second part of the tutorial, participants are given the opportunity re-install the same software onto their own small systems in small group work sessions. Participants further learn about:
- Building and installing custom CF distributions
- Creating and maintaining reduced OS distributions
- Configuring and managing read-only system filesystems
- Field upgrade strategies
- Booting into a RAMdisk version
- Using Split CF configurations
To actively take part in a group work session, participants should bring the following to the tutorial:
- Laptop with functioning WiFi, Ethernet, and USB or CD running Unix
- A small x86 "lab" system, i.e. Soekris (net450x or net5501) or PC-Engines (WRAP or ALIX)
- RS232 null-modem cable accessing the serial console of the small system from the laptop
- Network cables, one of them crossover (for connecting small system to laptop back-to-back)
- Power strips, power cables, and power bricks to power all of the above hardware
- Optionally, a small network switch, a PCMCIA CF adapter, and tools to open the small system
Adrian Steinmann earned a Ph.D. in Mathematical Physics from Swiss Federal Institute of Technology in Zurich, Switzerland, and has over 20 years experience as a security consultant and software developer. He is founder of Webgroup Consulting AG, a swiss information technology company. He has been working with FreeBSD since 1993 and NetBSD since 2005. He maintains the base system for the hardened FreeBSD remote managed firewall service called STYX. More recently, he has applied that experience to embedding FreeBSD and NetBSD onto small x86-based platforms. He is fluent in Perl, C, English, German, Italian, and has passion and flair for finding straightforward solutions to intricate problems. During his free time he likes to play Go, to hike, and to sculpt. Some sculptures are on display at http://adriansteinmann.com/.
T1C: VoIP Tutorial
VoIP is an emerging technology in today's world, and is empowering communications services more and more. Companies are either profiting from the switch or looking forward to switch over their communication systems to the new technologies available. The advantages are numerous, and comprise extensibility, flexibility and ease of use and maintenance.
With Asterisk, the widely known opensource PBX you can create powerful and highly customizable systems, and you can easily integrate them in your current infrastructure by means of different libraries for many programming languages. Asterisk is not only a PBX, but can be customized for any kind of service you can think of such as an IVR system (Interactive Voice Response), a carrier grade telephony exchange, and many others. While Asterisk is designed to run on Linux, it can be compiled and run on FreeBSD, NetBSD and OpenBSD, which offer greater stability.
In this tutorial we will cover key telephony concepts in order to understand VoIP functionality, and then we will delve into an asterisk installation on FreeBSD, setting up a small PBX from scratch, configuring base services such as voicemail and IVR menus, and introducing advanced concepts and configuration, some of them pulled out from working systems.
Massimiliano Stucchi is the CTO of BrianTel Srl, a company dedicated to providing internet services in northern Italy. His duties range from customer care to managing peerings for the company's autonomous systems, as well as taking care of the carrier-grade telephony system in place there. In his (almost non-existent) spare time he coaches a junior soccer team, enjoys playing chess, and watching lots of sports on TV.
T2A: セキュアコーディングノススメ (日本語)
世の中に出回るソフトウェア製品に潜む脆弱性を減らすためには, 脆弱性を発見してから対策をたてるよりも, 脆弱性をつくりこまないように することが重要です. そのためには, プログラミング言語をよく知り, 品質の高いコードを書くこと.
しかし, 世の中に流布する様々な脆弱性を見ると, 多くの脆弱性が C/C++言語仕様の理解不足や誤解, あるいはプログラムの作成当初には 想定していなかった状況における誤動作から発生しています.
このチュートリアルでは, 日々 C/C++ プログラムを書いている方々を 対象に, 典型的な脆弱性/はまりやすい間違いにはどんなものがあるか, 高品質なコードを書くためにはどのようなことに気を付けるべきか, といったポイントについてご紹介します.
チュートリアルでふれることができるのはほんの一部です. このチュートリアルをきっかけに, みなさんもセキュアコーディングの 実践をはじめてください.
JPCERT/CC 情報流通対策グループ所属. 大学の学内LAN管理に携わり, その後 JPCERT/CC にて インシデントハンドリング, 定点観測システム立ち上げ, 脆弱性情報ハンドリング業務に従事. 最近はセキュアコーディングの重要性を伝えるための活動多し.
T3A: FreeBSD システム管理 I (日本語)
- FreeBSDインストール (DVD/CD-ROMインストール、USBインストール)
- サービスの起動と停止 (rc.d)
- 起動時設定 (loader.conf, sysctl.conf, rc.conf)
- デバイスファイルシステムと設定ファイル (devfs.conf, devfs.rules)
- Ports Collectionの利用方法、アップグレード方法
- ハードウェアモニタリング S.M.A.R.T.他
- 最新の情報を収集するには (ML, RSS, Forum)
- 日本語による情報収集 (Gihyo.jp, 勉強会)
FreeBSDを使ったシステム構築や作業PCとしての構築を考えている場合、 構築から日々の作業、情報収集や解決 方法の模索までを含めて包括的に説明をおこないます。
オングス代表取締役。名古屋大学、沼津高専卒業。FreeBSD ports/src committer。代表的な取り組みにUnionfs 再実装(The new unionfs implementation for FreeBSD and status of merging, 共同開発者小澤正紀、 協力者 ほか多数)。FreeBSDを活用したシステム構築やコンサルタント業務、 IT関連ニューステクニカルライタ、 FreeBSD関連書籍の企画立案および執筆業 務、FreeBSD情報サイトの担当などの業務に従事。
代表的な書籍に『改訂第二版 FreeBSDビギナーズバイブル (毎日コミュニケー ションズ)』『FreeBSDビギナーズ バイブル (毎日コミュニケーションズ)』 『UNIX本格マスター 基礎編 〜Linux＆FreeBSDを使いこなすための第 一歩〜 (技術評論社)』、代表的なWeb媒体に『マイコミジャーナル (毎日コミュニケー ションズ)』『Gihyo.jp (技術評論社)』など。
T4A: Building the Network You Need with PF, the OpenBSD packet filter
This tutorial has been canceled because of instructor's schedule conflict.
T4B: Building embedded systems with NanoBSD
Small, low-power or specialized computers are gaining popularity for all kinds of computing tasks ranging from small firewalls, (wireless) routers, storage serves and software telephone switches to process control and environmental measurement systems. Many tools have shown up to adapt your favorite open source operating system for getting the most out of an embedded system.
This full-day tutorial first addresses the challenges faced when building up and using embedded systems in general and then focusses on NanoBSD, a build tool that comes with FreeBSD to ease the complete process of building such systems with FreeBSD. During the tutorial NanoBSD will be used to build up a complete system on Soekris hardware and many practical tips and tricks will be presented to efficiently build and maintain embedded systems using NanoBSD.
Paul Schenkeveld started programming computers while at high school when very few students had ever seen a computer. After finishing high school he decided to find a job as few people knew computers and demand was high. He first met UNIX in 1983 and immediately knew this was the OS to work with. After five jobs programming and supporting computers he became an independent consultant for UNIX, IP networking and security.
Having worked with many commercial UNIX versions during ten years, he found FreeBSD which he first installed when version 1.0 came out to be much more fun to play with. Today, he spends most of his time on projects involving (Free)BSD and, networking and security.
During the last three or four years Paul has spent a lot of time automating the FreeBSD build and upgrade process for the more than 100 FreeBSD systems he maintains. He often uses small embedded computers made by Soekris as firewalls, terminal servers, access points etc. NanoBSD turned out to be a valuable tool to automate the install and maintenance cycle for these small systems.
Paul likes travelling, is active in Scouting and loves the food his Thai wife cookes for him and their son.
Cor Hilbrink studied at HTS electronics Rens & Rens Hilversum. Started in 1990 as SCO Unix support engineer in the Benelux. Since then, a number of Unix and Linux flavours have been used in a wide range of Unix/network projects. As SCO auth. Instructor, instructed several Unix and network training classes in several European countries.
After a few years of Unix history, BSD and specially FreeBSD became my favourite Unix platform. Developing proprietary build systems to build Unix or Linux based Cash registers or just master systems was for a number of years one of my primary job. Installing and designing Nonstop clusters on Unixware and Tru-64 was one of the latest commercial solutions I implemented for more then 30 customers all over Europe.
Since 2001 mainly developing and implementing tailor made FreeBSD and OpenBSD based solutions for customers. Because of the cash register and electronics background it was not a huge step to use NanoBSD and Soekris and other small peripheral hardware in projects.
T5A: The Operation and Installation of the Varnish HTTP Accelerator (日本語)
超高速 HTTP アクセラレータ Varnish の運用するにあたっての構築や運用の ためのポイント紹介します。アーキテクチャや設計思想から実運用例を含め た解説を行います。
残念なことに現時点で日本語のドキュメントがほとんどないばかりか, 本家 ドキュメントでも情報が散見しており, バージョンごとの違いや既に古くな ってしまった情報が混在しているのが現状です。最新リリースである Version 2.0.2 をベースに集中的に解説します。
重村法克 （株式会社エンターモーション システム開発部）
FreeBSD では ports committer として活躍。しかしその実態は！サービス の現場で働く何でも屋さん。サーバー管理を中心に、アプリケーション開発 （最近してないけど）からネットワークエンジニアリングまで。設計はもち ろん構築・運用・保守なんでもござれ(T_T)。趣味は各レイヤーでできること を骨までしゃぶること。アプリケーションで実現してた機能を下位レイヤー で実装なんて楽しくてしょうがないじゃないですか!!
T6A: FreeBSD システム管理 II (日本語)
対象は FreeBSD をサーバ用途で使っている管理者です。FreeBSD や他の UNIX 系 OS の使用経験があるものの、いまひとつ管理に自信が持てない方におすすめです。
佐藤 広生 (東京理科大学)
2000 年より FreeBSD プロジェクトに committer として参加。 2004 年より Release Engineering Team および Documentation Engineering Team のメンバとして、 2006 年より Core Team のメンバ (現在 2 期目) として活動。 主に FreeBSD のリリース管理や各種ドキュメントの整備等を手掛ける。 BSD 系 OS のミラーサイト allbsd.org の主宰者。
B1D, B4D: FreeBSD Developer Summit (招待者のみ参加可能)
- 下川 英敏 (FreeBSD Project)
BSD Associate 検定試験
BSDA は、BSD Unix システム管理の入門レベルの検定試験です。検定試験の詳細は、次のウェブサイトをご覧ください。
注意: 本検定試験を受験するには、AsiaBSDCon 2009 への参加登録とは別個に、受験登録が必要です。
B6B: NetBSD BoF
- 上林 将郎 (NetBSD開発者、株式会社Tombi代表)
P1A: PC-BSD - Making FreeBSD on the Desktop a reality
FreeBSD has a reputation for its rock-solid reliability, and top-notch performance in the server world, but is noticeably absent when it comes to the vast market of desktop computing. Why is this? FreeBSD offers many, if not almost all of the same open-source packages and software that can be found in the more popular Linux desktop distributions, yet even with the speed and reliability FreeBSD offers, a relative few number of users are deploying it on their desktops. In this presentation we will take a look at some of the reasons why FreeBSD has not been as widely adopted in the desktop market as it has on the server side. Several of the desktop weaknesses of FreeBSD will be shown, along with how we are trying to fix these short-comings through a desktopcentric version of FreeBSD, known as PCBSD. We will also take a look at the package management system employed by all open-source operating systems alike, and some of the pitfalls it brings, which may hinder widespread desktop adoption.
Kris Moore is the founder of the PC-BSD project, and currently serves as its lead developer. He is a strong advocate of promoting BSD for desktop systems. Kris has been working on UNIX based-systems for over a decade, in the areas of networking, data recovery, and application development. He and his family currently live in eastern Tennessee.
P1B: Crypto Acceleration on FreeBSD
As more and more services on the internet become cryptographically secured, the load of cryptography on systems becomes heavier and heavier. Many of the embedded communications processors supported by FreeBSD provide acceleration for cryptographic operations in silicon and various manufacturers build hardware for accelerating secure web traffic and IPSEC VPN tunnels. In the FreeBSD kernel, acceleration hardware is supported by the opencrypto framework. This paper presents an overview of the framework and explains the advantages and pitfalls of using hardware acceleration on various workloads and system configurations.
Philip Paeps is a software consultant and contractor based in Belgium. He focuses mainly on embedded and real-time systems. For the last few years, he has been spending a lot of energy on the network stack of a very widely deployed residential internet gateway device.
In his so-called free time, Philip is a FreeBSD committer contributing mainly to the kernel, a member of the FreeBSD security team and the FreeBSD core team secretary. He has been using FreeBSD for longer than he can remember.
P2A: OpenBGPD — Bringing full views to OpenBSD since 2004
OpenBGPD was after OpenSSH the second "subproject" developed as part of OpenBSD but made available to a broader audience. Shortly after the first official release in OpenBSD 3.5 ports to FreeBSD and NetBSD appeared. Now 5 years later OpenBGPD grew from a niche to a real alternative if not even first choice for all usage cases.
OpenBGPD is different in many regards when compared with quagga or Ciscos. It offers some unique features, comes with sane defaults and sometimes OpenBGPD is the first project to officially support new RFC extensions like the 4-byte AS support.
Claudio Jeker is one of the main OpenBGPD developers and working on other network related subprojects in OpenBSD. Apart from OpenBGPD he is involved in ospfd, ospf6d, the network stack routing code and MPLS support for OpenBSD. Claudio Jeker works for Internet Business Solutions AG a small company specialised in network consulting for Internet service providers and multi-homed customers.
P2B: FreeBSD on high performance multi-core embedded PowerPC systems
This paper describes low level design and implementation of the FreeBSD operating system port for the MPC8572 system-on-chip device, a high-end member of the Freescale PowerQUICC III family. The primary focus of this work is describing how the multi-core operation was brought forward and full SMP capabilities achieved, but other major components developed in the course of this project, device drivers in particular, are also covered.
Rafal Jaworowski is a co-founder of Semihalf, where he is the technical leader of the operating systems development team. With over 10 years of experience in the embedded systems field, he has ported FreeBSD, Linux and U-Boot to various platforms and architectures. As the FreeBSD src committer he contributes mainly to the ARM and PowerPC support, device drivers and other areas, usually around hardware and embedded applications of the OS.
P3A: Isolating Cluster Users (and Their Jobs) for Performance and Predictability
At The Aerospace Corporation, we run a large FreeBSD based computing cluster to support engineering applications. These applications come in all shapes, sizes, and qualities of implementation. To support them and our diverse userbase we have been searching for ways to isolate jobs from one another in ways that are more effective than Unix time sharing and more fine grained than allocating whole nodes to jobs. In this paper we discuss the problem space and our efforts so far. These efforts include implementation of partial file systems virtualization and CPU isolation using CPU sets.
Brooks Davis is a Engineering Specialist in the Technical Computing Services subdivision of 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, trying to introduce people to the pleasures of Slow Food, and pounding on red-hot iron in his garage blacksmith shop.
P3B: OpenBSD Hardware Sensors Framework
In this talk, we will discuss the history and design of OpenBSD's hardware sensors framework.
Sensors framework provides a unified interface for storing, registering and accessing information about hardware monitoring sensors. Sensor types include, but are not limited to, temperature, voltage, fan RPM, time offset and logical drive status. The framework spans sensor_attach(9), sysctl(3), sysctl(8), sensorsd(8), ntpd(8), snmpd(8) and more than 71 drivers, ranging from I2C temperature sensors and Super I/O hardware monitors to IPMI, RAID and SCSI enclosures. Several third-party tools are also available, for example, a plug-in for Nagios and ports/sysutils/symon.
Originally based on some ideas from NetBSD, the framework has sustained many improvements in OpenBSD, and was ported and committed to FreeBSD and DragonFly BSD.
Constantine A. Murenin is an MMath graduate student at the David R. Cheriton School of Computer Science at the University of Waterloo (CA).
Prior to his graduate appointment, Constantine attended and subsequently graduated from East Carolina University (US) and De Montfort University (UK), receiving two bachelor degrees in computer science, with honors and honours respectively.
An OpenBSD Committer, FreeBSD Google Summer of Code Student Alumnus and Mozilla Contributor, Constantine's interests range from standards compliance and usability at all levels, to quiet computing and hardware monitoring.
P4A: FreeBSD and SOI-Asia Project
In this paper we describe usage of FreeBSD operating system for IPv6 Multicast routing platform in SOI-Asia Project. SOI-Asia project is platform to deliver realtime lecture via UniDirectional Link of satellite to several countries in Asia. Because of limited bandwidth in satellite, we use IPv6 multicast to deliver material of lecture and realtime video and audio lecture. We also describe human resources development of operational aspect of the project in several countries in Asia.
Mohamad Dikshie Fauzie got bachelor and master degree from Institute of Technology Bandung, Indonesia. Currently graduate student at Keio University Shonan Fujisawa Campus. FreeBSD user since FreeBSD-2.2.8-RELEASE.
P4B: An Overview of FreeBSD/mips
Embedded FreeBSD has been expanding its reach over the past few years. While only recently committed to the tree, the FreeBSD/mips port's history extends back over a decade. FreeBSD has been running on the MIPS architecture since the FreeBSD 3.x time frame (1999!). Numerous efforts over the years have been made to get FreeBSD running on MIPS hardware. These efforts don't start from scratch but reuse past efforts and code from other systems. Recently all these efforts have come together, resulting in FreeBSD support for MIPS in 8.0.
The same currents that have caused the FreeBSD/mips port to come together after many years have also been pushing development of other areas important to the embedded world. A number of new devices found only in embedded systems have been added to FreeBSD. Hardware vendors are starting to fund FreeBSD improvement projects (mostly for their hardware). Build system improvements have made it easier to deploy FreeBSD in smaller and smaller footprints. All of these changes have made FreeBSD a more viable embedded platform.
M. Warner Losh has been interested in computers since a very early age. He got his degree from a small school in the middle of New Mexico where he used 4.2BSD on the VAX 11/750. He's done a little GUI work, and a lot of kernel work in BSD, Solaris and even Linux. He became interested in the MIPS architecture when he was given a Deskstation rPC44 in 1994 and has wanted a FreeBSD/mips port ever since then. In the mean time, he's amused himself and his employers by writing or improving FreeBSD's PC Card, CardBus, USB, SD/MMC, PCI and device configuration subsystems. He's embedded FreeBSD into products for the past 9 years. He has served on the FreeBSD core team and has specialized in handling "problem children" in the FreeBSD project and sorting out the complexity of open source software licensing. For 8 years, he's worked in the high precision time and frequency domain. He delivered systems that are used to montior the Cesium atomic clocks at NIST and USNO; used to recover UTC from GPS satellites; and used to synchronize digital video broadcasting stations. These systems were a mix of C++ user level code, kernel device drivers and specialized "timing" hardware.
P5A: Environmental Independence: BSD Kernel TCP/IP in Userspace
Code is code. In the entire application stack only a very small fraction of code is special in the sense that it requires the hardware to run in priviledged mode. In theory all the rest can run in either the kernel or user domain, with the tradeoffs being well-known.
Engineering an operating system core so that the same code can function both in user and kernel mode alike provides numerous benefits: testing and development, virtualization, stability and reusability of code in applications.
In the current Unix style code is divided to kernel code and userspace code. Although some limited code modules, such as byte order and address translation routines may be shared, functionality at large is not available in both domains.
This paper discusses the nuts and bolts of running the BSD networking code in userspace. It does not advocate turning BSD into a microkernel operating system, but rather gives concrete level proof that the kernel networking stack and kernel networking applications can be run in userspace. The virtual userspace networking stack is measured to be performant enough to be able to saturate a regular network and to be over 10 times faster than the kernel networking stack running in a machine emulator. An implementation for NetBSD available from the NetBSD source repository is discussed.
Antti Kantee is a NetBSD developer interested in working systems. Slightly paradoxically for a NetBSD developer he does not believe that extreme portability to various hardware architectures should be strived for. However, he believes in flexible and modular systems and diluting the division between an application program and the kernel.
In his spare time, Antti likes eat, sleep, and annoy and enhunger other NetBSD developers by describing his current cooking projects in very juicy and saucy details. Occasionally he is known to crank out a few sounds from his Tele or other guitars.
P5B: Active-Active Firewall Cluster Support in OpenBSD
The OpenBSD UNIX-like operating system has developed several technologies that make it useful in the role of an IP router and packet filtering firewall. These technologies include support for several standard routing protocols such as BGP and OSPF, a high performance stateful IP packet filter called pf, shared IP address and fail-over support with CARP (Common Address Redundancy Protocol), and a protocol called pfsync for synchronization of the firewalls state with firewalls over a network link. These technologies together allow the deployment of two of more computers to provide redundant and highly available routers on a network.
However, when performing stateful filtering of the TCP protocol with pf, the routers must be configured in an active-passive configuration due to the current semantics of pfsync. ie, one host filters and routes all the traffic until it fails, at which point the backup system takes over the active role. It is possible to configure these computers in an active-active configuration, but if a TCP session sends traffic over one of the firewalls and receives the other half of the connection via the other firewall, the TCP session simply stalls due to a combination of pfs stateful filtering and pfsync being too slow to cope.
This report documents the protocol and implementation changes made to pfsync which allows stateful filtering with OpenBSD routers in active-active configurations.
David Gwynne is a developer within the OpenBSD project and has worked an several parts of the system ranging from the USB subsystem, the SCSI layer, ATA to SCSI translation, RAID and network drivers, and now more recently the network stack. He currently works in the School of IT and Electrical Engineering at the University of Queensland in Brisbane, Australia.
P6A: The Locking Infrastructure in the FreeBSD kernel
The presentation is focused on explaining theoretical approaches and pratical aspect of the locking support in the FreeBSD kernel. The locking KPI as well as underlying mechanisms and interactions with the scheduler will be analized and discussed deeply. Typical locking strategies and some edge cases will also be shown along with a detailed explanation about how to debug locking problems (deadlocks and races primirally).
Attilio Rao is a FreeBSD src/ committer since 2007. He has worked extensively on the kernel locking subsystem, threading support and kernel scalability problems. Actually his main area of interest is the VFS and consumer filesystems. He works as consultant.
P6B: Deprecating groff for BSD manual display
There are few GPL-licensed utilities remaining in BSD base installations, most of them written in C++. groff, GNU's roff text-processing language implementation, claims a significant share of this count. Why does groff still persist in base? Although its text-processing features have been mostly usurped by LaTeX, groff persists in order to render Unix manual pages. In this paper, we introduce mdocml, a compiler for mdoc documents. mdocml replaces a very specific function of groff -- namely, that of rendering mdoc documents for one or more output devices. It's our intention, in contributing this tool, to deprecate groff as the default utility for Unix manual page display; by doing so, and presuming that manual display is the primary usage of groff, we intend to decouple BSD base installations from another GPL and C++ tool.
Kristaps Dzonsons is a graduate student of theoretical computer science at KTH, Sweden.
P7B: Mail system for distributed network
Sometimes it is necessary to organize a mail domain for large and geographically distributed network, which may consist of independent subnets with their own separate Internet connections (and some of those connections may be not very good, or not very fast, or not very cheap). But users of the network need mail system, and it should be fast, convenient, and reliable.
In this paper some ways of distributed mail domain implementation are discussed, and a new one is introduced. The new method allows us to implement distributed mail system fast and convenient for end users, convenient for administrators, using network traffic sparingly, and reliable enough (at least without single point of failure).
Andrey Zakharchenko was born in Moscow, Russia, 1970/01/05. He received his MS degree in the Department of Applied Mathematics of M.V.Lomonosov Moscow State University in 1992. Since 1992 he worked at the institutes of Russian Academy of Sciences, and since 1999 works at Joint SuperComputer Center RAS as network administrator and scientist. Since 2004 he is also a teacher of computer science at Moscow school 463.
Andrey Zakharchenko leaves in Moscow, Russia, with his wife and three children.