My name is Michael Dexter and I first used BSD Unix in college in January of 1991. I am very grateful that I had a glimpse of the Unix world before the announcement of Linux and the modern BSDs. This was also years before the World Wide Web became relevant, when the Internet was characterized by console-based e-mail, telnet, FTP and the flame wars on Usenet news. Thinking back, the single most flashy Unix-related thing was either the xv splash screen or whatever you could come up with in raw PostScript and ship over to the laser printer. There were very clear hardware, software and network limitation and I am glad to have studied computer science in that environment. What was missing though was a clear sense of software freedom, particularly because the term "open source" would not be coined for another seven years. The Free Software Foundation was alive and well but everything it did seemed radical given the more or less source-only environment I was in at college. While exciting and educational, it was also all very frustrating.
When I finished school I knew the Internet was the industry for me but the computer industry was a strange era characterized by a floundering Apple Computer and the Windows NT drumbeat. I confess that Windows NT sounded great on paper and I admired its support for MIPS, Alpha, PowerPC and x86 but I could never afford it and it is arguably still struggling to deliver on its countless promises. I knew I wanted a Unix environment and between Coherent, UnixWare and RedHat 5.2, RedHat was source-friendly and offered a simple X11 environment like I had access to in college. For a moment it was clear I had found what I was looking for but then an unfortunate thing happened: RedHat 6.0 introduced the then-primitive GNOME environment in a concerted effort to go from an elegant Unix clone to a stunningly-bad Windows clone. If I were to fault the community for one thing back then, it was the notion that all open source applications should be bad clones of decade-old commercial software for Windows and Macintosh.
One thing lead to another and I worked briefly at MandrakeSoft SA, the developer of Mandrake Linux. I dropped everything to take that job and when they ran out of money, I simplified my life and moved to Latvia to clear my head and re-investigate if better Unix environments existed.
How did you learn about FreeBSD and/or when were you first exposed to it?
I remember receiving the Walnut Creek CD-ROM and similar catalogs and reading about FreeBSD but I was clearly in a RedHat town. I had asked about BSD and received the somewhat snide comment, "I have seen just as many misconfigured BSD systems", which I found confusing but discouraging none the less. In around 2003 I read about FreeBSD jails and they sounded like a plausible solution to the "RPM Hell" I had experienced on RedHat and with FreeBSD I once again found the no-nonsense Unix environment I was looking for. FreeBSD 4.8 proved fast, elegant and logical. Inspired by a BSD user in Latvia I wrote an rc script to build and manage jails, unknowingly laying the groundwork for everything I do today with FreeBSD. Like clockwork though, this era was to be cut short: a user discouraged me from experimenting with compat_linux jails and the flashy new FreeBSD 5.0 release with its new jail management tools like jls and jexec proved frustratingly unreliable.
Once again mired in frustration, I continued my research and turned to OpenBSD and NetBSD on which mandoc developer Kristaps and I explored virtualization options with the systrace-based SysJail and the mult pluralized NetBSD kernel. I later went on to use NetBSD/Xen to assist with mult development and all in all, I could see the potential of all these tools but none of them were exceptional. To this day I run OpenBSD on my web server but my FreeBSD involvement has picked up in rather unexpected ways.
What is your involvement in FreeBSD?
Ever seeking an "Ah Ha!" moment, by somewhat dumb luck and without an invitation, I found myself in Neel Natu and Peter Grehan's BSDCan 2011 presentation where they introduced the BHyVe hypervisor. I instantly recognized that this was a new, plausible option that was worth tracking. What I did not immediately realize was that it was the direct result of the 2010 MeetBSD UnConference where just about everyone concluded that BSDs needed their own hypervisors given that NetBSD/Xen was both obscure and incompatibly-licensed. A few months later I finally asked Neel and Peter how things were going and if I could try BHyVe. They kindly responded and helped get me up and running. The rest as they say is history: a few hundred hours and kernel panics later I had a simple framework for helping people try BHyVe and I offered Neel and Peter every suggestion I could imagine. Fast forward to today and bhyve (mercifully no longer BHyVe) supports most BSDs, GNU/Linux, Illumos and Windows. My work here is finished, or possibly has just begun. Looking back, my single biggest contribution to bhyve was helping it land in FreeBSD release 10.0, rather than 11.0 or 12.0.
Why do you like FreeBSD?
Obviously I have sought a personal workstation Unix environment for nearly 25 years. I started with genuine BSD and while OpenBSD delights the Unix purist in me, FreeBSD's bhyve and OpenZFS allow me to finally have a BSD Unix day job. I have been working with iXsystems to provide FreeNAS support for several years and this experience plus my time with bhyve and OpenBSD have forced me under the hood of FreeBSD in wonderful ways: I creatively connect what works and report what doesn't. The FreeBSD community has been amazingly responsive to input and somehow I have 40 mentions in freshbsd.org despite my having at most a wiki.freebsd.org login. My bhyve experience led me to recently push for FreeBSD Xen DomU packages to be built, along with Docker packages in with the hope of making it easy for people to try these technologies.
As for what I like most about FreeBSD on a high level, it would be its flexibility. Tools like NanoBSD convinced me early on that FreeBSD is designed to be pushed around but always within the structure that one unified source tree provides. I see this approach as avoiding vast duplication of effort and its community is large enough for new ideas to get reasonable reviews before becoming incorporated.
Have you worked with or been helped by the FreeBSD Foundation?
The Foundation has been great about providing travel grants when for one reason or another, I could not attend a key conference or event such as BSDCan. The BSDCons already provide the best speaker travel and accommodations in the open source community and the Foundation is key in both supporting those events and individuals who need help attending them.
How did our funding you help FreeBSD?
The Foundation's travel assistance directly helped bhyve arrive in FreeBSD and now that bhyve supports Windows, fasten your seat belts.
I find it funny that FreeBSD developers still often think of me as "an OpenBSD guy" and OpenBSD developers now think of me as "a FreeBSD guy". I still see myself living in the early 1990s before these distinctions arose and I profoundly appreciate efforts like Kristaps' work on mandoc which has replaced groff in FreeBSD, OpenBSD, NetBSD and Illumos. Portable efforts like mandoc, LibreSSL and bhyve are what will re-establish the BSDs as authoritative sources of definitive Unix software.
At OSCON this year, the cracks started to really show in the various Linux and cloud-related vendor consortium foundations as their participants jockey for position and influence. Joyent's Bryan Cantrill did a great job of illustrating this point in his talk and I just sat there thinking "yep, you want a public-benefit foundation like the FreeBSD Foundation" and "yep, you indeed want to start with an open source system rather than trying to de-proprietarize one." The FreeBSD project and the Foundation get this right in countless ways. I encourage everyone to support the FreeBSD Foundation with a donation, even if you prefer a different operating system. Their efforts, such as supporting clang/LLVM, benefit far more than just FreeBSD users.