readme-tpf.html revision 7b3e47feb2f0d0a120f80b2de66656a55d0e63ef
03831d35f7499c87d51205817c93e9a8d42c4baestevel<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
03831d35f7499c87d51205817c93e9a8d42c4baestevel<HTML>
03831d35f7499c87d51205817c93e9a8d42c4baestevel<HEAD>
03831d35f7499c87d51205817c93e9a8d42c4baestevel<TITLE>The Apache TPF Port</TITLE>
03831d35f7499c87d51205817c93e9a8d42c4baestevel</HEAD>
03831d35f7499c87d51205817c93e9a8d42c4baestevel<BODY>
03831d35f7499c87d51205817c93e9a8d42c4baestevel<A NAME="top"></A>
03831d35f7499c87d51205817c93e9a8d42c4baestevel<blockquote><strong>Warning:</strong>
03831d35f7499c87d51205817c93e9a8d42c4baestevelThis document has not been updated to take into account changes
03831d35f7499c87d51205817c93e9a8d42c4baestevelmade in the 2.0 version of the Apache HTTP Server. Some of the
03831d35f7499c87d51205817c93e9a8d42c4baestevelinformation may still be relevant, but please use it
03831d35f7499c87d51205817c93e9a8d42c4baestevelwith care.
03831d35f7499c87d51205817c93e9a8d42c4baestevel</blockquote>
03831d35f7499c87d51205817c93e9a8d42c4baestevel<H1 align="center">Overview of the Apache TPF Port</H1>
03831d35f7499c87d51205817c93e9a8d42c4baestevel<HR>
03831d35f7499c87d51205817c93e9a8d42c4baestevel<CENTER>[&nbsp;<A HREF="#configuration_files">Configuration Files</A>
03831d35f7499c87d51205817c93e9a8d42c4baestevel &nbsp;|&nbsp;<A HREF="#whats_available">What's Available</A>
03831d35f7499c87d51205817c93e9a8d42c4baestevel &nbsp;|&nbsp;<A HREF="#porting_notes">Porting Notes</A>&nbsp;]
03831d35f7499c87d51205817c93e9a8d42c4baestevel</CENTER>
03831d35f7499c87d51205817c93e9a8d42c4baestevel<HR>
03831d35f7499c87d51205817c93e9a8d42c4baestevel<BR>
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevel<P>
03831d35f7499c87d51205817c93e9a8d42c4baestevel This version of Apache includes changes allowing it to run on
03831d35f7499c87d51205817c93e9a8d42c4baestevel IBM's EBCDIC-based
03831d35f7499c87d51205817c93e9a8d42c4baestevel <A HREF="http://www.s390.ibm.com/products/tpf/tpfhp.html">TPF</A>
03831d35f7499c87d51205817c93e9a8d42c4baestevel (Transaction Processing Facility) operating system.
03831d35f7499c87d51205817c93e9a8d42c4baestevel Unless otherwise noted TPF version 4.1 PUT09 is required.
03831d35f7499c87d51205817c93e9a8d42c4baestevel <BR><BR>
03831d35f7499c87d51205817c93e9a8d42c4baestevel Refer to htdocs/manual/<A HREF="install-tpf.html">install-tpf.html</A>
03831d35f7499c87d51205817c93e9a8d42c4baestevel for step-by-step installation instructions.
03831d35f7499c87d51205817c93e9a8d42c4baestevel <BR><BR>
03831d35f7499c87d51205817c93e9a8d42c4baestevel As this is the first cut at making Apache run on TPF,
03831d35f7499c87d51205817c93e9a8d42c4baestevel performance tuning has not been done.
03831d35f7499c87d51205817c93e9a8d42c4baestevel <BR><BR>
03831d35f7499c87d51205817c93e9a8d42c4baestevel This port builds upon the <A HREF="ebcdic.html">EBCDIC changes</A>
03831d35f7499c87d51205817c93e9a8d42c4baestevel previously made to Apache.
03831d35f7499c87d51205817c93e9a8d42c4baestevel <BR>
03831d35f7499c87d51205817c93e9a8d42c4baestevel</P>
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevel<A NAME="configuration_files">&nbsp;</A>
03831d35f7499c87d51205817c93e9a8d42c4baestevel<H2 align=center>Apache Configuration Files</H2>
03831d35f7499c87d51205817c93e9a8d42c4baestevel<P>
03831d35f7499c87d51205817c93e9a8d42c4baestevel The distributed configuration files (httpd.conf-dist and
03831d35f7499c87d51205817c93e9a8d42c4baestevel mime.types, both located in the conf subdirectory)
03831d35f7499c87d51205817c93e9a8d42c4baestevel work on TPF. Performance considerations may dictate setting KeepAlive to "Off"
03831d35f7499c87d51205817c93e9a8d42c4baestevel (the default is "On") or lowering the Timeout value from the default
03831d35f7499c87d51205817c93e9a8d42c4baestevel 300 seconds (5 minutes) in order to reduce the number of active ECBs on your system.
03831d35f7499c87d51205817c93e9a8d42c4baestevel</P>
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevel<A NAME="whats_available">&nbsp;</A>
03831d35f7499c87d51205817c93e9a8d42c4baestevel<H2 align=center>What's Available in this Version</H2>
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevel (The Apache organization provides
03831d35f7499c87d51205817c93e9a8d42c4baestevel <A HREF="http://www.apache.org/docs/">online documentation</A>
03831d35f7499c87d51205817c93e9a8d42c4baestevel describing the various modules and components of the server.)
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevel<H3>Components/modules tested on TPF:</H3>
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevel <multicol COLS=3><UL>
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>alloc.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>ap_base64.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>ap_checkpass.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>ap_cpystrn.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>ap_fnmatch.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>ap_md5c.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>ap_sha1.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>ap_signal.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>ap_slack.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>ap_snprintf.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>buff.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>buildmark.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>ebcdic.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>gen_test.char.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>gen_uri_delims.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>htpasswd.c <i><small>(requires PUT10)</small></i>
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>http_config.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>http_core.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>http_log.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>http_main.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>http_protocol.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>http_request.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>http_vhost.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>logresolve.c <i><small>(requires PUT10)</small></i>
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_access.c <A HREF="#notes"> <i><small>(see note 1)</small></i></A>
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_actions.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_alias.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_asis.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_auth.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_auth_anon.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_autoindex.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_cern_meta.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_cgi.c <i><small>(requires PUT10)</small></i>
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_digest.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_dir.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_env.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_example.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_expires.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_headers.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_imap.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_include.c <A HREF="#notes"> <i><small>(see note 2)</small></i></A>
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_info.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_log_agent.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_log_config.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_log_referer.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_mime.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_mime_magic.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_negotiation.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI><A HREF="http://hpwww.ec-lyon.fr/~vincent/apache/mod_put.html">mod_put.c</A>
03831d35f7499c87d51205817c93e9a8d42c4baestevel <i> <small>(third party module)</small></i>
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_proxy.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_setenvif.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_speling.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_status.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_tpf_shm_static.c <i><small>(third party module, requires PUT10)</small></i>
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_unique_id.c <i><small>(requires PUT10)</small></i>
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_userdir.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_usertrack.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>os.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>os-inline.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>proxy_cache.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>proxy_connect.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>proxy_ftp.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>proxy_http.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>proxy_util.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>regular expression parser
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>regular expression test tool <i><small>(requires PUT10)</small></i>
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>rfc1413.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>rotatelogs.c <i><small>(requires PUT10)</small></i>
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>util.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>util_date.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>util_md5.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>util_script.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>util_uri.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel </UL></MULTICOL>
03831d35f7499c87d51205817c93e9a8d42c4baestevel <A NAME="notes"></A><b>Notes:</b>
03831d35f7499c87d51205817c93e9a8d42c4baestevel <ol>
03831d35f7499c87d51205817c93e9a8d42c4baestevel <li>Use of mod_access directives &quot;<tt>Allow from</tt>&quot; &amp; &quot;<tt>Deny from</tt>&quot;
03831d35f7499c87d51205817c93e9a8d42c4baestevel with host <i>names</i> (verses ip addresses) requires TPF version 4.1 PUT10
03831d35f7499c87d51205817c93e9a8d42c4baestevel <li>CGI execution requires TPF version 4.1 PUT10
03831d35f7499c87d51205817c93e9a8d42c4baestevel </ol>
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevel<H3>Components/modules not yet supported on TPF:</H3>
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevel <multicol COLS=3><UL>
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>htdigest.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>lib/expat-lite
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_auth_digest.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_rewrite.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_vhost_alias.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel </UL></MULTICOL>
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevel<H3>Components/modules that don't apply or that probably won't ever be available on TPF:</H3>
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevel <multicol COLS=3><UL>
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>ab.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>ap_getpass.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_auth_db.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_auth_dbm.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_auth_db.module
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_mmap_static.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>mod_so.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>suexec.c
03831d35f7499c87d51205817c93e9a8d42c4baestevel </UL></MULTICOL>
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevel<A NAME="porting_notes">&nbsp;</A>
03831d35f7499c87d51205817c93e9a8d42c4baestevel<H2 align=center>Porting Notes</H2>
03831d35f7499c87d51205817c93e9a8d42c4baestevel<P>
03831d35f7499c87d51205817c93e9a8d42c4baestevel <H3>Changes made due to differences between UNIX and
03831d35f7499c87d51205817c93e9a8d42c4baestevel TPF's process models:</H3>
03831d35f7499c87d51205817c93e9a8d42c4baestevel <UL>
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI><STRONG>Signals</STRONG>: On TPF a signal that is sent to a process
03831d35f7499c87d51205817c93e9a8d42c4baestevel remains unhandled until the process explicitly requests that signals
03831d35f7499c87d51205817c93e9a8d42c4baestevel be handled using the <CODE>tpf_process_signals()</CODE> function.
03831d35f7499c87d51205817c93e9a8d42c4baestevel Additionally, the default action for an alarm on TPF is to take
03831d35f7499c87d51205817c93e9a8d42c4baestevel an OPR-7777 dump and exit. (On UNIX the default is the equivalent
03831d35f7499c87d51205817c93e9a8d42c4baestevel of <CODE>exit()</CODE> with no dump taken.)
03831d35f7499c87d51205817c93e9a8d42c4baestevel These differences necessitated a few modifications:
03831d35f7499c87d51205817c93e9a8d42c4baestevel <BR><BR>
03831d35f7499c87d51205817c93e9a8d42c4baestevel <UL>
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>bypass the use of <CODE>ap_block_alarms()</CODE> &amp;
03831d35f7499c87d51205817c93e9a8d42c4baestevel <CODE>ap_unblock_alarms()</CODE>
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>add <CODE>tpf_process_signals()</CODE> calls
03831d35f7499c87d51205817c93e9a8d42c4baestevel <LI>add <CODE>select()</CODE> calls to prevent blocking.
03831d35f7499c87d51205817c93e9a8d42c4baestevel </UL>
03831d35f7499c87d51205817c93e9a8d42c4baestevel <BR>
03831d35f7499c87d51205817c93e9a8d42c4baestevel </UL>
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevel <H3>Find that function...</H3>
03831d35f7499c87d51205817c93e9a8d42c4baestevel <P>Some simple functions &amp; definitions initially needed to be added
03831d35f7499c87d51205817c93e9a8d42c4baestevel on TPF, such as <CODE>FD_SET()</CODE>.
03831d35f7499c87d51205817c93e9a8d42c4baestevel We've put these in src/os/tpf/os.h for now.
03831d35f7499c87d51205817c93e9a8d42c4baestevel </P>
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevel <H3>EBCDIC changes:</H3>
03831d35f7499c87d51205817c93e9a8d42c4baestevel <P>TPF-specific conversion tables between US-ASCII and
03831d35f7499c87d51205817c93e9a8d42c4baestevel EBCDIC (character set IBM-1047 to be exact) were created
03831d35f7499c87d51205817c93e9a8d42c4baestevel and put into ebcdic.c in the src/os/tpf directory.
03831d35f7499c87d51205817c93e9a8d42c4baestevel </P>
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevel <H3>Miscellaneous, minor changes:</H3>
03831d35f7499c87d51205817c93e9a8d42c4baestevel <P>Various minor changes (such as casting) were made due to
03831d35f7499c87d51205817c93e9a8d42c4baestevel differences in how some functions are implemented on TPF.
03831d35f7499c87d51205817c93e9a8d42c4baestevel </P>
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevel<HR>
03831d35f7499c87d51205817c93e9a8d42c4baestevel<CENTER>[&nbsp;<A HREF="#top">top</A>
03831d35f7499c87d51205817c93e9a8d42c4baestevel &nbsp;|&nbsp;<A HREF="#configuration_files">Configuration Files</A>
03831d35f7499c87d51205817c93e9a8d42c4baestevel &nbsp;|&nbsp;<A HREF="#whats_available">What's Available</A>
03831d35f7499c87d51205817c93e9a8d42c4baestevel &nbsp;|&nbsp;<A HREF="#porting_notes">Porting Notes</A>&nbsp;]
03831d35f7499c87d51205817c93e9a8d42c4baestevel</CENTER>
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevel</BODY>
03831d35f7499c87d51205817c93e9a8d42c4baestevel</HTML>
03831d35f7499c87d51205817c93e9a8d42c4baestevel