Skip to content Accesskey=4Skip to sub-navigation Accesskey=NView our Accessibility Options MIT Information Services and Technology Home About IS&T Contact IS&T Site Map Search Advanced Search
Getting StartedGetting Services by Topic or Alphabetically Getting Help

On This Page

Libraries and Infrastructure

User Services

Other Tools, Applications, and Services


Related Links
 

Differences between Athena Linux and Stock Red Hat Linux

Athena Differences: New Services Detail

Alphabetical RPM list

Linux at MIT

Linux Athena at MIT

Options for Purchasing an Athena System

The Athena Release

Choosing between RHN and Athena

 


Athena Linux Differences: Variant Packages Detail

Many Athena packages are modifications of existing Red Hat packages. Variant packages are created for one or more of the following reasons:

  • To make crucial functionality work (bug fixes).
  • To integrate the subsystem into the MIT environment (configuration).
  • To create uniform behavior across multiple UNIX platforms and versions.
  • To provide continuity with legacy services so as to minimize the user disruption across an OS, application, or service update.

The Athena Variations on pre-existing packages are presented here organized by functional area:


Libraries and Infrastructure

Files

Variant File Locations

Athena puts essentially all of its new and variant binaries, libraries, config files, etc. in non-standard locations to avoid conflicting with the base operating system.

Athena introduced:

  • /usr/athena as the usual root of athena-specific files.
  • /usr/athena/bin for Athena variant binaries.
  • /usr/athena/include for Athena variant includes.
  • /usr/athena/lib for Athena variant libraries.
  • /usr/athena/etc to hold administrative utilities that these days are typically found in /usr/sbin.
  • /bin/athena to hold a subset of binaries on local disk back when Athena kept the system packs in a remote filesystem.
  • /etc/athena originally for binaries and config files on systems that kept the majority of files on a remote filesystem. Now used for config files we expect system owners will customize.

Users compiling applications may need to edit build scripts and Makefiles to work with these alternate locations.

Note: Binaries originally put in /bin/athena and /etc/athena when there were remote system packs have not been moved out because we didn't want to break things that were built assuming the original locations.

GNOME

GUI Infrastructure and Application Suite

By itself, GNOME is responsible for a third of all differences introduced by Athena. The decision to build the entirety of GNOME as a variant was not undertaken lightly -- and not without the eventual goal being to treat it as third party software. However, it provides Athena with a user friendly interface and fully integrated the emerging standard GUI toolkit and infrastructure.

There was one major issue with GNOME on Athena: GNOME assumes an unshared home directory. Athena stores the user home directory in a remote filesystem that can, and often is, accessed simultaneously by multiple machines/logins -- sometimes even utilizing different operating systems.

GConf, the database used to store and update user configuration information assumed it had unshared access to the user's home directory. To resolve this issue, Athena GConf creates a lock specific to the users login session rather than the user's home directory.

The esd demon was originally conceived as a demon process that would be started by a user and keep running after they logged out. Athena systems support login by different users, so esound was modified to be started and killed by a process, dustbuster, on a per user basis. Other subsystems are also managed by dustbuster.

The original goal was to modify as small a subset as possible of GNOME, and to install the vendor-supplied binaries for the rest. Unfortunately, a number of packages expect to have all of GNOME data files living in one place. Other unusual behaviors were also resolved by building all of GNOME as a unit. Given these issues and the benefit of being able to distribute GNOME to Athena Linux users with debugging turned on, the Athena Release Team created an Athena variant build of the entirety of GNOME.

RPMs: athena-GConf, athena-GConf2, athena-ORBit, athena-ORBit2, athena-bonobo, athena-bonobo-activation, athena-bonobo-conf, athena-control-center, athena-esound, athena-gal, athena-gal2, athena-gdk-pixbuf, athena-glib, athena-glib2, athena-gnome-applets, athena-gnome-audio, athena-gnome-desktop, athena-gnome-icon-theme, athena-gnome-libs, athena-gnome-mime-data, athena-gnome-panel, athena-gnome-print, athena-gnome-spell, athena-gnome-terminal, athena-gnome-themes, athena-gnome-utils, athena-gnome-vfs, athena-gnome-vfs2, athena-gnome2-user-docs, athena-gtk, athena-gtk-engines, athena-gtk-thinice-engine, athena-gtk2, athena-gtkhtml, athena-gtkhtml3, athena-imlib, athena-libbonobo, athena-libbonoboui, athena-libglade, athena-libgnome, athena-libgnomecanvas, athena-libgnomeui, athena-libgsf, athena-librep, athena-libxml, athena-metacity, athena-nautilus, athena-nautilus-media, athena-oaf, athena-rep-gtk, athena-sawfish, athena-zenity.

See also: the "gnome" and "dustbuster" man pages.

kerberos

Kerberos Authentication

Kerberos was invented for Athena, so there is strong temptation and history of keeping a local version with the subtlest of configuration adjustments. For the most part, Athena builds kerberos from the source distributed by the Kerberos team rather than using the native OS kerberos.

The Athena kerberos RPM also includes integration of the Athena single sign on and access control functionality into login ftpd and other network services. Most of this work is done with a new library, the Athena Login Library, libal.

The Athena kerberos variation includes enhancements to make a graceful transition from kerberos version 4 to version 5. Many applications developed for Athena never got follow-on funding to convert to version 5, so there is demand for strong version 4 compatibility.

RPM: athena-krb5.

See also: the Remote Access section of the Private Athena Workstation Owner's guide and the "kerberos" man page.

Hesiod

Name to Name Translation/Association

Information about user names, directories and system resources is distributed via an Athena-invented enhancement, now part of the standard BIND system, called Hesiod. Long before there were "Roaming Profiles" or an "Active Directory", Athena provided similar functionality by modifying system programs to fetch information from the Hesiod service.

Athena is still the upstream provider of the Hesiod code to the world, so there is no effort saved in using the binaries that come stock with Red Hat.

RPMs: athena-hesiod.

See also: the "hesinfo" man page.

Bind

Berkeley Internet Name Demon.

Athena adopted its own code base for the bind utilities and library for consistency across platforms.

RPM: athena-bind.

See also: the "bind" man page.

Athena added a friendlier interface, 'hostinfo', to the BIND 'host' utility.

RPM: athena-hostinfo.

See also: the "hostinfo" man page.

mingetty

Lightweight Program to Spawn Login Connections

The Athena approach to spawning login connections evolved in a different direction from what became standard. Athena has its own console login program that utilizes libal to control access. (See Remote Access Control.) The program that controls login connections is getty under some versions of UNIX and mingetty under most versions of Linux. Stock mingetty does not support calling alternate login programs.

Red Hat 7 stopped shipping the full getty so we introduced our own local variant of mingetty that did what we needed: interface to Athena login with single sign on, provide standard Linux virtual terminal access, and provide users with the option of the old style Athena console.

Red Hat Enterprise 3 now ships a mingetty with the ability to support an alternate login program. Switching to standard mingetty and getting rid of our local version is scheduled for Athena 9.4.

RPM: athena-mingetty.

See also: the "mingetty" man page.

Other Libraries

Berkeley db

Athena contains a version of Berkeley DB, which is used in Kerberos and the rpm update system. Red Hat Enterprise ships with an RPM, compat-db that apparently also provides Berkeley DB. Athena adopted its version for compatibility across platforms. It is possible that compat-db would be an acceptable substitute, but it's unclear if it's worth the effort to do the required testing.

RPM: athena-db.

See also: the "db" man page.

com_err / libet

The error table library, now a standard part of Linux, originally came from Athena. As with many libraries, the effort to confirm the standard offering is a fully functional replacement seems unjustified.

RPM: athena-libet.

See also: the "com_err" man page.

libss

The command table subsystem library, now a standard part of Linux originally came from Athena. As with many libraries, the effort to confirm the standard offering is a fully functional replacement seems unjustified.

RPM: athena-libss.

[Back to top]


User Services

Athena began with a notion of platform independent "coherence" for the user experience. This gave rise to a long standing aesthetic to tightly integrate different aspects of the user experience, and to customize things so that platform differences were minimized, and user-visible changes across updates of OS and applications were also minimized.

Reading, Writing, and Managing Email

Evolution

The standard mail reader on the Athena desktop is Evolution, one of the core applications of the standard GNOME desktop.

RPM: athena-evolution.

See also: the "evolution" man page.

Pine

For users who need or prefer a non-graphical email client, Pine was integrated into Athena and MIT IMAP.

RPM: athena-pine.

See also: the "pine" man page.

mh

Before Evolution and pine were adopted as the standard, mh and xmh were. These legacy applications are kept around for those users unwilling to change email clients.

In order to handle the repeated upgrades of the mail system, a program was built for Athena to announce that the default mail reader had changed and allow the user to chose whether he or she wanted to upgrade or to remain with the legacy application.

RPMs: athena-nmh, athena-xmh, athena-mail-dialog.

See also: the "mh" and "xmh" man pages.

sendmail

Athena originally adopted its own version of sendmail because different platforms had versions that were unpleasantly different from each other. The goal was to have one set of sendmail configuration files and one approach to managing sendmail issues across all platforms. Recently, since we already had our own sendmail, we chose to add Kerberos authenticated SMTP protocol support. It is hoped that standard sendmail will eventually converge on one version with a Kerberos authenticated sending option.

RPM: athena-sendmail

See also: the "sendmail" man page.

Utilities

A few other useful command-line tools were created:

  • from: prints out mail header lines in incoming mail to show who the mail is from. Useful for a quick email check without having to start up a more elaborate client.
  • mailquota: Display post office resource usage and limits.
  • mailusage: Display size of mail folders on a post office server.

RPMs: athena-from, athena-mailquota, athena-mailusage.

See also: the "from", "mailquota", and "mailusage" man pages.

Mozilla

Web Browsing with Mozilla

Mozilla is the standard web browsing tool for Athena. Athena had for a number of years customized a standard browser for ease of use at MIT. Mozilla received a fair bit of customization in order to gracefully fit with that legacy.

The details of the difference between Athena and stock Mozilla were documented in a Stock Answer

Mozilla was absorbed into the Athena release when the crucial requirement of putting the cache directory on the local disk rather than the user's AFS home directory required source-code level changes. Source level changes were also required to deal with byte-ordering and access control issues when the profile directory lived in a user's AFS home directory. Building the whole subsystem and making the few required changes turned out to be the most cost-effective way to manage the software.

Athena also provides gurlview, a GNOME utility useful for displaying a URL in a new browser window.

RPMs: athena-mozilla, athena-gurlview.

See also: the "mozilla", and "gurlview" man pages.

Text Editing and Formatting

Emacs

Emacs is the recommended standard text editing program on Athena. While there are few changes to the Emacs code, the site-start.el file is extensively customized to activate Emacs features such as printing and email, which require configuration on a site-by-site basis.

Some subtle user interface changes were made to fit MIT tastes and provide a standard experience across platforms/versions. Auto-save was adjusted to make it less likely that users would lose data.

RPM: athena-emacs.

See also: the "emacs" man page.

vi

Red Hat chose to incorporate a limited function port of vi. Experienced vi users, used to the full version on Athena, would have found it insufficient. So Athena incorporated nex/nvi, a freely redistributable implementation of the ex/vi text editors originally distributed as part of the Fourth Berkeley Software Distribution (4BSD).

RPM: athena-nvi.

See also: the "vi", "ex" man pages.

TeX

The most current version of TeX, the typesetting system and support utility for Athena, was not included with Red Hat Linux (nor on Solaris). As MIT users push the cutting edge of TeX typesetting, Athena packaged a more current version to meet demand.

RPM: athena-tetex.

See also: the "tex" man page.

Text utilities

To provide commonality across platforms, Athena standardized upon its own version of:

  • ispell: an interactive spelling checker.
  • texinfo: a documentation system that can produce both online information and printed output from a single source file. The GNU Project uses the Texinfo file format for most of its documentation.
  • intlfonts: the international fonts for many languages suitable for use in Emacs and elsewhere.

RPMs: athena-ispell, athena-texinfo, athena-intlfonts.

See also: the "ispell", "tex", and "texinfo" man pages.

LPRng

Printing Infrastructure and Commands

Athena has adopted various printing infrastructures over the years. The present one is an early adoption of LPRng which has become a standard open source printing subsystem. Athena's LPRng contains code to support both secure and insecure printing on a printer labeled as kerberized. The stock version requires choosing one to the exclusion of the other.

RPM: athena-lprng, athena-lprng-misc, athena-ifhp.

See also: the "lpr", "lpq", "lprm", "lpc", "lpd", and "ifhp" man pages.

Remote Access

OpenSSH

OpenSSH allows secure connections for login sessions and file transfer via the ssh protocol. The version shipped by Red Hat does not link against the GSSAPI library Athena uses to enable forwardable kerberos ticket support.

Because sshd does not use an external call to login, the changes made to krb5 login had to be made to sshd: use of libal so that /etc/athena/access would control login authorization and fetching user information via Hesiod, etc.

Athena includes a third-party, x11-based tool for popping up a window to ask for a pass phrase. We keep xss-ssh-askpass around to keep the same appearance across platforms.

RPMs: athena-openssh, athena-x11-ssh-askpass.

See also: the "ssh", and "scp" man pages.

OpenSSL

This open source toolkit implements the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a full-strength general purpose cryptography library.

We began building openssl to have a common source base on both Solaris and Linux. This permits users to put certificates for trusted Certifying Authorities in the same place on both platforms (/usr/athena/ssl).

RPM: athena-openssl.

See also: the "ssl" man page.

Cyrus SASL

The cyrus-sasl package contains the Cyrus implementation of SASL from Carnegie Mellon University. SASL, the Simple Authentication and Security Layer, adds authentication support to connection-based protocols. The Athena version contains bug fixes that enable mitmail to work.

RPM: athena-cyrus-sasl.

See also: the "sasl" man page.

x3270

Allows connection to remote hosts emulating an IBM 3270 terminal under X. Adopted by Athena in advance of becoming a standard tool. Originally contained bug fixes, and kept common across multiple platforms. Now not widely enough used to be worth testing to see if the standard version meets all present requirements.

RPM: athena-x3270.

See also: the "x3270" man page.

kermit

Kermit is a ubiquitous and convenient interface for terminal login sessions and simple file transfers. Red Hat offers a ckermit RPM. Athena installs this version instead of ckermit to keep compatibility across platforms.

RPM: athena-kermit.

See also: the "kermit" man page.

[Back to top]


Other Tools, Applications, and Services

perl

Programming Language and Libraries

Athena adopted its own version of the perl programming language and libraries to have a common version across platforms. Without a common version, differences caused cross-platform scripts to break.

RPM: athena-perl.

See also: the "perl" man page.

python

Programming Language and Libraries

As with perl, Athena adopted its own version of the python programming language and libraries for commonality across platforms. Without a common version, differences were breaking programs that needed to work on all platforms.

RPM: athena-python.

See also: the "python" man page.

Command Shells

Originally, the Athena versions of command shells contained bug fixes and enhancements. All but one of the enhancements became standard with the stock versions. When one types ~username to refer to the user's home directory, the shell will look up the directory in Hesiod, Athena's name service. More generally, ~locker can be used to access the top-level directory of any locker. For example:

ls ~acro

would list the files in the "acro" locker.

RPMs: athena-tcsh, athena-bash.

See also: the "tcsh", and "bash" man pages.

xscreensaver

For security and to meet user expectations, xscreensaver has been modified for suitability in general use clusters as follows:

  • to remove all modules that show the screen.
  • to only unlock the screen and return to the desktop after entering a password.
  • to interface with the kerberos login to handle expired kerberos tickets appropriately.
  • to add a button to the locked screen that allows another user to log out the original user from an abandoned the workstation.
  • to provide a convenient desktop button for screen locking.

RPM: athena-xscreensaver.

See also: the "xscreensaver" man page.

finger

Finger has been modified for Athena to allow users to easily look up other users of the Athena system as well as remote users.

RPM: athena-finger.

See also: the "finger" man page.

[Back to top]

MIT Home | Getting Started | Getting Services | Getting Help | About IS&T | Accessibility
Ask a technology question or send a comment about this web page.