Uyarlama (yazılım)

Vikipedi, özgür ansiklopedi

Yazılım uyarlama, (İngilizce: porting) varolan bir yazılımın oluşturulduğunda çalışmasının amaçlanmadığı başka bir bilgisayar ortamında (örneğin: farklı bir işlemci, işletim sistemi, üçüncü parti kütüphane) çalışması amacıyla yapılan bir uyarlama sürecidir. Bu terim, yazılım veya donanımın farklı ortamlarda kullanılabilir hale getirilmesi için değiştirildiği durumlarda da kullanılır.

Bir yazılımın yeni bir platforma uyarlamanın maliyeti yazılımı baştan yazma maliyetinden düşük ise yazılım, taşınabilir yazılım olarak adlandırılabilir.

Etimoloji[değiştir | kaynağı değiştir]

Türkçede "liman, giriş, iskele" gibi anlamlara gelen port kelimesi, Latince'de "taşımak" anlamına gelen portare sözcüğünden türetilmiştir.

Terim genellikle daha düşük bellekli (fakat aynı işlemci ya da işletim sistemine sahip) bir ortama yazılım uyarlama süreci, ya da kodun farklı bir dilde yeniden yazılması (dil dönüştürme ya da çeviri) anlamında kullanılmaz.

Yazılım geliştiriciler genellikle geliştirdikleri yazılımlarının yeni bir platforma kolayca uyarlanabileceğini, yani portable olduğunu iddia ederler. Oysa taşıma maliyeti pek çok farklı faktöre bağlıdır. Orijinal platform (kaynak) ile yeni platform arasındaki farklılıkların derecesi, geliştiricilerin programlama dillerinin yapısı ve taşınabilir olmayan üçüncü parti kütüphaneler hakkındaki tecrübeleri gibi etkenler, taşıma maliyetini doğrudan etkiler.

Tarihçe[değiştir | kaynağı değiştir]

Günümüzde masaüstü bilgisayarlarda kullanılan işlemcilerin ve işletim sistemlerinin farklılıkları, geçmişe göre oldukça azalmış durumdadır. x86 mimarisinin piyasadaki baskınlığı nedeniyle, pek çok masaüstü yazılım başka işlemciler için hiç port edilmemiştir.Aynı piyasada işletim sistemi tercihleri de ciddi oranda azalmış ve üçe kadar inmiştir: Microsoft Windows, Mac OS/Mac OS X ve Unix/Linux. Ancak gömülü sistemler için taşınabilirlik halen ciddi bir sorundur.

Uluslararası standartlar, örneğin ISO tarafından yürürlüğe konulanlar, farklı platformlarda geliştirilen yazılımların belli standartlara uymasını sağlayarak büyük fayda sağlamıştır.