微软交流社区

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 137|回复: 2

当年在Linux上运行Windows程序的豪杰兼容层技术

[复制链接]

4

主题

6

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2023-1-15 11:04:16 | 显示全部楼层 |阅读模式
由于回答被系统屏蔽,现转至文章继续。
相关问题,一些资料可见问题描述:
原回答内容,为避免再次屏蔽,部分措辞有修改
<hr/>先自问自答一波。其实扒这些,也是很好奇这个兼容层究竟是什么,与Wine有多大差异。好奇如果这技术继续发展,又会是怎样的呢。
猜测

如果我的感觉没错的话,这个豪杰兼容层就是基于Wine的二次开发。可能只是编译了豪杰自家软件所需的模块,对Wine进行了精简。 鉴于梁肇新也是有“前科”的,我才有这样的猜测。超级解霸英文名SthVCD,它的第一和第二个版本是与金山合作发行的,被冠以“金山影霸”的名称发行,从第三版开始以“超级解霸”的名称发行,所以超级解霸发行后,版本号从3.0开始。金山影霸时期,SthVCD使用了Xing的MPEG解码库。后来超级解霸使用了开源的Mpeg2Dec库用于实现DVD的软解,并标称是自主技术。
当然,目前我也没有能力去证实这种说法的准确性。虽然2003年就流传了SthVCD 2.0源码,那时候一些技术论坛上也有说是套XingMPEG DLL和抄MPEG2DEC的事情。
不过,看完上面那篇回答这之后,梁将豪杰兼容层标榜为自主技术并申请专利(虽然后来被认为是无效专利),这并不让我感到意外。
扒一扒超级解霸Linux版

关于超级解霸Linux版,有UP主做了一段视频:
可以看出,在Linux上运行的超级解霸3000就是Windows版本的。


早期的Wine(Pre-0.9)用起来还是挺复杂的。需要手动创建Wine的Prefix,并且连配置文件都需要自己编写。当然Wine源码包的文档里也提供了参考。这里可以下载到2004年初的Wine源码:
更早版本还可以在Wine的GitHub镜像里找到tag
我尝试在RedHat Linux 9.0环境下编译了这份源码。梁的豪杰兼容层,从二进制中包含的字符串来看,可能是在RedHat Linux 7下编译的,豪杰官网上显示的测试图是红帽8系统的。
梁的超级解霸Linux移植版也很不守规矩,安装需要root权限,安装位置也写死了 /herosoft ,跟Windows下的习惯简直一模一样。Windows下的豪杰软件默认安装在硬盘根目录HEROSOFT目录中。移植到Linux后,并没有入乡随俗,安装到/opt下。
从/herosoft/bin下看,可执行程序只有三个,class、classerver、shelllink,其余大多是DLL文件。这三个可支持程序也对应了Wine的wine、wineserver、wineshelllink。其中class程序和超级解霸Linux版的安装程序HeroSP是一样的。它内置了一套配置文件,而这个配置文件其实和Wine当时的配置文件是一样的,不同的地方是删去了注释部分,以及所有Wine、wine、WINE字符串替换成了相应的class。配置文件和注册表文件对比:








配置文件与注册表文件高度相似。
兼容层的注册表文件里也写了豪杰全家桶的注册表信息。可能是怕用户安装软件后,安装器没写注册表然后导致不能运行吧。
甚至豪杰兼容层本身没有带Mine(扫雷),注册表中也有ClassMine(修改自WineMine)。



注意观察左下角几个图标,超级解霸最小化到了左下角图标中。这类似Windows 3.x的习惯。



关于兼容层,声明了“豪杰公司2003-2004版权所有”。FlashGet的托盘图标在左上角。

可能是基于更早Wine版本修改,用了自己的窗口装饰和窗口管理。最小化窗口是缩小到桌面左下角图标中,这是Wine开启虚拟桌面后的表现,是来自Windows 3.x的习惯。系统托盘图标在左上角,直接覆盖了原有桌面,而且是置顶显示的。我编译的2004年1月份的Wine代码,使用的是系统桌面环境的窗口装饰和窗口管理。



Wine运行豪杰超级解霸安装程序,使用的是GNOME的窗口装饰和窗口管理



经典的“关于Wine”的界面。豪杰兼容层修改过此界面。

后续有空再附上一些两者对比的内容。
也可以自己下载一份豪杰超级解霸Linux版本,在早期Linux发行版上安装。
豪杰超级解霸3000跨平台(Windows/Linux)个人测试版V1.0.0下载
豪杰超级解霸
访问这个链接进行下载时留点心,被安装了全家桶可别怨我没提醒。

<hr/>
吐槽时间

抹掉Wine的痕迹,所有Wine痕迹替换成Class,还不忘抹黑一把Wine。
传统技术路线2——Wine模拟器法。Wine模拟器法是在Linux环境上模拟出一个Windows环境,试图支持在Windows下运行的应用软件,整个开发环境基于Linux,是站在Linux操作的角度来开发的,它根本没有办法顾忌到Windows用户的使用习惯,受Linux平台的限制,移植后功能出现丢失,性能下降,稳定性很差,安装困难,无法实际应用,只能作为Linux用户手中的玩物。  与传统技术路线相比:利用豪杰兼容层进行产品移植后与原来在Windows环境下相比,“功能不丢失、性能不降低、操作模式不变、稳定性更强”, 原来Windows下的开发人员即可开发,解决了“Linux专业开发人员太少,Linux产品开发周期长,开发成本高,用户使用不习惯”等经营性难题,发展前景非常广阔。
梁肇新把Wine(Wine Is Not an Emulator)变成了Wie(Wine Is an Emulator),还用Wine的原理给自己的兼容层申请专利。梁可能是我们第一批“xx一开源,xx就自主”的践行者吧。而且90年代还有拿Mpeg2Dec库当自主的前科。当时Internet方兴未艾,人们普遍将电脑的概念等同于DOS/Windows,不知道国外还有开源运动,梁在技术上保持与国际接轨,真是难能可贵。
后面有机会再附上当时某报纸对梁肇新的采访《豪杰掌门人:游刃于技术与管理之间》(2001年12月在豪杰官网也有),以及其他的一些资料。2003年梁开始闭关,改行研究风水,据说还出版了风水相关著作。2013年据说还移民到了新西兰,把源码交给蒋涛,让他开源。不过现在似乎也没看到源码,现在能找到的只有上面提到的SthVCD 2.0源码,还是十多年前就放出来的。
当年的相关资料

豪杰兼容层网页“herosoft跨平台专题页”(Archive)

https://web.archive.org/web/20061230104828/http://www.herosoft.com/hero_linux/hero_linux.php


《豪杰掌门人:游刃于技术与管理之间》 + 一些吐槽

这篇文章,在网上没找到完整的,只有东拼西凑的部分。即使是当年官网的链接,Archive上也没完全收录。
豪杰掌门人:游刃于技术与管理之间(一)_sanjiang的博客-CSDN博客
豪杰掌门人:游刃于技术与管理之间(4一6)
豪杰掌门人:游刃于技术与管理之间(7-8)_houyingjun的博客-CSDN博客
Linux是假技术?-CSDN社区
该报社编辑认为梁游刃于技术与管理之间,讽刺的是,豪杰的衰落,与梁的单打独斗与不善管理有很大关系。
当年梁肇新认为Linux是炒作起来的技术,火不了今年,就像之前炒RISC超过CISC、NC(可能是指Network Computer)取代PC一样。可见梁的短视,虽然当时能预言Linux能成功需要多大勇气。 (相关背景:Linux在1998-99年左右,在国内的电脑报刊杂志中比较火,被认为是有可能取代Windows的操作系统。如1999年《电脑爱好者》杂志中刊登的《Linux:自由之花含苞欲放》一文,可见当时国内媒体对Linux的态度。)
梁认为“一种技术要有前途,必须满足下面的三个要素:兼容性、开放性和标准性。linux的致命缺陷在兼容性上面。所以,我断定,linux不会有什么前途。”
由此可见,梁可能认为超级解霸是兼容性优秀,具有高度开放性,为业界树立标准的真技术。
2004年之后,可能是迫于公司亏损的形势,梁称这种假技术能保障信息安全,开发“豪杰兼容层”为信息安全贡献绵薄之力。不过这个“解决了’Linux专业开发人员太少,Linux产品开发周期长,开发成本高,用户使用不习惯‘等经营性难题,发展前景非常广阔”的真技术再无后续。可以想象,如果这技术授权给其他Windows软件厂商做Linux软件移植,会不会被扒出来是基于Wine的呢。
“奇怪”的现象:当年在Ubuntu中文论坛上,有人提问如何安装这个超级解霸Linux版(好像是2005年),回复都是说用mplayer、realplayer啥的,用什么超级解霸……
《梁肇新 远去的“豪杰”》

此文前部分内容大多与上面《豪杰掌门人:游刃于技术与管理之间》相似。
但是后面讲到了豪杰公司推出的MP4产品,以及梁大师开始研究风水的事情。
梁肇新:远去的“豪杰”_参考网



兼容层技术让 Windows开发登陆Linux

此文章就是梁写的。最初发表在《开放系统世界》2004年第4期的14-15页中。


看来他们在2000、2001年就开始尝试移植了。当然,还有兼容层技术的未来展望。看来豪杰当时是想创建一个Wine的fork,自己搞一套,可惜的是不讲武德,没按LGPL规矩来。当时若是放下面子,将fork开源,按照开源那套来,或许还会有后续。豪杰依然可以卖商业版的兼容层,背后又有社区支持。
看到这篇文章,或许我应该编译一份2001年左右的Wine代码了。可能与2004年初的有较大差异。



兼容层技术让 Windows开发登陆Linux
豪杰超级解霸3000 Linux版

当年介绍其安装及使用的一篇博文
豪杰超级解霸3000Linux版-心跳男人-ChinaUnix博客
2002年央视关于超级解霸被盗版问题的访谈节目

http://www.cntv.cn/lm/123/19/73113.html

《中国IT业发展案例剖析之--豪杰解霸》

一篇将超级解霸当做案例来分析的文章
欧侃说软件:已死的Linux非开源应用

他认为“豪杰超级解霸:这款被大家指责的产品,在我看来是一种很好的技术实践。它所带来的兼容层技术远比现在半死不活的兼容内核实在。”
他提到的龙井兼容内核项目现在坟头草也有N米高了吧。之前是立志于将Windows兼容层做进Linux内核中,让Linux能兼容Windows的软件和驱动。其实直到0.3版本都是把wineserver做进内核,Windows软件兼容还是靠Wine实现,只是把wineserver作为内核模块,以提升那么一点点的性能。后来1.0rc版开始,干脆给自己找个台阶下,也不再把兼容Windows驱动作为目标了。


不过据说他们也给ARM上用Wine运行x86 Win32程序的技术申请了专利。为此,毛德操(龙井兼容内核项目负责人)还写了篇文章《开源软件和知识产权》。
不过还是被爆出“抄袭门”


有兴趣的话,可以看看0.3.2版的龙井兼容内核源码(镜像):
龙井1.0rc2代码,搜一搜应该也还能找到。
回复

使用道具 举报

0

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2023-1-15 11:04:53 | 显示全部楼层
说Linux的致命缺陷是兼容性真是搞笑,他是不是没听说过POSIX?[飙泪笑]
回复

使用道具 举报

2

主题

5

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2023-1-15 11:05:31 | 显示全部楼层
再说个题外话,在某些人的不懈努力之下,“开源”在中文语境中已经变成“公开源代码”而不是“开放源代码”了,未来还有变成“部分公开”的潜力。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|微软交流社区

GMT+8, 2025-1-7 04:39 , Processed in 0.110957 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表