2008.11.18 20:35
이 글은 Fedora 9에서 OpenJDK를 사용할 것인가, 아니면 썬에서 리눅스용으로 배포하고 있는 JDK를 사용할 것인가를 고민하다가 작성하고 있습니다.

OpenJDK를 지웠음에도
whereis java
하면, openJDK가 설치되어있던 경로인 /etc/java, /usr/lib/java, /usr/share/java 를 결과로 보여주었습니다.
왜 그럴까요.
/etc/java 에 가보면, font.properties, java.conf, jpackage-release 파일이 있습니다.
뭘까요, 이파일들은,
java.conf 파일을 열어보았습니다.


System-wide Java configuration file이군요.
이 뭥. 그래서 http://www.jpackage.org에 들어갔습니다.

JPackage Project는 다음의 두 개의 목표를 갖고 있습니다.
  • 리눅스를 위한 종합 자바 소프트웨어 패키지를 제공하여, 다른 응용프로그램의 질적인 요구사항을 충족
  • 자바 소프트웨어 패키징과 설치에 대한 효율적이고, 강력한 원칙을 수립

라고 되어있네요. 어쨌든, 이 이 프로젝트가 페도라 9에 기본적으로 포함되어 있고, 이 패키지 때문에 아직 whereis java하면 /etc/java와 같은 패스가 검색되는 것 같습니다.
그리고 yum list|grep jpp를 해보면, 자바 애플리케이션들이 jpp버전으로 되어 있는 것을 볼 수 있습니다.

이제 구글에서 OpenJDK를 검색하겠습니다.
검색된 첫번째 사이트는 http://openjdk.java.net
두번째 사이트는 http://en.wikipedia.org/wiki/OpenJDK 입니다.

일단 영문 위키피디아의 OpenJDK를 읽어보겠습니다.

OpenJDK
From Wikipedia, the free encyclopedia

OpenJDK 는 완전한 free 그리고 open source 코드를 기반으로 fully buildable한 Java Development Kit을 배포하기 위한Sun Microsystems 의 노력입니다.

역사

썬의 약속과 초기 버전의 배포
선은 JavaOne 2006에서 자바는 오픈 소스 소프트웨어가 될 것이라고 발표했습니다. 그리고 2006년 10월 25일, Oracle OpenWorld에서 Jonathan Schwartz 는 썬이 30일에서 60일 내에 자바 플랫폼의 핵심 부분에 대한 오픈 소스화를 발표하기로 정했다고 말했습니다.
썬은 2008년 12월 13일에 Java HotSpot virtual machine 과 컴파일러는 GNU General Public Licence를 따르는 free software로 발표했고, JRE를 포함한 JDK의 나머지 부분도 2008년 3월까지 GPL을 따르게 될 것이라고 약속했습니다. 하지만 일부 3rd parties는 그들의 코드가 free, open-source 라이센스를 따르는 것을 원하지 않고 있어, 썬의 라이센스를 따르게 되며, 제한을 받게 됩니다. Richard Stallman에 따르면 Java Trap을 끝내는 것을 의미합니다.(Java Trap에 관련해서는 http://www.gnu.org/philosophy/java-trap.html를 읽어보세요) Mark Shutlleworth 는 이 첫 언론 발표를 free software community 에 있어서 진정한 이정표라고 불렀습니다.

class library의 배포
썬은 그들의 약속에 따라 2007년 3월 8일에 class library의 완전한 소스 코드가 GPL에 따라 배포되었습니다. (소스 코드의 공개를 원치않는 써드 파티의 코드는 제외되었습니다. 자바의  GUI 시스템의 몇 가지 중요한  컴포넌트도 그렇습니다.) 썬은 소유권이 존재하며, 비공개 되어 있는 소스를 대안 코드들로 교체하고, 클래스 라이브러리를 완전히 공개하는 것이 그들의 목표라고 말하고 있습니다.

커뮤니티의 발전
2007년 11월 5일에 Red Hat 은 Sun Microsystems 와 계약을 체결하면서 썬의 광범위한 기여 협약에 서명하였습니다. 이 협약은 Red Hat 엔지니어들이 썬이 주도하고 있는 free/open source 소프트웨어 프로젝트에 참여하는 것을 다루고 있으며, OpenJDK에 기반한 프로젝트가 Java SE 6 Specification에 부합하는지를 결정하는 test suite에 관여할 수 있도록 하는 썬의 OpenJDK Coummunity TCK 라이센스 협약도 포함되어 있습니다

-- 중략 --

리눅스 배포판에 포함
2008년 5월에는 Fedora 9과 Ubuntu 8.04 배포판은 OpenJDK 와 함께 배포되었습니다. 당시에 OpenJDK는 Java SE 6 JCK 에 대한 모든 테스트를 통과하지는 못했으며, 이는 아직 남아있는 오픈되지 못한 코드들 때문입니다. 하지만 어쨌거나  1% 보다 적은 소스 코드의 비율로 줄였으며 OpenJDK 를 빌드할 때만 필요하고, 실행할 때는 필요하지 않습니다. 게다가 OpenJDK 는 NetBeans, Eclipse, GlassFish, JBoss와 같은 복잡한 응용프로그램들을 실행시킬 수있습니다.
2008년 6월에, 페도라 9에 포함된  OpenJDK 인 IcedTea6 가 TCK 를 통과했으며, Java 6 의 모든 구현체에 호환성을 갖는 다고 주장할 수 있게 되었다고 발표되었습니다. 2008년 6월 12일에 Debian은  unstable 로써 OpenJDK-6를 포함하였으며, 현재 테스트 중입니다. 2008년 8월부터는 OpenJDK 7 이 Max OS X과 다른 BSD 배포판에서 실행할 수 있게 되었습니다.

Status

지원되는 JDK 버전들
OpenJDK는 처음에는 자바 플랫폼의 JDK 7.0 버전만을 기준으로 하고 있습니다.
2008년 2월 15일 부터는 두 개의 별개의 OpenJDK 프로젝트가 존재합니다.
  • 자바 플랫폼의 JDK 7.0 버전을 기반으로 하는 메인 OpenJDK 프로젝트
  • Java 6.0의 오픈 소스 버전을 제공하기 위한 JDK 6 프로젝트
-- 중략 --

여기까지 읽으셨다면, OpenJDK에 대한 설명은 어느 정도 된 것 같고,
이제 IcedTea에 대해서 잠깐만 보겠습니다
더 많은 내용은 http://en.wikipedia.org/wiki/IcedTea를 참조하세요.
썬은 클래스 라이브러리를 공개할 때, 써드 파티 라이브러리의 저작권자에게 오픈소스로 공개할 수 있도록 설득하고자 했으나 잘 되지 않았고, 어쨌거나 썬의 배포판에는 그 코드들이 들어있습니다. IcedTea 프로젝트는 이러한 코드들에 대한 대안 코드를 마련하고 전적으로 오픈소스화 하기 위해 시작되었습니다.  , IcedTea6는 썬으로부터 OpenJDK 라는 이름을 사용해도 좋다는 라이센스를 받았고, 페도라 9에는 OpenJDK6라는 이름으로 포함되었습니다.

흠, 여기까지 적고 보니, 그냥 OpenJDK를 사용해도 될 것 같군요 일단 OpenJDK를 믿고 가보도록 하죠.
JPackage에 대한 내용은 나중에...(일단 페도라는 JPackage를 적극적으로 수용하고 있습니다.)
Posted by 나야