免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1817 | 回复: 0
打印 上一主题 下一主题

打开ZRUSB看细节 [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-30 12:39 |只看该作者 |倒序浏览

呵呵,估计有很多人比我和我的同事们都关心ZRUSB里面到底是个什么东西!
这个东西面世一年有余了,当初我和同事们谁也没有想到ZRUSB竟然变成现在这个样子。
如果你不关心ZRUSB内核就不用看下面的东西了。
1 ZRUSB代码来自何方
ZRUSB这么多的代码工作量就是有10个顶尖高手也不可能几天搞完,
所以ZRUSB的代码来自SCO OpenServer 5.0.7,但不能死搬5.0.7的代码,
哇噻,你盗版啊!
(不要这么着急,且听老夫慢慢道来)
实际上可能有人问了, 5.0.6不是有个USB的补丁了,为什么不参考5.0.6的?
5.0.6内核的确和5.0.5类似,同事看过基于netbsd的tls713呢,
感觉5.0.6的USB补丁就是参照netbsd最早的USB模块做的, 的确也很原始,
SCO自己都放弃了,我们就没必要在这么老的东西上再耗时间了。
5.0.7和之前的版本在内核结构devsw上的差异,死搬5.0.7的代码不管用,
sco的说法是存在体系差别所以没有计划在5.0.5之前的版本提供,
实际个人的理解就是sco的源代码需要重新在5.0.5上稍做修改编译一下就ok了,
sco这样做属于为5.0.7让开市场,但我个人感觉没有奏效,很多单位还是5.0.5/5.0.6,
也可能是sco前期市场做的太好了,当初一个基本5用户license要卖到2万啊。
记得我看过一个linux社区的文章,有一句话英文原文记不得了,
大致指sco公司与sco系统的实际开发者之间的关系很遥远很诡异,
当时感觉这又是linux愤青的言论,
不过后来看了openserver内核很多代码感觉的确满眼都是其他公司提供的代码,
内核是从AT&T的,SCSI/网络等设备驱动是厂商提供的,
外围很多代码包括SMP里的CopyRight也是其他公司的,
就说5.0.7里面USB使用的这个UDI低层协议,署名的sco的人也只有2个人,
我个人感觉至少说明一点: sco openserver缺少开发力量,
书归正传,由于sco没有开放源代码,我们当时只好把5.0.7的内核反汇编看看了,
看内核一定要反编译/stand/unix,看/etc/conf/pack.d下面的东西都只是皮毛而已,
sco507内核反汇编出来的文本文件好在只有36.3M,
Ultraedit这个强大的工具还是能打开看看的,
只是行数稍多一些,73万7千9百50行
分析2进制目标代码即使有语法分析工具也的确算是个苦力活,很枯燥,
总之随时都有放弃的打算,各位中肯定也有人有类似的体验,
现在想想这哪是人干的活啊!
把相关的数据结构涉及的代码按照5.0.5的devsw结构一一修订过来,
然后把5.0.5内核缺少的关联代码手工添加上去,
这样就行了,的确,这样就能用了,
但是这样岂非盗507的版啊,
是啊,我也认为不能做盗版!
经过咨询专业人士我们决定:
(1 把修改过的SCO函数从修改过的代码中都拉出来声明一下,
   表明只有这些才是我们自己的劳动成果
   (在ZRUSB版权登记的时候登记的也是这些内容)
(2 凡是参照SCO的文本都在首行声明一行SCO OpenServer Customer Only,
   对于这些代码我们放弃所有权利,这些是SCO的,免费归SCO客户好了
2 什么?还要收米
说白了,没有米,公司不让我们继续干,没有工资也就没有现在的ZRUSB了
由于我在公司资格太老,能以老卖老,所以当初推ZRUSB的时候我的个人行为就很多了,
不过既然收米,总的要有个收米的样子,总要个客户认证啊,就选网卡MAC认证吧,
MAC地址不是能改么?(我家里的机器就是天天改MAC逃网检的,这个我当然知道了)
可以ghost的?(软件很少有公司小气到防ghost的,没必要防硬盘拷贝)
现在说白了,我当初的心态好比一个厨师努力做了一顿饭后的感觉,
收米多少压根才不是我考虑的内容啊,能否有人捧场给个面子才重要,
因此当初定的价格是一个注册号7毛5,收到第一笔50大样的时候很高兴哦,
一高兴就请伙计们吃饭花了N多个50大样。
3 网络版驱动
新人老是问我为什么叫网络版本的驱动,到底有什么涵义,
我有耐心的时候就答复原来装这个要靠用户装个网卡配个IP地址然后做个MAC认证
由于必须先装网卡所以叫网络版,
没有耐心的时候就说现在要到网站上办理注册手续所以叫网络版,
怎么后来变成了网站上办理注册手续?
说来话长,话说网络版驱动收了两个月的米,收的米没有送给电话公司的多,
测试一个月的东西放到全国出现问题也是考虑之中的事情,
但99%的问题居然都是耐心地答复客户怎么安装网卡的,
K,有没有天理,废掉MAC改用系统ID算了
4 软盘版驱动
ZRUSB网络版从技术角度上怎么讲也不能算高附加值的,注册认证手续也烦,
大多单位的客户都不认可用,既然收了人家的米,那么要做就要有些特色,
学习杀毒盘的做法做个认证软盘吧,这样软盘版本就出世了,
没有新鲜内容?
加上FAT32工具,能读写FAT32分区算了,当然硬盘里的FAT32分区也能读写了
5 软盘版驱动的蜕变
从ZRUSB驱动面世之初一直就有个阴影,就是很多客户反映他的U盘不能用,
看了半天代码也没有发现有何毛病,但手边的U盘又重现不了客户的现象,
成了一个心病。
05年初春节长假,一次朋友闲聊说他的一个U盘插到window上好好的,
但是一插到uw713上拔了之后就当机,
呵呵总算碰上个不能用的U盘,太好了,隔日就把他的U盘取回来就看,
果然如此,window下用着的确正常,可uw713下插了的确当机,
5.0.7下插了也当机阿,换linux看看找一台freebsd插了没有当但提示一大堆错误信息,
难道这个U盘厂家是微软的卧底?没有道理啊
还是先去广大fans支持的linux社区看提示错误是什么东西吧,
结果很郁闷,原来这个设备属于retardate!
简单的说,USB设备插了主机按道理并不知道你插的是什么东西,所以要先沟通一番,
比如:
主机会问:谁啊?
USB答: 存储设备
主机然后会问:能写么?
USB答: 能
主机然后会问:多快啊?
USB答: 1.1
...
如此这番之后主机就知道怎么弄了
但这个U盘属于quirk(我个人是查找这个问题的时候才知道quirk这个词的)
它的问答属于另类:
主机问:谁啊?
USB答: 能
主机问:能写么?
USB答: 能
主机问:多快啊?
USB答: 能
...
我靠,主机不被搞死才怪,我真是由衷的赞叹比尔盖茨的程序员!
问题找到了,心情更郁闷了,
看了linux源码这样的quirk处理要成百上千行,
我加上几个同事累死也改不完这么多代码,
解决办法:
1 把sco内核换成linux的
2 召集人马把zrusb有关代码分解了重写
第1种办法肯定不行了,没看linux和sco的官司还正在死里打,
只能第2种办法了,不过重写新代码要比修补苦的多,更费时间,
上班时间是要给公司创造利润的,只能业余时间慢慢做了,
漫漫长夜里,不知不觉的过了春天,送走了夏天,终于到了秋天,
最后总算结果了,
5.0.7下打了定做的补丁能用这个U盘了,7.1.3和osr6也ok了,
经过一轮初步测试都ok了,
借了朋友这么长时间的U盘虽然是朋友的东西,但借的现在也该还了,
打电话给朋友,他居然还一直惦记着我借了他的东西!
6 冬天来了
冬天来了,个人感觉sco也和窗外的树一样,还有些枝叶也是枯黄的多,
按照SCO官方的说法,
过了今年底5.0.6也expired了,
明年底5.0.7出最后一个补丁集合mp5之后也要慢慢退出舞台了,
osr6我感觉实际和openserver没有太多的关联,能否熬过这寒冬要看sco的造化了,
凭心而论,干了十几多年的unix,接触最多的还是openserver,
可对之了解越深,越感觉sco这个老树终究敌不过linux,
linux毕竟是一种希望,一个属于程序员的真正希望。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/1596/showart_59423.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP