The FreeBSD Foundation is a 501(c)(3) non-profit organization dedicated to supporting the FreeBSD Project. The Foundation gratefully accepts donations from individuals and businesses, using them to fund projects which further the development of the FreeBSD operating system.

Monday, November 28, 2011

There will be a FreeBSD booth during LISA in Boston, next Wednesday and Thursday (December 7–8). We’ll have some cool Foundation swag, Foundation brochures, and will be available to answer FreeBSD questions and to accept donations for the Foundation. Entrance to the exhibition area is free, but you do need to register first. If you’re in Boston, stop by booth #408 and say hi!

Friday, November 25, 2011

The Foundation provided a travel grant to Bjoern Zeeb to attend the Google Summer of Code Mentor Summit and the FreeBSD Vendor Summit. Bjoern's trip report is as follows:

Thank you for helping with my travel costs to the Google Summer of Code Mentor Summit and the FreeBSD Vendor Summit.

Google Summer of Code Mentor Summit

Google's registration requirements and provided wiki space made it
possible to coordinate travel with others, which allowed me to make
first contact with mentors from other Open Source projects even before I
left and obviously I ran into more geeks by the time I got to the
airport.

Saturday morning the Google buses picked us
up. After an excellent breakfast, there were important rules during the
opening session: do not go beyond the areas where we have put up signs. This was obviously the largest mentor summit so far as the classic
un-conference approach for finding topics and rooms no longer scaled.
Since the schedule changed regularly, it wasn't possible to
attend all the sessions I had planned, especially on Sunday. Let me
highlight a few:

Umbrella Organizations (Admins and
Mentors meeting): while this does not directly apply to FreeBSD, I was
curious to see what kinds of problems other organizations were facing and whether they have some interesting ways to solve their issues that could also
help FreeBSD. I was overwhelmed by the real problems I heard about
and it made me realize how well organized and well run FreeBSD is. On a
side note, I learned that KDE had 50 GSoC slots, which I wish FreeBSD could
handle as well. One interesting idea that came up was that some
organizations are either providing web forms or spreadsheets for mentors
and students to more easily keep track not only of progress but also
for catching interaction problems. Given FreeBSD has the weekly or
bi-weekly mailing list updates, tells students to let admins know in
case of problems with their mentor, we are not too far away from that
but it could certainly simplify some tracking for admins.

Women in Open Source: there were multiple sessions on this. For me
a lot of the discussions did not go too far into the
topic of attracting more women to open source development. Only Gnome
has hosted women summer outreach programs in the past, which was
interesting to hear about. One important item is to provide dedicated mentors upfront
that women can talk to one-to-one and that a list of these would be
available all year long.
Astonishingly the discussions often went along the reasoning of not driving
woman away rather than attracting them in first place; there
were plenty of suggestions of what not to do, and what to do to
help them stay.

Marketing and Open Source: a topic
that FreeBSD needs to get further up to speed on. A lot of talk
was how to help commercialize an open source project. Social Media, videos, and local communities were also big
discussion items. Some ideas were: leveraging users by providing pamphlets and posters
that they can distribute, advertise at
events, and use references and independent reviewers on the web page. PostgreSQL is doing a good job and we should leverage some of their ideas.

Open Source OS
summit: this was one of the most interesting discussion groups during
the weekend. It is like an organized hallway track with everyone but Linux in the
room. Major topics were: combined arm twisting of vendors to not only
help one but many projects, firmware licensing, shared documentation (such as data sheets) repository, and possibly setting up a mailing list to
coordinate. It was interesting to learn beyond other informal
discussions how many other projects such as RTEMS, Haiku, and Illumos
take bits and pieces from FreeBSD and wondering why we don't talk a lot
more or invite them to our devsummits. Another thing to consider is
how to "sell" the project - which reaches into the marketing but also a
funding discussion. Should a project just provide the source and let
the ecosystem create distributions? Would commercial support on top be
an option?

The hallway track and dinner
conversations: in addition to the Open Source OS summit session, this was most helpful for getting in touch with other BSD consumers
and projects which we consume. I had extended chats with
Illumos people pondering collaboration on some topics, talks with NTP
folks, discussions on the network stack with RTMES, and I also got to
know MoinMoin folks who are quite local to me and who could
immediately help me to solve a problem so that we can easily have links on the wiki to SVN commits. My other hallway track
item was to debug why IPv6 on the Google guest network did
not work for me. The problem has since been worked
around and IPv6 should work flawlessly for everyone there now.
The diagnosing on why it only affected certain people or possibly only
BSD (derived) operating systems continues.

All in all it was a productive, informative, fun weekend. Now that I am
back home, I'll need to follow-up on some of the possible collaboration
ideas.

The FreeBSD Vendor Summit

The FreeSBD vendor summit, a couple of days later, continued to provide
insights on what people need or want from FreeBSD. It was even more
interesting to hear about what was cooking and what people
considered to give back. The general trend to push changes not
considered to be IP back to FreeBSD continues and
makes me believe that in some ways things are going better in our world. The afternoon was almost all about
virtualization. We heard about FreeBSD on Microsoft Hyper-V and talked a
bit about EC2, Xen, bhyve, as well as tools and frameworks to help
to simplify the usage of FreeBSD in or for virtualized environments. At
the end of the day I started to look at the virtio drivers for Peter to
commit them to HEAD and we got the QLogic 10G driver into the tree as
well. In addition to the session, the breaks provided some time to
informally chat with the other participants. It would have been
great to have some time the following day to
continue these informal group discussions but BSDCan is only a couple
of months away. Having such an event at least twice a year is
extremely helpful and my thanks goes to George for running this!

Wednesday, November 2, 2011

On day one of the Developer summit, I attended the bmake/bus_bma and toolchain working groups. I contributed to these by announcing a patch to allow FreeBSD to be compiled from Linux. The patch is available; however, it is against an old copy of HEAD and does not apply correctly. An updated version is expected to be committed to a project branch in subversion in the next few weeks as I have the time to work on it. In the toolchain working group, I discussed the current state of the ARM EABI port. The last remaining part is getting GCC configured correctly. Until now I have been using a minimally configured copy of GCC. Due to the nature of the change, I would like to ensure it is correct as the ABI will need to work with clang in the future.

The second day of the Developer summit had interesting discussions on virtualization. This is an area that will soon pick up in the embedded area when ARM vendors release their System on Chips containing Cortex-A15 cores, as these have hardware supported virtualization.

I gave a talk in the FreeBSD track at the conference on the current state of NAND flash with FreeBSD, what I would like to change, and where NAND flash hardware is heading. The main point is that the the NAND flash framework is mostly done; however, we need a flash filesystem or flash translation layer before we can use it.

As a result of my talk, I was asked about devices we support that contain NAND flash. The OpenRD-Ultimate appears to be a device we support that developers are able to buy; however, as I have never used one, I am unable to recommend it. This lead to a discussion on getting one into one of the FreeBSD clusters. Since the conference, Wojciech Koszek has taken the lead in organising embedded devices for the Netperf cluster.

Tuesday, November 1, 2011

I arrived in Maarssen on the 5th of October and met up with fellow developers for drinks at the hotel and then dinner.

On the 6th, we headed to the conference site and commenced with the developers summit. After an opening session, we broke up into working groups. For the first session, I attended the ports session. I lead a short discussion on the ports impact of our migration to Clang/LLVM as the base tool chain. The general conclusion was that we need to add support for switching the default ports compiler (a project which is well underway), as well as the ability to specify a restricted set of acceptable compilers for a given port. There seemed to be solid support for allowing the default to be clang for FreeBSD 10 builds on architectures where we make it the base compiler.

After lunch, I lead a session on our toolchain work. I outlined our current status to the group. The status report was followed up by a discussion of the remaining requirements to produce a GPL-free base system. Those items include:

an LLDB port

libgcc replacement on some architectures (at least MIPS and sparc64)

libgcc*.so

FDT tools

unwinding library

GDB server

as(1) wrapper (maybe?)

16-bit ASM support (at least on x86)

libdwarf

While not required for a GPL free system, we also identified a desire for a CDDL-free CTF implementation and a libbsdctf or similar.

Of the pieces required for a GPL-free base, the largest component remaining is a linker. Because linkers have quite a bit of scope, we spent most of the remaining time brainstorming requirements for a BSD licensed linker. Those requirements included:

linker scripts (or equivalent)

LTO framework

Link time optimization against IR or machine code

Incremental linking

Support for IR in ELF

GNU ld compatibility

IR processing by plugin

Limited non-ELF support (for boot blocks, etc)

Alternative hash table support

Crunching support

Be fast

Native cross-architecture support

Multipass lookup

Unit tests

Coded to LLVM standards (to allow inclusion in LLVM)

linker is a library

C and C++ support

Architecture support: i386, x86_64, ARM, PPC(64), MIPS(64), PiNaCl

Possible architecture support: sparc64

After the toolchain summit, I attended the capsicum summit where we discussed the status of capsicum and various thing we could protect with capability sandboxes. We produced quite a long list of things that should be sandboxed, though it got a bit silly near the end when we basically started listing all ports. One area I found my self pondering was how to sandbox moderately complex web applications like Trac which can't be fully sandboxed in Apache and must wait until at least application initialization has happened.

Friday the 7th commenced with an opening session followed immediately by working group reports. I reported on the toolchain session and most other session leaders reported on their sessions. That was followed by a discussion of options for using Git to track FreeBSD. At the end we concluded that we definitely need a git.freebsd.org to provide officially "blessed" git trees, but we left some details unresolved such as the exact scope of the git trees. This discussion was followed by a set of presentations by Chris Buechler of pfSense, Jeroen van Nieuwenhuizen of Snow, Robert Watson of the Cambridge Computer Laboratory and Yvan Vanhullebus of NETASQ on their use (or non-use in the case of Snow's clients) of FreeBSD. After these presentations we broke for lunch.

When we reconvened after lunch we started with a discussion of virtualization on FreeBSD. In a number of key ways FreeBSD was late to the virtualization game, but it looks like we're catching up. Between the addition of BHyVe and an upcoming Xen Dom0 implementation, we will soon be well positioned to host guest VMs on FreeBSD and our support for running as a guest seems to be improving steadily. We're still behind in some senses, but given the remarkably poor reality that is accepted as the state of the art, it seems like we have a chance to pull ahead in areas of management if we invest some effort.

The virtualization session was followed by a session for FreeBSD 10.0 brainstorming. As usual for such a session, many ideas were generated. If even half of them are completed, I think we'll have a fantastic 10.0 release.

Following the success of the dev summit track introduced at BSDCan this spring, Saturday contained such a track along side the conference. I attended several of these talks and gave a presentation on our participation in the 2011 edition of the Google Summer of Code. We had 13 successful projects and have already gained two comitters as a result of this year's projects, with a couple more expected in the next few months.