[Xitami] Xitami/5 - new project announcement

Paul Reid preid at rci.rutgers.edu
Tue Jan 6 01:06:01 CET 2009


Interesting, but: why do we need another HTTP server?

 > we need a small, tough server

OK. I'll suggest that Apache is reasonably tough and small enough to run 
on very modest machines. But Apache is far from "unhackable". The core 
is getting fairly low-bugs, but it is so feature-rich that it invites 
probes at every keyhole.

 >  FastCGI, SCGI, Proxying, URL Rewriting

Adding all this stuff (even having the interface to add stuff) tends to 
increase hacks and crashes. So what is the goal: tight or fancy? I think 
it is whatever Pieter says it is, for his needs.

 >  It will run without ever crashing.
 >  Xitami constantly crashes ...I had to run Always Up to restart it

Like Hogan, my Xitami (and my Apaches) "still runs flawless here".

 > seems stable on a minimal XP installation - runs for days without errors.

My webservers NEVER go down, except power-loss and monthly Win Update 
re-starts. Mostly bare installations of Win-2003 (which is nearly XP 
without frills).

One is still on WinNT4, and currently show 3,225 hours (134 days) 
uptime, the last power-failure.

Frequent crashing suggests that you have another application which is 
trying to grab Xitami's port, or something tricky like bad RAM.

 > CGI is important ... explain why you felt it was easier in Xitami 
than in other web servers?

Historical: Back in 1995 I was told to use MS PWS. It works. It had a 
few sample "CGI-like" applications written to an MS proprietary 
interface. Enabling common CGI required hacking both PWS settings and 
Registry entries, and was strongly discouraged. (I think the real goal 
was to make you buy MS-brand programming tools.) I used PWS for a year 
and never got CGI working.

I got a spare box w/2MB RAM. This was ample to run Win3.1 and Xitami. 
(Incidentally, it was a fine fast server but a terrible slow browser.) I 
read the Xitami docs, realized CGI was just a EXEC call, and wrote a DOS 
BAT file which output "Hello World!"... 20 minutes from reading the docs 
to working CGI. Overnight I wrote a filter EXE with QuickBasic (DOS, not 
Windows!) and it worked right-off. Only the 64KB limit in QB forced me 
to VB, and yes the sample VB code in the Xitami package helped me make a 
non-Visual VB filter.

That was over a decade ago. PHP is a nasty hack but useful. PHP has been 
coded around Apache bugs, particularly environment variable names. 
Sooner or later, most of my servers hit a place where a specific PHP 
script would not work with Xitami but worked first-try with Apache. I 
detest Apache's mud-pit INI file, but hey I can usually flog it into 
doing what I need. And FWIW, that NT4 machine up for 134 days is running 
two copies of -Apache-, just as solid as when it ran Xitami.

 > CCC: Cascading Config Configuration!

Yes, the murkiness of Apachi with multiple INI files is dreadful. 
Instead I run one file which takes days to scroll through......

 > I also like the way Xitami assumes it's an executable, by looking at 
the directory.

In "cgi-bin" context, Xitami uses much the same logic(?) as MS-DOS 2.0. 
You type "123" at the command line, DOS looks for 123.EXE, 123.COM, 
123.BAT in the current directory (and then along PATH). When it finds 
one, it does not rely on the EXE extension: the file must have an MZ 
header and a non-null pointer into code to invoke the EXE loader. (BAT 
files have to be texty; COM files have to be run blind.) Xitami on DOS 
does have another trick: if a script explicitly points to a directory 
which does not exist, Xitami will search down PATH. This handles the 
case of a unix-standard script run on a DOS box where directory 
conventions are different, and usually does the right thing.

 > the console version?  Making win32-specific services and GUIs is a 
lot of work.

There is general need for a "service". It can load before user log-in 
(some of my boxes, I don't touch for a year at a time). It has some 
extra privileges relative to a user-space program. Vista tends to try to 
be very strict about user-space apps but has to cut some slack for 
services. (OTOH a misbehaving service can do more damage to the rest of 
the system.)

GUI, beyond a webpage to set settings, is not needed. Or let some 
customer demand (and pay for) it.


-- 
Paul Reid
System Administrator
Music Department
Mason Gross School of the Arts


More information about the Xitami mailing list