Yanıtlar:
Bu, OpenJDK sayfasında daha ayrıntılı olarak açıklanmaktadır: JDK 7 Proje Teklifini Güncelleme Soru-Cevap
Bu Proje, Oracle JDK 7 Güncelleme sürümlerinin temelini oluşturacak mı?
Evet.
Joe Darcy'nin OpenJDK 6'daki FOSDEM blog gönderisinden alıntı yapmak için :
Özellikle, OpenJDK 7 kod tabanı ile 7 güncelleme kodu tabanı arasında OpenJDK 6 ile 6 güncelleme dizisi arasında olduğu gibi aynı ikilik olmayacaktır ...
Okuduğum kadarıyla, yukarıdaki temelde yamalar ve güncellemelerin genellikle ilk olarak JDK'yi Aç ve ardından Oracle JDK'da mümkün olduğunca küçük bir gecikmeyle gönderileceği anlamına gelir.
Güvenlik yamaları için, resim tam tersi gibi görünüyor, yani ilk önce Oracle sürümlerine ve daha sonra (mümkün olduğunca küçük bir gecikmeyle) OpenJDK'ya gitmelerini bekliyorum:
7 Güncelleme Projesi Oracle'dan güvenlik düzeltmeleri alacak mı?
Evet.
OpenJDK 6'da olduğu gibi, güvenlik düzeltmeleri ilk olarak gizli tutulur ve etkilenen JDK yayın trenlerine yönelik genel senkronize yayının bir parçası olarak kamu ormanına gönderilmeden önce özel bir ormana uygulanır. Ayrıca, genel kod inceleme ve geri alma onay sürecinden geçmeyecekler ve Projenin sorun izleyicisindeki ilgili sorunları herkes tarafından görülemeyecektir.
Bu Proje ne zaman Oracle'dan güvenlik düzeltmeleri alacak?
Oracle Java SE Kritik Yama Güncelleştirmeleri için zamanlama herkese açıktır .
Bu Projenin kaynak koduna yönelik güvenlik düzeltmeleri, JDK 7 Güncelleme Projesi'nde Oracle'ın ürünlerinde piyasaya sürüldükleri sırada sunulacaktır ...
Oracle ve Open JDK'ları eşzamanlı tutmak için neden bu kadar çaba harcandığının nedenlerini daha iyi anlamak için, önceki projedeki Oracle kararına bir göz atmak mantıklı: Resmi Java SE 7 Referans Uygulaması olarak OpenJDK'ya geçmek :
... Oracle ve Java SE 7 Expert Group'un diğer üyeleri Java SE 7 spesifikasyonuna ( JSR 336 ) son rötuşları yapıyorlar . Oracle, şartname öncüsü olarak, Java SE 7 Referans Uygulamasını sunmaktan sorumludur ... tamamen OpenJDK açık kaynak koduna dayanan ve GPL açık kaynak lisansı altında kullanılabilir hale getirecek bir Referans Uygulaması sağlayacağız. .
Referans Uygulamasının (RI) rolü, tüm Java uygulamaları için altın standart olarak kullanılmalıdır. Bir uygulamanın Java SE uyumlu sertifikalı olması için bir uygulayıcının çok sayıda uyumluluk testini (Teknoloji Uyumluluk Kiti (TCK)) geçmesi gerekir. Ayrıca, ek bir uyumluluk kontrolü olarak uygulamalar UR ile karşılaştırılabilir. Temel olarak, uygulamanızın RI ile aynı davranışa sahip olduğu onaylanmışsa, Java uyumludur. Bu konu hakkında daha fazla bilgi için JCP SSS bölümüne bakın .
Tarihsel olarak Sun, Sun JDK'yı her zaman UR olarak kullandı ve İkili Kod Lisansı (BCL) altında kullanılabilir hale getirdi. Sun için çok uygun olduğu için, ürün uygulamasının tanım gereği uyumlu olduğu anlamına geliyordu. Ancak, Sun JDK, Java Eklentisi gibi standardın bir parçası olmayan birkaç özellik içerdiğinden de kafa karıştırıcıydı. Ayrıca, bu uygulamaya devam etmek, resmi UR kaynak kodunu inceleyip değerlendiremeyecekleri için açık kaynak uygulayıcıları için işleri zorlaştıracaktır. (Oracle JDK için kaynak kodu OpenJDK'dan biraz farklıdır - ilerlemeye değineceğimiz bir şey).
Bunu akılda tutarak, Oracle:
- Yalnızca OpenJDK kod tabanını temel alan RI ikili dosyaları oluşturun.
- RI ikili dosyalarını ticari uygulayıcılar için BCL (normal Java lisansı) ve açık kaynak uygulayıcılar için GPLv2 (Classpath istisnasıyla) altında kullanılabilir hale getirin.
- TCK'yı ticari lisans sahiplerine sağlamaya devam edin, ancak OCTLA lisansını Java SE 7'yi kapsayacak şekilde güncelleyin . İkincisi, açık kaynak uygulayıcıların uygulamalarını doğrulamak için TCK'ya erişimine izin verir ...
Yukarıdaki karar, Open JDK koduna girmek, resmi olarak doğrulanmış, test edilmiş, lisanslanmış ve uyumlu kodu serbest bırakmak için çok çaba sarf etmek anlamına gelir. Eğer mutabık kalınan kamu programından sonra serbest bırakılması gerektiğini eklerseniz, böyle bir çabanın daha önce "geleneksel" Sun / Oracle Java sürümleri ile aynı şekilde olacağı açıkça görülüyor.
Bu, yalnızca Open ve Oracle JDK kod tabanlarını mümkün olduğunca yakın tutmayı makul hale getirir: aksi takdirde, her iki projeyi de TCK ile uyumlu hale getirmek için geliştirme ve düzeltmelerin çoğaltılması yasaklanabilir.
Açık JDK'yı Referans Uygulama olarak kullanma kararı, JDK'larını JDK 7'nin piyasaya sürülmesine kadar Open JDK ile senkronize olarak mümkün olduğunca yakın tutmayı Oracle'ın en iyi yararı haline getirdi.
Oracle'ın söz konusu senkronizasyonu daha fazla neyin motive etmesini neyin motive edebileceğini anlamak için JDK 7 güncelleme sürümleriyle, Open JDK 8 projesine bir göz atmak daha iyi olur ;
Bu Projenin amacı , Java Community Process'te JSR 337 tarafından tanımlanacak olan Java SE 8 Platformunun açık kaynaklı bir referans uygulamasını üretmektir .
Yukarıda JDK 7'nin referans uygulamasıyla ilgili olarak açıklanan aynı mantık için, her iki JDK'nın güncellemelerini mümkün olduğunca senkronize tutmak yine Oracle'ın yararınadır.
Şimdi bu JDK'lar arasında ne kadar çok farklılık olursa, Oracle'ın kendi sürümlerini TCK ile uyumlu hale getirmek için gereken çabaların tekrarlanması nedeniyle Java SE 8'i serbest bırakması daha zor olurdu. Bunun tersi de geçerlidir, yani her iki proje ne kadar yakın olacaksa, her iki Java 8 uygulamasını serbest bırakmak için daha az çaba gerekecektir.
Aynı istemcinin farklı istemcileri hedef alan iki farklı versiyonunu paralel olarak desteklemeniz hiç oldu mu? Cevabınız evet ise, ikisini de mümkün olduğunca yakın tutma arzusunu ve bunların senkronize olmadığında yaşadığınız sıkıntıları hatırlarsınız. Open ve Oracle JDK'larla, sadece daha büyük ölçekte, hemen hemen böyle.
Hemen hemen tüm hata düzeltmeleri doğrudan OpenJDK projesinden sonra da aşağı akış JVM satıcılarına (Oracle, Azul, RedHat vb.) Gider.
Bunun bir istisnası, bazı güvenlik düzeltme eklerinin sessizce OpenJDK'ya taşınmadan önce alt sürümlerde (özellikle Oracle) düzeltilmesidir. Bu, satıcıların açık kaynak projesindeki güvenlik açığını duyurmadan önce dünyanın birçok yerinde güvenlik düzeltmesiyle yükseltme yapmalarını sağlar.
Bazı satıcılar da değişikliklerini OpenJDK'ya geri göndermemeyi tercih ediyor. Örneğin, hem Google hem de Twitter, dahili olarak kullandıkları hata düzeltmeleri ve ana OpenJDK projesine geri dönmeyen özelliklerle OpenJDK sürümlerini değiştirdi.
HTH