doc/en_US.ISO8859-1/htdocs/news/status/report-2013-05-devsummit.xml
Gabor Pali 1cdc51d294 - Add a special status report on the results of the BSDCan 2013 developer
summit
- Reword the status report page a bit to accommodate this

Submitted by:	theraven
2013-07-02 13:16:08 +00:00

356 lines
13 KiB
XML

<?xml version="1.0" encoding="iso-8859-1" ?>
<!DOCTYPE report PUBLIC "-//FreeBSD//DTD FreeBSD XML Database for Status
Report//EN"
"http://www.FreeBSD.org/XML/www/share/xml/statusreport.dtd">
<!-- $FreeBSD$ -->
<report>
<date>
<month>May</month>
<year>2013</year>
</date>
<section>
<title>BSDCan 2013 DevSummit Special Status Report</title>
<p>This special status report contains a summary of the discussions
from the various working groups at the BSDCan 2013 DevSummit. The
&os; Project organizes DevSummits at various events, typically at
the major BSD conferences, so that developers can meet and discuss
matters in person.</p>
</section>
<project>
<title>Ports and Packages</title>
<contact>
<person>
<name>
<given>Erwin</given>
<common>Lansing</common>
</name>
<email>erwin@FreeBSD.org</email>
</person>
</contact>
<links>
<url href="http://people.freebsd.org/~bdrewery/poudriere-0515.pdf">
Slides on the status of Poudriere</url>
<url href="http://people.freebsd.org/~sson/imgact_binmisc/20130515-bsdcan-xbuild-ports.pdf">
Slides on QEMU-based cross-building</url>
</links>
<body>
<p>The working group on ports and packages discussed the fallout
from the security incident and the lessons learned. Old-style
binary package building is now online and the infrastructure for
building them is in a much more maintainable state. Building
<tt>pkg(8)</tt> (new-style) packages should be possible
soon.</p>
<p>Bryan Drewery presented a short talk on the status of
Poudriere, the new package builder. This is useable for building
package sets for local deployment and for the official &os;
packages. When the original package building infrastructure was
designed, it took most of a day to build a large port like
Mozilla on a high-end machine. Now, we have single machines in
the &os; cluster that can build the entire ports tree in a day.
Poudriere is designed for this model and does not rely on ports
supporting parallel builds internally. Instead, it builds each
port in a separate jail, with ports that do not depend on each
other being built in parallel when there are spare CPUs.</p>
<p>Moving forward, the project plans to decouple package releases
from base system releases. Each base system release is intended
to be backwards compatible within that release series and so any
packages for N.x should work on N.x+1. The project will build
weekly package sets for each branch that will be retained for
two weeks, with no QA, and monthly sets that will undergo QA and
will be available for 12 months.</p>
<p>Stacy Son and Brooks Davis talkes about packages for less
common architectures. Stacy has worked to bring QEMU usermode
support to &os;. This means that MIPS or ARM &os; binaries can
run on an x86 &os; system. The kernel will detect the foreign
binary and launch it in the emulator. Stacy has been using this
to create jails containing a cross compiler and shell for the
host architecture, but native libraries for the target. This
allows ports that are not cross-build aware to run configure
scripts that do things like compile executables and run them,
but still has the most processor-intensive part of the build
(compiling and linking) running outside of emulation. With this
approach, we are easily able to build weekly package sets for
MIPS and ARM on a single x86 box. For installing onto embedded
systems, there are still some open problems. The
<tt>pkg(8)</tt> infrastructure can install many packages onto a
disk image, but will not be able to run complex post-install
scripts without the target system booting.</p>
</body>
</project>
<project>
<title>UEFI</title>
<contact>
<person>
<name>
<given>Benno</given>
<common>Rice</common>
</name>
<email>benno@FreeBSD.org</email>
</person>
</contact>
<body>
<p>UEFI is the new boot firmware standard pushed by Intel. It
comes with a number of challenges, including the SecureBoot
restriction, that prevents the firmware from booting unsigned
kernels and bootloaders. This is not currently a problem, as
most systems either do not enable this restriction by default,
or make it easy to disable, but it will be more important in the
future.</p>
<p>The goal for UEFI support in &os; is to merge the bootloader
that is currently in the projects branch, which will perform
signature verification and then hand off to the more
conventional &os; bootloader. This loader will be very simple
and so will need changing (and re-signing) fairly infrequently.
The &os; Foundation will be responsible for ensuring that the
bootloader is signed and so will work with SecureBoot.</p>
<p>There are a number of restructuring and refactoring tasks that
will need to be done over the next few months to ensure that the
&os; boot process works cleanly with UEFI. These include
removing some code duplication between various platforms that
use UEFI, removing some legacy support from the i386 kernel, and
restructuring how some of the bootloader code is built.
Interaction with UEFI will be simplified once clang supports the
MS Windows calling convention (used by UEFI) when generating
UNIX binaries. Benno Rice has been working on this, with some
assistence from David Chisnall, and this support should appear
soon.</p>
</body>
</project>
<project>
<title>Network Receive Performance</title>
<contact>
<person>
<name>
<given>George</given>
<common>Neville-Neil</common>
</name>
<email>gnn@FreeBSD.org</email>
</person>
</contact>
<body>
<p>&os; has traditionally been a platform with support for very
high performance networking. This is one of the main reasons
why it was selected for the Netflix streaming appliance, which
is currently responsible for over 20% of the Internet traffic in
the USA. The goal of this session was to discuss current
bottlenecks at the receiving end of connections.</p>
<p>Modern network cards support multiple receive queues and can
deliver packets into them depending on various criteria. The
design of a good API for accessing this functionality is very
important, as it shortens the path between a packet arriving in
the card and it being delivered into a userspace process. In an
extreme case, for example with cluster applications or virtual
machines, the receive queue may be accessed directly from a
process bypassing the kernel. In a more conventional setting,
the packets should be delivered to a kernel thread on the same
CPU as the receiving process, so that the copy to userspace is
cheap.</p>
<p>The group examined a number of different proposals, including
some patches, and discussed the requirements for a general API.
This work is ongoing.</p>
</body>
</project>
<project>
<title>Beyond Buildworld...</title>
<contact>
<person>
<name>
<given>Brooks</given>
<common>Davis</common>
</name>
<email>brooks@FreeBSD.org</email>
</person>
</contact>
<body>
<p>Buildworld is the target for building the base system in the
venerable &os; build system. This session aimed to investigate
the current limitations, discuss recent improvements, and
propose future directions for this process.</p>
<p>Over recent years, &os; has been used increasingly in embedded
systems and so cross development has become a lot more
important. One of the changes recently committed by Brooks
Davis now permits building the entire base system and creating a
disk image without root privileges. This makes embedded
development easier, as a number of users can now share an
expensive development box, capabily of performing builds
quickly, without having to give all of them root.</p>
<p>This session also discussed the bmake import, which brings in
NetBSD's make along with some improvements from Juniper, which
should allow much more accurate dependency tracking and faster
parallel and incremental builds. This should have some
additional benefits to the rest of the project, for example by
making our tinderbox infrastcture, which notifies developers if
the have broken the build, able to report failures much more
quickly.</p>
<p>One frequently requested capability, which is now being
investigated by Marcel Moolenar, is the ability to build &os;
from other platforms. Currently, developing a &os;-based
embedded system requires a &os; host system for building, which
is a barrier to entry that we would like to avoid.</p>
<p>There are a number of changes to our toolchain planned for the
10.x and 11.x timescales, including replacing GNU binutils with
LLVM-based tools and importing MCLinker. These are unlikely to
be the default in 10.0, but we hope to be able to provide a
GPL-free base system as a functional option this year.</p>
</body>
</project>
<project>
<title>Virtualization</title>
<contact>
<person>
<name>
<given>Peter</given>
<common>Grehan</common>
</name>
<email>grehan@FreeBSD.org</email>
</person>
</contact>
<links>
<url href="http://people.freebsd.org/~grehan/bsdcan13_virt_ext.pdf">
Overall status slides</url>
<url href="http://people.freebsd.org/~gibbs/XenStatusBSDCan2013.pdf">
Xen status slides</url>
<url href="http://people.freebsd.org/~bryanv/pdfs/bsdcan2013_virtio.pdf">
VirtIO status slides</url>
<url href="http://people.freebsd.org/~grehan/bsdcan13_bhyve.pdf">
Bhyve slides</url>
</links>
<body>
<p>Virtualization is an increasingly important topic, with large
providers like Amazon deploying huge numbers of VMs and many
users deploying VMs on desktop systems for testing and backwards
compatibility. Today, &os; supports a wide variety of
virtualization options. This working group discussed the
current status and future directions of several of them.</p>
<p>Xen is the de-facto standard for large-scale virtualisation and
&os; has supported running as a guest for some time.
SpectraLogic has funded recent work on improving this, with two
overlapping goals. The first is to allow &os; to run as the
Domain 0 operating system. This is the operating system that
runs with elevated privilege and is allowed to talk directly to
the hardware and which must provide the virtualized devices to
the guests. This requires full paravirtualization support.
Related to this is the ability to use more paravirtualized
hardware when booting as a hardware virtualized guest. This
includes support for the new PVH mode, which uses hardware
support for memory operations but paravirtualized drivers for
everything else, giving the best performance possible with
Xen.</p>
<p>The &os; VirtualBox port is progressing well, with preliminary
support for 3D accleration in guests. The patches for
Microsoft's HyperV, provided by Microsoft, are currently being
tested with a view to incorporating them into &os; 10.</p>
<p>&os; also includes its own virtualization infrastructure, bhyve
(pronounced beehive), which is designed to support
hardware-assisted virtualization. This has made significant
progress over the past year, including now supporting AMD's
virtualization extensions as well as those from Intel. With so
many options, &os; is now very well placed in terms of
virtualization, both as a host and a guest.</p>
</body>
</project>
<project>
<title>Documentation</title>
<contact>
<person>
<name>
<given>Dru</given>
<common>Lavigne</common>
</name>
<email>dru@FreeBSD.org</email>
</person>
<person>
<name>
<given>Benedict</given>
<common>Reuschling</common>
</name>
<email>bcr@FreeBSD.org</email>
</person>
</contact>
<body>
<p>The documentation working group met during the main sessions
and also had several productive evenings improving the state of
&os; documentation.</p>
<p>The &os; Handbook has undergone some significant updates
recently and there is work underway to create a snapshot that
will be available as a professionally published print edition.
There are still some sections in need of updates before this can
happen and the documentation team is working on engaging the
relevant developers to review this content.</p>
<p>The &os; web site redesign was discussed. Currently, many of
the most commonly accessed pages are difficult to navigate to.
Its visual design is also somewhat dated. The documentation
team is working to design an improved structure and has several
offers of assistance with the appearance.</p>
<p>The &os; Project is international and many of the contributors
do not have English as their first language. To encourage more
participation from the rest of the world, it is important to
have high-quality translations of the documentation. PC-BSD
uses pootle (available from the &os; ports tree) to assist with
keeping translations consistent and up to date and we are
evaluating doing the same for &os;.</p>
<p>The documentation team plans to have a Docs Hackathon colocated
with the Cambridge DevSummit in August.</p>
</body>
</project>
</report>