We start on Saturday morning in the Main Building (room 219)!
All the talks (except for keynotes) will be held in the Old Boiler House Building.
Saturday – 20.X.2012
|Time||Track 1 (room 107A)||Track 2 (room 108)||Devsummit Track (room 102)|
|08:30-09:40||Coffee, registration (Main Building – room 219)|
|09:40-10:00||Opening (Main Building – room 219)|
Bambi Meets Godzilla: They Elope – Open Source Meets the Commercial World
(Main Building – room 219)
|10:45-11:15||Break, move to the Old Boiler House Building|
|11:15-12:00||Config Management in FreeBSD using Puppet
|Using routing domains / routing tables in a production network
|Working Group Reports|
|12:10-12:55||FreeNAS system architecture
|The pivot_root system call for BSD systems (NetBSD) |
|12:55-13:55||Lunch (room 5)|
|13:55-14:40||How to put FreeBSD power into small MIPS switch/router
|Improvements in the IPsec stack and OpenBSD cryptographic framework
|14:50-15:35||Challenges in identity management and authentication
| FreeBSD and NetBSD on APM86290 system on chip
|15:45-16:30||BSD/Unix CLI and TUI Ecology
|OpenBSD’s new queueing subsystem
|BSD Router Project and BSD Media Center|
|16:40-17:25||The Warden – FreeBSD and Linux Jail Management
|Advances in packages and ports in OpenBSD
|19:00||Social event: Nova Maska Club
ul. Krakowskie Przedmieście 4/6, 00-333 Warsaw
Sunday – 21.X.2012
|Time||Track 1 (room 107A)||Track 2 (room 108)|
|09:00-10:00||Coffee (room 5)|
|10:00-10:45||The BHyVe Hypervisor In Depth
|Extension to veriexec which uses digital signatures to verify the provenance of a file
|10:55-11:40||Tuning ZFS on FreeBSD
|Tips on running a conference for 250 people all by yourself
|11:50-12:35||Running BSD-licensed Software on BSD-licensed Hardware
|OpenBSD and ‘real’ threads
|12:35-13:35||Lunch (room 5)|
|13:35-14:20||Implementation of SCTP in Go (FreeBSD)
Olivier Van Acker
| Touch your NetBSD
|14:30-15:15||A Fault Aware Global Server Load Balancer in DNS
Stefan D. Caunter, Allan C. Jude
|15:15-15:35||Medium break, move to the Main Building|
An Overview of Locking in the FreeBSD Kernel
(Main Building – room 219)
|16:35-17:55||Closing (Main Building – room 219)|
Bambi Meets Godzilla: They Elope — Open Source Meets the Commercial World
Bambi Meets Godzilla: They Elope — Open Source Meets the Commercial World
Fifteen years ago Open Source Software was Bambi to the commercial world’s Godzilla — their meeting was not going to end well for the sweet, doe-eyed deer. And yet in at least some cases they seem to have settled in for a life together, albeit perhaps not in a picture-perfect relationship.
Eric has inside knowledge of such a union, being the original author of sendmail and co-founder of Sendmail, Inc. He’ll share some of his experiences, both good and bad.
Eric Allman was fortunate enough to be a student at the University of California at Berkeley when the UNIX revolution first hit and made several contributions to early BSD releases. He’s gone on to work in academic, research, and commercial settings, including several startups, and went on to found Sendmail, Inc. in 1998.
An Overview of Locking in the FreeBSD Kernel
Dr. Marshall Kirk McKusick
Author and Consultant
The FreeBSD kernel uses seven different types of locks to ensure proper access to the resources that it manages. This talk describes the hierarchy of these locks from the low-level and simple to the high-level and full-featured. The functionality of each type of lock is described along with the problem domain for which it is intended. The talk concludes by describing the witness system within the FreeBSD kernel that tracks the usage of all the locks in the system and reports any possible deadlocks that might occur because of improper acquisition ordering of locks.
Dr. Marshall Kirk McKusick’s work with Unix and BSD development spans over 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.
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.
Improvements in the IPsec stack and OpenBSD cryptographic framework
Improvements in the IPsec stack and OpenBSD cryptographic framework
In this presentation I will talk about recent improvements happened in the IPsec land: support for combined authentication-encryption modes (AES-GCM), Extended Sequence Numbers and IKEv2; as well as in the OpenBSD cryptographic framework: implementation of the AES-NI & CLMUL powered crypto accelerator in the kernel, obsolescence of crypto(4) driver and problems with PCI crypto accelerators.
Mike Belopuhov is an OpenBSD developer since late 2007 doing mostly networking-related work for .vantronix secure systems. Among his contributions are AES-NI and AES-GCM support, NAT64, ESN and improvements in the IKEv2 land.
FreeBSD and NetBSD on APM86290 system on chip
The paper covers recent development work on porting FreeBSD/powerpc and NetBSD/powerpc to the new APM86290 system on chip.
APM86290 is a PACKETpro embedded dual core processor developed by AppliedMicro, that addresses the needs of many emerging markets.
APM86290′s advanced SoC architecture offers rich set of peripheral devices including: PCI-Express, USB 2.0, Gigabit Ethernet 10/100/1000, SATA II, security hardware acceleration engines and others.
The paper presents challenges of porting embedded operating systems to APM86290 chip from both FreeBSD and NetBSD points of view, highlights overall ports’ states (what was the baseline, which peripherals are supported), areas of possible improvements. The material briefly describes the influence of the innovative inter-circuit communication architecture and data flow in APM86290 chip on the device drivers’ development. In particular the paper talks about this new architecture influence on FreeBSD’s and NetBSD’s drivers infrastructures, using networking drivers as an example.
The article focuses on presenting the differences and similarities between FreeBSD and NetBSD systems in the context of porting to an embedded architecture. It compares their portability on the APM86290 example, discusses problems that may occur and compares diagnostic, debugging and development tools that they provide.
Zbigniew Bodek is an embedded systems engineer in Semihalf. He is involved in BSD operating systems development for PowerPC based, embedded platforms. Zbigniew is studying Electronics and Telecommunication at the AGH University of Science and Technology in Cracow and has an engineering degree in electronics.
OpenBSD’s new queueing subsystem
ALTQ has been with us for more than a decade – last not least Kenjiro Cho and myself merged it with pf in 2003. ALTQ has always been a research project, and tought us and the entire community a lot of important lessons. Now it is time to re-evaluate – the entire “glue” between the actual queueing disciplines (of which just two remain, prio and bandwidth shaping) gets redesigned and -implemented. We’ll look at the history, the different parts of the queueing subsystem and how they interface with the network stack, and the new configuration language – which is supposed to be easy and straightforward so that people can actually use hfsc without headaches.
Henning Brauer, 34, lives in Hamburg, Germany and founded the Internet Service Provider bsws.de more than 15 years ago. He also does consulting, mostly in the network security field. Henning is an openbsd developer since 2002, has architected and written large parts of OpenBSD’s packet filter “pf”, as well as the OpenBGPD and OpenNTPD daemons which have been started by him. The framework he wrote for those is the base for a plethora of newer daemons in OpenBSD. His work is to be found all over the network stack and the networking daemons and utilities in userland.
When henning is not on a computer he loves to go mountainbiking, and hiking in remote locations. At home he is involved in local politics and spends many evenings with his friends in nearby bars, often playing tabletop football.
The BHyVe Hypervisor In Depth
BHyVe, the BSD HyperVisor is an exciting new Popek and Goldberg Type 2 hypervisor for FreeBSD that first appeared in 2010 and is undergoing rapid development. This talk will describe how BHyVe works give an updated report on:
- BHyVe’s status in FreeBSD 8, 9 and 10
- The results of the Google Summer of Code project to bring BIOS emulation to BHyVe for foreign OS support
- How BHyVe can be used with FreeBSD appliances such as FreeNAS and pfSense
Michael has lead the effort to document BHyVe for users and made it easy to test using host and guest configuration scripts. His work can be found at http://bhyve.org.
Michael Dexter has used BSD Unix systems since 1991 and wrote his first FreeBSD jail management system in 2005. Dissatisfied with existing multiplicity solutions, he has sponsored the BSD.lv sysjail and mult multiplicity research projects and took his BSD support public with the formation of BSD Fund in 2007. Michael is now the Editor of Call For Testing, a BSD technical journal and lives with his wife and daughter in Portland, Oregon.
Advances in packages and ports in OpenBSD
This is a followup to my two talks on dpb and pkg_add in EuroBSDCon 2010.
Over the last two years, all the future features I talked about for dpb have been implemented, and we are now handling interesting new problems.
The ports tree reached a personal milestone: everything is finally documented. This also means purposefulness, instead of collection of historical accidents.
I would also talk about the very complex set of rules that relates to dependency handling and updates, and how it got a lot faster last year.
Taking a step back, the unifying point of the talk should be architectural design through concrete examples. OpenBSD is usually able to move very quickly when tweaking its ports and packages infrastructure, and this reflects sound qualities of the current design: never repeat yourself (including BOTH code and data), choose carefully what api you publish, and make a thorough use of reflection…
Marc Espie is a former alumnus of Ecole Normale Superieure. He obtained a Phd by working on practical combinatorics optimization problems.
He currently holds a teaching/student advisors’ position at an engineering school, where he mostly teaches Unix, C development, and free software collaboration.
Marc has been involved in the OpenBSD project for the past ten years, hacking on various parts of the system, mostly having to do with the build infrastructure.
He’s the chief architect and developer of the current incarnation of the OpenBSD ports and packages tools.
OpenBSD and ‘real’ threads
Immediately after OpenBSD 5.1 was released, the pthreads implementation in the the source tree was switched from user-space threads to ‘rthreads’, a 1:1 kernel threads implementation. I’ll review the recent progress that brought the implementation to the level where that could occur, what has happened since then, and touch on the areas of continuing development. I’ll also discuss how the OpenBSD development process affects the behavior of the code.
Philip Guenther was initiated in UNIX system administration in 1992 as a student at Saint Olaf College, where he got involved in Open Source software including procmail and amd. In December 2000 he joined Sendmail Inc and worked on threaded IMAP/POP3/LMTP servers. He started using OpenBSD several years later but didn’t join the project until July 2008, after the status of the threads implementation started to annoy him. Philip is now Chief Architect at Sendmail, Inc.
Using routing domains / routing tables in a production network
OpenBSD has supported routing domains (aka VRF-lite) since 4.6, released in 2009.
At it’s most basic, routing domains are simply multiple routing tables. While seeming like a simple task, there are many gotcha’s involved in using routing domains in a production network. This talk will give a brief history, as well as some scenarios for why and how you would use routing domains while describing several of the issues that came up during the initial deployments.
Peter Hessler is 32 and lives in Aachen, Germany. Originally from San Francisco he has an interest in how things work. He moved to Germany in 2008 to work on OpenBSD-based routers and firewalls with .vantronix secure systems GmbH. After Compumatica secure networks took over the technology, he moved with them to the office in Aachen. In his spare time, Peter enjoys drinking beer and bad puns.
FreeNAS System Architecture
Gain interest in the project. Bring on board more users and developers.
• Build System
This section describes the different components of the buld system, how they interact together and how they are used to build a FreeNAS image.
Overview of how pc-sysinstall is used for the FreeNAS project and the changes that were necessary to make it work for us.
• Graphical User Interface
The FreeNAS graphical user interface is the heart of the system and what all users see and use. This section will review the main portions of the interface and go into technical detail on how each subsystem works.
Overview of how FreeNAS stores and retreives its configuration settings.
Detailed explanation of FreeNAS networking and how it works.
Technical detail of the various storage subsystems FreeNAS provides.
Quick overview of the sharing technologies FreeNAS uses to provide storage for various operating systems.
Describe the services FreeNAS provides, how they work, what they do, and how they interact with system. Fine grained details will be given for the services listed.
▪ Active Directory
Describe all parts of the FreeNAS system that are listed with high level overviews, abstractions and diagrams. Source code will also be reviewed for certain areas and reviewed if time permits.
Overview of everything presented, describing implications and what not.
John Hixson has been involved with Open Source and using BSD since the mid 1990′s. He is a member of the FreeNAS team and can usually be found hacking on something BSD related when not working on FreeNAS.
Tips on running a conference for 250 people all by yourself
Key to a successful community is face-to-face meetings. Building relationships. Creating plans. Resolving differences.
Developers often travel on their own expense. It is vital to keep costs down.
How do you do this?
Conferences can be complicated, They shouldn’t be, and don’t need to be. The problem is collective memory. Nobody knows how they did it last year, and everyone is doing it for the first time. They want to do it their way. They suffer from the ‘not invented here’ syndrome. The key to reducing your workload are keeping things simple and not doing anything that is not related to core conference activities.
Find suppliers you know and trust, and keep using them. Keep notes as you go and use them for next year.
The talk will start with a basic timetable of what Dan does when and how. It will be followed by a question and answer period. Everyone has questions regarding their conferences and Dan is always happy to give his opinion as to the best way to do things.
Dan Langille has been involved with open source since 1998 and has numerous websites to his credit. He started getting involved with conference management in 2002. In that time, he has been involved in managing over 17 conferences. In 2004, he founded BSDCan, the largest of the BSD conferences. In 2007, he founded PGCon, the longest running PostgreSQL conference. Both are developer-centric but with user-appropriate content. For both BSDCan and PGCon, he runs them single-handedly, with a small program committee. Notwithstanding, he relies upon volunteers to help with the heavy lifting once the conference starts, but for the most part, he organizes the travel, books the conference facilities, deals with catering, reserves the hotel rooms, and processes the registrations.
Both BSDCan and PGCon follow the same format, and are held in consecutive weeks. How does he do it?
Tuning ZFS on FreeBSD
ZFS is a modern 128-bit file system based on the copy-on-write model. This article presents optimization recommendations for ZFS on the FreeBSD operating system, including ARC and L2ARC caches, file-level and device-level prefetch and application-specific settings. The recomendations are based on evaluation of measurement data, expert opinions and user experience. Many of the optimizations are performed by modifying sysctl(8) and loader(8) tunables. To provide supportive data for tuning decisions, the measurement tools zfs-stats and zstat are introduced. The targetted ZFS version is 28, available since FreeBSD 8.3 and 9.0.
Martin Matuška (mm@FreeBSD.org) is an IT expert, senior systems administrator and programmer. He is part of the FreeBSD ZFS team, maintainer of several FreeBSD ports and developer in several open source projects.
He focuses on deploying and maintaining ZFS systems and providing solutions based on FreeBSD, Linux and illumos operating systems. He writes at http://blog.vx.sk
The Warden – FreeBSD and Linux Jail Management
FreeBSD’s built-in jail support, provides a secure and efficient way to run “virtual” environments, however to the newcomer, its interface may be difficult and cumbersome to master. Starting in PC-BSD® 9.1, and TrueOS® 9.1, the “Warden” utility has been given a makeover, and enhanced with new features to make jail management both effortless and flexible. During this talk we will explore jail creation and administration topics, including package management, ZFS support and installing Linux distributions into a jail. Both the graphical user interface, and command-line interfaces will be discussed, allowing users the freedom to use whichever tool best fits their needs.
Introduction to Jails
Migrating jails with importing / exporting
Updating jail world
Startup / shutdown and toggling between
Ports & Packages
Using the graphical interface
Backup via ZFS
Mounting / Cloning snapshots
What about Linux?
Installing Linux distributions into a jail
Interacting with Linux within a jail
Director of PC-BSD Software Development
Kris Moore is the founder and lead developer of the most popular BSD based desktop, PC-BSD. He has authored several unique tools for the desktop, including the PBI package management format, and the Warden, a BSD Jails management utility. He resides in the Knoxville area of East Tennessee with his wife and 4 children.
BSD/Unix CLI and TUI Ecology
For over 30 years now BSD has been a principal contributor to standardization of Unix application and kernel programming interfaces. What’s often overlooked is that it also played key roles in defining the way end users interact with operating systems – the command-line and text-based user interfaces.
BSD has significantly refined the original Unix user-facing interface and largely defined the modern look and feel of text-based utilities and applications in most operating systems.
The last couple of decades saw a surge of research on Ecological Interface Design and similar topics relating to the study of real-world workflows and their representation at the human-machine boundary.
We endeavor to study the features of modern BSD/Unix CLI and TUI, their relation to practical problem-solving, cross-pollination with GNU/Linux, Solaris, and non-Unix systems, and examine them from the standpoint of state of the art in the science of industrial interface design.
Andrew Pantyukhin is a clandestine hacker at large with affinities to FreeBSD, large–scale heterogeneous computing, unconventional architectures, — currently changing life, the universe and everything in a team of like minds.
Since 2010, Andrew has been with Dream Industries, a disruption lab launching next-generation cloud media services in emerging markets around the world. His responsibility and interest is rethinking development and operations to better suit current demands and those looming on new horizons, where he draws much value from his FreeBSD experience.
He has also been an aspiring Unix hacker for the last decade, a latent FreeBSD ports committer since 2006, an architect behind Gubkin University IT operations, and enjoying occasional gigs speaking about open–source and BSD at conferences and teaching FreeBSD classes.
Touch your NetBSD
Earlier this year, the AFUL, a French non-profit organization ran a contest called AFULTab to challenge developers to propose a FOSS tablet environment with the hardware of their choice. NetBSD enthusiast and DeforaOS developer Pierre Pronchery prepared and submitted his own proposal on May 1st, co-winning the contest while also becoming an official NetBSD developer in the process.
This talk [will] summarize the work done, the status and the potential future of either NetBSD and the DeforaOS desktop environment on such tablet hardware.
Pierre Pronchery (khorben@) joined the NetBSD Foundation in May 2012, where he is currently focusing on desktop integration. Freelancing as an IT-Security consultant, he can also be found promoting Open Source hardware and researching on Clean-Slate Internet and the Internet of Things as part of the DeforaOS project.
How to put FreeBSD power into small MIPS switch/router
Would you believe that your wireless router could be stable and secure as FreeBSD? Or you love BSD and want to have it in on your home appliances?
Sure – you can get it in running even on MIPS with 32Mb RAM and tiny 400Mhz processor!
Some people think that FreeBSD is server OS and it demands a lot of resources to run. That is wrong – FreeBSD feels well in most MIPS/ARM boxes, and feels like at sweet home on MIPS64 CPU with 256M of RAM.
So I glad to introduce first FreeBSD based firmware for SOHO class wireless router and explain which technologies I used to make this possible.
It is not a cut of popular OS, it is same kernel and tools that you already know, it is all FreeBSD power packed by set of Makefiles called ZRouter.org project.
My name is Aleksandr Rybalko, I’m FreeBSD src commiter. Work in D-Link Ukraine. I’m also work on the open source project called ZRouter.org.
Challenges in identity management and authentication
Over the last decades, there have been many advances in how we manage identity in computer systems, and even how we think about identity. In spite of this, Unix is still stuck with a forty year old paradigm. While many new technologies have emerged, the usual response is to shoehorn them into the same outdated interfaces, and in the process discard much of the information and functionality these technologies offer. It is time to take a long hard look at the way we identify and authenticate users and start thinking about alternatives.
Dag-Erling Smørgrav is a software engineer and system administrator at the University of Oslo and a member of the UiO CERT. He has been a FreeBSD committer since 1998 and is the author of OpenPAM.
The pivot_root system call for BSD systems (NetBSD)
The pivot_root system call has been available on Linux operating systems for over a century. The system call is traditionally invoked after the Linux kernel has started up in order to switch from the “initrd” image to a full Unix multiuser environment. BSD systems have not needed this system call since they generally boot directly through one or more “boot loaders” to load and start the kernel which in turn brings up the full Unix multiuser system directly.
Lately, the pivot_root mechanism has gained renewed interest in the context of virtual machines. This implementation of this system call together with new mechanisms to load and execute kernel images in BSD operating systems will enable new exciting possibilities in this domain.
• History and Motivation
• Brief overview of Linux initrd mechanism
• Original Linux pivot_root semantics
• The difference between chroot and pivot_root
• Booting into RAMdisk filesystems
• Dynamic loadable kernel modules
• Loading and executing a new kernel image
• Design and Implementation
• Cloning the Linux semantics
• Short introduction to BSD VFS System
• Vnode locks and references
• Pseudocode of BSD pivot_root system call
• Contending with special filesystem mounts
• Working with pivot_root
Adrian Steinmann earned a Ph.D. in Mathematical Physics from Swiss Federal Institute of Technology in Zürich, Switzerland, and has over 20 years experience as an IT consultant and software developer. He is founder of Webgroup Consulting AG, a Swiss consulting company.
He has been working with FreeBSD since 1993 and NetBSD since 2005. He develops and maintains the STYX system to offer FreeBSD remote managed firewall services and to build custom systems on small x86 based platforms. This enabling technology has also been used to build secure encryption appliances on commodity hardware for the Swiss IT industry.
He is known in the BSD community for his well-received tutorials “FreeBSD and NetBSD on small x86 based systems” and “Introduction to NETGRAPH on FreeBSD systems”. He is a member of The NetBSD Foundation since 2011.
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.
Running BSD-licensed Software on BSD-licensed Hardware
The family of Ethernut boards  are microcontroller reference design boards. They are based on microcontrollers ranging from 8-bit Atmel R AVR R ATmega128 (Ethernut 1) to 32-bit Atmel R ARM9 AT91SAM9XE512. As their name suggests, they also have either an integrated or at least an on-board or Ethernet controller. Although developed and sold by the company egnite GmbH , the layouts and schematics of these boards are distributed under a BSD-style license. The software intended to be run on the Ethernut boards is called Nut/OS , which is also distributed under a BSD-style license. Nut/OS is a Real-Time Operating System (RTOS) also developed by egnite GmbH with support from the Ethernut community. The interfaces of Nut/OS are remarkably similar to the Portable Operating System Interface (POSIX R ) as standardized in IEEE 1003.1 . This makes porting applications between POSIX R compliant operating systems and Nut/OS straightforward.
As both Ethernut boards and Nut/OS are BSD-style licensed, their combination makes them interesting for developing prototypes of embedded systems. This is due to the fact, that Nut/OS already is a mature RTOS suitable as a base for own firmware and the layouts of the boards being available and thus can be customized. Moreover, their liberal BSD-style license even allows for later on building actual products based on these without the requirement to pay royalties or to publish the sources needed for manufacturing the hard- and software.
As of May 2012, FreeBSD/arm also runs on Ethernut 5, which makes FreeBSD the first operating system to support these boards out of tree.
The objective of the proposed presentation would be to give an introduction to the Ethernut family of boards focusing on Ethernut 1 and 5 as well as to Nut/OS. As part of this talk, instructions on how to cross-compile Nut/OS (for Ethernut 1 and 5) and FreeBSD/arm (for Ethernut 5 only) on FreeBSD/x86 as well as how to get the resulting binaries on the boards also would be provided.
Marius Strobl has received a diploma in Technische Informatik (Computational Engineering Science) from the University of Applied Sciences Regensburg, Germany. Currently, he is studying a M.Sc. in Electrical Engineering there. As part of that research master, he is working in the field of automotive bus systems for the Automotive Systems & Technology advance development department of the Continental Automotive GmbH Regensburg, Germany.
Since 2004, Marius is a src-committer in the FreeBSD Project. Besides maintaining the FreeBSD/sparc64 port, he works in the areas of host bus adapter (HBA) and network device drivers, the mii(4) subsystem and on other unbeloved things there.
Config Management in FreeBSD using Puppet
When it comes to managing configurations, one would relate to CVS/SVN/GIT.This talk however, will revolve around managing FreeBSD’s configuration files, ports, as well as deployment, using Puppet. Be prepared to get some extra sugar & icing that comes with it.
Edward Tan is a Happy System Administrator using FreeBSD for the servers he’s taking care of. Occasionally day-dreaming of becoming a Perl programmer while his hands is meddling with other Shell scripts.
Implementation of SCTP in Go (FreeBSD)
The main goal of the project described in this paper is to combine two new technologies, Stream Control Transmission Protocol (SCTP) and the computer language Go, by implementing the functionality of SCTP as a library in Go. SCTP is a reliable message oriented transport protocol, has resistance against flooding and masquerade attacks and includes con- gestion avoidance procedures. First standerdized in October 2000 by the Internet Engineering Task Force (IETF) in RFC 2960 and later updated by RFC 4960. Go is a concurrent, statically typed compiled and garbage collected language with a syntax broadly similar to C. The initial design of the programming language Go started as an internal Google Inc. project in 2007 and was officially announced and open sourced in 2009.
Following is the outline of the talk I would like to give (this roughly follows the outline of my dissertation):
- Give some extra background information about Go and SCTP, describe characteristics etc.
- Explain my approach on how to implement a new network library in the Language Go.
- Do a comparison on how network programming is done (first TCP) in C and Go.
- Show how TCP is implemented in Go.
- Show how I implemented SCTP in Go.
- Do a comparison on how network programming is done with SCTP in C and Go.
- Demonstrate the performance differences between similar data transfer techniques of TCP, UDP and SCTP
- Demonstrate the performance differences between the same data transfer techniques implemented in C and Go.
- Question time
I’m currently finishing my Masters in Computer Science (part time) and my dissertation subject is the implementation of SCTP in Go. My dissertation deadline is in September, so by the time of the conference I can present a fully working implementation together with a paper. (Olivier Van Acker)
As some of you might know, i am one of the two authors of NetBSD/usermode, a new `port’ of NetBSD. Its a complete NetBSD kernel running as a single process having a userland of its own with full multitasking, virtual memory, networking and even audio. It supports both a tty console as a virtual frame buffer that can be viewed by a VNC client.
Allthough it only works on NetBSD now (x86, x86_64, others follow) it could be made to work on other POSIX systems too. Without kernel support it will not be able to run bog-standard distributions but with a little help of the kernel it can run normal distribution sets.
1990 : started Applied Physics at the Twente University
1992 : switched to Computer Science at the Twente University
1999 : got my degree in CS. My specialism is hardware/software interaction
I started to develop for NetBSD in Feb. 2001 as then still unified NetBSD/arm32 portmaster to work on the Acorn RiscPC. I created a new bootloader, redid the console and did some minor hacks around.
In 2003 my work on UDF started, first as a userland application as a study for my read/write kernel implementation i started later; took some years to finish.
In 2005 I wrote the IXP audio device driver for my i386.
In 2010 work on NetBSD/usermode started. Even though its nearly finished, its still in active development.
In 2012 I `ported’ / adjusted NetBSD to the LG NAS series of Marvell derivatives.