DebraDeutsch/Prototypes/Overview

This is a draft of a revision to the Overview page that is referenced by the project FAQ. The purpose of the changes is to make the page more helpful and meaningful to readers who are new to Linux. Discussion of philosophy has been reduced as part of this. I do not disagree with the original text. However, people who are new to Linux would probably best be won over to Fedora by the direct benefits that it offers. The philosophy behind open source may or may not be meaningful to them.

Notes:


 * The discussion of yum probably should be updated or replaced with some words about pup (Fedora Core 5).

Contents:

What *is* Fedora?
An operating system, a set of projects, and a community.

What is Fedora?

The operating system is Fedora Core. It comes out twice a year or so. It's completely free, and we're committed to keeping it that way. It's the best combination of robust and latest software that exists in the free software world.

The projects are available for your participation at http://fedoraproject.org/wiki/HelpWanted

The community is everyone who uses or contributes to Fedora.

Freedom: Fedora is 100% Free and Open Source
Fedora software is free for anyone to run or even modify. Developers from all over the world contribute to it. Their review, testing, debugging, and improvements make Fedora and other open source software more reliable than proprietary software created by smaller, closed teams. Also, developers can use existing open source software as a starting point for new features or packages. As a result:


 * Development cycles are shorter
 * Packages that work together or do similar things are more consistent and compatible.

Sometimes being 100% open source means deciding not to include software that is well-known, but proprietary. There often are open source alternatives that are as good or better. We encourage you to try them. If you prefer using the proprietary software, it is usually simple to find. Still, we'd much rather change the world instead of going along with it.

References:


 * http://www.opensource.org/

Freedom: Fedora Foundation
The Fedora Foundation is an American 501(c)3 nonprofit organization. It exists to serve the Fedora community in the following ways:


 * To provide a non-profit entity to organize and manage volunteers.
 * To ensure that the work of these volunteers will remain forever free.
 * To provide a fundraising arm for the development and protection of Fedora and related open source projects.
 * To provide an entity for copyright assignment, so that what is free is also defensible in a court of law.
 * To fund patent filings for open source inventors, so that individuals can help to build a protective patent shield around open source code.

References:


 * http://fedoraproject.org/wiki/Foundation

Excellence: Choice
Fedora Core is built to provide choice. It includes the latest versions of many software packages, including both GNOME and KDE desktop environments. Fedora Extras, a repository built entirely by volunteers, provides thousands more packages, and is enabled for use by default.

Excellence: Security
Computer security protects the sensitive data that is stored on your system. It also makes your system more reliable and shields it from unauthorized use. One reason why people choose to use Linux is its excellent reputation for security.

Fedora is the thought and action leader in many cutting-edge Linux security initiatives. The following security features were developed by Fedora engineers. Because all of these security features have been pushed upstream, they are available to all Linux distributions who choose to take advantage of them.


 * Exec-Shield -- Exec-Shield attempts to flag data memory as non-executable and program memory as non-writeable. It also randomizes the addresses where the parts of the running program are located.  This blocks most buffer overflows because system crackers cannot predict where pieces of the executable will be in memory.  Exec-Shield is for x86 systems.


 * Position Independent Executables (PIE) -- Just as Exec-Shield allows for data memory to be moved to random locations, PIE allows a programmer to make the executable load at a different memory address each time it starts. Attackers cannot predict where the application will start, making it very hard or impossible to exploit.


 * ELF (Executable and Linkable Format) Data Hardening -- These are changes to the file components that protect the structure of the file itself.


 * SELinux -- SELinux was developed in partnership with the NSA and developers from projects such as Gentoo and Debian. Security Enhanced Linux protects users and processes by watching all actions on the system, from opening a file to using a socket.  Users may write their own SELinux security policies according to their risk tolerance.  By default, Fedora runs a targeted security policy that protects network daemons that have a higher chance of being attacked.  If compromised, these programs are extremely limited in the damage they can do, even if the root account is cracked.

For example, Apache is protected in four different ways. The executable for Apache, httpd, is protected at compile time by PIE and Exec-Shield. The executable binary file on the system is protected by ELF hardening. Finally, SELinux policies are in place so that if httpd is cracked, it can only append to the Apache logs and mangle content in specific directories; it cannot roam around home directories or otherwise interact with the rest of the system.

References:


 * http://people.redhat.com/drepper/nonselsec.pdf
 * http://fedora.redhat.com/docs/selinux-faq/

Excellence: RPM + yum
Easy and safe software management

The yum utility requires no configuration, and you may add or remove software from Core or Extras as soon as the Fedora installation is complete. You may add a new package source by copying a simple text file into a directory, or by installing an RPM that does it for you.

Package operations safely abort if dependencies cannot be met. By default, yum requires all packages to pass a digital signature test before they may install to your system.

Made by administrators

The yum utility is developed by system administrators for use on large production networks. Advanced administrative tasks are made easy. For example, you may manage software on disk images with the installroot feature, and recent versions provide an interactive shell to enable you to quickly carry out batches of commands.

Customizable software management platform

You may create your own plug-ins for yum to add new features. Both plug-ins and the application itself are written in Python, making it simple to extend and integrate yum with other software. RPM supports Perl and Python scripting, as well as providing a library for C applications.

References:


 * http://fedoraproject.org/wiki/Tools/yum

Excellence: Anaconda
Anaconda provides a well-designed installer with both a graphical and text based interface with safe defaults, to enable users to install a new system with minimal difficulty. The interface provides advanced customization options to more precisely control package selection, configure complex storage arrangements with LVM and RAID, and attach the system to network management services such as LDAP and Kerberos.

Flexible installation

Anaconda supports installation from disc images, portable hard drives and network file shares. Any standard FTP, HTTP, or NFS server may act as an installation source. You may boot Anaconda from a pen drive or TFTP network boot service and perform an installation with no discs or CD drive at all, which is ideal for laptops and network terminals.

Automated deployment

Fedora installation may be partially or fully automated with kickstart files. Fedora includes a utility for generating and editing kickstart files. As plain-text files, kickstart files may also be created and modified by a simple text editor. The system-config-netboot utility enables administrators to configure a network boot service that combines with kickstart files and a file server to provide completely automated network installations.

References:


 * http://fedoraproject.org/wiki/Anaconda

Excellence: Systemtap and Frysk
SystemTap and frysk, developed and sponsored by Red Hat in partnership with others like IBM and Intel, provide a comprehensive framework to benchmark, analyse and improve system performance. With SystemTap, developers and sysadmins can take a deeper look into a running kernel. With frysk, developers and sysadmins can directly mainpulate executables as they run.

References:


 * http://sources.redhat.com/systemtap
 * http://sources.redhat.com/frysk

Excellence: The Free Java Platform
Java is now possibly the most popular programming language in the world. Fedora provides a completely Open Source platform for developing and running Java applications. The combination of GCJ and the GNU Classpath libraries provide much of the functionality of Java 1.4.2 without a proprietary runtime. The Free Java platform is actively being developed to complete the missing functionality and finalize a Web browser plugin.

Supplied Java software includes the Eclipse development environment, the Tomcat applications server, the Struts Web application framework, and the Jakarta Commons libraries. Fedora Core also includes the Java-GNOME bindings, which enable Java developers to write GNOME and GTK+ desktop applications in pure Java. Fedora Java packages follow the JPackage standards, which enable the supplied applications to work alongside the dozens of Java packages provided by jpackage.org.

References:


 * http://www.fedoraproject.org/wiki/JavaFAQ
 * Progamming Community Index of language popularity: http://www.tiobe.com/tpci.htm
 * http://osnews.com/story.php?news_id=12778 (needed?)

Excellence: Fedora Directory Server
The Fedora Directory Server is a robust, scalable open-source server designed to manage large directories of users and resources. It is based on an open-systems server protocol called the Lightweight Directory Access Protocol (LDAP). It was acquired from Netscape and open sourced by Red Hat. It also forms the basis of the Red Hat Directory Server and is capable of serving the needs of any enterprise.

References:


 * http://directory.fedora.redhat.com/wiki/Main_Page

Excellence: GFS
GFS is a POSIX compatible cluster filesystem which is POSIX compatible. Originally developed by Sistina, GFS was acquired and open sourced by Red Hat. It is now integrated and available as part of Fedora.

References:


 * http://fedoraproject.org/wiki/Tools/GFS

Excellence: Xen
Get the most out of your system.

Xen is a high performance and secure open source virtualization framework. Virtualization allows one to run many guest virtual machines on top of a host operating system such as Fedora. Using one computer, the user can mimic several individual computers and even run different operating systems in each of these virtual machines. Virtualization has been around for some time in products such as VMWare and VirtualPC; however, it has historically been resource intensive, with guest operating systems running at a significant performance hit. Xen uses a different approach; by being both a true hypervisor and a platform, Xen takes virtualization to a new level of performance and security.


 * By using modified kernels, Xen can take advantage of certain capabilities that allow users to have all the benefits of virtualization, without incurring the huge performance penalty often associated with virtualization. Users can run guest operating systems at near native speeds with Xen.


 * The security of the user environment can be enhanced by running different services in complete isolation, without resorting to the purchase of additional costly hardware. If servers are used to run a web server and an e-mail server together, these two services can now be isolated and run as though they were running on completely separate machines.


 * Xen users can run multiple operating systems, all from one machine. An instance of Fedora can run in conjunction with more instances of Fedora, or with other operating systems such as FreeBSD or NetBSD, all simutaneously.

References:


 * http://www.cl.cam.ac.uk/Research/SRG/netos/xen/ (Cambridge University)

How You Can Help: Triage
Join the Fedora Triage project.

Fedora moves very quickly and has lots of users. As a result we see our fair share of bugs.

People often aren't so careful about how they file bugs, though. A lot of these bugs are poorly explained, not replicable, duplicates, or simply not bugs at all. It takes a very long time for developers to cull through these bug reports to determine which are valid and which aren't.

Fedora Triagers provide an incredibly valuable service. By ensuring that all bugs are good bugs, they save countless hours of developer time and allow Fedora to produce better software quicker.

Join the Fedora Triage project at http://fedoraproject.org/wiki/BugZappers.

How You Can Help: Documentation
Join the Fedora Docs project.

The goal of the Documentation Project is to create easy-to-follow, task-based documentation for Fedora Core users and developers. Longer guides are available to cover major topics such as Installation.

Join the Fedora Documentation Project at http://fedoraproject.org/wiki/DocsProject/

How You Can Help: Extras
Join the Fedora Extras project.

There's a great big world of free software out there, and more being developed every day. The goal of Fedora Extras is to make all of that software available to Fedora users with the click of a button.

It takes a lot of work to package and maintain software, though. What about that cool piece of software that just isn't available as an easy-to-install RPM? Someone just needs to package it up. That someone might as well be you, right?

Learn how to make good software packages, and share your favorite applications with hundreds of thousands of Fedora users worldwide.

Join the Fedora Extras project at

http://fedoraproject.org/wiki/Extras

How You Can Help: Translation
Join the Fedora Translation Team

Fedora needs to be available for users all around the world. Does Fedora speak your language? If it doesn't, it should. You can help. Join the Fedora Translation Team at:

http://fedoraproject.org/wiki/DocsProject/Translation

How You Can Help: Ambassadors
Become a Fedora Ambassador

Do what we are doing here. Spread the good word of Fedora. Spread the glamor. Spread the action. Make waves. Encourage participation. Encourage the community.

Dont forget to collect feedback and listen to users. Give a good critique, or hear the good critiques of others. Tell us what works and what doesn't. Help us improve the project and gain even more Fedora users.

Help Fedora Do the Right Thing. Join us at:

http://fedoraproject.org/wiki/Ambassadors

How You Can Help: Live CD
Join the Fedora Live CD Project

Want to demonstrate the power, technology and usability of Fedora?

Want to take Fedora for a test ride?

Want to tinker and experiment?

Create your own Fedora Live CDs. Use the Fedora Live CD's and creation tools at

http://fedoraproject.org/wiki/LiveCD

Why should I help?
Your name in lights, an online CV, and maybe a trip to FUDCon.

First, contribute to Fedora and get your name in the distribution. Hey, fair is fair.

Second, if you're a Fedora contributor, you don't need a fancy resume; you can just tell potential employeers to Google your name.

Third, top Fedora contributors receive travel stipends to attend the Fedora Users and Developers Conference at the location closest to them. You will have the opportunity to meet some of the giants of the open source movement in person, as their peers and equals.

And last, you'd be playing with this stuff anyway. Spend your time doing stuff that you will enjoy and that others will use. What more incentive do you need? Join us.