1965年前后,IBM的研究人员试图去测量一些计算机科学领域新概念的实际效果。为了能够测量到这些新特性开启和关闭后机器的两种性能,研究人员需要一种方式来关闭这些新的特性。这些人是IBM约克镇(美国弗吉尼亚州东南部城镇)研究中心的研究人员。他们设计了一种方案,需要把机器分割成“更小的部件”。这些部件要求能够管理他们自己的资源,以使得研究人员能够在同一时间在系统中测试测试许多不同的条件,而不用改变系统的其他“部件”。他们相信,对于这个实验来讲,一个虚拟机的实现会工作的非常好。
在这次实验之后,IBM继续他们的工作,并最终开发出了一个虚拟机概念的实现。他们把它当作一个多用户环境的操作系统来卖。许多企业和大学都使用这个操作系统,因为它允许他们共享主机的计算能力和资源。每个用户在他们自己的虚拟机中工作,从而可以和其他人共享资源而不影响其他人的工作。这台虚拟机现在被称做IBM370系统(S/370)和IBM390系统(S/390)。这些机器利用IBM VM/ESA操作系统,并且都被归为IBM虚拟机派系。
这个虚拟机的实现被证明非常的强大,因为至今它都还在销售。虚拟机的概念从那以后开始被用来解决许多其他的计算问题,如计算机程序的可移植问题和操作系统的设计问题。 UNIX操作系统是最早利用虚拟机概念解决这些问题的实现之一。
UNIX操作系统源自贝尔实验室的Denise Richie和Ken Thompson在1974年发表的一篇论文。他们关于UNIX的这一思想很快被用在了PDP-11计算机上。PDP-11是一种大学使用的机器。通过大学毕业生,这一思想又很快被应用于商业计算机领域。从1980年到1985年,IEEE标准化委员会实施POSIX(Portable Operating System 可移植操作系统)项目来为UNIX库函数提供一个标准。他们的想法是:任何软件供应商都可以使用标准库函数书写他们的代码,并且可以和任何UNIX系统对接。1990年,IEEE POSIX项目组发表了“信息技术可移植操作系统接口”。这为UNIX外壳和应用例程规定了一个标准,使得UNIX应用接口成为一种正式的规范,从而使UNIX进程作为一个独立的虚拟机来工作。
创造一种真正可移植的计算机程序是长期困扰程序员的问题之一。或者说,程序员希望能够写出可以在任何平台上工作的程序。上世纪90年代中期,利用虚拟机的概念创造的JAVA语言使得这一想法几乎成为现实。
但是,在上世纪90年代,JAVA程序语言的思想并不是一个新的想法。它实际上是上世纪70年代,一个叫Bill Joy的绅士的想法。Joy想通过创造一种语言来整合MESA和C最好的优点。但是后来其他项目组(如Sun)搀和进来,并且实现这一想法需要很多年。到90年代早期,Joy对大型程序开始变的疲倦。在90年代后期,Joy写了一篇叫“更进一步”的论文。(译者按:可能作者在此处的时间问题上有点错误,应该是80年代后期。待查证。)在这篇论文中,他列出了对Sun工程师的建议,认为他们应该基于C++创造一个对象环境。也正是在这个时候,James Gosling已经在一个叫做“Imagination”的SGML编辑器上使用C++工作几个月了。因为Gosling在“Imagination”项目中使用C++时受到挫折,这使他创造了Oak编程语言。
1990年12月5日,Patrick Naughton开始了绿色项目(Green Project)。Naughton是这样定义这个项目的:为实现“做的越少越好”而努力。在那年12月,他招募了Gosling和Mike Sheridan来帮忙启动这个项目。Joy给他们看了自己“更进一步”的论文,并且用C为图形学和用户接口的问题工作了几个月。
1991年4月,绿色项目组(Naughton,Gosling和Sheridan)开始以“智能家电”(smart consumer electronics)为目标市场。而Gosling开始为Oak编程语言而努力工作。Gosling用C写了最早的编译器,而Naughton,Gosling和Sheridan完成的运行时解释程序也是用C完成的。1991年8月,Oak的第一个程序诞生了。
到1992年秋天,一种在PDA和远程控制之间的交叉互通器“*7”准备好了。是年10月,他们向Sun的董事长Scott McNealy展示了这个系统。接着,Sun以绿色项目为主体成立了一个全资子公司,叫First Person Inc.。1993年早些时候,绿色项目组听说时代华纳(Time-Warner)需要一个关于机顶盒操作系统的计划书。First Person迅速从智能家电转向机顶盒操作系统市场,并且向时代华纳递交了标书。幸运的是Sun没有中标。(译者按:这应该是个不幸的事件。)First Person继续研究机顶盒操作系统。直到1994年早些时候,他们意识到机顶盒和智能家电一样华而不实。
1994年,因为看不到市场前景,First Person被母公司Sun兼并。也正是在那个时候,他们意识到,智能家电和机顶盒上需要的软件(它们的特点是:短小,平台无关,安全可靠)在新生的web上也同样需要。绿色项目组第三次转变他们的方向,这次是web。Patrick Naughton写了一个叫WebRunner的浏览器雏形。经过Naughton和Jonathan Payne增补,这个浏览器成为Hot Java。1995年,Oak更名为Java。1995年,Java第一个开发工具JDK1.0alpha版发布。从那时起,已经有许多修订版陆续发布,直到最近的JDK1.2。