Monday, November 28, 2011

Foundation at LISA

There will be a FreeBSD booth during LISA in Boston, next Wednesday and Thursday (December 78). 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

SoC Mentor Summit Trip Report

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

Trip Report: Andrew Turner

The next trip report is from Andrew Turner:

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

Trip Report: Brooks Davis

The next EuroBSDCon trip report is from Brooks Davis:

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.