Designing Integrated High Quality Linux Applications

Avi Alkalay

IBM Linux Impact Team :: ibm.com/linux
Senior IT and Software Architect :: Linux Market Developer

v2.1, 2002-08-24

Revision History
Revision 2.124 Aug 2002avi
Rewrite of the /opt /usr/local section. Cosmetics on graphical user interface and plugins sections. Fixed screens and programlistings width.
Revision 2.007 May 2002avi
Final XML conversion. Files reorganization.
Revision 1.9.920 Apr 2002avi
Included other document locations.
Revision 1.9814 Apr 2002avi
Title changed from "Creating" to "Designing".
Revision 1.9709 Apr 2002avi
Converted to XML 4.1.2, and started to use real XSLT. Spell checked the english version.
Revision 1.9623 Mar 2002avi
Better HTML style sheets.
Revision 1.9517 Mar 2002avi
Last chapter: One Body, Many Souls. Created appendix. Still have to translate some words here and there.
Revision 1.916 Mar 2002avi
Added universal software table with FHS.
Revision 1.716 Mar 2002avi
Everything is now translated except some words.
Revision 1.327 Feb 2002avi
Translated and reviewed the most important section of the article: The /opt and /usr/local section.
Revision 1.223 Feb 2002avi
English translation at 65%. Doing some corrections to potuguese version also.
Revision 1.117 Feb 2002avi
Started english translation.
Revision 1.016 Feb 2002avi
First final version of proposed skeleton.
Revision 0.9.616 Feb 2002avi
Finished Plugin chapter.
Revision 0.9.515 Feb 2002avi
Finished chapter about boot and subsystems.
Revision 0.9.414 Feb 2002avi
Finished chapter describing the boot process.
Revision 0.9.308 Feb 2002avi
Text and style updates.
Revision 0.9.207 Feb 2002avi
Text updates.
Revision 0.906 Feb 2002avi
First translation to DocBook.

Table of Contents

1. Introduction
2. User Friendly: Guaranteed Success
2.1. Embrace the Install-and-Use Paradigm
3. The Four Universal Parts of Any Software
3.1. Practical Examples
3.2. The Importance of Clear Separation Between Four Parts
3.3. One Body, Many Souls
4. Linux Directory Hierarchy: Oriented to the Software Parts
4.1. FHS Summary
4.2. Examples Using the FHS
4.3. Developer, Do Not Install in /opt or /usr/local !
5. Provide Architecture for Extensions and Plugins
5.1. Abstracting About Plugins
6. Allways Provide RPM Packages of Your Softwares
6.1. Software Package Modularization
7. Security: The Omnipresent Concept
8. Graphical User Interface
8.1. KDE, GNOME, Java or Motif?
8.2. Web Interface: Access from Anywhere
8.3. Wizards and Graphical Installers
9. Starting Your Software Automatically on Boot
9.1. From BIOS to Subsystems
9.2. Runlevels
9.3. The Subsystems
9.4. Turning Your Software Into a Subsystem
9.5. Packaging Your Boot Script
A. Red Hat, About the Filesystem Structure
B. About this Document