据国外媒体报道,《eWEEK》网站日前评出了有史以来最重要的18项开源应用。
分别是:
1 Apache(阿帕奇)
Apache 是基于当时 (1995年初) 最流行的 HTTP server NCSA httpd 1.3 的程式码和构想而写成的。之后它发展成 为一个非常优良的系统,在功能上,效率上和速度上足以和几乎所有 Unix 上的 HTTP server 匹敌(或许更好)。 自始,它已经完全重写过,并且加入了许多的新功能。根据 Netcraft Survey,就在 1995 年1月,Apache 已经成为 Internet 上最流行最好用的 WWW server(网站服务器)了。
2 Linux Kernel(内核)
Linux是一套免费使用和自由传播的类Unix操作系统,这个系统是由全世界各地的成千上万的程序员设计和实现的。它以高效性和灵活性著称。并且能够在PC计算机上实现全部的Unix特性,具有多任务、多用户的能力。如果你只知道windows而不知道有linux,那么...
3 Nessus
Nessus是一个功能强大而又易于使用的远程安全扫描器,它不仅免费而 且更新极快。安全扫描器的功能是对指定网络进行安全检查,找出该网络是否存在有导致对手攻击的安全漏洞。该系统被设计为client/sever模式,服 务器端负责进行安全检查,客户端用来配置管理服务器端。在服务端还采用了plug-in的体系,允许用户加入执行特定功能的插件,这插件可以进行更快速和 更复杂的安全检查。在Nessus中还采用了一个共享的信息接口,称之知识库,其中保存了前面进行检查的结果。检查的结果可以HTML、纯文本、 LaTeX(一种文本文件格式)等几种格式保存。
Nessus的优点在于:
a、 其采用了基于多种安全漏洞的扫描,避免了扫描不完整的情况。
b、 它是免费的,比起商业的安全扫描工具如ISS具有价格优势。
c、 在Nmap用户参与的一次关于最喜欢的安全工具问卷调查中(评选结果附后),在与众多商用系统及开放源代码的系统竞争中,Nessus名列榜首。群众的眼睛是雪亮的:)。
d、 Nessus扩展性强、容易使用、功能强大,可以扫描出多种安全漏洞。
4 Firefox
Firefox火狐浏览器是开源基金组织Mozilla研发的产品,与生俱来的“开放源代码”特性决定着它在开源社区拥有众多的支持者。它的最新版本拥有更人性化界面,能够阻止病毒、间谍软件和弹出窗口的侵扰。便捷的导入您的收藏。集成更多有用的功能,还可以根据自己的喜好来自定义功能模块,例如分页浏览,即时书签,整合搜索框, Firefox将会带给您全新的网络体验。(是真的,除了对网上电子银行控件安全密钥支持稍有不足(由于银行的服务端多数基于微软产品ie来植入安全模块[估计银行最看重钱,商业行为决定不会很好支持免费的东西],其余功能都比ie好用多了,如果你不是经常使用网上银行,建议你一定要试用。)
5 Perl
Perl 是一种自由且功能强大的编程语言。它被用作 Web 编程、数据库处理、XML 处理以及系统管理等等 -- 它能够完成所有这些工作,同时仍然是处理小的日常工作的完美工具。Perl 快速、有趣,而且特别有用。 Perl 最初的设计者为拉里?沃尔(Larry Wall),它于1987年12月18日发表。Perl借取了C、sed、awk、shell scripting以及很多其他程序语言的特性。 Perl的解释程序是开放源码的免费软件,使用Perl不必担心费用。Perl能在绝大多数操作系统运行,可以方便地向不同操作系统迁移。
Perl 是一种能完成任务的语言。从一开始,Perl 就设计成可以把简单工作简单化,同时又不失去处理困难问题能力的语言。它可以很容易操作数字,文本,文件和目录,计算机和网络,特别是程序的语言。这种语 言应该很容易运行外部的程序并且扫描这些程序的输出获取感兴趣的东西。而且它还应该很容易能把这些你感兴趣的东西交给其它程序做特殊的处理。当然,这种语 言还应该很容易在任何现代的操作系统上可以移植地编译和运行。
PerlChina 成立于 2002 年 8 月,是一个非盈利性 Perl 开源组织。
6 Wireshark
wireshark为网络协议分析工具(网络抓包),原名ethereal。因为专利等问题,2006年6月8号, Ethereal的作者Gerald Coombs宣布了一则消息: "我已离开NIS公司, 现加入CaceTech. 很遗憾最终没能与NIS公司(Ethereal商标所有者)达成协议, Ethereal现改名为Wireshark。
wireshark作为免费的sniffer(网络嗅探)工具,支持Unix和Windows平台,他允许你在一个网络内部实时分析数据或者捕捉数据文件去磁盘,你能够通过图形界面很直观的去浏览捕捉的数据信息,研究 数据包每一层的详细信息,Wireshark 有几个强大的功能特性,包括一个丰富的显示过滤器语言和高能力的TCP会话重组流查看。他也支持上百种协议和媒体类型, 拥有一个类似tcpdump的名为tethereal的的命令行版本。
7 PHP
PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP 是一种HTML内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言风格类似于C语言。PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI 或者 Perl 更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;与同样是嵌入HTML文档的脚本语言JavaScript相 比,PHP在服务器端执行,成分利用了服务器的性能;PHP执行引擎还会将用户经常访问的PHP程序驻留在内存中,其他用户在一次访问这个程序时就不需要 重新编译程序了,只要直接执行内存中的代码就可以了,这也是PHP高效率的体现之一。PHP具有非常强大的功能,所有的CGI或者JavaScript的 功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。
PHP 最初是1994年Rasmus Lerdorf创建的,2000年,PHP4.0又问世了,其中增加了许多新的特性。
包括以下几点:
开放的源代码:所有的PHP源代码事实上都可以得到。
PHP是免费的。
基于服务器端:由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS下。
嵌入HTML:因为PHP可以嵌入HTML语言,所以学习起来并不困难。
简单的语言:PHP坚持脚本语言为主,与Java以C++不同。
效率高:PHP消耗相当少的系统资源。
图像处理:用PHP动态创建图像
8 VNC
VNC(Virtual Network Computing,虚拟网络计算)最早是一套由英国剑桥大学AT&T实验室在2002年开发的轻量型的远程控制计算机软件,其采用了 GPL 授权条款,任何人都可免费取得该软件。VNC软件主要由两个部分组成:VNC server及VNC viewer。用户需先将VNC server安装在被控端的计算机上后,才能在主控端执行 VNC viewer 控制被控端。
VNC server 与 VNC viewer 支持多种操作系统,如 windows,Linux,MacOS 及 Unix 系列(Unix,Solaris等),因此可将 VNC server 及 VNC viewer 分别安装在不同的操作系统中进行控制。RealVNC 的优越性还在于如果操作系统的主控端计算机没有安装 VNC viewer,也可以通过一般的网络浏览器(如 IE 等)来控制被控端(需要 Java 虚拟机的支持)。
整个 VNC 一般运行的工作流程如下:
(1) VNC 客户端通过浏览器或 VNC Viewer 连接至 VNC Server。
(2) VNC Server 传送一对话窗口至客户端,要求输入连接密码(可能为空),以及存取的 VNC Server 显示装置。
(3) 在客户端输入连接密码后,VNC Server 验证客户端是否具有存取权限。
(4) 若是客户端通过 VNC Server 的验证,客户端即要求 VNC Server 显示桌面环境。
(5) 被控端将画面显示控制权交由 VNC Server 负责。
(6) VNC Server 将把被控端的桌面环境利用 VNC 通信协议送至客户端,并且允许客户端控制 VNC Server 的桌面环境及输入装置。
9 BSD
BSD (Berkeley Software Distribution,伯克利软件套件)是Unix的衍生系统,1970年代由加州大学伯克利分校开创。BSD用来代表由此派生出的各种套件集合。 BSD常被当作工作站级别的Unix系统, 但不同的BSD操作系统针对不同的用途及用户,可应用于多种硬件构架。
1986年6月,4.3 BSD发布,此时,所有的BSD版本混合了专属的AT&T Unix代码,这样就继续使用就要求从AT&T获得许可证。源码许可证当时非常地昂贵,几个其他组织对单独的网络代码版感兴趣,完全独立于 AT&T,这样就可不受许可证的支配。
1989年6月,Networking Release 1(Net/1)诞生了,没有AT&T授权也能使用,可遵照BSD许可证进行自由再发布。 1990年初,推出了4.3BSD-Reno。该版本是4.4BSD早期开发的过渡版,使用该版本被戏称为是一种赌博,因为Reno就是内华达州的赌城雷诺。
BSD的开源後裔有:
DragonflyBSD是最年轻的BSD,专门提供比FreeBSD更优秀的对称多处理机系统,并使内核直接支持SSI集群,以取得更好的计算效果。这个项目在此方向上,才开始数年,主要关注i386平台。
FreeBSD在BSD家族中以易用性与高性能而着称,由于主要用作微处理器架构,如i386、AMD's 64-bit i386扩展,所以FreeBSD非常关注多处理器。FreeBSD在i386和amd64服务器上,运行地非常好,当然,它也可以在其他硬件构架上运 行。
NetBSD拥有特别出色的可移植性,能在多达54种平台上运行,小到嵌入式的掌上设备,大到服务器群,NetBSD甚至还在国际空间站中服务。
OpenBSD在密码学和安全方面特别出众,可移植性也很好,只略逊于NetBSD。安全功能如OpenSSH,是由OpenBSD率先开创的。OpenBSD作为安全请求机器(security demanding machines)运行,受到好评。
10 Webmin
Webmin is a web-based interface for system administration for Unix. Using any modern web browser, you can setup user accounts, Apache, DNS, file sharing and much more. Webmin removes the need to manually edit Unix configuration files like /etc/passwd, and lets you manage a system from the console or remotely. See the standard modules page for a list of all the functions built into Webmin, or check out the demo and screenshots.
Webmin是一个基于Web方式的系统管理工具,用于管理Unix系统,当然,是免费的。就是说Webmin由一个简单的Web服务器和若干CGI(由PERL 5.0开发)程序构成,可以使用Webmin设置用户帐号、Apache、DNS、文件共享,等等。
webmin 基于模块话设计,大概包含了系统管理、服务器管理、网络管理、硬件管理、集群管理、其他管理等几个模块。里面包含了大量的管理功能,还有用java applet写的一个文件管理系统,可以如同资源管理器一样进行文件操作。
11 Asterisk
Asterisk是一个开放源代码的软件VoIP PBX系统,它是一个运行在Linux环境下的纯软件实施方案。有两个不同的版本:核心的Asterisk软件和用户界面更友好的 Asterisk@Home(AAH),后者有一个基于GUI的WEB界面。
Asterisk是一种功能非常齐全的应用程序,提供了许多电信功能,能够把你的x86机器变成你自己的交换机,还能够当作一台企业级的商用交换机。Asterisk让人激动的事情是它在小企业预算可承受的范围内提供了商业交换机的功能和可伸缩性。有了asterisk你可以使用一台老式的奔腾3计算机,让你的机构看起来就同世界上的大企业一样。
Asterisk 能够支持传统的线路,包括:
TDM (Time Division Multiplexing)
T1/ E1 PRI/ PRA & RBS (Robbed Bit Signal)modes
Analog phone lines/ phones (POTS)
ISDN (Integrated Services Digital Network)
Both BRI (Basic Rate)and PRI (Primary Rate)
支持的协议包括:
Session Initiation Protocol (SIP)
H. 323 (ITU standard, contributed support)
Inter- Asterisk eXchange (IAX)
Media Gateway Control Protocol (MGCP)
Asterisk能做什么?
附有目录的语音邮件服务
电话会议、互动语音回应和电话排序
通路呼叫
呼叫方ID服务
ADSI?????
与硬件VOIP 比较
能够支持多媒体,具有可编程功能。
具有硬件VOIP 的常用功能。
有友好的管理界面。
需要的带宽,一般为:32 KB/ 线路。也就是说每支持一条线路,只需要增32KB 的带宽,但是需要网络质量良好。
可支持成千的客户端。(需要板卡与带宽支持)
12 Nmap
NMap,也就是Network Mapper,是Linux下的网络扫描和嗅探工 具包,其基本功能有三个,一是探测一组主机是否在线;其次是扫描 主机端口,嗅探所提供的网络服务;还可以推断主机所用的操作系统 。Nmap可用于扫描仅有两个节点的LAN,直至500个节点以上的网络。Nmap 还允许用户定制扫描技巧。通常,一个简单的使用ICMP协议的ping操 作可以满足一般需求;也可以深入探测UDP或者TCP端口,直至主机所 使用的操作系统;还可以将所有探测结果记录到各种格式的日志中, 供进一步分析操作。
13 OpenOffice.org
OpenOffice.org 是一套跨平台的办公室软体套件,能在 Windows、Linux、MacOS X (X11)、和 Solaris 等作业系统上执行。它与各个主要的办公室软体套件相容。OpenOffice.org 是自由软体,任何人都可以免费下载、使用、及散布它。 目前最新是 OpenOffice.org 2.2.1 中文版
14 MySQL
MySQL是一个开放源码的小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型 网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性
支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统
为多种编程语言提供了API。这些编程语言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。
支持多线程,充分利用CPU资源
优化的SQL查询算法,有效地提高查询速度
既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中
提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名
提供TCP/IP、ODBC和JDBC等多种数据库连接途径
提供用于管理、检查、优化数据库操作的管理工具
可以处理拥有上千万条记录的大型数据库
15 Nagios
Nagios是一个监视系统和网络的应用程序。它监视你所指定主机和服务,当监视的内容变好或者变坏时发出警告。Nagios最初是被设计在Linux平台上运行的,然而现在在其他平台上也运行良好。
16 Eclipse
Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。
17 Samba
Samba是一套让UNIX系统能够应用Microsoft网络通讯协议的软件。它使执行UNIX系统的机器能与执行Windows系统的电脑分享驱动器与打印机。Samba属于GNU Public License(简称GPL)的软件。
SMB(Server Message Block)通信协议是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主要是作为Microsoft网络的通讯协议,而 Samba则是将SMB协议搬到UNIX上来应用;Samba的核心是SMB(Server Message Block)协议。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,更能与全世界的电脑分享资源;因为互联网上千千万万的主机所使用的通讯协议就是 TCP/IP。SMB是在会话层(ession layer)和表示层(presentation layer)以及小部分应用层(applicationlayer)的协议。SMB使用了NetBIOS的应用程序接口(Application Program Interface,简称API)。另外,它是一个开放性的协议,允许了协议扩展----使得它变得更大而且复杂;大约有65个最上层的作业,而每个作业都超 过120个函数, 甚至Windows NT也没有全部支持到,最近微软又把 SMB 改名为 CIFS(Common Internet File System), 并且加入了许多新的特色,而Samba亦支持了 NT Lan Manager 0.12等 SMB 的延伸协议,这是得Samba具有管理NT网域的能力。
Samba 的主要功能如下:
(1)提供Windows NT风格的文件和打印机共享 Windows 95、Windows 98、Windows NT等以据此共享UNIX等其他操作系统的资源,外表看起来和共享NT的资源没有区别。
(2) 解析NetBIOS名字IP 在Windows网络中,为了能够利用网上资源,同时自己的资源也能被别人所利用; 各个主机都定期地向网上广播自己的身份信息。而负责收集这些信息,为别的主机;提供检索情报的服务器就被称为浏览服务器.Samba可以有效地完成这项功 能在跨越网关的时候Samba还可以作WINS服务器使用。
(3)提供SMB客户功能 利用Samba提供的smbclint程序可以从UNIX下以类似于 FTP的方式访问Windows的资源。
(4)备份PC上的资源 利用一个叫smbtar的shell 脚本,可以使用 tar 格式备份和恢复一台远程 Windows上的共享文件。
(5)提供一个命令行工具,在其上可以有限制地支持NT的某些管理功能。
18 OpenSSH and OpenSSL
OpenSSH 是一组用于安全地访问远程计算机的连接工具。它可以作为 rlogin、 rsh rcp 以及 telnet 的直接替代品使用。更进一步, 其他任何 TCP/IP 连接都可以通过 SSH 安全地进行隧道/转发。 OpenSSH 对所有的传输进行加密, 从而有效地阻止了窃听、 连接劫持,以及其他网络级的攻击。
OpenSSH 由 OpenBSD project 维护, 它基于 SSH v1.2.12 并包含了最新的错误修复和更新。 它同时兼容 SSH 协议的 1 和 2 两个版本。 从 FreeBSD4.0 开始, OpenSSH 成为了基本系统的一部分。
使用 OpenSSH 的好处
通常,当使用 telnet(1) 或 rlogin(1) 时,数据是以明码的形式发送的,并没有加密。在客户机和服务器之间的网络上运行的听包程序可以在会话中偷窃到传输的用户名/密码和数据。 OpenSSH 提供了多种的身份验证和加密方法来防止这种情况的发生。
SSL是Secure Socket Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议 标准,目前已有3.0版本。SSL采用公开密钥技术。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。
众多的密码算法、公钥基础设施标准以及SSL协议,或许这些有趣的功能会让你产生实现所有这些算法和标准的想法。应该感谢Eric A. Young和Tim J. Hudson,他们自1995年开始编写后来具有巨大影响的OpenSSL软件包,更令我们高兴的是,这是一个没有太多限制的开放源代码的软件包,这使得 我们可以利用这个软件包做很多事情。Eric A. Young 和Tim J. Hudson是加拿大人,后来由于写OpenSSL功成名就之后就到大公司里赚大钱去了。1998年,OpenSSL项目组接管了OpenSSL的开发工 作,并推出了OpenSSL的0.9.1版,到目前为止,OpenSSL的算法已经非常完善,对SSL2.0、SSL3.0以及TLS1.0都支持。 OpenSSL采用C语言作为开发语言,这使得OpenSSL具有优秀的跨平台性能,这对于广大技术人员来说是一件非常美妙的事情,可以在不同的平台使用 同样熟悉的东西。OpenSSL支持Linux、Windows、BSD、Mac、VMS等平台,这使得OpenSSL具有广泛的适用性。
OpenSSL整个软件包大概可以分成三个主要的功能部分:密码算法库、SSL协议库以及应用程序。 作为一个基于密码学的安全开发包,OpenSSL提供的功能相当强大和全面,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。

