You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by "Roy T. Fielding" <fi...@avron.ICS.UCI.EDU> on 1995/10/15 00:14:27 UTC

Re: Operating System Independence

My question is: why is OS independence desirable for a server?
I mean Unix + Vax + Mac + Win ... instead of just Unix.

Seriously, at some point we will want to profile the hell out of the
beastie and streamline the server operations as much as possible.
Trying to do that with abstract interfaces to system functions just
doesn't work.  Instead, I'd recommend modularizing the server into
units that can be either OS-dependent or OS-independent.  Those that
are OS-independent can be shared and the rest kept as separate
versions per OS.

We already have most of the modularity -- we just haven't applied it
to things like the URL <-> filespace mapping.  However, things that
will remain OS-dependent are pervasive: process control, uid handling,
socket handling, filespace operations, memory allocation, scoreboard
control, CGI, and even the configuration file(s) -- in other words,
just about everything Apache does that isn't in an optional module.

Now, I think it would be an interesting exercise to see how much of
the server can be made OS-independent, as long as it doesn't include
Mac and Windows*.  I know that those two would be hell, and there just
isn't any value in doing the port (Chuck and Bob have already covered
those platforms with servers designed specifically for those OSes).
I'm sure someone will try anyway, but it won't be going in the core
code unless it has no impact on performance for other platforms.

In any case, I think it would require that the whole server development
be forked, and I don't think we are ready for that yet.  Instead, as
soon as 1.0 is shipped, I'd like to run an auto-formatter through the
source code and then get the entire group to work on nothing but
documentation and comments for a week.

Hmmm, I guess what we should do is create a list of everything we
want to do after 1.0, and then decide what the group priorities
should be.  It's possible that everyone will want to go off and work
on private versions for a while, or maybe the opposite.  I don't know.

.....Roy