Difference between revisions of "Funtoo Linux"

From Funtoo Linux
Jump to: navigation, search
(What are the differences between 'stable' and 'current' ?)
(What are the differences between 'stable' and 'current' ?)
Line 56: Line 56:
 
When a package is considered as being stable enough, it is tagged as such meaning you are very unlikely to have troubles with it at its installation step and in its daily usage (nothing is perfect). All others packages are known to be in the 'current' branch meaning you are likely to encounter troubles with them like irritating issues with the software in itself or a package build failure. However, in the facts :
 
When a package is considered as being stable enough, it is tagged as such meaning you are very unlikely to have troubles with it at its installation step and in its daily usage (nothing is perfect). All others packages are known to be in the 'current' branch meaning you are likely to encounter troubles with them like irritating issues with the software in itself or a package build failure. However, in the facts :
  
* '''Funtoo 'current' is almost as stable as Funtoo 'stable'''', although some troubles may appear from time to time. Some distributions name their 'current' branch 'unstable' but we do not consider this as such because is sound too "unstable == unusable" (Funtoo current '''IS''' usable for a daily usage).
+
* '''Funtoo 'current' is almost as stable as Funtoo 'stable'''', although some troubles may appear from time to time. Some distributions name their 'current' branch 'unstable' but we do not consider this as such because it sounds too "unstable == unusable" (Funtoo current '''IS''' usable for a daily usage in production environments).  
  
 
* Funtoo 'stable' can, per definition, lag '''a long way behind''' 'current'. This branch is recommended for setting up servers which have standard and very well supported hardware since a long time. If you have a desktop machine which requires the most recent drivers / kernel available using 'stable' is may not be a solution for you.
 
* Funtoo 'stable' can, per definition, lag '''a long way behind''' 'current'. This branch is recommended for setting up servers which have standard and very well supported hardware since a long time. If you have a desktop machine which requires the most recent drivers / kernel available using 'stable' is may not be a solution for you.

Revision as of 18:53, 7 February 2011

Contents

Getting Started

Start by installing Funtoo. If you have questions, someone has probably asked them already in our Funtoo Linux FAQ. Otherwise, there are other community resources available. For more information on the vision of Funtoo, see: vision

Differences between Funtoo Linux and Gentoo Linux

From an installation perspective, the main difference between Funtoo Linux and Gentoo Linux is that Funtoo Linux has a different Portage tree. We store our Portage tree in a git repository. Our Portage tree does track the Gentoo repository (we import Gentoo changes almost every day,) but our tree does contain some significant changes from Gentoo's tree.

Here is a basic overview of how Funtoo Linux differ from Gentoo Linux:

stable current
Category Gentoo Linux Funtoo Linux Gentoo Linux Funtoo Linux
portage 2.1.8.3 2.2.1.1 (funtoo) ~2.2 2.2.2 (funtoo)
portage tree rsync-based git-based rsync-based git-based
glibc 2.10.1 2.10.1 2.11.2 2.10.1
gcc 4.3.4 4.4.3 4.4.4-r1 4.4.3
udev 149 160 160 160
init scripts baselayout-1 openrc openrc openrc
perl 5.8.8 5.12.1 5.12.2 5.12.1
ruby 1.8.7 1.8.7 1.9.2 1.9.2_rc2
core openresolv no yes no yes
custom pkgs N/A portage, udev, grub, coreboot, openrc and more N/A portage, udev, grub, coreboot, openrc and more
merged overlays None foo, multimedia, tarsius None foo, multimedia, tarsius
upstream tree None gentoo stable None gentoo unstable

What are the differences between 'stable' and 'current' ?

Funtoo follows a continuous development cycle. This means that some packages are continuously added to the portage tree and, for a couple of them, corrected with several patches to bring improvements and bug fixes.

When a package is considered as being stable enough, it is tagged as such meaning you are very unlikely to have troubles with it at its installation step and in its daily usage (nothing is perfect). All others packages are known to be in the 'current' branch meaning you are likely to encounter troubles with them like irritating issues with the software in itself or a package build failure. However, in the facts :

  • Funtoo 'current' is almost as stable as Funtoo 'stable', although some troubles may appear from time to time. Some distributions name their 'current' branch 'unstable' but we do not consider this as such because it sounds too "unstable == unusable" (Funtoo current IS usable for a daily usage in production environments).
  • Funtoo 'stable' can, per definition, lag a long way behind 'current'. This branch is recommended for setting up servers which have standard and very well supported hardware since a long time. If you have a desktop machine which requires the most recent drivers / kernel available using 'stable' is may not be a solution for you.

What's Been Done So Far

My technical goals for Funtoo Linux are to focus on improving the core Gentoo system, ie. what you'd find inside a stage3. I also have been working to improve general Gentoo technologies, such as migrating Portage to git, and ensuring that Funtoo is easily buildable in an automated way, by creating Metro. These changes are intended to empower me to improve Funtoo more easily, and are shared with you so that you can benefit from them as well.

These improvements are detailed below:

Git-based Portage Tree

One of the first things I did was migrate Gentoo's development Portage tree from cvs to git, and migrate Gentoo's user Portage tree from rsync to git. This was done to help me work more effectively, since git is simply a much more powerful and efficient tool than cvs.

Zack Medico, Portage/emerge maintainer, has enhanced the 2.2 version of Portage so that it is compatible with git. This allows users to pull a Portage tree from a git repository. This can often be more efficient than rsync, although the git repository does take up more space on disk. But I did not switch away from rsync because it wasn't fast enough.

More important for me is the fact that users can pull from the same repositories that I use for Funtoo development. This simplifies Funtoo infrastructure considerably, keeping things more fun for me :)

Git also provides integrity-checking functionality that is superior to that which currently exists in Portage, which will allow improved data integrity checks in future versions of Portage. This work is not yet finished, or even really started, but by using git we are starting to move in this direction. This work will continue as I have time.

Forked Tree

Funtoo has its own Portage tree that is 99% identical to Gentoo's Portage tree. I merge changes from Gentoo into our tree every 12 hours, using an automated process. Our tree has a few significant differences from the Gentoo Portage tree, which are covered in more detail in our Quick Install Guide

I created my own Portage tree for a multitude of reasons. The main reason for creating the tree was so I could get improvements into my Portage tree immediately, changes which Gentoo developers may or may not be interested in adding to the official Gentoo tree. I don't want to wait around or try to convince someone to add a fix I need.

Metro and Daily Builds

Metro is a tool I created to build Gentoo and Funtoo releases in an automated way. For around a year, I have been using Gentoo's catalyst, and now Metro to build daily releases of Gentoo and Funtoo. These stages are available on the Funtoo homepage.

Metro is a big improvement over Gentoo's automated build tool, catalyst, which I originally wrote but has not aged well over the years. Metro is still missing some functionality that exists in catalyst, most notably LiveCD support (I haven't created a Funtoo LiveCD yet, which is why :) but in nearly all other respects is much more capable than catalyst. I will continue to maintain and improve Metro as I have time. The daily builds serve as a good ongoing test for Metro as well as the integrity of the Funtoo Portage tree.

Forkable - Empowering Developers

Combine the transition to git with Metro, and Funtoo is now actually quite easy to fork, unlike Gentoo. If you wanted to create your own derivative of Funtoo or Gentoo, you could simply clone my git repository and then set up Metro to build releases of this variant. With some basic familiarity with git, this can all be accomplished by an single individual in a single day.

Why is this important? If you love Gentoo like I do, but want to work on Gentoo independently, so that you have your own personal "fun, too" project where you are Chief Architect, you have all the tools you need to make this happen. There is no longer a need to become an official Gentoo developer in order to grow in your Gentoo knowledge.


Core System Changes

Funtoo has several core system changes, and I plan to continue to focus on improving the core system quite a bit. Funtoo has its own sys-fs/udev package, its own sys-apps/baselayout, its own sys-apps/openrc (which is used by default), and a few other improvements here and there.

As of mid-July 2009, I'm planning to integrate OpenResolv, OpenRC 0.5.x and dhcpcd-5.x into the core system, as well as migrate to a simplified and more capable "direct-drive" network configuration system. These changes, as well as their rationale, are detailed in this funtoo-dev mailing list thread.

Articles

On the Funtoo homepage, you'll notice a number of technical articles and HOWTOs; I am gradually revising and updating my original IBM developerWorks Linux articles and adding them to the site as I have time.

Every now and then, I'm adding interesting new content, such as the intriguing Slowloris DOS Mitigation Guide, which details various mitigations for the Slowloris DOS that affects the Apache Web server. This article was co-authored with Ryan Vick, a security researcher who is a friend of mine.

This new documentation effort has also included a migration from Gentoo's Guide XML format to ReStructuredText, part of Python's docutils, which I am now using for all my documentation.

What's in the Works

In addition to various ongoing Funtoo Linux Projects, there are other efforts.

Funtoo Filesystem Hierarchy

The Funtoo Filesystem Hierarchy seeks to document the specific nuances of the Funtoo fileystem hierarchy beyond what is in the Filesystem Hierarchy Standard already.

Personal tools
Namespaces

Variants
Actions
Categories
Toolbox
Stuff