Abstract:
Günümüzde IA-32 işlemci mimarisi kisisel bilgisayarlarda yaygın olarak kullanılmaktadır. Bu mimari için diğer mimarilerden daha çok yazılım geliştirilmiştir. Bu yazılımlardan diğer mimarileri kullanan platformlarda da faydalanabilmek için bu yazılımların bu platformlara taşınması yada sıfırdan tekrar geliştirilmesi gerekmektedir. Java Sanal Makinası (JVM), Java uygulamalarını çalıştırmak için gerekli olan uygulamalar bütünüdür. JVM herhangi bir işlemciye yada işletim sistemine bağımlı değildir. Birçok donanıma ve işletim sistemine taşınmıştır; böylece Java uygulamaları bu platformlarda aynı şekilde çalışabilmektedir. IA-32'ye özel yazılımların JVM üzerinde çalıştırılabilmesi, bu yazılımları JVM bulunan bütün platformlarda çalışır kılar. Bu IA-32 yazılımlarını diğer platformlarda kullanmak için kolay bir yoldur. Bir IA-32 uygulamasını bir JVM üzerinde çalıştırmak için bir çok yol bulunmaktadır. Uygulama Java için yeniden geliştirilebilir. Uygulamanın kaynak kodu otomatik araçlarla Java koduna dönüştürülebilir. Uygulama bir emulator üstünde koşturulabilir. Bunlar en çok kullanılan bir kaç yöntem. Hangi yöntem kullanılırsa kullanılsın, uygulama tarafından gerek duyulan yazılım servislerinin sağlanması gerekmektedir. Yazılım servisleri başka yazılım parçaları tarafından sağlanmaktadır. Bu servis yazılımları da üste bahsedilen yöntemlerle Java platformuna taşınabilir yada bu servisleri sağlayacak başka yapılar kurulabilir. Genellikle ihtiyaç duyulan yazılım servisleri işletim sistemi tarafından sağlanmaktadır (IS). Eksiksiz bir IA-32 IS'yi Java platformunda çalıştırmak çok iş ve kaynak gerektiren bir iştir. Bunun sonucunda uygulamanın Java platformundaki performansını olumsuz yönde etkiler. Bu etkiden kurtulmak için IS servislerini Java yazılımları ile sağlamak tercih edilebilir. Bu çalışmada, bir Java için Linux uyumluluk katmanı geliştirilmiştir. Bu katman Linux işletim sistemi servislerini Java platformu altında sağlamaktadır. Linux uyumluluk katmanının, IA-32 mimarisi için geliştirilmiş kodların Java platformunda çalıştırılmasını kolaylaştırdığı gösterilmiştir. Today, the IA-32 architecture is ubiquitous among PCs. Much more softwares have been developed for this architecture than for any of others. To benefit from these softwares on the platforms which use other architectures, the softwares must be ported to that platforms or must be redeveloped. A Java Virtual Machine (JVM), is a set of computer software programs that enables running Java applications. JVM isn't specific to any processor or operating system. It's implemented for various hardware and operating systems so that Java programs can run identically on all of them. Being able to execute IA-32 specific softwares on JVMs, makes those softwares available for platforms that a JVM is implemented for. This is an easy way to make use of IA-32 softwares on other platforms. There are many methods to run an IA-32 application on a JVM: the application can be redeveloped for Java, the source code of the application can be converted by automatic tools, the application binary can be executed on an emulator and others. Regardless of which method is used, software services that are needed by the application in question must be somehow supplied. Software services are provided by other softwares. These softwares can be ported to the Java platform with the methods that are mentioned before or the needed services can be supplied by using existent Java services. Generally most of the needed software services are provided by operating systems (OS). It's hard and very resource consuming to execute a complete IA-32 OS on a Java platform. It affects all of the system performance while running most of the IA-32 applications. To get rid of this bottleneck, OS services may be provided by a Java software. In this study, a Linux compatibility layer for Java was developed. This layer provides Linux operating system services under Java platform. It was shown that the Linux compatibility layer facilitates executing codes for IA-32 architecture on Java platforms.