Gentoo is so far, the big Linux surprise this year. With its 1.0 release took the Linux world by storm and converted a huge number of power users and developers from the well-known Linux distros they were using, to the lightweight Gentoo Linux. While its installation process is not for the faint of heart, it pays back the user with a highly optimized system. As a result, Gentoo is dubbed the “fastest Linux distro” to date. Read on for an exclusive interview with Gentoo’s project leader, Daniel Robbins where he reveals that Gentoo will be further optimized with the fastest x86 C/C++ compiler (Intel’s ICC) in addition to GCC 3.1. Daniel also speaks about the future plans for Portage and the overall system in general.1. Gentoo 1.0 has become a huge success! How do you feel by seeing all this hard work coming to a climax with the thousands of downloads and all the talk around it?
Daniel Robbins: As project lead, it has been very satisfying. People are understanding and embracing our vision of how Linux distributions should be designed, which is very satisfying. It’s also made my life quite hectic, but hopefully I’ll figure out how to adjust to the new situation that I find myself in 🙂
2. Without doubt, the two reasons users like Gentoo is its speed and Portage. Are there plans and work being done for a full move to GCC 3.1 or even ICC? (both support Pentium4 optimizations among other goodies)
Daniel Robbins: Yes, we are planning to move to gcc 3.1 as we’re able. Many people are already using gcc 3.0-based Gentoo Linux systems. We also have one developer (William McArthur) working almost exclusively on icc support and making great progress. He has been actively reporting bugs to the Intel compiler team and getting ready for icc6. Sometimes, it seems that the Intel compiler developers aren’t as interested in fixing reported bugs as they should be, and this tends to slow William down a bit. But all in all, we are making very good progress with icc and gradually getting ready for gcc 3.1 too.
3. Portage has come a long way, but it seems to be in a state of flux. What are the plans for Portage’s future? Which problems need to be addressed? Is Portage 2.x going to be written in Python as well?
Daniel Robbins: Yes, we need to continue to use Python so that we can leverage our relatively miniscule coding resources which are currently me, Jon Nelson (< plug > maintainer of Boa, the fastest userspace Web server < /plug > ) and occasional patches from other members of our dev team. The RAD aspects of Python are essential for what we are trying to do and its “openness” (the fact that it is a scripting language and has a clean syntax) makes Portage development accessible for others who want to contribute.
As far as problems that need to be addressed, we need to improve our error handling, move to a unified high-performance (yet lightweight) database backend, improve the performance of our current text-based database code, and add bunches of miscellaneous features all over the place in order to make our feature set more refined. “Refinement” is the key word here. We have always been extremely responsive to user requests for new features, and I plan to continue our user-centric development style. Portage is designed to make peoples’ lives easier, allowing them to be in full control of Linux technology rather than being overwhelmed by it or forcing them to turn to a third party (the Linux distribution creator) to make decisions for them. Our users let us know what they would like to see, and I do my best to keep them happy.
4. How is Gentoo, the company, organized? What is its member structure? Also, how one can get CVS commit access?
Daniel Robbins: At its heart, Gentoo Linux really isn’t a company but a development team and user community. I do have a corporation called Gentoo Technologies, Inc. that holds the copyrights for the vast majority of our GPL code, but that’s it. We aren’t generating any income from Gentoo Linux (besides donations), and our development team is 100% volunteer. Generally, we have been completely supported by donations, particularly from a few of our developers. For example, our server is in a great datacenter thanks to a generous developer. As we grow, we plan to gradually wean ourselves from our dependence on donations by developing creative and “free software-friendly” ways of generating income.
5. Gentoo’s bleeding edge features, sometimes make users… bleed over bugs of app/library versions that are not yet truly ready for larger public consumption. How is this issue going to be addressed?
Daniel Robbins: You’re absolutely right, Gentoo Linux is currently a “bleeding-edge” type distro. It makes Gentoo Linux the ideal distribution for hobbyists who get lots of cool toys before everyone else, but makes Gentoo Linux a questionable choice for production server environments, especiallly if you’re a newbie who has the insatiable desire to keep your server continually up-to-date. Of course, Gentoo Linux is my OS of choice for everything, but I also know what I’m doing. Newbies should know that sooner or later, “emerge –update world” will cause something to break due to a developer error or unforseen incompatibility, and it will require a little manual attention in order to get working again. For this reason, we recommend that those using Gentoo Linux for servers avoid updating packages unless absolutely needed, and that newbies use something like FreeBSD, Debian or Slackware for their server needs, at least for the next six months. They’re much more boring, which can be a good thing 😉
Obviously, the fact that we aren’t an ideal choice as a server is a *huge* concern for me and for the vast majority of our development
team. Some people think that because we are popular, we must be hapy with where Gentoo Linux is now. The fact is that while we appreciate
our current popularity, most of our dev team is very perfectionistic in nature and we really feel that we have a ways to go before we have
realized the vision of what Gentoo Linux is all about. Gentoo Linux is really only in its formative stages — what you have seen so far is only
a taste of our vision. There’s a reason why the current version of Gentoo Linux is “1.1a” 🙂
OK, that being said — are we going to address this issue soon? Yes. How? We’re going to take pieces of the current “bleeding-edge” Gentoo Linux meta-distribution, refined them and use them as the basis for a robust, well-maintained version of Gentoo Linux — geared exclusively
for servers. For this project, we will reduce the number of ebuilds in our server branch from 1800 to around 400, at least initially. Our stable CVS tree will be completely separate from our current bleeding-edge version — a “code firewall”, if you will. Commit access will be limited to an elite team of Gentoo Linux developers. We will lock down upgrades so that “emerge –update world” will only fix known bugs and security fixes. Each release of this new server meta-distribution will have an official one-year lifespan, during which it will be painstakingly maintained by us. In-place upgrades to new releases will be fully-tested and very smooth. We will have some cross-pollination with our current tree, but anything that goes into the server distro will be carefully audited before being added. We are still developing the goals for our new server project, but based on feedback from the rest of our development team (who seem to be in near unanimous agreement) it looks like the project will progress very closely if not identically to how it is described above.
6. Is Gentoo going to sell its own ISO CDs, and become a fully commercial company, or are you going to stay largely community-based?
Daniel Robbins: Hopefully something in-between. I never want to compromise our free software development principles in order to make money. Nor do I want to put our project in a position where we are *tempted* to compromise our principles in order to make money, as many companies are. We certainly don’t want to try to fit into the mold of companies like Red Hat and Mandrake just because that’s the “distro way”. We want to choose our own path and find a healthy synergy between developing free software and growing a business based around Gentoo Linux.
I very much want to find a way to turn the Gentoo Linux project into a profitable enterprise. My main motivation in wanting to do this is so I can stop living from paycheck to paycheck and focus my professional efforts exclusively on Gentoo Linux development. Many of our developers would like to do the same thing.
Right now, we’re in a catch-22 where our sudden popularity has put us in a position where we *could* probably start generating some income and I and possibly other developers could potentially start working on Gentoo Linux full-time. Yet our sudden popularity has also overwhelmed us and eaten up all our time — time that we would otherwise be using to build a business around Gentoo Linux. So we’re basically holding tight until we get the time and resources to look into the whole business thing.
7. Are there plans to make the installation more comprehensive for newbies and Linux agnostics, or your target will still remain power users and developers?
Daniel Robbins: Yes; there is a Linux distribution using Gentoo Linux as a base for its efforts and they have developed an anaconda-based installer for Gentoo Linux. There will undoubtedly be further development in this area; while it’s not a primary focus of our development efforts, it will certainly happen as we proceed towards Gentoo Linux 2.0. But we will always have a clean, “bare-bones” shell-based install method so that the user has complete control over how Gentoo Linux is set up if he/she so chooses. We’ll *always* have that.
8. Gentoo comes by default with a specially patched kernel. Please tell us about the speed increase users gain with Gentoo when compared to stock kernels that other distros include.
Daniel Robbins: People are finding our kernel to be quite zippy, particularly when it comes to interactive responsiveness — something I care very much about. It’s based on -ac so it has rmap and O(1) as well as some new IDE stuff. We’ve also added Robert Love’s preempt patch, Andrew Morton’s low latency code (both can be turned on/off in “make menuconfig” as desired) and bumped the HZ on i386 systems to 1000. Thanks to the efficiency of O(1) and rmap, HZ=1000 works nicely to increase responsiveness without introducing any significant overhead. And of course preempt does amazing things for interactive use — much more so than low-latency. It’s clear that good interactive response isn’t *purely* about low-latency — otherwise Andrew Morton’s low latency patches would give much better and crisper interactive response, which isn’t the case. Preempt seems to make the timeslicing of the CPU much more uniform (this is an educated guess, not a fact), which in turn appears to make a huge improvement in the “feel” of everything. It makes everything feel much more Amiga-like and presumably more BeOS-like.
Besides our performance-related improvements, we also now include XFS 1.1, htb2 (a very good QoS patch), grsecurity and a handful of patches from Jörg Prante’s bag of goodies, including freeswan (ipsec) and the international crypto patch (only available in our “crypto-sources” kernel which is an install option; our standard “gentoo-sources” kernel doesn’t have any strong crypto so that people in countries where strong crypto isn’t illegal won’t break their country’s laws unintentionally.) We also include Andrea Archangeli’s 3.5Gb address space patch and a recent snapshot of the ACPI code being developed by Intel.
9. Is Gentoo… bleeding edge enough to make the big step and include a 2.5.x kernel as an additional option to the stable 2.4.x one?
Daniel Robbins: Sure. We don’t have that as an option now because I don’t use 2.5 and I’m the guy who rolls up the kernels. But adding it wouldn’t be a problem. Is that a personal request? 🙂
10. What are the future plans for Gentoo? What architectural and other changes do you have in store for the new version and when this new version is expected to be released?
Daniel Robbins: Well, Gentoo Linux/PPC is taking off and despite its relative infancy is apparently the best thing out there in the Linux/PPC world, from what I hear. I haven’t been able to run it myself since I don’t have a PowerPC system, but I may be able to afford to get an iBook in the near future and start playing. We have a very enthusiastic and dynamic PPC developer and user community, which is exciting to see 🙂
Our Sparc and Sparc64 ports are also progressing very nicely. Our Sparc user community is still very small but should be growing significantly over the next year, especially as we start focusing more on building a rugged server meta-distribution.
Beyond that, I would really like to port Gentoo Linux to AMD’s new 64-bit platform. After that, probably Alpha and then Itanium.
In the next year, you will start to see Gentoo Linux development become more server-focused with the birth of a new version of Gentoo Linux designed the ultimate ports-based Linux server toolkit.
Our selection of kernels will grow — we currently offer Red Hat kernels and will also start offering Mandrake (stable and cooker) kernels as well. You’ll see gcc 3.1 support and possibly a high-performance icc-based version of Gentoo Linux. Portage will improve dramatically in
performance and functionality. The number and quality of ports will improve. We will begin offering products and services that complement but do not compete with our free software development efforts.
Right now, many people consider Gentoo Linux to be the most exciting and desireable “bleeding edge” distro out there. In a year, we’ll be well on our way in establishing Gentoo Linux/server as the ideal server platform. It should be a very exciting time 🙂