it-swarm-tr.com

Platform bağımsızlığının tam anlamı nedir?

Platform bağımsızlığının anlamı nedir?

Java davasını ele alıyorum. Windows platformunda oluşturulan bir Linux üzerinde Java uygulamasını çalıştırabilir miyim?

Her iki işletim sisteminde de aynı (veya tam) bir programlama algoritması kullanabilir miyim?

Bence Dosya Türleri Videolar, Resimler, Belgeler vb.

9
Dileep DiL

Yazılımda platform bağımsızlığı, aynı kodu birden fazla platformda çok az değişiklik yaparak veya hiç değiştirmeden çalıştırabileceğiniz anlamına gelir.

Şeytan Ayrıntıda:

  • "Platform" olarak tanımladığınız şeye bağlıdır. Bazı durumlarda, bu belirli bir donanım makinesi yapılandırması olabilir. Diğer durumlarda, bir "genel bilgisayar" olabilir. Diğer durumlarda, sanal bir makine ve çalışma zamanı ortamı (Java'da olduğu gibi) olabilir.
  • Hiçbir şey "mükemmel" platformdan bağımsız değildir - sizi yakalayabilecek her zaman birkaç köşe vakası vardır. Örneğin, platformdan bağımsız yerine dosya yolu ayırıcılarını sabit kodluyorsanız File.pathSeparator in Java o zaman kodunuz hem Windows hem de Linux üzerinde çalışmaz. Bir programcı olarak, her zaman platformdan bağımsız seçeneği kullanarak bu şeylere dikkat etmeniz gerekir. taşınabilirliği önemsiyorsanız, farklı platformlarda düzgün bir şekilde test edin.
  • Belirli platformlarda her zaman göz ardı edilemeyecek bazı kısıtlamalar vardır. Örnek olarak, maksimum dosya adı uzunluğu veya bir sistemdeki kullanılabilir RAM. Platformdan bağımsız olmaya çalıştığınız fark etmeksizin, bir kod üzerinde çalıştırmaya çalışırsanız kodunuz başarısız olabilir. çok sıkı kısıtlanmış bir platform.
  • Bazı dillerin kaynak kodu düzeyinde platformdan bağımsız olduğunu (C/C++ iyi bir örnektir), ancak kod derlendikten sonra platform bağımsızlığını kaybettiğini (yerel kod platforma özgü olduğu için) not etmek önemlidir. Java platformdan bağımsız bayt kodunu derlediğinden kod derlendikten sonra bile platform bağımsızlığını korur (yerel koda gerçek dönüşüm, bayt kodu JVM tarafından yüklendikten sonra daha sonra işlenir).
  • Dil uygulamalarında zaman zaman yalnızca belirli platformlarda meydana gelen hatalar vardır. Kodunuz teorik olarak% 100 taşınabilir olsa bile, alışılmadık hatalarla karşılaşmadığınızdan emin olmak için yine de farklı platformlarda test etmeniz gerekiyor!

Özel Java durumunda:

  • Java kod, platformdan bağımsızdır , aynı Java uygulama) veya algoritmalar (genellikle Java bayt kodu ve .jar dosyasında paketlenmiş olarak derlenir) Windows ve Linux'ta aynı şekilde çalışır.

  • Java kütüphaneleri (örn. Tüm Nice açık kaynaklı araç setleri) saf Java ile yazıldıkları sürece genellikle platformdan bağımsızdır. Çoğu kütüphane platform bağımsızlığını korumak için pure Java) ile çalışmayı dener, ancak bunun mümkün olmadığı bazı durumlar vardır (örneğin, kütüphanenin doğrudan özel bir donanımla arayüz kurması veya bir Yerel kodu kullanan C/C++ kütüphanesi).

  • Java platformu/çalışma zamanı ortamı , aynı kitaplıkların (resimler, ağ oluşturma, Dosya GÇ, vb.) Kullanılabilir olması ve çalışması anlamında platformdan bağımsızdır tüm platformlarda aynı şekilde. Bu, bu kütüphaneleri kullanan uygulamaların herhangi bir platformda çalışabilmesini sağlamak için kasıtlı olarak yapılır. Örneğin, Java dosya sistemine erişen kütüphaneler, Windows ve Linux'un farklı dosya adı yolu ayırıcıları kullandığını bilir ve bunu sizin için dikkate alır. çalışma zamanı ortamı platforma özgü özellikleri kullanır, bu nedenle her platform için farklı bir JRE gerekir .. Java indirme sitesinde mevcut platformlardan bazılarının listesini görebilirsiniz: - http://www.Oracle.com/technetwork/Java/javase/downloads/jdk-6u26-download-400750.html

  • JVM'nin kendisi (yani Java JIT'in derlenmesinden ve çalıştırılmasından sorumlu Sanal Makine Java bytecode) birçok platformda (ana bilgisayarlardan cep telefonlarına kadar her şey) kullanılabilir olması bakımından platformdan bağımsızdır.Ancak JVM'nin belirli sürümleri temel alınan her platform için farklı yerel talimat kodlarını ve makine yeteneklerini hesaba katmak için gereklidir (böylece Windows ve Vice Versa'da Linux JVM çalıştıramazsınız) JVM Java platform/çalışma zamanı ortamı.

Genel olarak, Java, muhtemelen alabileceğiniz kadar gerçek platform bağımsızlığına yakındır, ancak gördüğünüz gibi, hala kaputun altında biraz platforma özgü çalışma var.

% 100 saf Java koduna ve kitaplıklarına bağlı kalırsanız, benim deneyimim Java platformdan bağımsız olarak etkili ”) ve genel olarak Bir Kez Yaz Herhangi Bir Yere Koş vaadine kadar yaşıyor ama yine de test etmelisin !!

34
mikera

Haklısınız, platform bağımsızlığı, aynı programın herhangi bir modifikasyona gerek kalmadan herhangi bir platformda (işletim sistemi) çalıştığı anlamına gelir.

Java durumunda) uygulama bir Java Sanal Makine'de çalışır ve kendisi platformdan bağımsız değildir. Bu, gerçek makine ( işletim sistemi) ve Java kodunu yazdınız).

Videolar, görüntüler vb. Söz konusu olduğunda bunlar belgelerdir ve uygulamalar için veri olduğundan genellikle doğadan platformdan bağımsızdır.

5
ChrisF

Aslında platform bağımsızlığına ulaşma tekniği

  • Bir ara platform oluşturmak
  • İhtiyacınız olan platformların her birinde ara aracı uygulayın (Java gibi dillerde)

Veya her platform için kod yazabilir ve derleyebilirsiniz (C/C++). Bence bu aynı zamanda bir tür platform bağımsızlığı. Ve algoritmaların bu şekilde platformdan bağımsız olduğu söylenebilir.

Dosya türleri için gerçek platform bağımsızlığı konusunda haklısınız. Ancak platform bağımsızlığı terimi genellikle dosyalara uygulanmaz.

1
Gulshan

Java, nesne yönelimli platformdan bağımsız bir programlama dilidir. javac derleyicisi kaynak kodunu derler ve Bayt kodu dili (evrensel dil) üretir.

Bu dil herhangi bir işletim sistemi tarafından anlaşılamaz, önce işlenmelidir ve burada özel bir yürütülebilir program (JVM) sahneye girer. JVM'nin bir tercümanı bayt kodunu satır satır okur ve bayt kodu talimatlarını makineye özgü anlaşılabilir dile (sonuçta ikili kod) dönüştürür. Bu nedenle, bayt kodu platformdan bağımsızdır ancak yorumlanan kod makineye özgüdür ve JVM'nin kurulu olduğu ortamda yürütülür. Java programlar platformdan bağımsızdır = Java platformdan bağımsızdır) anlamına gelir.

Sun MicroSystems sloganı WORA : Bir Kez Çalışın Herhangi Bir Yere Çalışın.

JVM bir Ana Makine gerektirdiğinden, size bir Java programının platformdan bağımsız olmadığını söyleyebilirim. Ayrıca, Java tasarım dili, sistem bir FAT16 bölümü kullanıyorsa dosya sisteminde kısa sınıf adlarıyla sonuçlanan gereksinimlere sahiptir:

class FOOBAR

aynıdır

class Foobar

ve adı

class AbstractPrinterFactory

imkansız.

Karşılaştırma olarak, C'nin çok az çalışma zamanı gereksinimleri vardır ve bu nedenle daha yüksek taşınabilirlik sunabilir. Daha küçük C programlarını gerçekten düşük kaliteli cihazlara yedeklemek hala mümkündür.

0
user877329