Mono介绍(无图片)


** 1 **


Mono 介绍

本章内容

ü Mono 项目的历史

ü Mono 项目当前的情况

ü Mono 的意义

ü Mono 架构的一些知识

** 1.1 C # 和 Mono 项目的历史 **

时间应该追溯到公元 1998 年的晚些时候,或者再往前些,在 1996 年,比尔盖茨如愿以偿的挖到了赫赫有名的编译器大师 Anders Hejlsberg 。 Anders Hejlsberg 曾在丹麦科技大学学习工程学,他编写的 Pascal 编译器的核心, 1981 年将 Pascal 编译器卖给了 Borland ,并加入 Borland 公司,那时的 Borland 公司还是一个名不见经传的小公司。

Anders Hejlsberg 在 Borland 主持开发了 Turbo Pascal,Turbo Pascal 获得一直好评, Anders Hejlsberg 并未止步不前,他将 Turbo Pascal 编程一种面向对象的、拥有可视化环境和卓越的数据库访问特性的应用程序开发语言- Delphi 。

Java 出现了。

Anders Hejlsberg 在 Borland 一直郁郁不得志,据 Borland 内部人士讲 Anders Hejlsberg 认为自己不再是不可或缺的人。比尔盖茨慧眼识才,三故茅庐,把 Anders Hejlsberg 请到了微软。最开始微软许以重金,但 Anders Hejlsberg 不为所动,当清楚 Anders Hejlsberg 的想法后,比尔盖茨答应给他一个宽松的环境,既领导 Visual J++ 小组,并提供薪水和红利奖金 300 万美元。这样 Borland 这个大牛孵化器为微软输送了一位超级大牛。

好景不长, SUN 公司认为微软破坏了 java 的跨平台性,微软太有侵略性了,很快微软就会利用它的 VJ++ 将 java 开发人员拉拢到它的周围,而它的 VJ++ 以及 WFC 的很多特性明显是为了 Windows 平台设计。 SUN 中止了对微软的 java 授权。

1998 年的时候,危机感促使微软决心开发一个新的平台。这是一件伟大而艰巨的任务,可以说对微软的未来有举足轻重的意义,谁来承担此重任并成为开发 C# 的首席设计师呢?微软选择了 Anders Hejlsberg 。

在开发领域,人们很少有对一种还处于 beta 版的软件抱有那么大的热情,当初我下载了 vs studio.net 的 beta1 、 beta2 的时候,完全被它折服了,并开始在公司中利用它开发 OA 系统。

微软的 .NET 可以说是跨平台的,但这里的平台指 Windows CE ,用在 PDA 等设备上。微软也提供了一个供 FreeBSD 上的 .NET 平台源代码。从 .NET 的类库上和编译器的编译参数上看,微软的 .NET 是可以做到跨平台的。但比尔盖茨或许天生有种侵略的思想,他不会允许发布一个运行在 Linux 的平台,在他的理念里,开发人员只能生活在他所掌控的 Windows 的世界里,整个世界都要源源不断的往他的口袋里塞钱,他不会把大批的开发人员吸引到一个对他日益危险的敌人 (Linux) 上。从收购 Virtual PC 就可以看出这一点,自从微软收购了 Virtual PC, 以后发布的版本里面已经将 Linux 的选项去除了(当然,现在的新的版本中又增加了,再牛也拗过市场啊),现在很多开发人员选择了 vmware 做虚拟机。

开源阵营里拥有众多的超级大牛。这群抱有极大的热情和拥有聪明大脑的大牛们创造出了无数的令人称道的软件。既然微软不提供 Linux 下的 .NET 平台的实现,那么我们就自己实现它。 2001 年 7 月 Ximian 的 Miguel de Icaza 负责开发 Mono 项目,用以实现跨平台的 .NET 。现在 GNU 也拥有了一个项目 Portable.net ,也是一种跨平台的 .NET 实现。

说起 Miguel de Icaza, 你也许有些陌生,但是说道 GNOME , Linuxer 没有不知道的, Miguel de Icaza 正是 GNOME 的发起人。 1996 年(这也是微软挖 Anders Hejlsberg 的那一年,也正处于自由软件发展的年代),墨西哥籍青年 Miguel de Icaza 正在为 Linux/SGI 工作。他和他的在 Red Hat 工作的朋友 Elliot Lee 时常讨论自由软件的话题。这两个人都不约而同地感觉到,相对而言,自由软件体系缺乏很多技术元素,使得其在很多领域落在后面。

当时, KDE 项目进展得十分顺利,并且功能已经相对完善。 Icaza 对此感到十分高兴,并写信给他们建议把 KDE 的代码纳入 Red Hat 发行版,还曾致信给 Richard Stallman ( GNU 组织者),让他了解有这样一个有趣的项目存在( KDE 当时是基于 GNU GPL 的项目)。但 Icaza 很快得到回信: Qt 是商业软件,不允许用户修改或发行修改后的拷贝,因而违反了 GPL 的相关条例;而 KDE 对 Qt 的依赖性导致其中的部分程序是非自由软件。

出于对自由软件的热爱, Icaza 也曾与 Qt 的所有者 Troll Tech 取得联系,希望可以修改 Qt 的相关许可规则,但是始终没有得到回复。经过一段时间的等待后,他决定自己亲自组织一个 Linux 桌面系统的项目。

在 1997 年的夏季, Icaza 受一个朋友的邀请来到微软,开发基于 SPARC 的 Internet Explorer for Solaris 系统(因为其技术专长就是 Linux/SPARC )。在微软,他学到了一些关于 ActiveX 和 COM 的知识,并开始对这种技术非常 着迷。我想,这对他将来开发 GNOME Bonobo 组件架构身有影响。 在那里,他还巧遇了一直以来在 LinuxNet IRC 交流的几个网友。当他再次返回墨西哥时,便与 Federico 着手设计一套 GUI 控制的基础构架(基于 Unix 系统),并将其命名为 GNOME 。

1997 年 8 月, GNOME 项目正式启动, 26 岁的 Icaza 和墨西哥国立自治大学计算机科学专业的学生 Federico 便着手在 GIMP 、 Guile 邮件列表、 GNU 项目声明邮件列表中分发了项目声明,以此来吸引更多的人加入。邮件列表发挥了重要作用,很快,项目便增加到 250 人,参与者们使用 CORBA 作为组件结构的基础,并使用 DocBook 来写 GNOME 的文件系统。 gnome.org 社区成立, 11 月, Icaza 和 Federico 推掉了其它项目,全身心地投入到开发中来。 12 月,与 Red Hat 取得合作; 1998 年 1 月,共同建立了 Red Hat 高级开发实验室( Red Hat Advanced Development Labs )。这是为改进 GNOME 而成立的第一开发梯队。

1998 年 11 月, Qt 2.0 即将发布之际,该软件公布了一个新的许可协议,以便配合开放源码的定义。这项声明使得 Harmony (克隆 Qt API 的免费软件)彻底地垮台,同时也使人们的视线从刚起步的 GNOME 身上转移到 KDE 身上。

同时,由于 GNOME 开发 14 个月, 1.0 的版本存在着众多的 BUG ,才给 GNOME 带来了坏名声。 RedHat5.0 发布的时候包含了 GNOME1.0 ,也包含了 KDE 。

1999 年 4 月, Icaza 和其他人合伙成立了 Helix Code ,后来改名为 Ximian , Icaza 任 CIO 。 这是一个公开源代码的软件公司,提供 GNOME 的商业版本和套件。

在 2000 年 8 月举行的 Linux World 展会上, GNOME 基金会宣布成立。 Icaza 任总裁。

Ximian 公司在 2001 年 7 月开始启动一个名叫 Mono Project 的开放源码版 “.NET” 的开发项目, Icaza 组织开发。 Mono 在西班牙语中意思是“猴子”,因为他们喜欢猴子,所以起了这样一个名字,读起来感觉还不错,简短、易记、好发音。 旨在使 开发者能够编写同时在 Windows 和 Linux 上运行的 .NET 程序, Mono 计划主要包括一个 C# 编译器、 与微软公司的 Common Language Infrastructure ( CLI )兼容的类库、 Linux 版 Common Language Runtime ( CLR )编译器。

Miguel de Icaza 说:“虽然微软公司已向欧洲电子计算机工业协会( ECMA : European Computer Manufacturers' Association )以及 World Wide Web Consortium ( W 3C )的标准化机关提交了 c# 及 CLI 的标准(现已获得通过),但因为该公司的共享( Shared Source )授权仅限于部分对象,所以不能开发面向 Linux 或 UNIX 等平台的应用程序。而我们将提供的是能够自由进行应用程序开发或提供 Web 服务的工具,令 Linux 用户也能够享受到 NET 平台的巨大好处。”

下面再介绍一下 Novell 公司。

在上世纪 70 年代初, 一 家名为 Novell 的小公司成立了,一开始 Novell 是一家专业的网络公司,它开发了高性能的 Novell 局域网产品。在 80 年代初, Novell 推出它的 Netware 网络操作系统,几乎一夜之间, NetWare 成为办公室应用的 “ 权威 ” ,它允许各个个人电脑访问共享打印机,发送电子信函,交换文件和访问中央数据库, Netware 于 1989 年被国际 ISO 组织选定为局域网工业标准。这个具有许多一流技术的操作系统很快得到市场上的欢迎,但一开始运行 Netware 一定需要购买以太网设备,所以 Novell 开始售卖以太网适配卡。后来, Novell 开始向任何需要它的 Novell Engineering(NK) 以太网适配卡设计的人出售许可证,从而出现了庞大的 NE2000 仿制生意,就像仿制 IBM 的兼容 PC 机一样,曾经有一段时间,市场上的网卡大多都是 NE2000 兼容型。以前,当我安装网卡,找不到网卡的驱动的时,我还会选择 NE2000 兼容型驱动暂时充数。

到 90 年代初, Novell 推出它具有历史意义的 Netware 3.12 网络操作系统,这款经典的网络操作系统让 Novell 到达了它事业的顶峰,奠定了它以太网王国至尊的地位。 Netware 3.12 是 Novell 销售最多的产品,它打败了 IBM 的 PCNET ,当我还在科大上学的时候,学校机房里还采用 Netware 网络操作系统。

风云变换, Novell 被微软打败了。 Netware 几乎退出了网络操作系统的舞台,取而代之的时 WIN NT 和 Linux 。

Novell <SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Tim

Published At
Categories with Web编程
Tagged with
comments powered by Disqus