doc: Replace src/SOURCE-MAP with src/README.md 03/14003/6
authorMichael Meffie <mmeffie@sinenomine.net>
Thu, 12 Dec 2019 20:58:32 +0000 (15:58 -0500)
committerBenjamin Kaduk <kaduk@mit.edu>
Fri, 6 Mar 2020 02:53:14 +0000 (21:53 -0500)
Replace the old and poorly maintained "SOURCE-MAP" file with a markdown
formatted README.md file.  Try to organize the directories in sections
to hopefully make a more useful guide to the source code and build
directories.

Thanks to Cheyenne Wills and Benjamin Kaduk for suggestions.

Change-Id: I50f58aa99453bc3412b60a7591d6957cfa83b5b1
Reviewed-on: https://gerrit.openafs.org/14003
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>

src/README.md [new file with mode: 0644]
src/SOURCE-MAP [deleted file]

diff --git a/src/README.md b/src/README.md
new file mode 100644 (file)
index 0000000..61b8b1f
--- /dev/null
@@ -0,0 +1,178 @@
+Guide to the OpenAFS source tree
+================================
+
+This is a guide to the various directories in the OpenAFS source code tree.
+Some directories contain source code for components of the OpenAFS system,
+while other directories are used by the build system to build libraries, kernel
+modules, and program variations. See the `Makefile` at the top of the project
+tree for build order and inter-dependencies.
+
+RPC interface definitions (IDL)
+-------------------------------
+
+The following directory contains interface definitions (IDL) files for the
+OpenAFS file server and cache manager.
+
+| directory | description |
+| --------- | ----------- |
+| fsint     | File server and cache manager RPC interface definitions |
+
+Cache Managers
+--------------
+
+The following directories contain the source code of OpenAFS cache manager and
+related programs.
+
+| directory | description |
+| --------- | ----------- |
+| afs       | The OpenAFS cache manager as a kernel-module for unix-like systems |
+| afsd      | The `afsd` user-space program to start the cache manager on unix-like systems |
+| aklog     | The Kerberos 5 login programs: `aklog`, `asetkey`, `akeyconvert` |
+| sys       | NFS translator local and remote system call interfaces |
+| venus     | The `fs` program and other cache manager related utilities |
+| WINNT     | The OpenAFS cache manager and installer for MS Windows |
+| export    | Symbol exports for AIX kernel module |
+
+Servers
+-------
+
+The following directories contain the source code of the OpenAFS servers and
+administrative command suites.
+
+| directory | description |
+| --------- | ----------- |
+| bozo      | The basic overseer server and `bos` command suite |
+| ptserver  | The protection server and `pts` command suite |
+| update    | The update server and client for maintaining server software and configuration (deprecated) |
+| viced     | The file server |
+| vlserver  | The volume location server |
+| volser    | The volume server and `vos` command suite |
+
+Backup system
+-------------
+
+The following directories contain the source code of the OpenAFS backup system.
+
+| directory | description |
+| --------- | ----------- |
+| bubasics  | Backup related RPC interface definitions |
+| bucoord   | Backup coordinator and support library |
+| budb      | Backup database server `buserver` |
+| butc      | Backup tape coordinator, and `read_tape` restoration client |
+| butm      | Backup tape manager library |
+| `bu_utils` | Backup utilities to estimate tape capacity and file mark sizes |
+| tsm41     | Tivoli storage manager support |
+
+
+Rx subsystem
+------------
+
+The following directories contain the source code of the Rx subsystem. Rx
+provides Remote Procedure Calls (RPC) over UDP/IP in user-space and kernel-mode,
+and includes an XDR implementation to encode and decode binary data.
+
+| directory | description |
+| --------- | ----------- |
+| rx        | The Rx library for kernel and user-space |
+| rxdebug   | Debugging tool for rx |
+| rxgen     | The `rxgen` program to generate AFS RPC stubs from IDL (i.e., `*.xg`) |
+| rxgk      | Rxgk security class for rx |
+| rxkad     | Kerberos security module for rx |
+| rxosd     | Rx object storage device extensions IDL files |
+| rxstat    | Rx statistics package |
+
+Libraries
+---------
+
+The following directories contain the source code for the various libraries
+used by OpenAFS.
+
+| directory | description |
+| --------- | ----------- |
+| opr       | General purpose library for user-space and headers for kernel mode |
+| audit     | The `libaudit` event auditing support library |
+| auth      | The `libauth` library to manage key and cell configuration files |
+| cmd       | The `libcmd` library to parse command line arguments |
+| comerr    | The `com_err` library to provide error table lookup |
+| dir       | Modules to lookup, add, and remove entries in directory objects |
+| gtx       | A curses-based graphics library for terminal-based programs |
+| kopenafs  | The `libkopenafs` library for setting up stand-alone setpag() function for Heimdal/KTH libkafs |
+| libacl    | The `libacl` library for access control lists |
+| libadmin  | The `libadmin` administration API |
+| libafscp  | The `libafscp` library; client operations without a cache manager |
+| libafsrpc | The `libafsrpc` library; basic rx functionality for programs which do not require authentication |
+| libafsauthent | The `libafsauthent` library; for AFS-aware utilities |
+| procmgmt  | Process management library |
+| ubik      | Ubik replicated database library |
+| usd       | User-space device input/output library |
+| util      | Utility library (deprecated in favor of opr) |
+| vol       | Volume library for managing volumes on-disk |
+
+Utilities
+---------
+
+The following directories contain source code for utilities and libraries for
+OpenAFS administrators.
+
+| directory | description |
+| --------- | ----------- |
+| afsmonitor | Terminal-based file server and cache manager monitoring tool |
+| fsprobe   | File Server probe library and program |
+| scout     | Terminal-based file server monitoring tool |
+| tools     | Contributed configuration and maintenance tools |
+| xstat     | Command line tools and libraries for gathering file server and cache manager statistics |
+
+Other
+-----
+
+| directory | description |
+| --------- | ----------- |
+| external  | Contains imported code which is maintained in other open source projects |
+| platform  | Code for platform-specific programs and build specs. |
+
+
+Build system
+------------
+
+The following directories are build directories or contain components
+for the build system.
+
+| directory | description |
+| --------- | ----------- |
+| cf        | OpenAFS specific M4 macros for `autoconf`  |
+| config    | Build system OS-specific configuration |
+| crypto    | `libhcrypto` library build directory |
+| dviced    | Demand Attach File Server (DAFS) build directory |
+| dvolser   | Demand Attach Volume Server build directory  |
+| finale    | Final stage build directory; includes `translate_et` which translates error codes to descriptive messages |
+| libafs    | OpenAFS kernel modules build directory |
+| libuafs   | OpenAFS user-space cache manager build directory |
+| packaging | Contributed packaging files for various platforms |
+| roken     | Build directory for `libroken`, a set of os-independent functions|
+| tbudb     | Pthreaded Backup Server (`budb`) build directory |
+| tbutc     | Pthreaded Backup Tape Coordinator (`butc`) build directory |
+| tptserver | Pthreaded Protection Server (`ptserver`) build directory |
+| tsalvaged | Pthreaded Salvage Server build directory; Used by Demand Attach File Server |
+| tubik     | Pthreaded ubik build directory |
+| tvlserver | Pthreaded Volume Location `vlserver` build directory |
+| tvolser   | Pthreaded Volume Server build directory |
+
+
+Not Maintained
+--------------
+
+The following directories contain code of obsolete components which are no
+longer actively maintained.
+
+| directory | description |
+| --------- | ----------- |
+| afsinstall | Installation scripts and notes from IBM AFS |
+| afsweb    | Authenticated AFS access for older versions of Apache |
+| JAVA      | Java API library for OpenAFS development |
+| kauth     | Obsolete Kerberos-4 server (`kaserver`) and related programs |
+| log       | Obsolete programs to show and forget Kerberos-4 tokens |
+| lwp       | Lightweight user-level non-preemptive cooperative threading library |
+| pam       | Pluggable authentication modules (PAM) for kauth authentication |
+| tests     | Legacy test scripts; new unit tests should be added to the top level `tests` directory |
+| uss       | Tool for managing users; limited to kauth |
+| vfsck     | OpenAFS specific `fsck` for obsolete inode-based file server partitions |
diff --git a/src/SOURCE-MAP b/src/SOURCE-MAP
deleted file mode 100644 (file)
index ddcc4b0..0000000
+++ /dev/null
@@ -1,322 +0,0 @@
-Guide to the AFS source tree
-
-
- -- afs
-
-Routines which make up the kernel- and userlevel- cachemanager.
-
- -- afsd
-
-The afsd process which parses config files, sets up the cache,
-and forks off subprocess to start each of the libafs
-"kernel threads".
-
- -- afsinstall
-
-Leftovers from IBM AFS including installation notes and helper
-scripts.
-
- -- afsmonitor
-
-Afs monitoring tool.
-
- -- afsweb
-
-Authenticated AFS access via Apache. requires minor porting for
-newer Apache versions.
-
- -- aklog
-
-Kerberos v5 AFS login and related error routines as well as a linked list
-struct definition.
-
- -- audit
-
-Afs event auditing support library.
-
- -- auth
-
-Afsconf suite (CellServDB/UserList/ThisCell) and token interface,
-outdated copyauth program, setkey utility for adding a key
-to a server KeyFile (as a key).
-
- -- bozo
-
-Bos suite, includes bos client and bosserver.
-
- -- bubasics
-
-Backup related rpc interface definitions.
-
- -- bucoord
-
-Backup coordinator and support library.
-
- -- budb
-
-Backup database server (buserver).
-
- -- butc
-
-Backup tape coordinator, and read_tape restoral client.
-
- -- butm
-
-Backup tape manager library.
-
- -- bu_utils
-
-Backup utilities Fms (estimate tape capacity and file mark sizes)
-(not useful for tape drives with compression).
-
- -- cf
-
-Autoconf config files.
-
- -- cmd
-
-Cmd library, routines to parse cmd line arguments
-used by all command line utilities.
-
- -- comerr
-
-Com_err library, error table routines.
-
- -- config
-
-Build system OS-specific configuration.
-
- -- des
-
-Des library.
-
- -- dir
-
-Afs directory handling library (client and server, internal format).
-
- -- export
-
-EXPORT is an aix3.1 kernel extension whose sole purpose in
-life is to provide access to kernel symbols that were mistakenly
-(or purposefully) omitted from the kernel exports list.
-
- -- external
-
-Contains all source maintained upstream as external projects.
-
- -- finale
-
-Last part of the source to build:
-translate_et translates error codes to descriptive messages.
-
- -- fsint
-
-Fileserver and Cache manager RPC interface definitions.
-
- -- fsprobe
-
-Fileserver probe facility for information collection.
-
- -- gtx
-
-Graphics library for monitoring clients.
-
- -- JAVA
-
-Java API library for OpenAFS development.
-
- -- kauth
-
-Deprecated Kaserver suite including server, admin client, password
-changing and validating clients, token-getting and
-token-and-ticket-getting authentication clients, nfs
-authentication exporter and server database reconstructor.
-
- -- kopenafs
-
-Library and interface for setting up standalone setpag() function
-for Heimdal/KTH libkafs.
-
- -- libacl
-
-Acl library, routines for manipulation of ACLs.
-
- -- libadmin
-
-AFS administration API.
-
- -- libafs
-
-Directory where build system actually builds kernel modules.
-
- -- libafsauthent
-
-Pthreaded set of libraries for AFS-aware utilties.
-This and libafsrpc provide complete functionality.
-
- -- libafsrpc
-
-Pthreaded Afsrpc library. Provides basic Rx functionality for AFS-aware
-programs which don't need to do authentication.
-
- -- libuafs
-
-Userlevel cache manager build directory
-
- -- log
-
-Programs to show and forget tokens (and optionally forget tokens
-and tickets) and test program to create an AFS token.
-
- -- lwp
-
-Lightweight user-level non-preemptive cooperative threading library.
-
- -- pam
-
-Pluggable authentication modules for afs authentication.
-
- -- platform
-
-Platform-specific binaries and build specs for which
-the source tree provides no alternative location.
-
- -- procmgmt
-
-"Portable" process management library.
-
- -- ptserver
-
-The protection database server and clients.
-
- -- rx
-
-Rx rpc library for kernel and userspace.
-
- -- rxdebug
-
-Debugging tool for rx.
-
- -- rxgen
-
-Rxgen program. generates AFS RPC stubs from .xg files.
-
- -- rxkad
-
-Kerberos security module for rx.
-
- -- rxstat
-
-Rx statistics package.
-
- -- scout
-
-Monitoring tool for afs fileservers.
-
- -- sgistuff
-
-SGI authentication plugin for graphical login.
-
- -- shlibafsauthent
-
-Shared library version of libauthent.
-
- -- shlibafsrpc
-
-Shared library verion of libafsrpc.
-
- -- sys
-
-Local and remote system call interfaces. basic PAG-creation
-and remote system call handling for NFS translator.
-
- -- tbudb
-
-Pthreaded budb build dir.
-
- -- tbutc
-
-Pthreaded butc build dir.
-
- -- tests
-
-Legacy test scripts.
-
- -- tools
-
-Contributed configuration/maintenance tools.
-
- -- tptserver
-
-Pthreaded ptserver build dir.
-
- -- tsalvaged
-
-Pthreaded Salvageserver and salvync-debug build dir
-(used by demand-attach fileserver)
-
- -- tsm41
-
-Tivoli storage manager support for the backup system.
-
- -- tubik
-
-Pthreaded ubik build dir.
-
- -- tvlsever
-
-Pthreaded vlserver build dir.
-
- -- tvolser
-
-Pthreaded volser build dir
-
- -- ubik
-
-Ubik replicated database library.
-
- -- update
-
-Upserver/upclient for maintaining server software from a system
-control machine.
-
- -- usd
-
-Userspace device input/output library.
-
- -- uss
-
-Uss tool for managing users.
-
- -- util
-
-Swiss army knife library.
-
- -- venus
-
-Various cachemanager related utilities.
-
- -- vfsck
-
-Fsck for vice partitions on non-namei fileservers.
-
- -- viced
-
-Fileserver.
-
- -- vlserver
-
-Volume location server.
-
- -- vol
-
-Volume library for managing volumes on-disk.
-
- -- volser
-
-Volume server package. includes volserver and vos client.
-
- -- xstat
-
-Extended statistics clients for cachemanagers and fileservers,
-includes xstat library and xstatcommand line clients.