httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "William A. Rowe, Jr." <>
Subject RE: Source code document?
Date Fri, 09 Jun 2000 14:56:03 GMT
> From: []
> Sent: Friday, June 09, 2000 9:39 AM
> > > The source code and high level description of the source code
> > > for Apache 1.3.6 has been published in the book called
> > > "Apache Server Commentary" published by Coroilis publishing
> > 
> > Would you recommend this for someone trying to get to grips 
> with 2.x, or is
> > the codebase too different?
> The code between 1.3 and 2.0 is very different in most cases.  The
> protocol handling is pretty much the same, but everything else has
> completely changed.  I do not recommend trying to learn 1.3 from this
> book.

Agreed :-/

> > Any other suggestions from anyone? I'm at the requirements stage of a port
> > to our internal POSIX runtime environment, and I'd appreciate any advice you
> > guys have! :)
> The only real way to learn Apache is by reading the code.  This is
> especially true for 2.0, because nobody has really gone through and
> documented all of the changes.  This stuff is getting documented slowly,
> but that effort has just started, and it will take some time to finish.
> If you are porting 2.0, just look at APR.  APR is probably the portion of
> 2.0 that is documented the best.  It should be a simple matter for you to
> port APR and let that take care of everything.

Over time, every obscure block of #ifdef THISPLATFORM is being migrated
APR, and that is where most portability lives, so Ryan is 100% on the mark
with this suggestion.

The second (mostly stable) direction you want to head is to the MPM's - in
src/modules/mpm/platform, since those are the platform specific workhorses
of Apache 2.0 - All that tangle of http_main.c from 1.3.x moved into their
own seperate quarters here.  So while you consider if your port aught to
use processes, threads, or whatnot, this is the second area you may need
to customize.  (If your posix compatibility is very close, then the pthreads
or prefork or another native unix mpm may work quite well for your port.)
But you can learn alot about how Apache serves requests by starting here.

Good luck, feel free to ask 'what do I try learning next?' after you read
over APR and MPM.  You are also invited to contribute back docs of what you
cover that isn't (well) documented.  


View raw message