1) Some simple questions to introduce FreeBSD to our readers. What is FreeBSD?
FreeBSD is an advanced operating system for x86 compatible, amd64 compatible, ARM, IA-64, PowerPC, PC-98 and UltraSPARC® architectures. It is derived from BSD, the version of UNIX® developed at the University of California, Berkeley. It is developed and maintained by a large team of individuals. Additional platforms are in various stages of development.
2) Can you tell us something about its history?
FreeBSD is one of the oldest and most successful open source projects, with revision control history going back over 25 years through various releases of the Computer Science Research Group at UC Berkeley, through the genesis in 1993 of the modern FreeBSD Project, the integration of the last 4.4 BSD release from Berkeley, and then the last 15 years of modern Unix development to support some of the largest servers on the Internet and some of the most widely deployed embedded network devices.
3) Is the FreeBSD Development sponsored from anyone? How can we contribute to help you?
FreeBSD Development is in part sponsored by the thousands of FreeBSD using businesses around the world that contribute developer time and submit patches. Some of the most significant in recent years have been Yahoo!, Apple, Juniper, and dozens more listed on the FreeBSD website. http://www.freebsd.org/about.html
4) How many developers are involved in the development of FreeBSD? How do you organize your works and tasks?
We currently have 225 people with write access to the src/ section of our main revision control repository, however we also have a supplemental repository in Perforce for development work which has hundreds of additional contributors. There are also of course many thousands of contributors at companies, universities, and other institutions all over the world that work on FreeBSD as part of their business, research, or hobby. Most of those developers submit patches through other developers which have write access to the repository or they submit patches through our bugs database.
As far as documentation goes we have 75 people owning a doc commit bit, which allows them to change the documentation.
For the ports collection there are 168 people
Note that these numbers are constantly changing, and that some people have more than one type of commit bit. Our doc, ports and src repositories are separated for security reasons. Granting a doc, ports or src commit bit is also handled by different entities, doceng@, portmgr@ and core@ respectively.
One aspect of being a more mature open source organization is the growth of entities/committees such as the above to handle all aspects of managing the FreeBSD community. FreeBSD includes a formal mentor period for all new committers, formalized release engineering processes, and an active security officer team. Many of these processes and documents have been picked up by other open source groups, such as the Fedora Project's adoption of the FreeBSD Release Engineering process documentation.
5) GNU/Linux has the penguin Tux while FreeBSD has Beastie. Who is Beastie and why a devil? What's the story behind the mascotte?
First, it is not a devil, it is a daemon. FreeBSD essentially continued using the first mascot from the BSD distributions from the University of California at Berkeley. See http://www.mckusick.com/beastie/index.html for a couple of different variations.
6) "Freebsd is the unknown giant among free operating systems". Do you agree with the point of view of IBM? (http://www.ibm.com/developerworks/opensource/library/os-freebsd/)
I think this is a fair writeup, albeit a bit dated in places. As someone who dived into the BSD camp starting with 386BSD 0.1 plus patchkit it is nice to refresh those memories.
That said, FreeBSD is indeed not the household name Linux is. There are various theories around the reason why, not the least of which is the legal hassle BSD has been in during a crucial period in the era Linux started to gain strength. In the end it is water under the bridge.
We have recently seen interest from major companies who are interested in using the FreeBSD source base for embedded systems. One of the triggers for their interest happens to be that their legal departments are not very comfortable (politely speaking) about the form the GPLv3 has taken.
We will have to wait and see how things develop.
7) One of the most famous and interesting features of Freebsd are Ports. Some GNU/Linux distributions use your idea as well. Can you tell us what are they and what are their goals? And, how do you handle packages?
We have a large collection of "layered products" called ports. These are essentially frameworks that provide the build instructions and any optional patches necessary to install third party software. Unlike source RPMs or other methods, they all live in one centralized repository which is installed by default on every FreeBSD system. The actual source tarballs aren't installed by default, only the small patches and Makefiles necessary to build them in the consistent way. The source is then downloaded automatically from the network when needed, or fetched from local CD/DVD media or fileservers. By setting configuration parameters one can specify that network applications always be built and installeld with OpenSSL or LDAP support, or always optimized for the amd64 platform by providing the right optimization flags to the compiler anytime a new port is installed. This provides an enormous amount of power in how applications are installed in a consistent way, while also providing enormous flexibility.
This all sounds simple, but it often is not. Just remember how you got things running in the dim past, without ports: download a source tarball, then tweak makefiles and build options until it appeared to work correctly. Things really were fun for those source packages with a lot of dependencies on other open source code. This tended to get frustrating rather quickly.
Packages are essentially pre-built ports. Which allows neat things like (assuming an Internet connection):
# pkg_add -r bash
This will install for you a precompiled bash package downloaded from the net. Package mirror sites are spread around the globe, and our package building cluster frequently rebuilds packages for all supported platforms.
8) Our readers are interested in the main differences between the BSD and Linux kernels. Can you tell us something?
Although members of the FreeBSD community will often do these kinds of comparisons, both in terms of performance and code quality, the leaders of the project prefers to leave these sorts of comparisons to others. Both are fine systems. For some people one is better, for other people maybe the other.
8.1) What kind of documentation and support do you provide to a newbie FreeBSD users?
The FreeBSD Documentation Project provides over 50 HOWTO style articles and several full length books, including the popular FreeBSD Handbook. The Handbook is the main source of information about installing, using, and administering FreeBSD systems. It has been published in paperback form in numerous editions and has been adapted for use by several Linux distributions over the years. A complete list of output from the FreeBSD Documentation Project is available at http://www.freebsd.org/docs.html
There are also some classic FreeBSD Kernel Internals books and such from professional publishers. A list of such books in multiple languages is published on the website at http://www.freebsd.org/publish.html
9) Ok, now let's talk about FreeBSD 7, the latest release. In the announcement release you've stated that FreeBSD 7 has "dramatic improvements in performance". So, where are the main improvements?
Shortly after FreeBSD 4.0 was branched in 2000, the SMPng project started. This project radically overhauled the FreeBSD kernel to move from one based on SPLs that had one giant lock around the kernel to one that used fine grained locking. FreeBSD 5.x was the first series of releases with what was essentially a preview of this technology. FreeBSD 6.x made further gains, but significant portions of the kernel remained locked making it very difficult to do any giant free operations. FreeBSD 7.0 completes the job by finishing the locking to the point that most operations could be done without the giant lock. Once we had completed these tasks, the performance improvements that the SMPng project had long promised had arrived.
In addition to simply removing the giant lock, FreeBSD has also adapted a new scheduler called ULE. This scheduler models the newer generation of multicore CPUs better than the traditional 4BSD scheduler did. These features allow many of the costs of a more traditional scheduler that were exposed by the big increase in parallelism to be reduced or eliminated.
10) Morover, you've stated that the FreeBSD performance is 15% better than two of the latest Linux kernel. In which way do you performed your tests?
The techniques Kris Kenneway used to make these tests have been well documented in his papers. He's run the tests on identical hardware, with configurations configured to be as fast as possible for each OS (with input from the other OSes). Please see his paper at http://people.freebsd.org/~kris/scaling/mysql.html
11) What about the hardware support? How many architectures are supported?
http://www.freebsd.org/platforms/index.html gives you the architectures. Note that new ones are arriving more or less regularly, and older ones, like the FreeBSD/alpha port, get retired. Recently we have seen considerable work being put in embedded use of FreeBSD, with platform ports like arm and mips.
12) What are the main networking improvements of FreeBSD 7? And what is the status of wireless support?
>> I defer to the experts here.
Complete elimination of giant lock from network stack
Socket buffer automatic sizing
SCTP (Stream Control Transmission Protocol)
Migration from KAME IPSec to Fast IPSec
Direct dispatch of inbound network traffic
- Avoids context switching, improves CPU cache locality, allows concurrency
Optional in-kernel Just-In-Time compiler for Berkeley Packet Filter (BPF)
In-kernel Network Address Translation (NAT) modules for natd(8)
Link aggregation (create virtual interfaces for fault tolerance and higher capacity)
Rapid spanning tree protocol support
Support for commonly encountered 10 gigabit ethernet drivers: Chelsio (cxgb), Intel (ixgbe), Myricom (mxge), Neterion (nxge)}
Transmit Segmentation Off-load (TSO)/Large Receive Off-load (LRO) off-load send/receive into the ethernet driver
Wireless 802.11 layer is stable
high power ath cards (Senao, Ubiquiti, Wistron)
900MHz ath cards (Ubiquiti, Zcomax)
ath (Atheros), iwi, ral (Ralink), ural (RT2500USB) drivers are high quality rum(Ralink RT2500USB, RT2601USB)
Intel wireless drivers: ipw (Intel PRO/Wireless 2100), iwi (2200BG/2225BG/2915ABG) Works out of the box
WPA (Wifi Protected Access) support stable New scanning support background scanning, roaming Atheros protocol extensions
- 802.11n support (forthcoming standard)
13) FreeBSD 7 and virtualization. How it's going?
>> I defer to the experts here.
13.1) FreeBSD 7, laptop and power management. What are the performances here compared to Linux?
FreeBSD's laptop support and power management have not been the focus of the 7.0 release process. While things are quite usable on freeBSD on a laptop (I've been running it on my laptop for the last 10 years), Linux tends to be better on laptops.
13.2) Which file-systems FreeBSD 7 support?
14) How does FreeBSD 7 work with 64-bit architectures?
FreeBSD has worked with 64-bit architectures for 10 years now, including Alpha, Sparc64, AMD64, and more.
15) Is FreeBSD 7 really suitable for Desktop? Which packages do you provide to improve the user's desktop experience with FreeBSD compared to previous release?
The story here is nearly the same as the Linux community. Linux is a kernel that is bundled with a bunch of other open source software to make a complete operating system, and FreeBSD is bundled with much of that same software. We rely on the excellent work provided by KDE, GNOME, OpenOffice, Mozilla, and thousands of other open source communities working to improve the open source desktop.
In addition, there has been some exciting work in the desktop-ready LiveCD space in FreeBSD such as PC-BSD, DesktopBSD, FreeSBIE, and more.
16) KDE or GNOME? Why? Did you have any problems to port KDE4 or other desktop applications to FreeBSD?
Some of the core developers of many of the main desktop projects use FreeBSD and so the porting effort isn't significantly more problematic than it is to port to Linux. We don't try to enforce a preference of either KDE or GNOME on the user. Back when CDROM media was the biggest distribution mechanism we struggled for years to account for every last byte to be able to keep the ever growing KDE and GNOME packages on the first CD with the base system, but with DVDs and network installs this is much less important these days.
17) Can users use GNU/Linux packages on FreeBSD? To accomplish this purpose we know you use Linuxulator. What is Linuxulator and what are -- if present -- its limits?
The Linuxulator is basically a compatibility mode of FreeBSD that allows running of most Linux binaries. It does this by simply recognizing ELF executables that are compiled for Linux and using a different system call table for such binaries. This different system call table provides functions which wrap the FreeBSD system calls and adjust any parameters to account for the relatively minor difference in the system APIs between the two. One limitation of the Linuxulator is that it needs to be targeted against a specific kernel version and userland and that not all of the more obscure system calls or /proc filesystem nodes are implemented. Many people run Oracle and very complex applications with high workloads, but it is not always going to work for all binaries. The design is relatively lightweight and for those binaries that make use of system calls that FreeBSD can service quicker than Linux, the Linux binaries can run faster on FreeBSD than they do natively on Linux.
18) Are there any plans on offering a graphical installer for FreeBSD? Don't you think that a textual installar could scary a newbie user?
There have been plans and false starts in this area for over 10 years. Many of our largest users have run FreeBSD on hundreds of thousands of server nodes, or embedded into hundreds of thousands of network appliances, and so we've got all these strict demands about the scriptability of our installer that sets a pretty high bar for new installers to match.
For the past year we've had a bright former Summer of Code student working on the "finstall" project which is a very nice graphical installer that we are hoping will be the default for FreeBSD 8.0.
Also the derivative operating systems such as PC-BSD, MacOS X, etc.. all handle the graphical installation bit very well.
19) FreeBSD 7 and security. What are the main improvements?
>> rwatson is our local guru here.
20) FreeBSD in used from Yahoo as server platform. Do you think FreeBSD is better than Linux on servers? Which tools and facilities do you provide to users who want to use FreeBSD as server platform?
Obviously we feel FreeBSD is a very good server OS. It has traditionally been a very strong contender in the (Internet) server world and this tradition is being held with the latest releases too. Both Linux and FreeBSD obviously have their niches and individual strengths.
>> For tools and facilities: are around 17000 ports enough choice?
21) What do you think about NetBSD and OpenBSD? And what about GNU/Linux?
I feel it is good to have "competition" in the open source world. Note that the *BSD projects have extensive cross pollination, just read the various commit messages for a while. But also Linux has benefited FreeBSD, and the other way around of course. It is safe to say that no project/distribution can claim to have all the answers or brilliant ideas.
A side note should be made that the FreeBSD project mandates that kernels should be buildable without any GPL licensed code, and that the generic / installer kernels are built without GPLed code. The use of the BSD license is a key differentiator towards Linux and is an integral part of the project.
22) Do you have other things to say about FreeBSD 7? Post here.
23) A dirty question from our readers: Why should i use FreeBSD in place of GNU/Linux?
Go and try it. Take a FreeSBIE CDROM if you want. Nothing you read can replace hands-on experience.
24) What are your plans for the future? What will bring FreeBSD 8?
In the end that is up to our committer community. And of course we gladly accept contributions from the companies using FreeBSD in their products, like Juniper Networks who recently have donated a reference port of FreeBSD to the MIPS platform.
For a taste of things being worked you should really take a sneak preview at http://wiki.freebsd.org/
There is always more interesting work to take on than there are people to do it. So choices have to be made.
25) Our interview seems to be completed. Do you have something to add for our readers? Thank you for your time and keep up the excellent work!
There has been a lot of cross-pollination of code, ideas, and kernel hackers between FreeBSD and Linux over the past 10 years. If you have only tried one of the systems you are limiting your exposure to the breadth of modern open source unix systems. By all means, download a PC-BSD live CD or full FreeBSD installation CD/DVD and give it a try some day. There are FreeBSD User Groups all over the world to help you get started.