 | Level: Introductory Daniel Robbins (drobbins@gentoo.org), President/CEO, Gentoo Technologies, Inc.
01 Jan 2001 This article concludes my story -- about how I ended up creating my own distribution called Gentoo Linux. I wrap up the series by telling how I left the Linux world to move to FreeBSD, and then came back to the Linux world, restarting Gentoo Linux development with a fresh perspective. In addition to comparing Linux and FreeBSD in a number of areas, I also describe current Gentoo Linux development progress and share a future vision for our distribution.
At the end of my previous article, I described how Gentoo Linux
development had effectively been brought to a halt by a strange
idle-lockup bug that I began experiencing as soon as I upgraded to a
new dual-Celeron motherboard (an Abit BP6). Because I was unable to
fix the problem, and at the time didn't have the funds to replace my
motherboard, I decided to halt Gentoo Linux development and switch
over to FreeBSD. I needed a working system, and since Linux was
locking up all the time, this would be an excellent time to get
familiar with a BSD operating system. So I installed FreeBSD,
started learning, and didn't touch Linux at all for several months.
FreeBSD impressions
All in all, I really liked FreeBSD. I felt that the operating system
was well put together and that nearly every part of the system had a
consistently high-level of refinement that's almost never found in the
Linux world. I enjoyed the fact that FreeBSD contained a full
complement of man pages, unlike Linux where many programs only have
GNU info documentation, which I don't particularly like using.
Most of all, I was impressed with FreeBSD's ports system, the
technology used to maintain and upgrade the system. Unlike the Linux
approach, ports didn't use binary packages but instead automatically
compiled everything locally from their original sources. Whether you
were installing Samba or upgrading the core system, everything was
compiled right on your local machine. This approach appealed to me
and was very similar to the one I had been creating under Gentoo
Linux. In this and many other ways, FreeBSD's design agreed with my
sensibilities as a developer and a system administrator. For this
reason, FreeBSD provided a comfortable work environment for many
months, and I'm glad I took the time to get familiar with this
excellent operating system.
FreeBSD pros
A lot of the differences between Linux and FreeBSD come from their
different development structures. Linux development is very
decentralized, and we rely on distributions to pull in and unite the
various pieces of Linux scattered throughout the Internet. Compare
this to FreeBSD and the other BSDs (OpenBSD and NetBSD), where there's
a unified development team plugging away at a single, unified set
of sources. Well, at least each BSD has its own set of unified
sources. This can be a good thing, and results in FreeBSD not having
a "patched together" feel like many Linux distributions do.
Next, we can compare the technology under the hood. Many a FreeBSD
fan will assert that FreeBSD is better suited to being a server than
Linux is. They'll tell you that FreeBSD is better under high loads,
and has a better TCP/IP stack. If you're comparing Linux 2.2 or
earlier with FreeBSD, I'd have to agree. FreeBSD is a great server
OS, that's for sure. But, that's just Linux 2.2 and earlier. I
happen to be a big fan of the 2.4 test kernels that I've been running.
They're really, really great and contain a nice TCP/IP stack
and a totally redesigned "netfilter" system that really rocks. In the
end, I think that Linux will be the one to set new performance
standards and make free UNIX servers even more competitive versus
their commercial counterparts.
FreeBSD cons
As for the desktop, rather than the server world, there's really no
comparison -- Linux is where the action is. All the latest desktop
developments appear on Linux first, and Linux is ahead in its support
of accelerated 3D graphics and sound cards. With Linux 2.4
approaching, Linux will continue its dominance in this area.
The one thing I don't like about FreeBSD is its use of the UFS
filesystem. While UFS is more reliable and rugged than ext2, it's
also mind-numbingly slow. It's possible to use a special UFS
extension called soft updates, which is able to speed up the
filesystem by aggregating IO operations into bigger chunks. While
soft updates improves UFS tremendously, I can't say that UFS really
outperforms ext2 in any way. Of course, it's more reliable, so
FreeBSD ends up beating Linux in the filesystem war. Again, at least this is
true when comparing older Linux 2.2 distributions to FreeBSD.
However, the tables turn when we start to compare modern Linux 2.2 and
Linux 2.4 to FreeBSD. ReiserFS (a new journalling filesystem
available for Linux) is just amazing. Linux also has ext3, IBM's JFS,
and XFS to look forward to, from which we expect excellent performance
and reliability as well. As of now, ReiserFS gives Linux a major
speed advantage over FreeBSD, and is one of the reasons I believe that
Linux 2.4 overturns many of the old arguments of FreeBSD's superiority
over Linux.
Back to Gentoo Linux development
After a few months, I decided to rejoin the Linux world and get Gentoo
Linux running on a new development box. At first, the decision to
restart Gentoo Linux development was more of a business decision -- I
had invested a lot of my time in becoming Linux-knowledgeable, and it
would be a waste to throw all this knowledge away by sticking with
BSD. However, shortly after I began updating Gentoo Linux, I found
several new reasons why Linux was worth switching back to, namely all the
filesystem and kernel improvements mentioned above. FreeBSD was a
peaceful home, but a little too boring, too staid. Linux is where the
action was, where major progress was being made. There's no doubt
that if you're looking for excitement and innovation, Linux is the
place to be.
To me, the Linux 2.2 era was a disappointing letdown from the 2.0 era,
but the 2.4 era promised to be worth the wait. So, Gentoo Linux was
reborn, and I was excited.
There was another key to Gentoo Linux's rebirth -- Achim Gottinger, my
development team lead. I want to take some space to thank Achim
for helping me restart Gentoo Linux development. I started
getting e-mails from Achim shortly before my return to the Linux world.
In almost every e-mail, he'd include some new .ebuild (autobuild)
scripts for Gentoo Linux, or some desperately needed bugfixes. As I
restarted Gentoo Linux development, Achim continued to contribute his
time and resources to help get the distribution back on its feet. Up
until recently, Achim and I have been the only two people working on
Gentoo Linux, and this has been by choice. Because we both have a
similar vision for the distribution, and because of Achim's skill, we
were able to get a tremendous amount of work done and I never really
felt that adding a third developer would significantly help our
progress. Now, Achim serves as the Gentoo Linux development lead, and
continues to make major improvements to Gentoo Linux on an almost
daily basis. We've reached the point where we're ready for others to
start working on our CVS tree, and have begun to gradually and
carefully expand the Gentoo Linux development team.
 |
The new vision
I don't feel that the time I spent in the BSD world was in any way
wasted. In fact, it gave me a tremendous opportunity to reflect on
the happenings in the entire Linux community and how Gentoo Linux
could help to improve things.
In the new version of Gentoo Linux, I made the decision to not use
pgcc anymore, nor use very high optimizations to compile all binaries.
Since stability was paramount, we would use reasonable ("-O2
-mpentium") optimizations but provide an easy way for users to
customize these optimizations to their liking by using our autobuild
system.
FreeBSD gave me a really good idea of how an autobuild system should
function. I decided to add several FreeBSD features to make our
autobuild system (now called Portage) a true next-generation ports
system.
Portage is the heart of Gentoo Linux, and is more than a simple
package management or maintenance system. Consisting of a set of
build tools and build scripts, Portage allows you to rebuild the
entire distribution from original sources. But more importantly to
me, Portage gives the user full access to the intelligence of how
Gentoo Linux was built. To us, this is very important because it
means that we are documenting how to build a distribution while at the
same time moving Gentoo Linux development forward. And, because
Portage is easy to use and understand, we hope that it will open up
Linux internals to even more people, so that others can begin to
contribute to our sources and scripts.
Portage is our way of opening up Linux technology to others. By
studying the autobuild scripts, you can see how all the various
packages fit together into a unified whole. If necessary, you can
grab our entire CVS tree and hack away at it, producing your own
custom distribution or Linux-based technology. We believe that this
is a good thing -- we want to give people the knowledge they need to
take Linux into new realms.
Commercial concerns
Since its inception, there have been many people of various
backgrounds involved with Gentoo Linux development. And I wasn't
surprised to find that our developers had wildly different opinions of
how we should approach the money-making end of Gentoo Linux.
Basically, there were two groups of developers: one group was
generally opposed to money-making pursuits, while the other group was
excited about helping Gentoo Linux become a successful commercial
product. This was an expected split; the first group saw commercial
involvement as a corrupting influence, while the second saw no such
negative associations.
In the Enoch days, I used to waver on this issue and didn't really
know the right approach. I recognized the fact that distributions
like Debian were truly committed to free distribution of their
software. I liked that. Compared to other commercial distributions,
they made things easy for the user by providing detailed instructions
on their Web site. That was a good thing, and something I wanted to
emulate.
At the same time, I really wanted Gentoo Linux to be commercially
successful. I struggled to find a balance, but never really found one
until recently.
What to do?
So, how are we planning to balance commercial and non-commercial
interests? The key is to remember our foundation -- the foundation of
Gentoo Linux is Open Source software. Thus, the foundation for all
our endeavors must focus on Open Source. It's not good enough
to just acknowledge Open Source software, or just to use it. We must
also encourage its development and distribution, and never oppose this
stance for commercial gain. More importantly, we must never structure
our business model so that there's a temptation to restrict the free
distribution of our sources. Our development team needs to be open
and accessible to the public, and free distribution of Gentoo Linux
must not only be allowed, but encouraged. We need to be Open Source
advocates, not just in word, but in action also.
If a company wants to use Gentoo Linux for a commercial Linux-based
technology, they can just grab the contents of our CVS tree and start
using it, since all our work is distributed under the GPL. We don't
want to limit the use of our work in any way, except to ensure that
all derivative products comply with the GNU Public License.
We'd like as many people as possible to benefit from our work, but
we'd also like to benefit as much as possible from your improvements
to Gentoo Linux. If you're part of a company using Gentoo Linux as a
base for your product, we hope that you'll send any
freely-distributable improvements to us so that we can add them to our
CVS tree. That way, everyone benefits. We can continue to maintain
and improve your additions, and you in turn can benefit from these
improvements. We want to foster collaboration between commercial and
non-commercial entities. This way, both the sysadmin using Gentoo
Linux at his ISP and the corporation building a commercial server
product can benefit from each other's improvements and fixes to Gentoo
Linux. It's time to promote the free exchange of code between
everyone. Only Open Source makes it possible.
What does the future hold?
Right now, we're at the verge of releasing Gentoo Linux 1.0 (it may be
available by the time you read this article on developerWorks.)
But what does the future hold?
As we move towards 2.0, I hope to continue to improve Portage, the
technology at the heart of Gentoo Linux. Any major improvement to
Gentoo Linux generally starts with an improvement to Portage. I'd
like to continue the process of converting the majority of the code
from bash to python, which will allow us to add new features like
object-oriented design to our autobuild system.
In addition to changes to Portage, I hope to continue to slowly and
carefully grow our development team by finding skilled developers who
share our same vision. As our development team grows, we will be able
to vastly expand the number of autobuild scripts available for Gentoo
Linux. But even more important than this, a slightly larger
development team will give us the resources we need to continue to
keep Gentoo Linux on the cutting edge of Linux technology. That's
where the fun is :)
We also hope that commercial Linux technology companies will choose
Gentoo Linux as a base for their products. We currently have one such
relationship and we hope to have many more in the future. These kinds
of collaborations promise to be lots of fun and to be a great benefit
to all Gentoo Linux users.
In the end, our primary goal is to contribute something meaningful to
the Linux community. Although there are many Linux distributions to
choose from, we know that Gentoo Linux offers something that really
isn't available anywhere else. We're excited about the future of
Gentoo Linux development, and we hope you are too.
Resources
About the author  | |  | Daniel Robbins lives in Albuquerque, New Mexico. He is the President/CEO of Gentoo Technologies Inc., the Chief Architect of the Gentoo Project and a contributing
author of several books published by MacMillan: Caldera OpenLinux Unleashed, SuSE Linux
Unleashed, and Samba Unleashed. Daniel has been involved with computers in some fashion since the second grade when he was first exposed to the Logo programming language and a potentially lethal dose of Pac Man. This probably explains why he has since served as a Lead Graphic Artist at SONY Electronic Publishing/Psygnosis. Daniel enjoys spending time with his wife Mary and his new baby daughter, Hadassah. You can contact Daniel at drobbins@gentoo.org. |
Rate this page
|  |