Monday, November 18, 2013

Faces of FreeBSD - Colin Percival


Faces of FreeBSD

We are pleased to be running our Faces of FreeBSD series again! Every week we’ll be sharing a story from someone involved in FreeBSD. It may be someone who’s received funding from us to work on development projects, run conferences, travel to conferences, or advocate for FreeBSD. Or, it may be from someone who contributes financially to the foundation. This story comes from Colin Percival whose company is a 2013 Silver Donor.

This is a chance to get to know your fellow FreeBSD enthusiast. Sit back and enjoy our first 2013 Faces of FreeBSD story.

Colin’s Story





It was 1999 when my parents signed up for the height of luxury in home internet access: an “always on” 2Mbps cable modem.  We had four computers, networked with thinwire coax. We needed to share this connection, so my older brother and I set up a NAT box, running OpenBSD, which he heard was the best operating system for the purpose.

The hard drive we had scavenged for the NAT box died a few months later. I had to reinstall the system onto a new hard drive and spent hours trying to reinstall OpenBSD without success. Then I heard that FreeBSD had a much easier installer. Yes, I started using FreeBSD because of *sysinstall*.

Thus FreeBSD became my default UNIX of choice—and why not?  It was free, stable, had good performance, was well documented, and it avoided the political and religious discussions so pervasive in the world of Linux and GNU.

I headed to Oxford University for my doctorate a few years later, to work on "distributed computing" and extend my undergraduate work—calculating the quadrillionth bit of Pi using spare CPU cycles on a thousand plus Windows machines from around the Internet. Naturally, I turned to FreeBSD for the server to manage all these systems.

But I became distracted, concerned about the security of my server, and understanding my limitations as a system administrator (and that "fools rush in where angels fear to tread"). I solved the problem of my system administration inadequacies by building a tool to help me—and thus FreeBSD Update was born.  I presented this at the BSDCon'03 conference, which is where I first met FreeBSD developers, including Jacques Vidrine (the FreeBSD Security Officer) and Robert Watson.

I was offered a FreeBSD commit bit in 2004 with Robert as mentor; and Jacques invited me to join the FreeBSD Security Team. When Jacques stepped down from his role in order to work for a fruit company based in Cupertino, I took the reigns as Security Officer, and between security advisories, I imported into the FreeBSD base system what remain my two largest contributions to FreeBSD thus far: FreeBSD Update and Portsnap.

I stepped down as FreeBSD Security Officer in 2012 to devote more time to my growing startup company. My only significant code contributions in the past two years have been from ongoing efforts to improve support for FreeBSD on the Amazon EC2 cloud computing platform.

While my "day job" of running the Tarsnap online backup service has kept me too busy to contribute much code, I contribute to FreeBSD by supporting the FreeBSD Foundation.  Every year Tarsnap sponsors open source software by an amount equal to its December operating profits, and I'm proud to say that in 2013 Tarsnap is a Silver Sponsor of both the FreeBSD Foundation and the BSDCan conference.

The FreeBSD Foundation continues to benefit all of us. I run FreeBSD on my laptop, and it works well there—mainly due to Foundation-funded work, adding support for recent Intel GPU hardware.  While maintaining systems for Tarsnap, I make use of the new packaging system (pkg), which the Foundation contributes hardware towards.

To improve support for FreeBSD on EC2, I've been working closely with the FreeBSD Release Engineering team, where Glen Barber (now a FreeBSD Foundation employee) has kept the release process moving very smoothly.  The FreeBSD Developer Summits at BSDCan and EuroBSDCon—opportunities to meet other FreeBSD developers and discuss development plans face to face—have also been supported by the FreeBSD Foundation.

FreeBSD is an amazing operating system, and the FreeBSD Foundation does great work supporting it.  Like so many other busy FreeBSD users, I cannot contribute as much code as I would like, but via the FreeBSD Foundation I can help other developers write the code I don't have time for.

Colin Percival 

Donate today to help us continue and increase our support of the FreeBSD Project and community worldwide! Making a donation is quick and easy. To make a donation go to: http://www.freebsdfoundation.org/donate/



Tuesday, November 12, 2013

FreeBSD Foundation's Year-End Fundraising Campaign!

Dear FreeBSD Community,
Your donations have helped make FreeBSD the best open source operating system available! By investing in The FreeBSD Foundation you have helped us keep FreeBSD a high-performance, secure, and stable operating system.
Thanks to people like you, the FreeBSD Foundation has been proudly supporting the FreeBSD Project and community for over 13 years now. We are incredibly grateful for all the support we receive from you and so many individuals and organizations that value FreeBSD. As of this writing we have raised $427,000 towards our goal of raising $1,000,000. Would you consider making a gift to support our work in 2014?
Donations can easily be made here: http://www.freebsdfoundation.org/donate/.
This year your donations helped FreeBSD by:
  • Funding development projects to improve FreeBSD, including: Native iSCSI kernel stack, Updated Intel graphics chipset support, Integration of Newcons, UTF-8 console support, Superpages for ARM architecture, and Layer 2 networking modernization and performance improvements.
  • Hiring two more staff members to help with FreeBSD development projects, security, and release engineering.
  • Educating the public and promoting FreeBSD. We are preparing the debut our new online magazine, the FreeBSD Journal. We created high-quality brochures to teach people about FreeBSD. We also visited companies to help facilitate collaboration efforts with the Project.
  • Sponsoring BSD conferences and summits in Europe, Japan, Canada, and the US.
  • Protecting FreeBSD IP and providing legal support to the Project.
  • Purchasing hardware to build and improve FreeBSD project infrastructure.
But are you aware of the tangible benefits derived from our support of the FreeBSD community? Providing travel grants to FreeBSD volunteers is a great way to invest in the future of FreeBSD. One person we sponsored was Google Summer of Code student Mike Ma, who had the chance to present his work at EuroBSDCon. During his presentation he received valuable input that will help improve and verify his GSoC work. By attending the conference, he had the opportunity to meet passionate FreeBSD developers who inspired him to learn as much as he could about their different projects. This encouraged him to continue working with his mentor and get involved in his mentor’s work as well as some lldb work.
Now that Mike’s back at his university, he's been busy promoting and advocating for FreeBSD. In fact he's so passionate about the Project now that he convinced a friend who is working on programming languages to work on the clang project, because it's relevant to his own work.
This one investment helped FreeBSD by providing an environment for a student to get more involved in the Project, and bring that enthusiasm back to his university to promote FreeBSD and encourage more students to get involved. This is an investment in the next generation of FreeBSD developers.
Donate today to help us continue and increase our support of the FreeBSD Project and community worldwide! Making a donation is quick and easy. Click here to make a donation.
Thank you for your support!
Sincerely,
Deb Goodkin
Secretary/Treasurer
The FreeBSD Foundation

Friday, November 1, 2013

Newcons system console project update

Aleksandr Rybalko continues to make good progress on the FreeBSD-Foundation sponsored Newcons project.  This project will provide a replacement for the legacy syscons system console.  Newcons provides a number of improvements, including better integration with graphics modes, and broader character set support.

FreeBSD's introduction of Kernel Mode Setting (KMS)-enabled graphics drivers for X11 produced a regression when combined with syscons: it was no longer possible to switch back to a console after starting X.  Newcons integrates with KMS and restores this ability.

Newcons adds UTF-8 support and currently includes Latin and Cyrillic characters; additional ones will be added over time.  Aleksandr has an example of Cyrillic display and keyboard input in his blog posting at http://raybsd.blogspot.com/2013/10/newcons-international-keyboard-input.html. 

I have switched my laptop, a Thinkpad X220, to a Newcons kernel.  In addition to the improved X11 integration mentioned above, a happy side effect is that suspend and resume again works.

Newcons has a small number of outstanding issues which are currently being fixed, with integration into FreeBSD HEAD to follow shortly.  More details on the project can be found on the FreeBSD wiki, at https://wiki.freebsd.org/Newcons.

Thursday, October 31, 2013

EuroBSDCon Trip Report: Mike Ma

The next trip report is from Mike Ma:

I recently had a fantastic trip to Malta in late September, and I attended FreeBSD devsummit together with EuroBSDcon 2013 for 4 days in total. I would like to first thank the FreeBSD Foundation. As a GSoC student this year, I was supported by the FreeBSD Foundation to make the trip happen. The weather was incredibly nice, so I had some extra summer time there since I'm in rather a cold country. It was the first time for me to attend a FOSS conference, well, (not?) surprisingly, I was the only Chinese person there. It was totally different from the research conferences I have attended, where I always see a lot of Asian faces.

One big thing I did at the devsummit was to present my GSoC project during a "student session" . My project was about porting glusterfs. There were four GSoC student talks where we talked about our biggest achievement as well as the problems/difficulties we had. I didn't have time to do a demostration of my project, and I illustrated and explained the experimental results I had at that point. I got very helpful advice on how to improve and extend my experiments.  I was seeing a big performance drop when using glusterfs in comparison to using the underlying filesystem, and people suggested for me to see if there's a similar performance drop on Linux. Then I figured out that the performance gap was normal, so I'm now ready to submit my changes to GlusterFS. If everything goes through, I'll then make it appear in our ports tree.

The most interesting talk to me at the devsummit was lldb on FreeBSD. Ed Maste did a brief demo and I was quite impressed by the smarter and more powerful debugger. I talked to Ed afterwards saying I'm willing to join the project, and I've now set up all the environment. I'll first look at some build failures and start with fixing some entrance-level issues.

I also liked the ZFS session on the first day. It gave me information about various issues and features about ZFS.  Sadly, I didn't manage to go to ZFS talk at EuroBSDcon as I was doing my own presentation at the same time.

Gavin and Gabor helped the GSoC students a lot at the conference.  They were very nice to introduce us to developers related to our project and interests. I also had some random talk with many FreeBSD developers, such as hps@, jhl@, Ilya, etc.  I got to know their projects and some FreeBSD history.

For the future work, I have talked with my mentor Sean Bruno. We agreed to look at some PRs that he is in charge of, which could be a good start for me. I also talked to Pedro, the mentor of the FUSE GSoC project during coding time.  He's also maintaining ext2fs and I'm now looking at fast symlink for our ext2fs implementation.

So far, it's quite a mess as there's a lot to do. Hopefully I'll have to time to do everything I'm interested in.

Again, many thanks to Sean, everyone who helped me with my project, and everyone I met in the conference. And a huge thanks to FreeBSD Foundation for funding my trip.

Wednesday, October 30, 2013

EuroBSDCon Trip Report: Isabell Long

The next trip report is from Isabell Long:

In the last week of September 2013, thanks to Foundation funding, I flew to Malta to partake in the FreeBSD DevSummit and EuroBSDcon. I spent a total of six days in Malta, experiencing the lovely weather, quite British culture, and food that on my first night included one of my favourites - rabbit - which turns out to be a national dish.

As a documentation committer, my main reason for attending the conference was to attend the documentation session and meet face-to-face with many people who have, for the last eighteen months, been just names, email addresses and IRC nicks. That session was productive as we used the time to hack on PRs and Handbook chapters. After all, it's important to have a balance between discussion and working on problems in-person in order to get things done. There was a discussion about the pressing and frustrating issue of the FreeBSD website design, where the pros and cons of frameworks such as Ruby on Rails were mentioned.

In the DevSummit track of the conference on the Saturday, the Google Summer of Code students' presentations of their stunningly complex work were great. At the end of the Saturday came the long awaited beach social event, which for some involved swimming at 11pm in the pleasantly warm sea. I can't swim, so I just paddled! On the Sunday, the keynote seemed scaremongering, all about how "nothing is secure", but it was nevertheless interesting. In the afternoon, as Netflix is a service I use, I attended one of their sessions. I was only just able to find a seat due to it being so popular and me being late due to the "hallway track" during the coffee break, but it was worth it - the statistics of the amount of US Internet traffic they account for were almost unbelievably high. Kirk McKusick's talk was one of three that ended the conference, and it was very informative for me because it seemed to touch on a lot of the basics.

I have come back and noticed how cold it is, but armed with a list of things to do on the documentation side, a new found love of learning interesting things, a wish to get involved in other areas of the FreeBSD project, and have more contact in terms of work with some other developers who I talked to at length over the dinners.

Saturday, October 26, 2013

NYI Whitepaper Available

As part of our mission to serve the FreeBSD community, we have increased our efforts to educate people on FreeBSD. One of these efforts was to fund a project to produce white papers on using FreeBSD in different applications. Here's our first one called Managed Services Using FreeBSD at NYI by Joseph Kong. From the Executive Summary:

This white paper describes the challenges associated with being a managed services provider, which include interacting with the wider Internet, ensuring high availability, recovering from data loss, and compartmentalizing systems and data. To surmount these challenges, this white paper describes several FreeBSD-based solutions: PF, CARP, pfsync, HAProxy, GEOM mirroring, FreeNAS, ZFS, rsync, and jails. Each solution has been battle-tested by NYI, an ISP headquartered in New York, whose customers include Men’s Journal, Rolling Stone, and Us Magazine.

Monday, October 7, 2013

EuroBSDCon Trip Report: Marius Strobl

EuroBSDCon was recently held in Malta. The first trip report is from Marius Strobl:

First off, I would like to thank Andre Oppermann and his team for organizing such an amazing conference and developer summit! It would have been a great event even if it had not taken place in Malta but that location really made it outrageous. I totally did not expect to be able to go swimming in the sea at 9:30 PM as part of the social event with water that actually felt warmer than the surrounding air - just to mention one of the many highlights. Seeing all that people having fun in the sea at night with glow sticks around their wrists was a lovely sight, too. Thus, it speaks for itself that I am also very grateful to the FreeBSD Foundation for sponsoring me to attend EuroBSDcon 2013 as well as the associated FreeBSD Developer Summit, which both would have been unlikely undertakings without their generous support.

As with other BSD-related conferences, getting there turned out to be interesting as Ed Schouten had his seat next to mine across the aisle on that plane. Moreover, Ilya Bakulin and three additional OpenBSD folks working at genua GmbH that I know from other events also were on that flight. However, given that EuroBSDcon 2013 was not my first such conference, the list of usual suspects I have not met before gets considerably shorter over time. Nevertheless, I still managed to make contact with some nice people for the first time: Lars Engels, Andriy Gapon, Jeremie Le Hen, Navdeep Parhar, Colin Percival and Gleb
Smirnoff.

Things I achieved during EuroBSDcon 2013 and the associated FreeBSD Developer Summit include:

  • discussing the sparc64-specific aspects of the GET_STACK_USAGE macro with Alexander Motin (committed as r255937, later on merged verbatim to powerpc in r256007 by Nathan Whitehorn)
  • discussing problems with the current powerpc and sparc64 implementations of the counter(9) API with Andriy Gapon and Gleb Smirnoff (unfortunately, no good and obvious solution was found and I have to benchmark some possible approaches first)
  • getting a private status update about a GPL-free toolchain in NetBSD by Joerg Sonnenberger
  • getting my shiny new PGP key signed by Dag-Erling Smørgrav in his role as FreeBSD Security Officer, as well as by some others
  • talking to Colin Percival about getting freebsd-update(8) bits for powerpc and sparc64 in place now that we also and already have switched to cross-building the corresponding releases beginning with FreeBSD 9.2, which he intends to look over in the next couple of days
  • talking to Baptiste Daroussin about possibilities for improving the situation with ports and packages for sparc64
  • extending my English vocabulary by "wick" with the help of Isabell Long (one torch at the beach the social event took place was missing one)
The session that interested me the most at the FreeBSD Developer Summit was the "Networking" one. It was very informative to get a hold of the various performance issues in our network stack different parties are struggling with and how people intend to fix them. At EuroBSDcon, I probably enjoyed the talk "FreeBSD BHyve Hypervisor hosting Other Systems" by Peter Grehan best. Given that I last had a bit of look at BHyve as part of writing my master's thesis - which also has some FreeBSD/i386 PV on Xen coverage - around April, it was surprising to see what progress BHyve has made since then.

Before and afterwards, I had some nice and interesting chats with Peter, too. As it turned out, he also is concerned with the direction FreeBSD is going with clang/LLVM and the possibility that some - in his case 32-bit powerpc - platform support will be sacrificed along that road. Moreover, as an employee of NetApp he once more confirmed that GPLed toolchains are of no concern for such companies as these bits are only used for developing products but are not part of the latter themselves. Before, Marcel Moolenaar essentially raised the same worries about FreeBSD/ia64 and effectively said the same about GCC and friends being no problem for Juniper at EuroBSDcon 2011. So the question remains: which are the mysterious vendors who we shall nuke all GPLed source code out of the FreeBSD base at any cost for?