Managing BSD systems with Ansible
The tutorial was first held at AsiaBSDcon and it was well attended (14
people) and received. The feedback I got in the meantime has been worked
into the tutorial, so that attendees will get the updated and revised
version. The tutorial is laid out for 2.5 – 3 hours with breaks in
between and enough time for attendees to try out the examples on their
own machines. The topic is interesting enough even for people who did not have much
exposure to the BSDs yet and covers all the BSDs in general as Ansible
mostly abstracts the OS-specifics away. Basic Unix command line skills
(editing a file, navigating the directory tree, copying files, etc.) is
sufficient to participate. I will start the tutorial with why and how Ansible is helpful
(infrastructure as code). Then, I will go into setting up clients
(receiving updates) and server (pushing configuration changes to
clients) with SSH. We will then start running basic ad-hoc commands from
the command line so that attendees get a feel for the power of this
tool. Next, attendees will learn how to run and write playbooks for
bigger tasks comprising multiple steps to execute on the target host.
Variables, loops, gathering facts from clients, as well as the basics of
YAML are part of the tutorial, which concludes with a complete example
about setting up and configuring a webserver.
Sysadmins and users alike can benefit from the tutorial by learning how
to automate dull, repetitive tasks and deploy configuration changes in
Benedict Reuschling joined the FreeBSD Project in 2009. After receiving
his full documentation commit bit in 2010, he actively began mentoring
other people to become FreeBSD committers over the years. He is proctor
for the BSD Certification Group. Benedict has a Master of Science degree
in Computer Science and is teaching a UNIX for software developers class
at the University of Applied Sciences, Darmstadt, Germany. He is
managing the Big Data cluster for the computer science department using
Ansible since mid 2014. Benedict joined the FreeBSD Foundation Board of
Directors in 2015 and is currently serving as vice president.
DTrace for Developers: no more printfs
One of the largest challenges to building complex software is a lack of
run time visibility into what the system is doing at any particular
time. Typical approaches to adding tracing and logging emphasize
sprinkling calls to printf() or similar statements throughout the source
code, and enabling these in debug builds. DTrace is a modern system that
gives software developers the ability to add, low overhead tracing that
is always available, coupled with an advanced scripting language, to
programs that they are creating, modifying and debugging. In this tutorial we will cover the basics of DTrace, including basic and
advanced uses, and then, using a set of worked examples, add tracing to
user space and kernel space systems. The tutorial includes a set of
short labs, carried out on virtual machines, that give the students
hands on experience working with DTrace. Students are expected to have a laptop computer which can run Virtual
Machine software such as VMWare (preferred), Virtual Box or QEMU.
George Neville-Neil works on networking and operating system code for
fun and profit. He also teaches various courses on subjects related to
computer programming. His professional areas of interest include code
spelunking, operating systems, networking, time and security. He is the
co-author with Marshall Kirk McKusick and Robert Watson of The Design
and Implementation of the FreeBSD Operating System and is the columnist
behind ACM Queue’s “Kode Vicious.” Mr. Neville-Neil earned his
bachelor’s degree in computer science at Northeastern University in
Boston, Massachusetts, and is a member of the ACM, the Usenix
Association, the IEEE, and is one of the Directors of the FreeBSD
Foundation. He is an avid bicyclist and traveler who currently resides
in New York City.
An Introduction to the FreeBSD Open-Source Operating System
An Introduction to the FreeBSD
Open-Source Operating System
Dr. Marshall Kirk McKusick
Who Should Take this Course
This course provides a broad overview of how the FreeBSD kernel
FreeBSD kernel but subjects have been arranged such that students can
also decide to attend only the first or the second day depending on
the subjects in which they are interested.
This course will provide a firm background in the FreeBSD kernel.
Marshall Kirk McKusick, George Neville-Neil, and Robert N. M. Watson,
Dr. Marshall Kirk McKusick writes books and articles, teaches
classes on UNIX- and BSD-related subjects, and provides
expert-witness testimony on software patent, trade secret,
and copyright issues particularly those related to operating
systems and filesystems. He has been a developer and commiter
to the FreeBSD Project since its founding in 1994. While
at the University of California at Berkeley, he implemented
the 4.2BSD fast filesystem and was the Research Computer
Scientist at the Berkeley Computer Systems Research Group
(CSRG) overseeing the development and release of 4.3BSD and
4.4BSD. He earned his undergraduate degree in electrical
engineering from Cornell University and did his graduate
work at the University of California at Berkeley, where he
received master’s degrees in computer science and business
administration and a doctoral degree in computer science.
He has twice been president of the board of the Usenix
Association, is currently a member of the FreeBSD Foundation
Board of Directors, a member of the editorial board of ACM’s
Queue magazine, a senior member of the IEEE, and a member of
the Usenix Association, ACM, and AAAS. In his spare time, he enjoys swimming, scuba diving, and
wine collecting. The wine is stored in a specially
constructed wine cellar (accessible from the Web at
http://www.mckusick.com/~mckusick/) in the basement of the
house that he shares with Eric Allman, his partner of
38-and-some-odd years and husband since 2013.
Core concepts of ZFS
This half-day tutorial walks through the core concepts of ZFS. We’ll
discuss real life ZFS deployments, and troubleshoot bottlenecks.
and whatever other topics we have time for, which we probably won’t.
Michael W Lucas is the author of many technical books, including
“Absolute FreeBSD,” “Absolute OpenBSD,” “PAM Mastery,” and the
brand-new “Relayd and Httpd Mastery.” He lives in Detroit, Michigan,
with his wife and an assortment of rats. Learn more at
BGP for developers and sysadmins
BGP is becoming more and more relevant outside of pure networking.
Developers need to understand TCP/IP for their own projects,
micro-services use networking for performance and redundancy. Virtual
Machines move from host to host, and need to have network traffic
delivered to them. BGP is the backbone protocol of the Internet, and as
a Data Center networking protocol for Facebook, Google, and Microsoft.
I will teach you the relevant basics of networking and how BGP is used
in the wild. At my day job, I run the 4th most connected network in
Germany, and are a developer with OpenBSD focusing on networking and OpenBGPD.
Attendees must bring a laptop capable of connecting to ethernet, and
running bird/openbgpd. Please pre-install the packages “sipcalc”, “bird”.
Knowledge of subnets or routing is not required.
Peter Hessler has been a developer with the OpenBSD project since 2008.
Originally from San Francisco he has an interest in how things work. An
OpenBSD user since 2000, he moved to Germany in 2008, to Switzerland in
2013, then back to Germany in 2015. In his spare time Peter enjoys
drinking beer, filling out Immigration documentation, and bad puns.
How to untangle your threads from a giant lock in a multiprocessor system
You’ve been living under a giant lock your whole life, but
Moore’s law has been moving in parallel rather than serial now
for over a decade, and it’s time to make your code scale to
many cores. How?
Your undergrad professor told you all about philosophers
fighting over dinner forks, which seems only philosophically
relevant when you stare at inscrutable kernel memory
In this tutorial, you’ll work through examples of drivers and
kernel subsystems in the context of NetBSD — though the
concepts will generalize to other BSDs, to userland, etc. — of
designing them to be MP-safe or even MP-scalable.
Taylor `Riastradh’ Campbell has been a NetBSD developer since
2011. His first major contribution was to fix the
synchronization of the rename system call, which has to juggle
four different objects, any pair of which might be the same,
and guarantee a local operation does not violate global
invariants of the file system. Since then, he has been
tweaking lock orders and synchronization protocols, including
writing passive references for cheaply parallelizing
read-mostly access to shared resources in the network stack.