eXec.plMAGAZYN UŻYTKOWNIKÓW KOMPUTERÓW AMIGA
MAGAZYN UŻYTKOWNIKÓW KOMPUTERÓW AMIGA

czwartek, 18. lipca, 2019, 09:27

Amiga forum / AmigaOS 4.x / Portowanie programow pod AmigaOS4.x

Czytasz wątek: Portowanie programow pod AmigaOS4.x

VajruS
Nieaktywny użytkownik starego forum

Portowanie programow pod AmigaOS4.x wysłany: 2010-08-18 07:16

Witam,

Na czym dokladnie polega portowanie programow z PC na AmigaOS4.x ?

Jakie narzedzia beda potrzebne do tego celu?

Zakladajac, ze mam zrodla jakiegos programu z PC np. w C++ co po kolei trzeba zrobic aby otrzymac wersje na AmigaOS4.x?


Dziekuje.

Odpowiedz

radov
Nieaktywny użytkownik starego forum

Re:Portowanie programow pod AmigaOS4.x wysłany: 2010-08-18 09:27

Nie przeportowałem żadnej aplikacji dla AmigaOS, ale co tam - pomądrzę się (jedynie kilka eksperymentów, ale w pewnym momencie zapadłem na chroniczny brak czasu...)

1. Należy zorientować się z jakich technologii korzysta oprogramowanie, a następnie czy są one dostępne dla AmigaOS.
1a. Jeśli nie są one dostępne - należy sprawdzić czy istnieją odpowiedniki
1b. Jeśli istnieją odpowiedniki, należy sprawdzić czy ich funkcjonalność pozwala uzyskać to co w pierwowzorze

Przykład1: dla AmigaOS dostępny jest miniGL, funkcjonalny odpowiednik OpenGL 1.4 (brak shaderów). Jeśli portowana aplikacja wykorzystuje shadery, należy sprawdzić czy możliwe jest przygotowanie wersji aplikacji ich nie wykorzystującej.
Przykład2: Aplikacja oparta o wątki POSIX, należy sprawdzić czy biblioteka pthread dla AOS zapewnia dokładnie tę samą funkcjonalność (jeśli tak - to nie ma problemu i nie trzeba kombinować)

2. Należy dostosować API oraz funkcje rysujące
Każdy system zawiera swoje własne metody inicjalizacji oraz komunikacji z aplikacją oraz rysowania GUI. Aplikacja musi być więc dostosowana do środowiska nowego systemu. GUI wymaga w większości przypadków zupełnego odtworzenia (czyli zamiast buttonów windowsowych należy wstawić kod z Reactions itp.). Może się okazać, że nie wszystkie elementy z innych platform mają już swe odpowiedniki w Reactions.

Z tego powodu, czasochłonności zmiany API oraz GUI, stosowane są pewne "obejścia". Obejście to np. portowanie aplikacji wykorzystujących biblioteki SDL albo Allegro. Biblioteki te wprowadzają API oraz metody rysowania praktycznie niezależne od platformy - co jest znacznym ułatwieniem. Jest jeszcze środowisko AmiCygnix, czyli serwer X11, co również rozwiązuje problemy z API i rysowaniem.

3. Zadbanie o Endianowość. Zależy od CPU, ale nigdy nie mogę zapamiętać, gdzie jest jaka. Ważne, że w programach x86 oraz AOS jest inna, co stwarza problemy;

Przykład, jeśli dobrze rozumiem: wartość 32bit opisująca piksel obrazu na x86 zostanie wczytana (przykładowo) jako ARGB, ale na AOS4 jako BGRA - co stworzy wiele problemów (np. przy kompozycji obrazów)

4. Wywoływanie funkcji bibliotecznych - do postaci wykorzystywanej przez API AmigaOSu. Podobno nie jest trudne, ale dzięki wprowadzeniu obsługi bibliotek .so, problem ten jest rozwiązany w przypadku aplikacji linuksowych.

Odpowiedz

VajruS
Nieaktywny użytkownik starego forum

Re:Portowanie programow pod AmigaOS4.x wysłany: 2010-08-18 19:05

Dziekuje za naswietlenie tematu.

Obawiam sie ze portowanie wymaga wiekszej znajomosci programowania niz moje ale dobrze wiedziec.

Zdaje sobie teraz sprawe jaka duza robote czynia osoby portujace wieksze aplikacje np. firefoxa > timberwolf-a i jak duza wiedze posiadaja. Szacunek.





Odpowiedz

AmigaOS.pl