Geriye uyumluluk

Telekomünikasyon ve bilişim teknolojisinde yeni aygıtların eski aygıtlar tarafından üretilmiş girdileri çalıştırabilme yeteneğine **geriye uyumluluk** denir. Yeni standartlar için tasarlanmış bir ürün eski standartlara erişebiliyor, okuyor veya oynatabiliyorsa o ürüne geriye uyumludur denir. Örneğin veri biçimleri ve iletişim protokolünü içeren standartlar gibi.

Geriye uyumluluğun tersi, eski aygıtların yeni aygıtlarda üretilmiş veri biçimlerine izin vereceğini belirten (veya izin vereceğini bekleyen) ileriye uyumluluktur. Bu belki yeni aygıtta üretilmiş tüm özellikleri kapsamayabilir. Bir standart eğer ürünün eski sürümleri yeni standartlara erişebiliyor, okuyabiliyor ve oynatabiliyorsa ileriye uyumluluğu destekler.

Örneğin, FM radyo alıcıları eski vericiler tarafından üretilen mono sinyallere erişebildiğinden beri FM stereo iletimi geriye uyumluluğa izin vermiştir. Bu aynı zamanda eski mono FM radyo alıcıları yeni vericilerden gelen sinyallere erişebildiğinden ileriye de uyumludur.

Programlama dillerinde geriye uyumluluk, *N* programlama dili derleyicisinin *N*-1 ile derlenmiş programları da çalıştırabileceğidir. (Bu örnekler eğer *N*-1, *N*-2 gibi sürümler N sürümünde de çalışıyorsa aynı zamanda ileriye uyumlu da olduğunu göstermektedir. Ancak pratikte özellikler geriye uyumludur ve ileriye uyumluluğu desteklemez.)

Başka bir deyişle bir ürün eğer eski sürümünün tüm yükümlülüklerini yerine getiriyorsa **geriye uyumludur** denir.

## Açıklama
Geriye uyumluluk iki bileşenden birinin özelliği olmaktansa ikisi arasındaki bir ilişkidir. Daha genel olarak, yeni bir bileşen eğer eski bileşenin tüm fonksiyonel özelliklerine sahipse geriye uyumludur.

*Geriye* uyumluluk, yeni bileşenin eskisiyle arasında doğrudan geçmişle ilgili bağını belirten uyumluluğun özel bir durumudur. Eğer bu özel ilişki bulunmuyorsa "geriye" uyumluluk yoktur, sadece "uyumluluk"(birbirinden bağımsız geliştirilmiş bileşenler ve ürünler arası birlikte işlerlik) söz konusudur.

Veri, yorumlayıcı olmadığı zaman işe yaramaz, bu nedenle uyumluluk kavramı doküman dosyaları için geçerli değildir. Örneğin, v2 programıyla üretilmiş dosyalar v1 ile de çalışabilmeli, v1 ile kaydedilen dosyalar v2 de okunabilmelidir aksi takdirde geriye uyumlu değildir.

Eğer yeni bir yazılım sürümü eski sürümün dosyalarını okuyabiliyor ancak kaydedemiyorsa geriye uyumlu değildir. Bu durum yazılım üreticilerini müşterileri belli zaman aralıklarıyla yazılımı yükseltmeye itmektedir.

Uyumluluk seviyeleri çeşitlidir. Yazılımda, *ikili uyumluluk* ve *kaynak uyumluluğu* olarak ayrılmaktadır. İkili uyumluluk program yeni sürümün kütüphanesiyle tekrar derlenmeden doğru bir şekilde çalışabilir anlamına gelmektedir. Kaynak uyumluluğu yeniden derlenme gerektirir ancak kaynak kodda değişikliğe gerek duymaz.

Çoğu platform geriye uyumluluğa erişmek için, herhangi bir bilgisayar ortamında kullanılan yazılımlar yoluyla başka bir bilgisayar sisteminin taklit edilmesi anlamına gelen öykünmeye dayanır.

## Örnekler
* RCA tarafından geliştirilen NTSC renk kodlama sistemi siyah-beyaz NTCS televizyonlarıyla geriye uyumludur.
* Çoğu blu-ray disk sürücüleri standart CD ve DVD diskleri ve çoğu DVD sürücüleri standart CD diskleri çalıştırabilir.
* Çoğu oyun konsolu geriye uyumludur ve geçmişte yapılmış oyunları çalıştırabilir:
** Atari 7800 hemen hemen bütün Atari 2600 oyunlarıyla geriye uyumludur.
** Game Boy Advance serisi (Game Boy Micro hariç) geçmiş Game Boy sistemleriyle geriye uyumludur, yani bütün Game Boy ve Game Boy Color oyunları bu sistemde çalışabilir.
** Nintendo DS ve Nintendo DS Lite bütün Game Boy Advance oyunlarıyla geriye uyumludur.
** Nintendo 3DS, Nintendo DS ve Nintendo DSi yazılımlarıyla geriye uyumludur.
** PlayStation 2, çoğu orijinal PlayStation kütüphanesiyle geriye uyumludur. Ek olarak, PlayStation 3'ün ilk modeli (Bazı yerleri gümüş olmayanlar) de çoğu PlayStation ve PlayStation 2 oyunlarıyla geriye uyumludur. Bu PS2 içerisindeki Emotion Engine çip tarafından sağlanmaktadır.
** Xbox 360, yazılım emülatörleri aracılığıyla bazı Xbox oyunlarıyla geriye uyumludur.
** Wii bütün Nintendo oyunlarıyla geriye uyumludur. Nintendo GameCube, PowerPC tabanlı olarak aynı şekilde tüm Nintendo oyunlarıyla geriye uyumludur.
* Microsoft Windows, platformun önceki 32-bit ve 16-bit sürümlerle uyumluluğu için uygulama uyumluluğu içerir. Örneğin Windows 3.0'da çalışması için tasarlanmış Civilization adlı bilgisayar oyunu Windows Vista'da da çalışabilmektedir.
* Microsoft Word 2000 Word 97 ile geriye uyumluydu çünkü Word 97 biçimindeki dosyaları okuyabiliyor ve yazabiliyordu.
* Bazı işletim sistemleri önceki sürümlerde ya da işletim sistemlerinde üretilmiş yazılımları çalıştırabilmek için çeşitli yöntemler geliştirmiştir:
** Windows NT ve akabindekiler miras uygulamaları çalıştırabilmek için çeşitli alt sistemlere sahipti. MS-DOS ve Win16 alt sistemleri bu platformlar için bazı uygulamaları çalıştırabilmekteydi ve CLI OS/2 uygulamalarını çalıştırmak için OS/2 alt sistemine sahipti.
** Windows 7 ile birlikte (Business, Ultimate veya Enterprise basımıyla), Microsoft Virtual PC aracılığıyla sunulan Windows XP Modu, eski Windows XP programlarıyla tam uyumluluğu sağladı.
* Modern Nikon F Mount SLR kamera lensleri (1970 sonları), yeni Nikon DSLR kameralarla bazı kısıtlamalarla birlikte uyumludur.
* PCI Express 2.0, PCI Express 1.1 ile geriye uyumludur.
* IBM 7080 bütün IBM 705 vakumlu tüp bilgisayarlarıyla geriye uyumludur.

## Ayrıca bakınız
*Öykünme
*İleriye uyumluluk
*Derleyici