mirror of
https://github.com/apache/httpd.git
synced 2025-08-26 05:42:34 +03:00
Newly created files from the TPF port git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@82341 13f79535-47bb-0310-9956-ffa450edef68
223 lines
6.5 KiB
HTML
223 lines
6.5 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
<html>
|
|
<head>
|
|
<title>The Apache TPF Port</title>
|
|
</head>
|
|
|
|
<a name="top"></a>
|
|
<h1 align="center">Overview of the Apache TPF Port</h1>
|
|
<hr>
|
|
<center>[ <a href="#configuration_files">Configuration Files</a>
|
|
 | <a href="#auto_generated_files">Auto Generated Files</a>
|
|
 | <a href="#whats_available">What's Available</a>
|
|
 | <a href="#porting_notes">Porting Notes</a> ]
|
|
</center>
|
|
<hr>
|
|
<br>
|
|
|
|
<p>
|
|
This version of Apache includes changes allowing it to run on
|
|
IBM's EBCDIC-based
|
|
<a href="http://www.s390.ibm.com/products/tpf/tpfhp.html">TPF</a>
|
|
(Transaction Processing Facility) operating system.
|
|
Unless otherwise noted TPF version 4.1 PUT08 and APAR PJ25589 are required.
|
|
<br><br>
|
|
Refer to src/os/tpf/<a href="install.tpf.html">install.tpf.html</a>
|
|
for step-by-step installation instructions.
|
|
<br><br>
|
|
As this is the first cut at making Apache run on TPF,
|
|
performance tuning has not been done.
|
|
<br><br>
|
|
This port builds upon the
|
|
<a href="http://www.apache.org/docs/ebcdic.html">EBCDIC changes</a>
|
|
previously made to Apache.
|
|
<br>
|
|
</p>
|
|
|
|
<a name="configuration_files"> </a>
|
|
<h2 align=center>Apache Configuration Files</h2>
|
|
<p>
|
|
The distributed configuration files (httpd.conf-dist and
|
|
mime.types, both located in the conf subdirectory)
|
|
work on TPF with only a couple of operating system specific changes
|
|
to httpd.conf:<br>
|
|
<ul>
|
|
<li>ServerType needs to be "inetd" since TPF does not yet support
|
|
"standalone" mode.
|
|
<li>Performance considerations may dictate setting KeepAlive to "Off"
|
|
(the default is "On") or lowering the Timeout value from the default
|
|
300 seconds (5 minutes) in order to reduce the number of active ECBs on your system.
|
|
</ul>
|
|
</p>
|
|
|
|
<a name="auto_generated_files"> </a>
|
|
<h2 align=center>Automatically Generated Files</h2>
|
|
<p>
|
|
Some files that are automatically generated by Makefile on other platforms
|
|
are included in the src/os/tpf directory...
|
|
<ul>
|
|
<li>test_char.h
|
|
<li>uri_delims.h
|
|
</ul>
|
|
|
|
These files could not be automatically created for TPF because the
|
|
Makefile platform is not the same as the run-time platform.
|
|
(That is, you don't run Makefile on TPF itself.)
|
|
</p>
|
|
|
|
<a name="whats_available"> </a>
|
|
<h2 align=center>What's Available in this Version</h2>
|
|
|
|
(The Apache organization provides
|
|
<a href="http://www.apache.org/docs/">online documentation</a>
|
|
describing the various modules and components of the server.)
|
|
|
|
<h3>Components/modules tested on TPF:</h3>
|
|
|
|
<multicol COLS=3><ul>
|
|
<li>alloc.c
|
|
<li>ap_cpystrn.c
|
|
<li>ap_fnmatch.c
|
|
<li>ap_signal.c
|
|
<li>ap_slack.c
|
|
<li>ap_snprintf.c
|
|
<li>buff.c
|
|
<li>buildmark.c
|
|
<li>ebcdic.c
|
|
<li>http_config.c
|
|
<li>http_core.c
|
|
<li>http_log.c
|
|
<li>http_main.c
|
|
<li>http_protocol.c
|
|
<li>http_request.c
|
|
<li>http_vhost.c <a href="#note_2">*</a>
|
|
<li>mod_access.c
|
|
<li>mod_alias.c
|
|
<li>mod_asis.c
|
|
<li>mod_autoindex.c
|
|
<li>mod_cern_meta.c
|
|
<li>mod_dir.c
|
|
<li>mod_example.c
|
|
<li>mod_expires.c
|
|
<li>mod_headers.c
|
|
<li>mod_imap.c
|
|
<li>mod_info.c
|
|
<li>mod_log_agent.c
|
|
<li>mod_log_config.c
|
|
<li>mod_log_referer.c
|
|
<li>mod_mime.c
|
|
<li>mod_negotiation.c
|
|
<li>mod_setenvif.c
|
|
<li>mod_speling.c
|
|
<li>mod_userdir.c
|
|
<li>mod_usertrack.c
|
|
<li>os.c
|
|
<li>os-inline.c
|
|
<li>regular expression parser
|
|
<li>util.c
|
|
<li>util_date.c
|
|
<li>util_uri.c
|
|
</ul></multicol>
|
|
Please keep in mind that some major pieces are not yet in place including
|
|
standalone mode, pipes, password/group files, CGI scripts, and MD5 support.
|
|
<br>
|
|
<a name="note_2"> </a>
|
|
<br>
|
|
* virtual hosting requires TPF version 4.1 PUT09
|
|
|
|
<h3>Components/modules not (yet?) supported on TPF:</h3>
|
|
|
|
<multicol COLS=3><ul>
|
|
<li>htpasswd.c
|
|
<li>md5c.c
|
|
<li>mod_actions.c
|
|
<li>mod_auth.c
|
|
<li>mod_auth_anon.c
|
|
<li>mod_cgi.c
|
|
<li>mod_digest.c
|
|
<li>mod_env.c
|
|
<li>mod_include.c
|
|
<li>mod_mime_magic.c
|
|
<li>mod_proxy.c
|
|
<li>mod_rewrite.c
|
|
<li>mod_status.c
|
|
<li>mod_unique_id.c
|
|
<li>proxy_cache.c
|
|
<li>proxy_connect.c
|
|
<li>proxy_ftp.c
|
|
<li>proxy_http.c
|
|
<li>proxy_util.c
|
|
<li>rfc1413.c
|
|
<li>util_md5.c
|
|
<li>util_script.c
|
|
</ul></multicol>
|
|
|
|
<h3>Components/modules that don't apply or that probably won't ever be available on TPF:</h3>
|
|
|
|
<multicol COLS=3><ul>
|
|
<li>gen_test.char.c
|
|
<li>gen_uri_delims.c
|
|
<li>mod_auth_db.c
|
|
<li>mod_auth_dbm.c
|
|
<li>mod_auth_db.module
|
|
<li>mod_mmap_static.c
|
|
<li>mod_so.c
|
|
</ul></multicol>
|
|
|
|
<a name="porting_notes"> </a>
|
|
<h2 align=center>Porting Notes</h2>
|
|
<p>
|
|
<h3>Changes made due to differences between UNIX and
|
|
TPF's process models:</h3>
|
|
<ul>
|
|
<li><b>Signals</b>: On TPF a signal that is sent to a process
|
|
remains unhandled until the process explicitly requests that signals
|
|
be handled using the <code>tpf_process_signals()</code> function.
|
|
Additionally, the default action for an alarm on TPF is to take
|
|
an OPR-7777 dump and exit. (On UNIX the default is the equivalent
|
|
of <code>exit()</code> with no dump taken.)
|
|
These differences necessitated a few modifications:
|
|
<br><br>
|
|
<ul>
|
|
<li>bypass the use of <code>ap_block_alarms()</code> &
|
|
<code>ap_unblock_alarms()</code>
|
|
<li>add <code>tpf_process_signals()</code> calls
|
|
<li>add <code>select()</code> calls in buff.c to prevent blocking.
|
|
</ul>
|
|
<br>
|
|
</ul>
|
|
|
|
<h3>Find that function...</h3>
|
|
<p>Some simple functions & definitions needed to be added
|
|
on TPF, such as <code>FD_SET()</code>.
|
|
We've put these in src/os/tpf/os.h for now.
|
|
</p>
|
|
|
|
<h3>EBCDIC changes:</h3>
|
|
<p>TPF-specific conversion tables between US-ASCII and
|
|
EBCDIC (character set IBM-1047 to be exact) were created
|
|
and put into ebcdic.c in the src/os/tpf directory.
|
|
</p>
|
|
|
|
<h3>Miscellaneous, minor changes:</h3>
|
|
<p>Various minor changes (such as casting) were made due to
|
|
differences in how some functions are implemented on TPF.
|
|
</p>
|
|
|
|
<h3>Temporary changes:</h3>
|
|
<p>Lastly, we needed to bypass sections of Apache processing
|
|
since this first cut for TPF doesn't include
|
|
Standalone mode, pipes, forking, et cetera.
|
|
</p>
|
|
|
|
<hr>
|
|
<center>[ <a href="#top">top</a>
|
|
 | <a href="#configuration_files">Configuration Files</a>
|
|
 | <a href="#auto_generated_files">Auto Generated Files</a>
|
|
 | <a href="#whats_available">What's Available</a>
|
|
 | <a href="#porting_notes">Porting Notes</a> ]
|
|
</center>
|
|
|
|
</body>
|
|
</html>
|