Jump to content

Gentoo Linux

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 71.199.248.121 (talk) at 01:59, 29 January 2008 (→‎History). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Gentoo Linux
Gentoo logo
The default desktop as provided by the Gentoo Linux LiveCD, release 2007.0
DeveloperGentoo Foundation
OS familyLinux
Working stateCurrent
Source modelOpen source, Free Software
Latest release2007.0 / May 7, 2007
Repository
Update methodEmerge
Package managerPortage
Platformsx86, x86-64, IA-64, PA-RISC; PowerPC 32/64, SPARC, DEC Alpha, ARM, MIPS, S390, sh
Kernel typeMonolithic kernel, Linux
Default
user interface
Console, Framebuffer, X Window System (various)
LicenseVarious
Official websitewww.gentoo.org

The Gentoo Linux operating system (Template:PronEng) is a Linux distribution based on the Portage package management system. The development project and its products are named after the Gentoo penguin. Gentoo package management is designed to be modular, portable, easy to maintain, flexible, and optimized for the user's machine. Packages are normally built from source code, continuing the tradition of the ports collection, although for convenience, some large software packages are also available as precompiled binaries for various architectures.

History

Gentoo was initially created by Daniel Robbins as the Enoch Linux distribution. The goal was to create a distribution that was built from source code, tuned to the hardware, only included required programs, and decreased maintainer workload through scripting.[1] At least one version of Enoch was distributed: version 0.75, in December 1999.[2]

Compilation issues revealed problems with the GNU Compiler Collection (gcc), used to build from source code. Daniel Robbins and the other contributors experimented with "forked" versions of gcc, finding a version that gave a 10% to 200% speed increase over the "official" gcc. At this point, Enoch gained a reputation for its speed, prompting the name change to Gentoo Linux (the Gentoo species is the fastest swimming penguin). The modifications eventually became part of the official gcc (version 2.95), and other Linux distributions experienced similar speed increases.[3]

After problems with a bug on his own system Robbins halted Gentoo Linux development and switched to FreeBSD for several months, later saying "I decided to add several FreeBSD features to make our autobuild system (now called Portage) a true next-generation ports system."[4]

Gentoo Linux 1.0 was released 2002-03-31.[5]

Robbins had wanted Gentoo Linux to become a commercially successful project, but found an appropriate business model difficult to achieve. In 2004 he set up the non-profit Gentoo Foundation and transferred all copyrights and trademarks to it and stepped down as Chief Architect of the project.[6][7]

The current board of trustees[8] contains 5 members who were announced (following an election) on October 21, 2006[9]. There is also a subsidiary 7 member Gentoo Council whose members decide on global issues and policies[10]. The current Council members were elected over the period of August 17, 2007 to September 17, 2007 by 117 active Gentoo developers.[11]

Recently, the Gentoo Foundation charter was revoked, and reinstatement is underway.

Portability

File:GentooFreeBSD-logo.svg
The Gentoo/FreeBSD logo, derived from the BSD Daemon

Although originally designed for the x86 architecture, it has been ported to many others and currently runs on the x86, x86-64, IA-64, PA-RISC; PowerPC, PowerPC 970, SPARC64, MIPS, DEC Alpha, System Z/s390, PS3 Cell Processor and SuperH architectures.[12] Official support for 32bit Sparc hardware has been dropped.[13]Gentoo was the first distribution to offer a fully functional 64-bit Linux computing environment (user space and the kernel) for the PowerPC 970.[citation needed]

There is also a "Gentoo for Mac OS X" project which allows Mac OS X users to use Gentoo's Portage to install packages, similar to the way provided by Fink. Although still a work in progress, this project can coexist with Fink because it uses the same environment as Mac OS X instead of creating a new one.

Portability toward other operating systems, such as BSD-derived ones, is under active development by the Gentoo/ALT project. The Gentoo/FreeBSD project already has a working release, while Gentoo/NetBSD, Gentoo/OpenBSD and Gentoo/DragonFly are being developed.[14] There is also a project to get Portage working on the GNU Hurd (although development is slow) and OpenSolaris.

Portage

Portage is Gentoo's package management system. It is similar in idea to the BSD ports collections: the original design was based on FreeBSD ports. In contrast, the Portage tree does not contain directories of Makefiles, but of so-called ebuilds, bash scripts that describe separate functions to download, configure, make, install and remove a package and additional functions that can be used to set up the operating environment for a package.

Portage is also the name of Gentoo's default package management utility package. This package provides, among other useful scripts, the emerge utility, which is written in Python and can be used by privileged users to easily inspect and alter the set of installed packages on a Gentoo operating system. Whereas emerge used to operate in a similar way to other ports collections, by entering a directory in the tree and using emerge (instead of make) to perform package management operations, it now reads variables from the file /etc/make.conf (again similar to ports) to determine where the Portage tree is kept.

Recently, alternative package management utilities like Paludis and pkgcore have seen heavy development. Both are intended to be used alongside or instead of the official Portage utilities in both development and practical use. As both competing projects intend to replace the official utilities, an effort has been raised to standardise the application programming interface of ebuilds for all package managers, in a project called the Package Manager Specification or PMS[15]

Init system

Gentoo's init system is another important feature. It is similar to the System V init system that most Linux distributions use, but uses dependency-based scripts and named run levels rather than numbered ones. It also includes a command called rc-update which manages runlevels.

Gentoo startup scripts use the runscript shell interpreter, rather than a more traditional shell.

A faster init system known as initng is available and under active development on the Gentoo forums.

A new baselayout, baselayout-2, version is nearing completion, that moves core system scripts from bash scripting to C code. This change should make boot time and other lower level services faster[16].

Installation

Gentoo may be installed in several ways. The most common way is to use the Gentoo LiveCDs. As with many Linux distributions, it can also be installed by most LiveCDs and existing Linux installations.

Installation of Gentoo can be completed by following the Gentoo Handbook. Additionally, several other methods of installation are listed in the Alternative Installation Method HOWTO; most of which are targeted at experienced users or users unable to boot from the Gentoo live CD.

As of version 2006.0, the Gentoo Foundation has released a GTK+ based installer to greatly simplify the process of installing the distribution from scratch.[1] More advanced users will note that the new installer also brings back the stage 1 installation (see below) as a common installation method.

Catalyst

Starting with 2004.0, Gentoo introduced a tool called Catalyst, which is used to build all Gentoo releases and can be used to build one's own customized install media.

Stages

Traditionally installation could be started from one of three base stages:

  • Stage1: System must be bootstrapped and the base system must be compiled.
  • Stage2: System has already been bootstrapped, but the base system must be compiled.
  • Stage3: System has already been bootstrapped and the base system already compiled.

As of November 2005, only stage3 installations are officially supported[17]. Although tarballs for stage1 and stage2 are still distributed, the instructions for installing from these stages have been removed from the handbook[18] and put into the Gentoo FAQ.

Version history

Even though the versioning system changed to years, the numbering version system still continues. For example, /etc/gentoo-release might contain "Gentoo Base System version 1.6.13" (Modified Aug. 26, 2005). These numbers are actually the version numbers of the sys-apps/baselayout package in Portage.

Once Gentoo is installed, it becomes "versionless"; that is, once an emerge update is done, the system is at the latest version. If the system was installed from a 2005.0 CD and 2005.1 was released, an emerge update of the system effectively makes the installed 2005.0 system equivalent to the newly released 2005.1 installation.

Drawbacks

The Gentoo package management system is frequently criticised on grounds that have been covered thoroughly through the years.

Slow package installation
Compiling from source means that some packages are slower to install. Slow package installation leads to a longer initial installation if a lot of packages are installed. In the extreme cases of KDE and OpenOffice.org, package installation will take hours[29][30], or even days on older hardware. Also compiling these packages requires a lot of disk space while the package is compiling (4–6 GB for OpenOffice.org – see app-office/openoffice ebuild for more information). Generally, Gentoo users accept these delays as the cost of being able to apply their own compile-time options, but there are now pre-compiled binaries for large popular applications such as KDE, OpenOffice.org, and Mozilla Firefox. Using these binaries one loses the chance to customize the choice of optional features for those packages, but the installation of the package is reduced to a few minutes.
The promise of optimisation
Gentoo has long been criticised for its alleged promise of faster program execution, as by design it allows the administrator to set compiler flags. Websites such as [2] were expressly set up to satirise this "ricer" approach to computing. In reality, compiler optimisations rarely benefit execution of a program to such an extent that it warrants compiling an entire operating system and application software, instead of using precompiled packages as other (Linux) distributions normally do. Gentoo package management system does, however, offer options that allow users to install fewer (library) packages that applications would link to, which could ultimately result in a leaner, smaller operating environment which would certainly execute (or at least start up) faster than any environment that has unwanted libraries linked in and more background services running unnecessarily.
Requires a good Internet connection
This seems to be related to downloading sources prior to building packages. However, any other distribution that has internet updates has to download binary packages instead, and the sizes of binary and source packages are usually comparable. Mitigating this drawback is that the necessary files can be pre-fetched with the emerge -f or --fetchonly flag, or they can be downloaded in the background while compiling by enabling the parallel-fetch feature.

Logo and mascots

The official Gentoo logo is the stylized G resembling a silver magatama. Unofficial mascots include Larry the cow and Knurt the flying saucer. In fact as Larry appeared originally on the official website, it can be considered semi-official. However, there is much controversy around Larry, laid out in several heated debates on the Gentoo forums, mainly because of his/her gender ambiguity.

Gentoo-based distributions

References

  1. ^ http://www.gentoo.org/doc/en/articles/making-the-distro-p1.xml
  2. ^ http://public.planetmirror.com/pub/enoch/enoch-0.75
  3. ^ http://www.gentoo.org/doc/en/articles/making-the-distro-p2.xml
  4. ^ http://www.gentoo.org/doc/en/articles/making-the-distro-p3.xml
  5. ^ http://linux.slashdot.org/article.pl?sid=02/03/31/2123251
  6. ^ http://archives.gentoo.org/gentoo-nfp/msg_00845.xml
  7. ^ http://slashdot.org/article.pl?sid=04/04/26/2259211
  8. ^ http://www.gentoo.org/foundation/en/#doc_chap4
  9. ^ http://archives.gentoo.org/gentoo-nfp/msg_01171.xml
  10. ^ http://www.gentoo.org/proj/en/council/
  11. ^ http://archives.gentoo.org/gentoo-dev/msg_147748.xml
  12. ^ http://www.gentoo.org/proj/en/releng/release/2007.0/2007.0-press-release.txt
  13. ^ http://devmanual.gentoo.org/archs/sparc/index.html
  14. ^ http://www.gentoo.org/proj/en/gentoo-alt/bsd/index.xml
  15. ^ http://www.gentoo.org/proj/en/qa/pms.xml
  16. ^ http://www.gentoo.org/news/en/gwn/20070416-newsletter.xml
  17. ^ http://www.gentoo.org/news/en/gwn/20051114-newsletter.xml
  18. ^ http://article.gmane.org/gmane.linux.gentoo.documentation/2327
  19. ^ http://www.gentoo.org/news/en/gwn/20040301-newsletter.xml
  20. ^ http://archives.gentoo.org/gentoo-announce/msg_02473.xml
  21. ^ http://www.gentoo.org/proj/en/releng/release/2004.2/2004.2-press-release.txt
  22. ^ http://www.gentoo.org/news/en/gwn/20041115-newsletter.xml
  23. ^ http://www.gentoo.org/news/20050327-release-2005.0.xml
  24. ^ http://www.gentoo.org/news/20050808-annoncement-release-2005.1.xml
  25. ^ http://www.gentoo.org/news/20051121-release-2005.1-r1.xml
  26. ^ http://www.gentoo.org/news/20060227-release-2006.0.xml
  27. ^ http://www.gentoo.org/news/20060830-release.xml
  28. ^ http://www.gentoo.org/news/20070507-release-2007.0.xml
  29. ^ http://www.openoffice.org/FAQs/build_faq.html
  30. ^ http://linuxreviews.org/gentoo/compiletimes

See also

  • Gentoo/Alt
  • GoboLinux -- another Linux distribution that emphasizes source distribution, rather than pre-compiled binaries.
  • Linux From Scratch -- even more emphasis on source distribution

External links