[#13]
Re: NetBSD dla Sam460ex w przygotowaniu
@Commodore128D,
post #12
System V46 (AmiBench) stosuje architekturę hybrydową – łączy natywne wykonywanie kodu na procesorze hosta z emulacją procesora docelowego oraz translacją API w locie. [1] podobnie jak AmigaOs 4.x, który emuluje procesory 680x0 (Petunia i BlackBox). Wraz z rozwojem systemu poszczególne biblioteki są konsekwentnie podmieniane na ich natywne dla ARM odpowiedniki. Ma to miejsce podczas aktualizacji systemu.
Oto szczegółowy podział na warstwy i komponenty systemowe:
## 1. Co działa natywnie (Native ARM Executables)
Na fizycznym procesorze ARM (Cortex-A53) działa system operacyjny hosta oraz najbardziej wymagające obliczeniowo komponenty nowoczesne: [1, 2]
* Jądro systemu i sterowniki: Obsługa niskopoziomowa sprzętu (kontrolery USB, wyjście wideo HDMI, stos sieciowy Wi-Fi/Ethernet oraz audio Bluetooth). [3]
* Silnik Emulacji (zmodyfikowany za zgodą twórców dla potrzeb systemu – najnowszy emulator Amiberry): Sam program emulujący, zoptymalizowany pod instrukcje ARM z wykorzystaniem kompilatora JIT (Just-In-Time). [1]
* Backendy wymagających aplikacji: Sztandarowym przykładem jest AmiBrowser. Jego interfejs graficzny działa w środowisku Amigi, ale potężny silnik renderujący HTML5 i JavaScript to natywny kod skompilowany bezpośrednio na procesor ARM, połączony z GUI dedykowaną biblioteką ARMgraphics.library oraz amisslmaster.library [1, 4]
## 2. Co jest emulowane (Target 68k Architecture)
Wewnątrz kontenera emulacyjnego wykonywany jest kod binarny skompilowany dla klasycznej architektury Motorola 680x0:
* Oprogramowanie użytkownika: Klasyczne gry (skrypty WHDLoad, obrazy ADF/HDF) oraz aplikacje użytkowe (np. OctaMED, Personal Paint, Final Writer). Ich instrukcje 68k są w locie tłumaczone przez JIT na instrukcje ARM. [1, 3]
* Układy klasycznej Amigi (OCS/ECS/AGA): Cały tzw. Custom Chipset (Denise, Paula, Agnus, Alice, Lisa) jest w 100% emulowany programowo w pamięci RAM, aby zachować zgodność z grami bezpośrednio odwołującymi się do rejestrów sprzętowych. [3, 5]
## 3. Jakie biblioteki pochodzą z projektu AROS?
Projekt AROS (Amiga Research OS) dostarcza otwartą implementację API AmigaOS 3.1 napisaną w C. W systemie V46 komponenty te pełnią funkcję tzw. "wypełniaczy braków" (fill in the blanks): [2, 6]
* Warstwa Systemowa: AROS dostarcza podstawowe biblioteki API systemu operacyjnego (np. do obsługi okien, zarządzania pamięcią), dzięki którym oprogramowanie 68k "myśli", że działa na oryginalnym systemie Amigi. [6]
* Interfejs użytkownika (Zune): Odpowiednik klasycznego MUI (Magic User Interface). To na nim bazują okna i kontrolki nowoczesnych programów w AmiBench. [1]
* Uwaga architektoniczna: W miarę rozwoju systemu, AmigaKit sukcesywnie podmienia otwarte komendy i narzędzia AROS na własne, zamknięte implementacje w standardzie V46 (zastąpiono już m.in. cały zestaw poleceń konsoli DOS oraz system datatypów). [6]
## 4. Co pochodzi z Enhancer Software (dla AmigaOS 4.1 / PowerPC)?
Paczka Enhancer Software została oryginalnie stworzona przez A-EON Technology dla systemów nowej generacji (AmigaOS 4.1 PPC). Do 32-bitowego środowiska V46 na ARM (emulującego 68k) portowane są wybrane komponenty wyższego poziomu (głównie UI i Datatypes), a nie niskopoziomowe sterowniki PowerPC (jak te dla kart RadeonHD). [7, 8]
W systemie V46 znajdziesz następujące elementy z rodowodem z Enhancer Software:
* Nowoczesne Klasy Gadżetów (Gadget Classes): Zestaw kontrolek UI, takich jak Button, CheckBox, Slider czy zaawansowane systemy zakładek i list (np. Tabbed Gadget Class, TickBox Gadget Class). Pozwalają one budować interfejsy o wyglądzie i możliwościach AmigaOS 4.1.
* System AK-Datatypes: Kupiony i rozwijany przez AmigaKit podsystem obsługi formatów plików. Zamiast starych rozwiązań z OS 3.x, system używa nowoczesnych deskryptorów dla formatów GIF, PNG, TIFF czy JFIF, oferując architekturę identyczną ze swoją siostrzaną wersją V54 przygotowaną dla systemów PPC.
* Narzędzia i programy użytkowe: Rozwiązania ułatwiające integrację sieciową oraz zarządzanie tożsamością, jak system powiadomień i aktualizacji AmiSphere (AmiSphereServer). [3, 4, 8]
[1] [https://amigang.com](https://amigang.com/software-amibench/)
[2] [https://hackmag.com](https://hackmag.com/security/aros-amigaos)
[3] [https://www.a600gs.com](https://www.a600gs.com/a600-gs/)
[4] [https://wiki.amiga.org](https://wiki.amiga.org/index.php/AmiBench)
[5] [https://forum.amiga.org](https://forum.amiga.org/index.php?topic=34539.45)
[6] [https://amigaworld.net](https://amigaworld.net/modules/newbb/viewtopic.php?topic_id=45101&forum=47)
[7] [https://www.ppa.pl](https://www.ppa.pl/aktualnosci/enhancer-software-2-2-dla-amigaos4.html)
[8] [https://oldschoolgameblog.com](https://oldschoolgameblog.com/2022/08/09/amigaos-4-1-enhancer-software-2-2-released/)