我的mysql4.1.21的/etc/my.cnf设置

老是忘记怎样设置默认字符集和默认数据目录,干脆把我的/etc/my.cnf帖在这里备忘。没办法,忘性太好了。


# Example MySQL config file for small systems.

#

# This is for a system with little memory (<= 64M) where MySQL is only used

# from time to time and it's important that the mysqld daemon

# doesn't use much resources.

#

# You can copy this file to

# /etc/my.cnf to set global options,

# mysql-data-dir/my.cnf to set server-specific options (in this

# installation this directory is /var/lib/mysql) or

# ~/.my.cnf to set user-specific options.

#

# In this file, you can use all long options that a program supports.

# If you want to know which options a program supports, run the program

# with the "--help" option.

# The following options will be passed to all MySQL clients

[client]

default_character_set=utf8

#password = your_password

port = 3306

socket = /var/lib/mysql/mysql.sock

# Here follows entries for some specific programs

# The MySQL server

[mysqld]

datadir=/var/lib/mysql/

default_character_set=utf8

port = 3306

socket = /var/lib/mysql/mysql.sock

skip-locking

key_buffer = 16K

max_allowed_packet = 1M

table_cache = 4

sort_buffer_size = 64K

read_buffer_size = 256K

read_rnd_buffer_size = 256K

net_buffer_length = 2K

thread_stack = 64K

# Don't listen on a TCP/IP port at all. This can be a security enhancement,

# if all processes that need to connect to mysqld run on the same host.

# All interaction with mysqld must be made via Unix sockets or named pipes.

# Note that using this option without enabling named pipes on Windows

# (using the "enable-named-pipe" option) will render mysqld useless!

#

#skip-networking

server-id = 1

# Uncomment the following if you want to log updates

#log-bin

# Uncomment the following if you are NOT using BDB tables

#skip-bdb

# Uncomment the following if you are using InnoDB tables

#innodb_data_home_dir = /var/lib/mysql/

#innodb_data_file_path = ibdata1:10M:autoextend

#innodb_log_group_home_dir = /var/lib/mysql/

#innodb_log_arch_dir = /var/lib/mysql/

# You can set .._buffer_pool_size up to 50 - 80 %

# of RAM but beware of setting memory usage too high

#innodb_buffer_pool_size = 16M

#innodb_additional_mem_pool_size = 2M

# Set .._log_file_size to 25 % of buffer pool size

#innodb_log_file_size = 5M

#innodb_log_buffer_size = 8M

#innodb_flush_log_at_trx_commit = 1

#innodb_lock_wait_timeout = 50

[mysqldump]

quick

max_allowed_packet = 16M

[mysql]

no-auto-rehash

# Remove the next comment character if you are not familiar with SQL

#safe-updates

[isamchk]

key_buffer = 8M

sort_buffer_size = 8M

[myisamchk]

key_buffer = 8M

sort_buffer_size = 8M

[mysqlhotcopy]

interactive-timeout

学习日记的目标分组功能和Top10日记分类功能设计

根据思路: 明确网站定位,增加学习日记目标分组功能 ,现对学习日记的目标分组功能和Top10日记分类功能进行设计描述。

1、目标分组的建立应该由网站的管理员进行,应该包括下列功能:

1)、创建分组;2)删除分组;3)修改分组;4)分组有优先级别,也可以修改优先级别;

分组的数据表结构:

分组ID(groupID), 分组名称(groupName),分组描述(groupDetail),分组优先级(groupPriority),分组目标数(groupGoalsNum),分组创建日期(createDate),分组修改日期(modifyDate)。以后,还可以添加分组组长的分类组织者;

为了简化实现,初步可以只有创建功能,只要3个必要字段:groupID, groupName, groupPriority。分组的排列以groupPrior为准。

然后,在目标帖子的表中添加一个字段(groupID),因为目标帖子有一个parentID是没有意义的,看是否可以把这个字段来作为groupID;

这样,需要管理员对目标帖子有编辑权限,可以把原来的目标帖子归入分组,没有归入的加入未分类分组。

2、TOP10日记功能:

1)、最新10篇日记,最热门的10篇日记,随机的10篇日记,这些可以通过数据库查询实现。

其中,前两个可以通过那个只返回ID和名称的好像叫getCPageList()的方法来实现;后面的那个可能需要新加一个方法,来返回随机10篇帖子的ID和名称。

3、实现以上功能需要严格测试是否会暴露私人帖子。人的隐私权(人权)优先嘛。

4、由于以上改动,目标内容页面也需要精心设计,把目标相关的内容都要一目了然的呈现给用户,这个页面的广告位设计也要好好考虑一下。

能够想到的都写上了。没有想到的希望看见这篇帖子的朋友提一下。

原来的列表式目标可以作为另一个老的视图保留。

明确网站定位,增加学习日记目标分组功能

一个网站,应该有自己的侧重点,学习日记定位于java学习交流。启用新的域名:java.learndiary.com

我们侧重于java的应用技术学习,尤其是开源的java解决方案。

准备精心设计学习日记的首页。把我们的特色和内容尽可能全面的展示在首页上。方法是把所有的目标分组,例如:java基础,开源软件,系统分析设计,开源小组,linux,生活,等等。可以参考相关的java站的分类。

除了目标分组,首页左侧可以挂上学习日记推荐java应用平台,看情况也可以做成左侧广告位。

右侧可以挂上最新10篇,最热10篇,随机10篇日记。

分类的目标可以按日记数的多少排序;

这样,进了我们网站的朋友可以一眼看到我们是做什么的,他可以在这里做什么。

当然,这只是一个临时的方案。只是相当于把我们这个简单的房子稍稍改一下,以使它能够围绕java学习交流这一目的聚集一些相似兴趣的朋友。

另外,在学习日记上提交日记,尤其是有价值的原创心得的日记的朋友,应该得到学习日记的鼓励。所以,应该向学习日记的用户承诺:学习日记的未来是大家一起创建的,如果学习日记以后能够真正发展起来,所有的用户都就应可以分享自己的成绩。用户对学习日记贡献可以以提交的帖子数作为一个基数,然后网站管理人员可以根据帖子的质量进行加分。以后完善了,还可以加入网友评分。这样,如果以后学习日记有了真正的收入来源,除了维持网站运营和给管理者一定的报酬,利益应该回馈用户。

这样,我们提出的口号是:共建我们的平台,分享我们的未来。写日记,赢积分。

中国的程序员很多还是在为生活而累,所以开源的事业在中国一直发展不起来。我想,如果中国的开源从事者能够从开源中补贴一部分家用,那么在发达国家以兴趣为主推动的开源在我们这里加上经济的驱动,也许可以尝试一下“有中国特色”的开源之路?

也就是说,为学习日记这个开源项目贡献心血的朋友应该有根据自己的劳动获得一定收入的希望。

不然,一天到晚,工作都累得不行了,谁来做开源?

另一个不容忽视的从事开源的人群就是非程序员,他们有自己的工作,写程序多是有兴趣。如果他们的兴趣能够转化成一些人民币,又何尝不是好事呢。

另外,就是“关于本站”的介绍应该好好重写,从中,应该让大家看到未来。

linux下tomcat5.0.12不能在eclipse3.1中用sysdeo的插件启�动

Redhat linux9.0下tomcat5.0.12不能在eclipse3.1中用sysdeo的tomcatPluginV31插件启动。

我现在是上述的环境,也许不限于linux, eclipse3.1和tomcat5.0.12和tomcatPluginV31,记在这里意思是说,当你在tomcat不能在eclipse中用上sysdeo的插件启动时,不妨换一个tomcat的版本。

同样是上述环境,把tomcat5.0.12换成tomcat5.0.28后就可以正常启动了。

这两天找出这个原因费了点时间,jdk, eclipse, tomcatPlugin的版本都换过了,就是没有先换tomcat的版本:),以为都是5.0.*的版本,应该没有多大区别吧。可是,问题就恰恰出在这里了。

解决Redhat linux9.0下jdk1.4.2_01-b06的中文问题

这几天准备对学习日记作点小的改动(房子虽然太简单,也需要修整修整呀),把停了一个来月的学习日记开发环境在linux下搭起来了。当我运行java软件ArgoUML建模,发现不能在软件中输入汉字,保存对话框的“是”与“否”的中文字体为方框。我知道碰到了传说中的linux下java的中文乱码问题。

于是,请出google老师,他帮我找到了一篇帖子,于是,受文中的启发,在下面目录对文件font.properties.zh_CN.Redhat8.0作了一个符号链接font.properties.zh.Redhat,中文乱码问题就没有了。如下:


ln -s /usr/jdk1.4/jre/lib/font.properties.zh_CN.Redhat8.0 /usr/jdk1.4/jre/lib/font.properties.zh.Redhat

很简单吧,但是我不知道具体原因是什么。也许font.properties.zh.Redhat是Redhat系统在java中的默认字体设置文件?哪为什么在这个目录下又有这么多的字体设置文件,如下:


[root@localhost lib]# dir font.*

font.properties                 font.properties.ja.Sun           font.properties.zh_CN.Sun

font.properties.ja              font.properties.ja.Turbo         font.properties.zh_CN_UTF8.Sun

font.properties.ja_JP_UTF8.Sun  font.properties.ja.Turbo6.0      font.properties.zh.Redhat

font.properties.ja.Redhat6.1    font.properties.ko.Redhat8.0     font.properties.zh.Turbo

font.properties.ja.Redhat6.2    font.properties.Redhat6.1        font.properties.zh_TW.Redhat8.0

font.properties.ja.Redhat7.2    font.properties.Redhat8.0        font.properties.zh_TW.Sun

font.properties.ja.Redhat7.3    font.properties.SuSE8.0          font.properties.zh_TW_UTF8.Sun

font.properties.ja.Redhat8.0    font.properties.zh_CN.Redhat8.0

[root@localhost lib]#

***********************************************************************************

附上那篇介绍有Redhat linux9.0下java中文设置的文章,实际上是一篇讲Redhat linux9.0下oracle安装的文章,也许以后用得着,收藏在这里参考:

转自:http://www.xxlinux.com/linux/article/development/database/20060905/3956.html

RedHat9.0操作的oracle9i安装

[ 作者:Linux联盟收集  加入时间:2006-09-05 21:52:36  来自:Linux联盟收集 ]

作者:pxe2

先安装修改java

标准 jre/jdk 中只带了 redhat 6 的 font.properties, 需要建一个 font.properties.zh.Redhat 放在 redhat 的 jre/lib 目录下。打开 /usr/lib/X11/fonts/ttf-zh 或者 /usr/share/fonts/zh_CN/TrueType 下面的 font.dir, 将其中的一个中文字体名复制下来,比如 -misc-ZYSong18030-medium-r-normal--0-0-0-0-c-0-iso10646-1,按照 java 的字体规则改为 -misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1,将 font.properties.zh 中的内容复制到 font.properties.zh.Redhat 中。

我选用字体 -misc-ZYSong18030-medium-r-normal--0-0-0-0-c-0-iso10646-1 是因为在 redhat 7.3 和 redhat 8.0 上都能用。

因为 jre/jdk 找不到 Redhat 的 true type 字体,在文件 font.properties.zh.Redhat 最后加入

appendedfontpath=/usr/lib/X11/fonts/ttf-zh

appendedfontpath=/usr/share/fonts/zh_CN/TrueType

将字体名全部替换成 -misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1,替换后的 font.properties.zh.Redhat 如下:

# @(#)font.properties.zh.Redhat.linux 1.4 02/06/10

#

# Copyright 2002 Sun Microsystems, Inc. All rights reserved.

#

# Component Font Mappings

#

serif.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

serif.italic.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

serif.bold.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

serif.bolditalic.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

sansserif.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

sansserif.italic.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

sansserif.bold.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

sansserif.bolditalic.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

monospaced.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

monospaced.italic.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

monospaced.bold.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

monospaced.bolditalic.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

dialog.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

dialog.italic.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

dialog.bold.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

dialog.bolditalic.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

dialoginput.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

dialoginput.italic.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

dialoginput.bold.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

dialoginput.bolditalic.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

# Missing Glyph Character

#

default.char=274f

# Component Font Character Encodings

#

fontcharset.serif.0=sun.io.CharToByteISO8859_1

fontcharset.serif.1=sun.awt.motif.CharToByteX11GBK

fontcharset.sansserif.0=sun.io.CharToByteISO8859_1

fontcharset.sansserif.1=sun.awt.motif.CharToByteX11GBK

fontcharset.monospaced.0=sun.io.CharToByteISO8859_1

fontcharset.monospaced.1=sun.awt.motif.CharToByteX11GBK

fontcharset.dialog.0=sun.io.CharToByteISO8859_1

fontcharset.dialog.1=sun.awt.motif.CharToByteX11GBK

fontcharset.dialoginput.0=sun.io.CharToByteISO8859_1

fontcharset.dialoginput.1=sun.awt.motif.CharToByteX11GBK

# Exclusion Ranges

#

# XFontSet Information

#

fontset.serif.plain=

-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

fontset.serif.italic=

-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

fontset.serif.bold=

-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

fontset.serif.bolditalic=

-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

fontset.sansserif.plain=

-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

fontset.sansserif.italic=

-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

fontset.sansserif.bold=

-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

fontset.sansserif.bolditalic=

-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

fontset.monospaced.plain=

-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

fontset.monospaced.italic=

-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

fontset.monospaced.bold=

-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

fontset.monospaced.bolditalic=

-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

fontset.dialog.italic=

-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

fontset.dialog.bold=

-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

fontset.dialog.bolditalic=

-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

fontset.dialog.plain=

-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

fontset.dialoginput.italic=

-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

fontset.dialoginput.bold=

-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

fontset.dialoginput.bolditalic=

-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

fontset.dialoginput.plain=

-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

#fontset.default=

#-b&h-lucida-medium-r-normal-sans-*-%d-*-*-p-*-iso10646-1,

#-tlc-song-medium-r-normal--*-%d-*-*-c-*-gbk-0

fontset.default=

-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

appendedfontpath=/usr/lib/X11/fonts/ttf-zh

appendedfontpath=/usr/share/fonts/zh_CN/TrueType

使用 Installanywhere 我们编译安装程序选择 "其它 java 平台" 编译成一个 java 的 setup.jar 文件,

在 Redhat 上面写一个批处理/脚本文件, set classpath , 包含 setup.jar,

批处理/脚本文件中使用 java install 启动安装程序。

繁体中文依法炮制即可,建立 font.properties.zh_TW.Redhat 文件,将其中的字体名改为一个繁体中文字体名,

在文件末尾加上合适的 appendedfontpath

___________________________________________________________

1安装好RedHat9.0操作系统,确保安装了以下的RPM开发包

gcc

cpp

glibc-devel

compat-libstdc++

glibc-kernheaders

binutils

可以使用命令来查看是否已安装了这些包

rpm -q gcc cpp compat-libstdc++ glibc-devel glibc-kernheaders binutils

2从Oracle官方网站下载Oracle9i安装文件并使用如下命令解包

zcat lnx_920_disk1.cpio.gz | cpio -idmv

zcat lnx_920_disk2.cpio.gz | cpio -idmv

zcat lnx_920_disk3.cpio.gz | cpio -idmv

(注意磁盘空间)

然后会有Disk1 Disk2 Disk3三个子目录。

3设置内核参数

echo 4294967295 > /proc/sys/kernel/shmmax,建议放到/etc/rc.local文件里。



编辑/etc/sysctl.conf

kernel.shmmax=4294967295

我有512MB内存,所以设置这个数值。可根据实际情况设置。

4创建Oracle用户帐号和安装目录

在shell下,作为root

groupadd dba

groupadd oinstall

useradd -g oinstall -G dba oracle

passwd oracle

mkdir /opt/oracle

mkdir /opt/oracle/product

mkdir /opt/oracle/product/9.2.0

chown -R oracle.oinstall /opt/oracle

mkdir /var/oracle

chown oracle.dba /var/opt/oracle

chmod 755 /var/opt/oracle

5设置环境变量

编辑/home/oracle/.bash_profile文件,添加下列行

export LD_ASSUME_KERNEL=2.4.1

export ORACLE_BASE=/opt/oracle

export ORACLE_HOME=/opt/oracle/product/9.2.0

export ORACLE_SID=ora9i

export ORACLE_TERM=xterm

$ORACLE_HOME/network/admin

export NLS_LANG=AMERICAN_AMERICAN.ZHS16GBK

export ORA_NLS33=$ORACLE_HOME/ocommon/nls/asmin/data

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

export LD_LIBRARY_PATH

export PATH=$PATH:$ORACLE_HOME/bin

CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib

export CLASSPATH

6安装

进入Disk1目录

./runInstaller

当link进行到61%时出现一个关于ins_oemagent错误,选择ignore,安装完后修复

当link进行到84%时出现一个关于ins_ctx错误,编辑$ORACLE_HOME/ctx/lib/env_ctx.mk文件,把$(LDLIBFLAG)dl加到以下位置

INSO_LINK=-L$(CTXLIB)$ (LDLIBFLAG)m $(LDLIBFLAG)dl处。

安装完成

修复第一个错误

在shell下,oracle用户

cd $ORACLE_HOME/network/lib

make -f ins_client.mk install

编辑$ORACLE_HOME/ctx/lib/ins_ctx文件

13-14行处

$(LINK) $(CTXHXOBJ) $(INSO_LINK)



$(LINK) -ldl $(CTXHXOBJ) $(INSO_LINK)

7启动数据库、监听程序、web server。

启动数据库

Sqlplus " / as sysdba"

SQL>startup

启动监听程序

lsnrctl

启动web server

cd $ORACLE_HOME/Apache/Apache/bin

./startJServ.sh'

来源:linuxfans

还有问题请来论坛寻求帮助:http://www.xxlinux.com/bbs/

being is the most important thing, use all the ads locations

  It will dispear if without the ecommical support in this world, LearnDiary is too.

  In order to resolve the money problem for running this website, I add some google ads into almost every page. Until today, we have no any incoming to support the running problem, don't say earning a little from this website further more.

  The most important thing is: it is almost no any friend post their any word on this website. The goal of founding this website hasn't achived a little.

  Thinking about it, doing something about it.

  I think, it will be a useful tool for many friends to share their learning experience, because, I feel it is useful for myself.

  The reason of lacking friends' word, it is, a question, that will be answered by me, WHO can get WHAT from this website? It's your personal diary in the life?

  This is a most important question, like this: to be or not to be?

  Maybe, I can find the anwer soon. And, the time will prove it's right or wrong.

  Friend, visit our website in these days, maybe, you will find a useful tool for you is forming.

我把孩子送到幼儿园大门后孩子不让我跟到教室

这两天新出现一个情况,当我把孩子送到幼儿园大门口后,孩子不许我继续把她送到教室门口。

当然,我是不会放心的,因为他们的教室在3楼,幼儿园大门到教学楼也有一段距离。于是,我悄悄的跟在她后面。可是,只要她一发现我跟在她后面,就会哭着、闹着朝我嚷:你回去,不许跟到我,我自己晓得进教室...。

我想是孩子的幼小的自我独立心态在萌芽吧。

winrar多卷压缩方法

我是在windows xp sp2上使用WINRAR 3.50 beta 5进行分卷压缩的。

但是,在一个文件夹上单击右键添加到rar文件是不行的。

采用以下步骤完成分卷压缩:

1、打开winrar软件:

2、点击左上角的“添加”按纽:

3、在“压缩分卷大小”中选择或输入每卷要压缩的大小,点击“确定”即可:

Linux 风雨 15年(转帖)

转自:http://www.matrix.org.cn/resource/news/Linux_36a4cad2-4804-11db-9e0c-47a43a6df648.html

Linux 风雨 15年

matrix 发表于 2006-09-20 01:28:07 作者:matrix     来源:ccw

评论数:4     点击数:458

摘要:

15年前,芬兰的电脑天才Linus Torvalds在一台公共服务器上发布了一份操作系统源代码,从而引发了一 场革命。

工具箱

本站收藏

美味书签

发表评论

复制链接

15年前,芬兰的电脑天才Linus Torvalds在一台公共服务器上发布了一份操作系统源代码,从而引发了一

场革命。

这个以他的名字命名的操作系统(Linux),以及由它所引发的开源运动的革命性冲击,使得整个业界发生了巨变。

Linux 成功的奥秘并不在于源代码本身,因为Linux不过是一种类Unix系统而已,而是在于其开发方式,即允许所有程序员参与开发的开放源码哲学。遵循这种哲学思想,参与进来的程序员同样愿意与他人共享自己的开发成果,于是这个开源社区就会不断地扩大,创新的浪潮也就一浪高过一浪。显然,没有一家商业企业可以和由成千上万志愿者综合而成的这种非凡的天才力量相比拟。一个最明显的例子就是,比尔·盖茨所领导的一大批软件精英开发出来的微软操作系统几乎没有一个不是“千疮百孔”的;而Linux虽然也有瑕疵,但比起微软的产品来则明显要健壮得多。

15年来,Linux从一份大学生的作业已经演变成了Windows最强劲的竞争对手,在网络、企业、政府和消费电子市场中逐步占据了重要的地位,在有些领域甚至成了最主要的角色。它还获得了政府、大企业和很多公共组织的热烈欢迎和拥戴,其发展前景正不可限量。

开源数据库的狂想

芬兰似乎是催生开源天才们的理想国度。Linus Torvalds的同乡Marten Mickos虽然从一开始并不是开源的忠实信徒,1995年,当他的两位大学同学Michael Widenius和David Axmark创办了开源数据库公司MySQL时,他还曾嘲笑过他们的“疯狂举动”。然而两年后,Mickos加入了MySQL,并担任CEO一职。

同他的两位技术天才朋友相比,Mickos显然更具有商业头脑。他改变了原先只在互联网上有一搭没一搭向技术人员销售软件的做法,组建了专业化的销售队伍,并将公司搬到了美国加州。

今天,MySQL的年收入已达4000多万美元,超过了其竞争对手Ingres和PostgreSQL。根据Forrester的研究,全球开源数据库市场大约为3.5亿美元,包括许可证销售、服务和技术支持;而MySQL已经占到了60%(约2.1亿美元)的市场,这包括2006年MySQL本身收入的 4500万美元,以及很多咨询和服务公司推荐安装MySQL产品而产生的1.65亿美元利润。

而且MySQL目前已获得了像惠普、Unisys、Novell和IBM等大企业的支持。据估计,MySQL的安装基础已经超过1000万家企业,其中包括很多业界巨头,比如Yahoo、阿尔卡特、铃木和美国航空航天局等。

尽管与商业数据库软件市场(约250亿美元)相比,开源数据库市场还非常渺小,但是Mickos和其他一些人相信,商业市场正受到开源数据库的威胁。

自由欧洲的梦想

2004年,Linux在慕尼黑打胜了一场与微软的战争。慕尼黑市政府不顾微软CEO鲍尔默的亲自游说,仍然坚持更换了14000台桌面电脑的操作系统。

2004年,欧盟委员会花钱搞了一项调查,该调查覆盖了欧盟所属的13个国家。结果发现,约有80%的市政当局正在使用某些开源软件。负责调查的官员说:“我们的调查表明,开源软件正在被广泛使用,而且哪个机构使用开源产品越多,那个机构就会引进更多的开源软件。”

开源产品在欧洲的主要推动力是政府而不是企业,而推动政府采纳开源软件的主要动力则是成本、安全,以及不愿意和一家美国软件商发生紧密关系的微妙情绪。这些举措迫使微软不得不采取大幅折扣的方式来拉拢各地方政府,比如微软给巴黎市政府的折扣差不多就打到了五折。

欧洲的一些开源企业也借此良机大行其道。巴黎的一家开源企业Nuxeo 就向法国的六大部门(包括内务部和电信部)销售内容管理软件。

西班牙是欧洲使用开源软件最普遍的国家,约有98%的地方政府机构在使用开源软件。再比如西班牙Extremadura地区的学校中有超过80000台PC和400台服务器以及在地区政府中有70000台PC都在使用Linux和其他自由软件。

欧盟委员会目前已成立了一个开源观察小组,旨在推动各国政府在共享开源产品方面采取协调行动。该组织目前正在实施的一个重要项目就是IDabc(向公共行政、商业及市民提供可互操作的欧洲电子政府服务)。负责该项目的Barbara Held说:“两年前,我们在与各地方政府交谈时,它们都说不想和开源社区直接打交道。而现在,它们都已开始有了这种意愿。”

移动Linux起步

开源运动目前又找到了一块新大陆,那就是移动通信市场。和它先前在PC市场的艰难起步不同,Linux在移动市场一开始就受到了强有力的支持

。比如摩托罗拉在亚洲地区就已销售出了400万部Linux手机。摩托罗拉还联合了NTT DoCoMo、松下、三星和Vodafone等共同推广开源在移动领域的应用,这样一个强而有力的联盟不仅威胁到了使用Symbian操作系统的诺基亚,而且直接威胁到了Symbian和微软。

摩托罗拉移动设备部首席平台架构师Mark VandenBrink介绍说,研发移动Linux的联合行动计划将分两个阶段进行。在第一阶段,即前平台阶段,主要开发移动操作系统本身,这个阶段不对外开放。而在第二个阶段,即后平台阶段,将涉及所有运行在此操作系统之上的应用开发,这个过程将会向所有人开放。

VandenBrink解释说,开放性将有助于开发出符合全球不同市场、不同网络、不同时段和不同需求的服务与体验。他说:“我们的销售机会可能会来自不同时段的不同市场,比如在美国,销售高峰是在新学期开学和圣诞节期间,而在中国则是在春节前后。”

有了这样一个由全球前三位中的两家手机制造商(摩托罗拉、三星)和两家最大的运营商(Vodafone和NTT DoCoMo)组成的强大联盟,我们有理由期待移动Linux的美好未来。

亚洲Linux崛起

很多研究都发现,亚洲是非常适合开放源码软件成长的理想土壤。一是因为成本意识,二是没有太多遗留系统的包袱,亚洲的企业、机构和公共领域的客户有可能形成一个巨大的市场。Gartner估计,到2010年,开源软件“将会占有全球软件市场20%的份额,从传统软件厂商手中夺走约1000亿美元的收入,而来自印度和中国的需求将是实现这一远景的主要推动力。”

与西方推动开源增长的草根力量不同,在中国推动Linux的是自上而下的政府力量。因为担心微软操作系统的垄断以及由此可能带来的安全威胁,中国政府已经发布了《政府采购条例》,要求各级政府须优先考虑开源操作系统和软件。中国政府还大力支持中、日、韩三国联合研发的“亚洲Linux”(Asianux),不过这套系统与红帽的企业级服务器系统几乎完全一样。

印度的 Linux市场主要由国际厂商占据支配地位,比如Novell SuSE和红帽。而中国市场则主要由中国本土的红旗Linux占领,根据计世资讯的报告,红旗在2005年所占的份额为32.1%;Novell以 29.5%紧随其后;第三是红帽,19.7%;第四是Turbolinux,9.8%。

除了开源软件之外,开源硬件在亚洲的增长也非常令人瞩目。根据IDC的统计,亚太地区(日本除外)的Linux服务器市场2005年达到2230万美元,比2004年的1420万美元增长了57.1%;而客户端Linux市场增长得更快,从2004年的1040万美元增长到2005年的1740万美元。IDC预计今后五年中Linux服务器市场的年均增长率将超过20%,从2005年的2230万美元增至2010年的5530万美元;桌面Linux的年均增长将达到26.6%,到2010年将实现 5040万美元收入。这其中还未计入各种嵌入式Linux系统,如MP3、手机等设备的销售。

IDC估计,中国Linux市场的总体规模在2005年为1180万美元,2010年将达到5100万美元,年均增长率为34%。中国的Linux服务器市场在2005年产生了900万美元的收入,到2010年将实现1990万美元收入,将占到总体规模的40%。

蓝巨人饕餮大餐

1999 年,IBM在印度开设了一家Linux研发中心,这在当时的确是一个大胆的举动,也是IBM支持开源软件的一次令人吃惊的背书。IBM的举动也招来了各方的质疑,而来自开源社区的质疑更多。它们不认为IBM会把自己的开发成果拿到社区里来共享,要知道,IBM本身就是“大铁块”——运行专有系统和软件的大型机和小型机的代名词。

但是打那以后,IBM已成为了开源社区中最重要的角色之一,它给新办的开源企业投资、销售自己独立研发的开源产品或者与开源社区共享其产品。这种转变肯定和利他主义无关。

根据Gartner的报告,2005年Linux的市场份额增长了35%,销售收入达70亿美元,而IBM则攫取了其中很大的份额。IBM表示,其开源业务在2005年的收入高达数十亿美元,范围涉及其150亿美元的软件、474亿美元的服务以及243亿美元的服务器销售。

IBM自己也承认,开放源码对于其硬件和其他产品的销售大有帮助,而且因此笼络了一大批天才程序员为其开发和改善软件产品,其效率是IBM以前所从未曾有过的。

IBM和Sun半推半就的做法有明显的不同,IBM是彻底地转向了Linux。在印度开设了Linux研发中心之后,又投资4000万美元推出了Eclipse开源社区,帮助用户、厂商以及开发人员共同参与软件开发项目。

最近几年,IBM将其开源努力的方向主要放在了所谓BIRC国家,即巴西(Brazil)、俄罗斯(Russia)、印度(India)和中国(China),这也显然是出于巨大经济利益的考虑。根据IDC的研究,BRIC国家的IT市场预计将从2005年的638亿美元增加至2009年的 1079亿美元。

当然,IBM并非唯一一家利用开放源码而大赚其钱的大型企业。在去年的Linux World上,惠普的Linux总经理Martin Fink就展示过惠普的一系列开源项目。今年,惠普在BRIC国家利用开源项目共赢得了17份服务器合同,这对其Integrity服务器产品线的迅猛增长贡献巨大。

本页页面地址:

用户评论列表

#0000 author: 000 submitTime: 2006-00-00 12:59

#1 评论作者: jobs002 发表时间: 2006-09-20 08:38 上午

呵呵,看看现在的IBM,确实已经再次成为了蓝色巨人,选择开源的同时,也就选择了发展,祝愿开源的路越走越好.

#2 评论作者: jiangshachina 发表时间: 2006-09-20 08:58 上午

希望中国的开源也能如欧洲那样发展好。

其实一直欧洲比较人文,不像老美过于商业。

不过,国内对开源的态度可能还不够好,没有广泛的接受,特别是在商业方面。

#3 评论作者: johnzhang68 发表时间: 2006-09-20 09:12 上午

什么是开源硬件?

#4 评论作者: youway 发表时间: 2006-09-20 11:31 上午

呵呵,因为在国内使用商业软件和开源软件的成本都差不多

如果知识产权保护的力度加强,就可以促进开源软件的推广和应用

开源思想推动创新(转帖)

转自:(http://www.matrix.org.cn/resource/news/OpenSource_d64c0afd-4738-11db-af0b-0f766c077b58.html

开源思想推动创新

matrix 发表于 2006-09-19 01:12:17 作者:matrix     来源:infoworld

评论数:8     点击数:481

摘要:

人们经常说开源没有创新,而是模仿。这肯定是专有软件行业希望你相信的。看一看目前企业中使用的一些最著名的开源项目中的活动,让你不由得不同意。

工具箱

本站收藏

美味书签

发表评论

复制链接

    人们经常说开源没有创新,而是模仿。这肯定是专有软件行业希望你相信的。看一看目前企业中使用的一些最著名的开源项目中的活动,让你不由得不同意。

  例如,尽管开源数据库令人难以置信地广泛用于各类关键任务应用,但不管是MySQL还是PostgreSQL,实际上没有做任何IBM、 Microsoft、Oracle和Sybase多年来没做过的事情。同样,OpenOffice.org生产力套件是一个给人留下深刻印象的社区驱动的开发的例子,但它惟一的真正目的是创建免费的、基于标准的Microsoft Office的克隆。甚至Linux自己也是作为免费软件改写Unix的尝试。

  但是,所有这些都不能否定开源开辟了一条属于自己的新路而非只是跟在别人后面的事实。Apache Web服务器就是最好的例子。Apache自1995年诞生国家超级计算应用中心的httpd后,就一直是用户的首选Web服务器。据网站与服务器监测机构Netcraft说,目前62%的Internet网站使用Apache,而使用Microsoft IIS(Internet信息服务器)的网站只有31%。

  然而正如Microsoft的Internet Explorer所证明的,流行程度并不是惟一衡量性能的指标。Apache常常是安装在大多数Linux服务器上的缺省Web服务器,而它的成功并不只是由于人们熟悉它或缺少竞争对手。更确切地说,它具有稳定性、高性能、一流的安全纪录以及使它具有比商用竞争对手更多功能的各种特性与扩展程序。 Apache实际上开辟了Web服务器软件市场并处于领先地位。5年后,IIS无疑将以这种或那种形式存在于市场上,但Apache仍将是领先产品,进一步拓展Web服务器的功能。

  这类协作创新的例子在IT领域中比比皆是。在软件业中,无数的开发商、个人和公司在试验开源方式。理由之一是因为社区驱动的开发使软件产品能够有机地发展。正如Eric S. Raymond在其开创性的著作《大教堂与集市》中所说的:“每一个软件杰作都开始于满足某个开发人员的个人需要。”当一群开发员以开源方式协作时,每一位开发员都有着独特的个人需要,其结果是软件不断扩展,填补专有产品没有涉及的这些功能领域。

  开源赋予Java生命

  开源社区开发的工具巩固了Java在开发人员市场中的领先地位。

  毫无疑问,开源使Java得到了巨大的实惠。Java语言和平台赖以发展的JCP(Java社区进程)似乎在以蜗牛的速度前进。委员会的审查和批准是个缓慢且需深思熟虑的过程,Java毕竟是领先企业应用平台,因此它应当缓慢演进,哪怕需求十分紧迫。为解决一些问题而造成另一些问题从来不是一种好的解决办法。

  然而,与其相对的开源社区却一直在飞速前进,推出大量的重要创新。目前,企业Java基本工具全部是开源产品:Ant(用于开发应用程序)、Hibernate(用于将数据保存在硬盘上)、JUnit(用于设备测试)和Maven(用于继续的集成),更不用说得到高度重视的 Eclipse和NetBeans开发环境和PMD源代码验证程序了。

  Java开发人员还从几种开源框架中受益,如JSF (JavaServer Faces)、Spring和Struts。再有就是众多的容器(container):Apache Tomcat、Geronimo、Jetty、Jonas和Resin,更不要说很多用于嵌入式应用的小容器了。开源是Java世界想像力和生产力的巨大源泉。

  在这两股河流——JCP与开源——之间站着3大企业Java技术提供商:BEA、IBM和Sun Microsystems。他们都是一只脚站在开源工具河流中,另一只脚站在非开源工具河流中。虽然很多IBM工具是专有的,但它一直是Java和开源社区的主要贡献者。BEA最近非常积极地实施其“混合”战略,积极支持开源产品。此外,BEA还向多个开源项目捐献代码和程序。

  Sun 有点特立独行。狂热的开源支持者一直逼迫Sun开放Java源代码,希望加速这种平台中的创新,但Sun却行动缓慢。这样做是有一定道理的:开放Java 代码可能会将Java分裂为不同的版本,从而减少Java引以为荣的可移植性。但开源社区一直尖锐地攻击Sun的这种立场。

  鉴于 Sun对开源的长期贡献,这就将它置于一种奇怪的境地。Sun仍是惟一一家开放其操作系统和全部生产力套件源代码的公司。实际上,它开放了很多Java技术的源代码。因此,Sun在8月份举行的LinuxWorld上透露——也许有点勉强——除推出一个供开发人员跟踪其进展的社区网站外,它打算开放 Java库和Java虚拟机。

  从长期看,向开源发展的这股强大的力量能使Java受益吗?除了其缓慢的开发进展外,Java的一部分成功归功于Sun所起到的管家作用。通过开放Java源代码剥夺Sun的这一角色可能导致Java平台的大大加强,也可能最终伤害它。

  Linux让设备受益

  嵌入式系统开发商从开源操作系统中受益。

  Linux的传统根据地在于服务器和工作站,而它正在这之外的非常小的设备上取得成功。对于嵌入式系统开发人员来说,Linux优于专有操作系统的优势除了低成本外,还在于其灵活性和开放性。

  消费电子产品市场对新技术有着永不满足的需求,但是使用来自Microsoft和Symbian等公司的专有嵌入式平台的开发人员,必须受限于某一厂商提供的设备驱动程序和对最新硬件的支持。然而,他们的开源社区同行常常在技术刚一推出时就开始修补它们。他们开发的代码也许很糙,但开发过程很快,这反过来可以使他们更快地制造出原型产品,更早地上市以取得市场先机。

  Linux还使开发复杂的嵌入式应用变得更容易。用于嵌入式设备的传统RTOS(实时操作系统)是在单处理器线程中运行单个任务的单用途平台。嵌入式Linux类似于它的重量级表兄,是设计用于运行多个应用的通用操作系统。这种通用性帮助开发人员满足客户日益复杂的基础需求。此外,没有复杂的专有许可条款为开发人员提供了定制各个层次应用的自由,他们可以选择他们需要的部件而忽视另一些。

  厂商之间的竞争对于顾客肯定是件好事。在嵌入式Linux市场上,MontaVista和Wind River等顶级厂商不仅与专有操作系统厂商竞争,而且还相互竞争。此外,一些设备制造商还选择“单干”,独立于操作系统厂商生产自己风格的嵌入式 Linux。然而Linux是开源操作系统,每一种变种都成为由开发人员、客户和合作伙伴构成的大生态系统的一部分,都在为这个更大的整体做贡献。

  这种“竞争式协作”仍给其他公司留出了利用额外的工具扩大Linux基础的空间。例如,Trolltech提供的Qtopia:一种迅速开发嵌入式 Linux应用和用户界面的全面的环境。核心Qtopia技术可依据Gnu GPL(通用公共许可证)使用,从而为开发人员在Qtopia代码上带来了在Linux内核上所享受到的同样的可见性。同样,Nokia发布了自己的开源应用平台Maemo。该平台可以在Nokia 770 Internet Tablet等嵌入式设备上找到。

  这些工具为开发人员带来了额外的优势:熟悉性。Qtopia是基于Trolltech历史悠久的桌面Linux系统Qt工具包的;Maemo基于来自Gnome项目的类似技术。其结果不同于专有操作系统,应用开发人员可以利用自己已有的技能为嵌入式操作系统开发软件。

  这些优势意味着阵营越来越庞大的Linux驱动的设备。从Sharp PDA到TiVo机顶盒,从Linksys无线路由器到Motorola手机,越来越多的公司将宝押在Linux上,把它作为在快速发展的、高度竞争的设备市场中取得成功的跳板。

  开源社区推动脚本采用

  现代脚本语言在开放上取得成功。

  脚本语言,有时叫做“动态”语言,变得非常流行,其中一个原因是它们能让开发人员利用比较小的代码完成很多工作。这种“高相对价值”源于将更多的工作交给编译器和运行时间环境(如按变量值得到变量类型)去做的新方法——除了完成经常执行活动的特殊捷径外。

  包括Perl、PHP和Python在内的脚本语言还有另一个共同点:它们几乎统统都是开源语言。在很多地方,开源与非开源之间的不同之处可能并不重要,但开源似乎在脚本语言中至关重要。奇怪的是,这点并不是由于开源在修补漏洞中的灵活性的原因,而是由于其创建社区的能力。

  比较两种几乎同时问世的脚本语言Ruby和NetRexx的命运,是看到开源重要性的生动例子。NetRexx是由IBM设计、部分基于其成功的大型机脚本工具 Rexx的。它以解释方式运行,也可以编译为Java字节代码。作为一种语言,NetRexx具有很高的生产力并易于学习掌握,提供大量的优雅的结构。由于它可编译为Java字节代码,从NetRexx中可以访问所有的Java库,此外,它享受着Java虚拟机的优秀性能。

  另一方面,Ruby是纯解释语言,它没有虚拟机,因此运行速度慢。这种语言有它自己的优点,但主要优势来自采用部分起源于Perl缩略语法不直观的句法成分。NetRexx与Ruby还有另一个重要的共同之处:它们都是免费提供的。

  那么,这两种语言中哪一个更成功呢?是快速、典雅的NetRexx,还是不直观、速度慢的Ruby呢?事实可能与你所料的正相反,今天的Ruby踌躇满志而NetRexx却濒临死亡。

  关键原因在于Ruby是开源而NetRexx不是。结果是Ruby能够建立一个活跃的开发员社区——特别在它的诞生地日本,它已经流行了10年。 Ruby在David Heinemeier Hansson编写Web应用框架Ruby on Rails之前一直在积累发展动力。Rails是Ruby的杀手应用,它是设计典雅的典范,保证了Ruby发挥持久的作用。同时,尽管NetRexx有着巨大的价值,却蹒跚而行,无人理睬。如果IBM开放了NetRexx源代码,脚本技术今天可能是一番完全不同的景象。

  仅凭开源本身肯定不能保证一种语言取得成功。实际上,现在有很多没有成功希望的开源语言。尽管开源并不是成功的充分条件,但却是必要条件。缺少它就是缺少Microsoft创建社区的资源。

  “大开放”意味着更安全

  专家们依靠得到源代码来减少威胁和防止漏洞利用。

  几乎每一家安全专用设备厂商都有理由使用开源工具,而这与许可证没有什么关系。其中的绝大多数设备——从垃圾邮件与间谍件过滤器、网络扫描器到入侵检测与防御系统——不仅建立在像Linux或FreeBSD这样的开源平台上,而且还积极利用其他开源产品来完成任务。

  在各种平台上,最流行的网络端口扫描器和操作系统特征识别应用是Nmap。作为开源工具的Nmap提供一种迅速、准确确定任何给定IP地址或子网上的开放端口的方法;它还可以通过分析IP包的构建方式确定设备所使用的操作系统。

  另一个例子是开源安全漏洞扫描程序Nessus。Nessus可以利用Nmap扫描主机,但比Nmap走得更远:它尝试在目标系统上触发潜在的漏洞来验证系统的完整性。可供Nessus使用的插件数量达到了数千种,并且随着发现的漏洞而不断增加——这要再一次感谢开放源代码易于使用的事实。

  广泛使用的IDS(入侵检测系统)Snort也很有名。它同Nessus一样作为商用软件包提供,但开源版仍很吃香。其他开源工具,如OpenSSH和OpenSSL,是应用在各个方面的行业标准,在几十种平台上被数千种不同产品所使用。

  最后,还有操作系统层本身。虽然没有一种OS是真正安全的,但Windows平台上提供的安全工具由于基础操作系统详细记录的安全问题而令人怀疑。基于 Linux、FreeBSD、NetBSD或OpenBSD的产品则具有更好的安全纪录(OpenBSD声称在8年多的时间里,在缺省安装环境中只发现了一个远程漏洞)。

  对于缺少经验的人来说,开源的概念似乎与高度的安全性相悖。人们普遍的想法是公布源代码会让黑客和病毒编写者更加容易地利用代码中的漏洞。你只需看一看世界最坚定的专有软件厂商之一Microsoft,就会明白事实正好相反。

  商业产品可能有一支十几人组成的QA(质量保证)团队,但大多数重要的开源项目——那些由社区支持的开源项目——实际上拥有由成千上万人组成的QA团队。其中的很多人对代码有着深入的了解,因为他们一直在为项目贡献代码。这只会使产品更加安全,因为补丁要经过比商业环境多得多的眼睛的审查,隐患迅速暴露。因此,很多安全专业人员认为开源代码比专有代码更安全,而这种印象最终将渗透到整个行业。

  Snort入侵检测

  协作开辟多媒体新边疆

  无专利的音视频技术降低进入门槛,刺激创新。

  人们很容易认为开源与多媒体是相互排斥的。对免费桌面Linux版本(如Ubuntu)的常见批评是它们缺少对播放多媒体的支持。但是,不要责怪这些版本的包装者们。经过很多年时间,多媒体周围包裹上了大量专利,这些专利覆盖播放和编码的各个方面,甚至MP3格式也受到与免费软件许可证要求相冲突的专利的限制。

  但是,独立的开发人员并没有忽略多媒体,很多开源项目不仅设法绕过已有技术的限制,而且还改进它们。例如,Ogg Vorbis是一种开源“有损耗”音频压缩技术。同MP3一样,它不保留数据的每一比特,而是重现与原始信号听起来差不多的信号。不过,Vorbis利用高级心理声学模型,在同样的压缩水平上提供比MP3更好的音质。此外,它不存在专利限制,完全是免专利费的。

  在视频方面,只要看看 BBC Research赞助的Dirac项目就行了。虽然仍处于试验阶段,但Dirac采用子波压缩—— 一种理论上应当比当前方法提供更高质量视频的高级数字技术。BBC拥有Dirac代码的一些专利,但它向任何希望使用它们的人授予永久的免费许可。同样, On2 Technologies将永久的许可证授予其VP3压缩编解码器,这种编解码器已经成为另一个开源项目Theora的基础。

  尽管开源多媒体技术开发进展迅速,但采用它们则是另一回事。Vorbis是一种具有超群性能的成熟的编解码器,但没有几家设备制造商支持它,尽管它不需要许可费。造成这一局面的问题是内容。硬件制造商将支持内容提供商提供的格式,而这越来越多地意味着支持DRM(数字版权管理)的格式。不幸的是,不管是 Apple、Microsoft、Sony还是其他公司,专有DRM实际上使技术提供商成为整个多媒体栈的看门人。这也是开源能够解答的一个问题。

  Sun赞助的Open Media Commons,是一次通过整个开源社区参与开发DRM技术的尝试。其核心是Sun想方设法确保不与任何已有DRM专利冲突的开源代码。人们希望一种完全开放的DRM方案将使顾客可以在来自不同厂商的大量互操作的软件和设备上,以认可的方式使用受DRM限制的内容。

  所有这些项目的共同主题是合作与协作,这将加快数字音频和视频的采用速度,正如它推动技术向前发展那样。未来之路属于开源,专利限制和专有代码长期以来一直阻碍多媒体发展。

  避开专有消息技术

  开源电子邮件和协作服务器用灵活性满足未来的需要。

  开源工具和电子邮件都有着悠久的历史。Exim、Postfix和Sendmail邮件服务器得到广泛的应用,更不用说从Mozilla Thunderbird到Pine的各种开源邮件客户程序了。但是,电子邮件并不是企业消息技术的最高目标。对于像群组日程安排、共享地址簿和IM集成等高级特性,企业客户通常有两种选择:IBM的Lotus Notes和Microsoft Exchange。这种情况已开始改变。尽管这两个企业消息技术巨头在可预见的未来可能仍占据统治地位,但众多的替代产品已经出现,尤其是针对中小企业的产品,其中很多都来自开源世界。

  Open-Xchange也许是这类项目中最雄心勃勃的一个。它在开源软件包中重现传统群件服务器的功能。Open-Xchange集成多种开源工具,包括Apache Web服务器、Tomcat Java小服务程序引擎和PostgreSQL数据库等,通过一个基于Web的GUI提供全面的电子邮件、日程表和协作功能。商用添加件使Open- Xchange可以与Microsoft Outlook和Palm手持机互操作。

  然而,其他开源消息服务器将互操作性又向前发展了一步。例如,Zimbra利用AJAX(异步JavaScript和XML)技术将消息与外部数据源相集成。此外,Zimbra是从一开始就是作为一种由组件构成的互操作系统来设计的,其中的很多组件以Web服务示人。第三方开发商可以连接在这些组件的API上,直接访问Zimbra日程表项、地址簿和电子邮件。

  由于Zimbra是开源软件,因此开发商不必躲避专有陷阱。他们可以直插代码核心,直接集成自己的软件。开源消息系统也不强迫使用老通信接口。Open-Xchange和Zimbra利用包括WebDAV、LDAP、iCal和HTTP在内的开放标准套件,代替专有 Microsoft Exchange协议。

  这种实现消息技术的开放方式意义重大。由于公司对作为基本业务工具的电子邮件的依赖程度非常高,因此至关重要的企业数据最终保存在电子邮件服务器上。当这些服务器基于专有软件时,公司在电子邮件的存储、恢复、搜索、归档、备份、集成和管理上受一家厂商的支配。基于开放协议和开放代码的消息系统能保证客户在需要时访问数据。此外,活跃的开发社区将日益使这些系统能够不仅在价格和可用性上,而且还在特性上,能与专有厂商竞争。

本页页面地址:

用户评论列表

#0000 author: 000 submitTime: 2006-00-00 12:59

#1 评论作者: rivalhw 发表时间: 2006-09-19 08:04 上午

开源带来的好处是显而易见的,也是被众多实践和事实证明的,相信开源会走的越来越好,也祝愿开源做的越来越优秀。

#2 评论作者: Stive 发表时间: 2006-09-19 08:25 上午

有人说IBM之所以捐献了那么多的代码,不是因为“臣服”于开源,而是“救济”了开源……

我想,也许他是对的。

#3 评论作者: jobs002 发表时间: 2006-09-19 08:45 上午

开源确实带来了发展,也带来了java的欣欣向荣.

每一个软件杰作都开始于满足某个开发人员的个人需要.很有道理

希望开源越走越好.

#4 评论作者: youway 发表时间: 2006-09-19 09:03 上午

开源项目,国人用得多,参与得少

从开源思想到创新,我们要走的路还很远

#5 评论作者: SJTUer 发表时间: 2006-09-19 12:21 下午

咱们现在能用已经不错了,咱们离创新,估计还得等各一两代

#6 评论作者: leole 发表时间: 2006-09-19 12:35 下午

大厂商只不过想利用开源的力量来推广自己的产品,打击竞争对手而以。就如IBM对Eclipse的支持。

#7 评论作者: icess 发表时间: 2006-09-19 02:04 下午

大厂商只不过想利用开源的力量来推广自己的产品,打击竞争对手而以。就如IBM对Eclipse的支持。

是啊, 但同事也给开发者带来了好处, 有免费的产品可以使用, 可以说如果发展好的话,开发者和厂商可以互利互惠的

#8 评论作者: wq830630 发表时间: 2006-09-20 09:15 上午

天下是没有免费的午餐的,IBM贡献代码肯定出于自身利益考虑的。