1.介绍
TUX是一种有GPL(GNU General Public License )许可的基于内核的Web服务器。
目前它还只能提供静态的网页服务,只有和内核区模块,用户区模块,以及一般的用户区Web服务器后台一起应用的时候才提供动态的内容服务。一般用户区的Web服务器不需要为了适应TUX而改变很多地方。然而,用户区数据段代码必须要有一个通向TUX的系统调用的接口。
虽然动态的内容服务现在增长的很迅速,但是也必须要提供静态的内容服务。如,所有的图片文件就都是静态的。TUX能给在Linux的内核里提供非常高效率的静态内容服务,就想在内核里运行的NFS网络文件系统服务一样。
TUX也有处理动态内容的功能。TUX模块用网页缓冲存储动态内容的对象。当一个动态的请求到达的时候,一个TUX的模块就发送会一个联合的动态请求并缓冲这个请求。这就是TUX的零拷贝缓存校验的结构。(建议TUX模块不许运行在用户区,虽然他们也可以运行在内核区。)
这个新的动态内容的处理需要一个新的API接口。当前的CGI的API接口不能充分的用在TUX的API上。因此,当前的CGI程序为了使用TUX就要修改当前的程序。假如CGI程序不需要增加TUX的速度的话,TUX也可以把它安一般的CGI来处理。要实现这个功能就要用TUX的CGI模块。TUX也可以处理复杂的CGI或是其他的请求,这要通过它把请求重定向到另外一个web服务器后台程序,如Apache。也就是说,静态的内容,TUX模块,老的CGI程序,以及为TUX Web服务器编写的特定的程序都可以在TUX这个主服务器里运行。
一句话,TUX和其他的Web服务器的区别和TUX的好处包括:
TUX是作为Linux的内核2.4.x或更高的一部分来运行的,另外一部分可以做为用户区来运行。
TUX缓存部分的TCP校验并用它们来加快网络数据传输速度。
用一个特定的网络卡,TUX可以从页面缓存定向分散的DMA直接到网络,这样就避免了数据的拷贝。
当TUX不知道如何去处理一个请求或是接受到一个请求不能去运行的时候,它一般会把这个请求传送到用户区的Web服务器后台去处理它。一个典型的用户区Web服务器就是Apache。
2.TUX 2.0的新功能
TUX 2.0是从TUX 1.0升级成的,仍然保守着与用户区模块的兼容性。
增加的功能包括:
真正的零磁盘读拷贝,TUX1.0是放到一个临时的缓存里的。
生成网络写的零拷贝。
零拷贝解析。
其他新功能:
提高用户去功能模块的支持。
虚拟主机的支持,它不限制虚拟主机的数量。
CGI可以绑定到特定的进程
一些BUG的修复。
3.系统的基本需要
TUX需要基于2.4.x内核或是更高版本的系统。
基于X86的服务器。
交替的Web服务器如Apache来处理不知道的请求
当前的限制:
内核模块只支持服务器端。
TUX只在x86的Linux平台上测试过。
TUX能请求其他的Web服务器如Apache来处理请求。在当前的版本,它对回滚不是处理的很好。