Czwarta aktualizacja systemu AmigaOS 4.0
Trzeci update AmigaOS 4.0 Pre-release (czytaj więcej), z czerwca 2005 roku, wydawał się być już ostatnim przed wypuszczeniem finalnej wersji systemu, tak się jednak nie stało. 8-go lutego 2006 roku kolejne uaktualnienie trafiło do użytkowników komputerów Amiga One. Tradycyjnie już postanowiliśmy bliżej przyjrzeć się nowościom jakie ono przyniosło.
Emulacja procesorów Motorola 680x0
Najważniejszym elementem tego uaktualnienia wydaje się być, zapowiadany pierwotnie na wersję finalną systemu, emulator Petunia wykorzystujący technologię JIT (czytaj więcej). Rodzina procesorów Motorola 680x0 związana jest z Amigą od początku istnienia tego komputera. Opisywany AmigaOS 4.0 jest pierwszą wersją systemu operacyjnego Amigi, która do działania potrzebuje procesora PowerPC. Nie oznacza to bynajmniej, że możemy zapomnieć o procesorach 680x0. Ze względu na kompatybilność z oprogramowaniem tworzonym dla poprzednich wersji najnowszy AmigaOS wprowadza mechanizmy emulacji tego procesora. AmigaOS 4.0 od czwartej aktualizacji wyposażony jest w dwa niezależne emulatory procesorów 68k. System "przedstawia" emulowany procesor jako 68020 z kooprocesorem matematycznym 68881, lecz tak naprawdę zapewnia kompatybilność z kodem tworzonym aż do procesorów 68040 i 68060 włącznie. Pierwszy "interpretowany" emulator "zaszyty" jest w kernelu systemu (emulator.resource), jego zaletą jest krótki czas reakcji, pozwalający obsługiwać krytyczne elementy, np. przerwania. Drugi emulator (petunia.library) wykorzystuje techniki dynamicznej rekompilacji kodu (tzw. just-in-time lub po prostu JIT) znane chociażby z wirtualnych maszyn JAVA. Zaletą tłumaczenia "w locie" kodu jednego procesora na drugi jest duża prędkość działania pozwalająca emulować "starszy" procesor z wydajnością, która nie była dostępna dla układów fizycznie montowanych w poprzednich modelach komputerów Amiga. Wadą takiego rozwiązania jest spore zapotrzebowanie na pamięć, dlatego też system AmigaOS 4.0 pozostawia użytkownikowi wybór odpowiedniej metody emulacji. Domyślnie wszystkie programy tworzone dla AmigaOS co najwyżej 3.9 uruchamiane są z wykorzystaniem Petunii. Jeśli jednak od szybkości emulacji ważniejsze jest niskie zapotrzebowanie na pamięć to emulator Petunia może być całkowicie wyłączony. W tym celu wystarczy "wykomentować" linię:
MODULE System:Kickstart/petunia.library.kmod
z pliku Kicklayout, który dla przypomnienia służy do wczytania modułów Kickstartu z twardego dysku do pamięci komputera w pierwszej fazie uruchamiania systemu operacyjnego Amigi. Od czwartej aktualizacji Kicklayout oferuje cztery zestawy konfiguracyjne, z których można zabootować AmigaOS:
- Default
- Default Debug
- Default No JIT
- Debug No JIT
Większość oprogramowania 68k działała bardzo dobrze i szybko już na standardowym emulatorze interpretowanym. Przyrost prędkości jaki daje Petunia i JIT jest najbardziej widocznym tam, gdzie mamy do czynienia z obliczeniami mocno obciążającymi procesor lub z wieloma drobnymi obliczeniami w krótkim czasie, które występują np. w oprogramowaniu rozrywkowym.

TVPaint, załadowanie testowego obrazka - 2560x1920, w sekundach

Testy dla 750 GX 800 MHz, w sekundach, Cinema4D, scenka Delphine

LightWave, scenka Truck
Gra Exodus The Last War nareszcie zaczęła działać pod OS4 i to w tak szybkim tempie, że śmiało mogłaby uchodzić za najbardziej dynamicznego RTSa wszechczasów. Niezłego "kopa" dostała także gra Foundation, nie działa ona co prawda tak szybko jak Exodus, niemniej wreszcie można komfortowo używać wysokiej rozdzielczości przy włączonym cieniowaniu "Gouraud Shading". Bardzo dobrze i stabilnie działa ImageFX 4.5, dobra jest prędkość PerfectPainta, natomiast dalej wolno działa FxPaint, który zresztą również pod emulacją WOSa nie grzeszy szybkością (oczywiście i tak nie ma żadnego porównania do starych procesorów 68k). Bardzo szybki za to jest ArtEffect i Photogenics. Poza prędkością na pewno dużym plusem Petunii jest jej kompatybilność ze starym softem. Ciężko natrafić na program, który działa na standardowym emulatorze, a nie chciałby zadziałać z Petunią. Działa popularny komunikator AmiGG - jego test znajdziecie w dziale Benchmarki. Jednak w nowych, systemowych preferencjach o nazwie Compatibility kilka aplikacji jest standardowo wyłączonych m.in. jedna z wersji procesorowych biblioteki javascript.library z przeglądarki IBrowse (błąd w petunia.library, poprawiony w obecnej wersji beta - przyp. [kb]).

Wszystkie z widocznych na liście
programów działają pod emulatorem
Petunia. Zostały wciągnięte na
listę jedynie ze względów pokazowych.
Do konfiguracji emulatora służy tzw. "czarna lista", która we współpracy z biblioteką dos.library "mówi" Petunii, których programów nie powinna przetwarzać. Wspomniana wyżej lista to w rzeczywistości plik tekstowy o nazwie applications.dos, który znajdziemy w katalogu Devs, aby nie zmuszać użytkownika do ręcznej edycji pliku z poziomu edytora tekstu do systemu został dodany edytor preferencji o wdzięcznej nazwie Compatibility. Zasada działania edytora opiera się o systemowe mechanizmy drag&drop, czyli krótko mówiąc przeciągamy ikonę z programem lub inny plik i upuszczamy na okno edytora. Należy przy tym pamiętać, że są programy, które składają się z pliku wykonywalnego, współdzielonych bibliotek, a także z różnych modułów lub pluginów. Każdy taki element można oddzielnie skonfigurować. Istnieje również możliwość ponownego załączenia emulacji JIT bez fizycznego wyrzucenia programu z listy. Opcja ta przydatna jest w szczególności podczas testowania nowych wersji emulatora. Compatibility służy także jako okno informacyjne dla programów umieszczonych na liście applications.dos z zupełnie innych powodów. Biblioteka dos.library w systemie AmigaOS 4.0 posiada spore możliwości w zakresie śledzenia zasobów systemu i informowania użytkownika o nietypowym zachowaniu (z reguły starszego) oprogramowania.
Za pomocą applications.dos możemy przekazać systemowi, czy chcemy być za każdym razem informowani o zaistniałym fakcie czy też akceptujemy takie zachowanie i nie chcemy, aby system nam o tym wspominał.
Nowe Picasso96
Aby zdefiniować podstawowe tryby graficzne nie trzeba już korzystać z niewygodnego edytora Picasso96Mode (prawdopodobnie zniknie ono całkowicie w finalnej wersji systemu). Można tego dokonać w ToolTypach ikonki sterownika, wpisując odpowiednie wartości z instrukcji monitora:
- VSYNCMIN - minimalne odchylanie pionowe
- VSYNCMAX - maksymalne odchylanie pionowe
- HSYNCMIN - minimalne odchylanie poziome
- HSYNCMAX - maksymalne odchylanie poziome
- MODE - tryb graficzny, składnia jest następująca:
<width>x<height>[x<depth-list>]@<frequency>[-hsync][-vsync]
| Przykłady | |
| MODE=640x480@85 | dodaje tryb 640x480 85 Hz we wszystkich głębiach kolorów |
| MODE=1024x768@100i | dodaje tryb 1024x768 100 Hz z interlacem we wszystkich głębiach kolorów |
| MODE=800x600x8@75 | dodaje tryb 800x600 75 Hz, ale tylko dla ekranów 8 bitowych |
| MODE=800x600x8,16@75 | dodaje tryb 800x600 75 Hz dla ekranów 8 i 16 bitowych |
Oczywiście niestandardowe tryby możemy nadal definiować i testować z naszym monitorem w Picasso96Mode, podając w ToolTypach ścieżkę dostępu do tych ustawień:
SETTINGSFILE=SYS:Devs/Picasso96Settings
Programem P96Speed przeprowadziliśmy test szybkości operacji graficznych na komputerze micro Amiga One z kartą Radeon 7000. Wyniki dostępne są w dziale Benchmarki. Grafika przyspieszyła, a największym zaskoczeniem jest pozycja ScreenToFront(), która poprzednio zanotowała gorszy wynik od Amigi 1200, a teraz jest ponad 80-krotnie szybsza! Ma to zapewne związek z nową wersją Intuition, którą opisujemy niżej.
Nowe sterowniki 3D
Po czwartej aktualizacji akceleracja 3D dostępna jest dla kart Voodoo 3/4/5 oraz ATI Radeon, modele 7000, 7200, 7500, 9000, 9200 i 9250. Poprawiono błędy w bibliotece minigl.library, dzięki czemu poprawnie na kartach Radeon działa już gra Heretic II. Spore przyspieszenie zauważyliśmy w niepublicznej wersji emulatora Playstation - FPSE, korzystającej z akceleracji 3D.

Quake 1 - timedemo demo1, Heretic II - timerefresh, maksymalne detale, początek poziomu
treningowego, Quake 2 - timerefresh, początek pierwszego poziomu



