Linux内核提供的Http服务器TUX,完全工作在Kernel mode,也就是工作在驱动层的Http服务器,工作效率高的惊人,这是学习linux网络内核很棒的案例。
//========================================
你知道很多人强烈要求取消吗?LINUX现在已经不稳定了,他们认为这会更加增加不稳定性,而且HTTP服务器(静态文本)的瓶颈在于带宽。
比如:3721为什么总是杀不掉,就是使用了文件过滤引擎在自我保护。
//========================================
能讲讲3721和cnnic在文件保护方面的各自的实现吗?
除了那些硬件开发的,很少人在写实现型的驱动,大部分人都采用和微软提供的标准接口,在微软的Windows内核上加上一个Filter,这样就诞生了目前这么多的应用,虚拟盘,杀毒软件,透明加密解密,系统还原,防火墙,入侵检测,ISCSI,还原精灵等等。
//========================================
我们一同事就是原还原精灵的开发者,我以前的同事就做过虚拟盘、杀毒软件、透明加密、防火墙...,不过似乎还原精灵和防火墙大都不是用什么标准接口。
防火墙驱动,并不是要代替ISO7层中的某一层,而是按照微软提供的标准方法,为某一层做过滤性挂接,从而实现包过滤的效果
//=======================================
一般的防火墙驱动都不是用微软提供的标准方法。
事实上,所谓完成端口效率高,说得就是内核网络实现比应用层实现效率高,仅此而已,大不必为那些概念所迷惑。
//=======================================
NO完全是这样子的,完成端口主要是导出了一个工作队列的概念(LINUX下内核有类似的实现),说白了,就是IO操作中最后的DeviceIoControl的最后是用一个EVENT等待内核操作的完成(因为NT内核是异步的),这时候线程就要挂起。
win32开发用的都是底层接口,真正的实现是在kernel mode完成的,完成端口把windows内核的dpc发挥到了最好,文件系统也有完成端口,readfile和wrietfile就有完成端口,而且如果你理解windows内核的话,可以直接用readfile and writefile来对一个socket来进行读写
//=============================================
readfile会被映射到send,writefile会被映到recv,没啥子差别。你其实还可以直接发消息给afd.sys这个驱动。完成端口跟DPC没啥差别,并不是文件系统有完成端口,而是deviceiocontrol支持完成端口。
例如:NC,3G,IPV6,Home media center,wireless network,巨头们超前多少年就已经提出了这样战略制高点,并成立战略联盟。同时多少二流的公司在努力争夺概念之后的标准?多少三流的公司在努力实现标准之后的具体设计?中国人目前在3G上的TD-WCDMA,在wireless network上的WAPI,已经是创纪录的进步了,因为在这方面终于步入二流了。CNNIC提交的中文上网的RFC标准刚刚被批准,大家数数看,除此之外成千上万的指导技术实现的RFC标准,有哪些跟我们中国所谓的高手有半点的关系?[
]
//====================
说这些狗屁楰有个鸟用啊。
ancillary function driver for winsock(afd.sys)
|
transport for windows tcp/ip (tcpip.sys)
|
ndis library(ndis.lib)
ndis.lib是个啥东东啊?这个图是误导其他人的。
其实是tcpip.sys通过ndis框架(具体结构你肯定没仔细看过)传给miniport驱动的,你看ddk中有例子。
竟然有人说做驱动不稳定,比不过微软稳定云云,估计连微软都要苦笑了,它努力简化驱动框架,培养内核开发这么大的产业群,被几个做Delphi的讲的跟研究炸药一样,全世界俺们这么多人在吃内核这碗饭,准备吃这碗饭,不让你做Delphi的婆婆妈妈奉劝。
//==========================================
一个驱动没一两年功夫稳定,是不可能的,我前同事的透明加密解密做了四五年了,还没有完全稳定下来,你他妈的懂个屁啊。
google据说用了45万台服务器,每月的流量是7500万次访问,张先生去google能省下多少钱啊,节约型社会年内就有希望了啊?盛大还用买什么韩国人代码啊?直接发大财了啊,股价估计从16美金直飞500美金啊。
//=================================================
你知道什么是io瓶颈和网络瓶颈?
我给那个先生介绍一个生意哦,flashget卖给zcom是几千万现金加上zcom的几百万股票,无忌兄做的服务器支撑几百万人的长期链接,这要卖了可是做Delphi的又一大骄傲啊,几亿现金加几亿的股票,200一平方的房子都买得呀,即使不卖自己创业也能拿红杉的1亿美金的风投啊。
//==================================================
你去找找老蔡,看他要不要你。
libnet在国外举足轻重开源项目,CSICO的著名专家的项目哦,国内的安全小组也介绍过,中科院的学生在上面实现一个简单的TCP/IP栈的文章google里面全部都能搜到。snort是全球最著名的入侵检测项目,开源的,免费的,代码都可以看到,用的就是wincap来通讯的,
国内的网络执法官,国外的很多联动防火墙,网络克隆项目都用wincap来通讯。wincap可以发送链路层包,所以如果通讯的另一方是用网卡包驱动通讯的,用wincap是最好的选择。
//==================================================
在像网络游戏的应用中,根本没必要到这种地步来做。以前我们公司在裁剪过的LINUX用pcap做过网络防火墙,所有的包处理都自己处理。全部内存处理。在网络游戏里面这个地方根本不是瓶颈。
一次次的展示无知,是无畏吗?完成端口是为了减少线程?大家理解完成端口的能坐得住吗?对完成端口理解到这个份上,也是中国人的壮举啊。socket也可以用bind message来实现收发,只用一个线程就够了哦,咋就没有效率呢?
//====================================================
无知者无畏,你找完成端口的原代码自己去体会体会。
因为如果内核变了,它所承载的金字塔是什么呢?上千万的程序都要改写。因此内核开发非常重视这种修正,XP已经5年了,linux从2.4跳到2.6也5,6年了,WDM驱动框架13年了。熟悉了内核,你写一个win的驱动,很容易移植到liu上,真的不难啊,谁用谁知道!
//=====================================================
你试试把ntfs移植到LINUX下面看看。ntfs的nt4的原代码想必你有的。
我替内核开发正名,也想摘那些所谓高手的帽子,让大家看到,秃了就秃了,不用甩那几缕遮着。人家宋晓波听力障碍,也能说话,但是人家知道自己的优势在跳舞,所以能succeed.而我们的所谓高手,说那些不着边际的话,还极力维护之,丑态毕现,何必呢?
//===================================================
怀疑你有没有完整的开发和调试过一个内核驱动。