位置:海鸟网 > IT > linux/Unix >

抓住机遇 构筑稳健的中文Linux系统4

三、修改Linux的核心,使其完全支持UCS

国际化就是为了解决本地化,它是由一个一个“本地化”组成的。本地化要遵循国际化,本地化完全遵循了国际化,本地化只需要解决输入法和增加字型了。本地化的标准组织应尽量把本地化所需的内容加入到国际化中,并尽量遵循国际化。做好本地化的工作,就是为了消除本地化。什么时候不需要再做本地化的工作了,那就说明本地化和国际化的工作做好了。

ISO 10646是彻底解决“代码壁垒”软件“千年虫”的方法。彻底实行ISO 10646就意味着放弃目前各国的字符集标准,包括中国的GB、美国的ASCII。完全实现UCS,就是在操作系统、高级程序语言、支持软件、应用软件、通信协议、网络都UCS化,即都可以支持UCS。而且一些相关硬件设备如终端、打印机也要支持UCS,因为基本ASCII的硬件设备会把UCS中的一些码值当成控制字符。这时整个系统都是完全国际化了,那时的本地化工作只是提供输入法和扩充字型(Font)。要彻底实行ISO 10646,首先应从操作系统开始做起,对我国来说就是从Linux开始做起。

UCS从1993年颁布至今已7年了,但进展不大。要完全国际化只能一步一步地走。第一步已制定了UCS,下一步就是在操作系统上完全支持UCS。然后各种软件、硬件都逐个完全支持UCS。因为操作系统是所有软件的基础。不动Linux核心,进行的国际化/本地化本质上仍是一个“中文平台”。因为它仍是按字节处理,是架构在操作系统之上的中文处理环境。只有在操作系统上实现按字符处理、支持宽字符,彻底抛弃ASCII和各种“国家标准”, 完全支持UCS ,才能彻底解决问题。中文平台的前途是不光明的,Windows上不就有过多种中文平台吗,后来都被微软的核心汉化彻底击败。

我们以前搞中文平台,是因为我们没有自己的操作系统,也没有掌握源代码,是不得以而为之,是权宜、无奈之举。现在Linux给了我们一个机遇。Linux开放源代码,这给了中国软件业一个千载难逢的好机遇。Linux也要不断创新、不断发展。我们不能总是跟在洋人后面爬行,“打补丁”,无所作为。我们也要对Linux进行改进,展现中国人的聪明才智,对Linux做出自己的贡献。

对Linux的改进主要有两个方面。一是针对Linux的安全漏洞进行改进。八月底在北京召开的Linux World大会上,中科院软件所副所长孙玉芳介绍说,中科院软件所和红旗公司针对Linux的安全漏洞已经进行改进,做了大量工作,并将于近期公布源代码。二是按UCS的要求改造Linux,使其完全支持UCS。对Linux在核心加以改造,以彻底支持UCS,是中文Linux的最终必须要走的道路,也是Linux的正确发展道路。如果Linux的核心不加以改造,以支持UCS,Linux也将会被经济全球化,软件国际化的潮流冲没。那时,彻底支持UCS的操作系统就将取代目前Linux的地位。所以彻底从核心改造Linux以支持UCS,也是有关Linux沿着正确方向健康发展的大事。

脱离经济全球化,软件国际化的潮流,脱离UCS的大方向,孤立地搞民族化、本地化可能会是事倍功半,甚至事与愿违的。

完全实现UCS,不仅促使操作系统改造,对通信程序、对很多应用程序也会有影响。

通信协议也要考虑支持UCS。国家标准《信息技术 因特网中文规范——电子邮件传输格式》正是利用UCS作为通用信息交换代码。用户要通过因特网发送信息时,用本地字符集编码与UCS的转换模块将其转换成UCS-2或其变体形式(UTF-7、UTF-8)后在因特网上传送。接收方可以很容易地将UCS-2转换成本地的字符集编码。这样省去了接收方识别和判断对方发来的信息是用什么编码,也省去了用很多种转换方法将传送来的不同编码的信息分别转换成本地码。只需用一种UCS-2与本地码的转换方法就行了。如果发送方和接收方都用UCS,又可省去收、发时的转换。由此也可看出完全支持UCS的巨大好处。

四、完全支持UCS,为中国软件业带来巨大好处

采用UCS还可大大降低各种软件本地化的工作量,一个为日本或朝鲜设计的软件,可以很容易地改为中文版本,只须改一改输入法和菜单而已。使用UCS也为中国软件走向世界提供了方便之路,专为中文开发的软件可以轻而易举地移植为国际上各地都能使用的版本,因为处理文本的核心软件并不需要改造。

使用UCS也将大大降低各种软件本地化的成本,用户购买软件的费用也降低了,用户选择软件的范围也更大了。

使用UCS使各种软件本地化的成本大大降低,使得软件开发商可以把人力,资金更多地投入到新产品的开发,一个产品在世界各地“同步推出”也更易于实现,用户也能更快地用上最新版本的新软件,那时我们可以说,我国自己开发的民族软件也是国际通用的国际软件。

Linux和相关应用软件完全支持UCS后,我国可以通过制定标准,要求进入我国的类似软件也必须支持UCS,从而推动国际各软件公司也支持UCS。

至于终端和打印机等硬件,我国已能制造、质量也不比国外的差。硬件设备支持UCS问题不会很大。我国率先实现终端和打印机等硬件完全支持UCS,还可通过制定标准保护国产产品,并可促进国际上的同类硬件产品也完全支持UCS。

从核心改造Linux、使其完全支持UCS,下一步我们还要开发完全支持UCS的应用软件。但是为了与现有的应用软件、硬件兼容,操作系统还必须提供一种转换机制,将其核心使用的UCS代码映射成基于字节的本地字符集编码。

人们对微软的意见主要是微软的垄断阻碍了技术发展,产品在中国售价太高,不开放源代码,有“后门”。但是,微软的Wihdows、Office毕竟在市场的占有率为第一,它确有很多地方值得学习,如易学好用,又如从核心完全实现了对UCS-2代码体系的支持。应该说微软在这方面是走在前面了。Windows NT/95/98/2000核心中完全实现了对UCS-2代码体系的支持,它为不同语言的用户提供了一个统一的、基于UCS-2代码的操作系统核心,并且应用软件Office97等也是基于UCS-2代码的。Windows NT/95/98/2000提供一组码页(codepage)来完成UCS-2与现有应用兼容,实现与本地语言如GB/GBK、Big5、JIS等之间的转换。Linux是否也能如此,在操作系统完全实现对ISO 10646(GB13000)UCS代码的支持,通过类似于codepage的映射与现在应用程序兼容,而不必再使用GB。Linux在这方面应向Windows学习,并希望Linux能做得更好。

XML是取代现在在Web上流行的HTML的新一代Web语言。国外很多基于Web的程序都是以XML为基础的。如微软的.net就是以XML为基础的。而XML使用的字符集就是ISO 10646,默认的字符集是UCS-2。