8

Firefox ze wszystkich przeglądarek potrzebował wersji 64 bitowej najbardziej. Lista korzyści jest długa

Przeglądarka to dziś bardzo specyficzne oprogramowanie, które ciężko z czymkolwiek porównać. Z jednej strony większość naszej aktywności przeniosła się do sieci, coraz więcej programów zostaje zastąpionych webaplikacjami. W efekcie przeglądarka ewoluowała od malutkiego i drugorzędnego programu, do takiego używanego najczęściej i potrzebującego dużo pamięci RAM, więcej niż system, niż niektóre naprawdę duże programy. Z drugiej […]


Przeglądarka to dziś bardzo specyficzne oprogramowanie, które ciężko z czymkolwiek porównać. Z jednej strony większość naszej aktywności przeniosła się do sieci, coraz więcej programów zostaje zastąpionych webaplikacjami. W efekcie przeglądarka ewoluowała od malutkiego i drugorzędnego programu, do takiego używanego najczęściej i potrzebującego dużo pamięci RAM, więcej niż system, niż niektóre naprawdę duże programy. Z drugiej strony przeglądarka jest narażona na ciągłe ataki wyszukujące wszelkie luki bezpieczeństwa. Firefox potrzebował 64 bitowej wersji najbardziej ze wszystkich przeglądarek, a mimo to Mozilla postanowiła tymczasowo całkowicie zaprzestać jego rozwoju.

Serwis Ars Technica przygotował bardzo ciekawy artykuł na temat korzyści jakie płyną dla Mozilli z wdrożenia 64 bitowej przeglądarki. Bazując na artykule Petera Brighta postaram się to podsumować.

Pierwszą i oczywistą korzyścią dla 64 bitowego Firefoksa jest większa dostępność pamięci RAM. Trzeba pamiętać, że 32 bitowa aplikacja na 32 bitowym systemie domyślnie dostaje maksymalnie 2 GB pamięci do dyspozycji. Maksymalnie dostępne jest 3 GB, jeśli aplikacja zgłasza systemowi taką potrzebę, a Firefox zgłasza. Sytuacja wygląda odrobinę lepiej na systemach 64 bitowych, gdzie 32 bitowy program może dostać prawie pełne 4 GB. Czy to wystarczy?

Chcieli byśmy myśleć, że tak. W końcu to „tylko” przeglądarka i wyświetla „tylko proste treści”. Jeszcze parę lat temu do przeglądania zasobów sieci wystarczał najsłabszy komputer, podobny do tego, który dawał sobie radę z jakimkolwiek edytorem tekstu. Mówiąc krótko, przeglądanie internetu niemal nie miało wymagań wobec komputera. Czasy się jednak zmieniły. Przeglądarka nie służy już do wyświetlania jedynie sformatowanego tekstu z niewielkimi obrazkami. Dziś strumieniujemy na żywo filmy Full HD (następne ładując w tle), mamy otwartych kilka komunikatorów jednocześnie, portale społecznościowe co chwilę odświeżające zestaw informacji, webaplikacje zastępują nam natywne, instalowane programy, takie jak klient poczty czy program do obróbki grafiki. Wszystko to dzieje się na raz, wewnątrz przeglądarki, jednego programu. Nie jest, jak kiedyś, rozbite na kilka mniej wymagających aplikacji. W czasach gdy 8 GB RAM można kupić za 152 zł, a systemy operacyjne mogą wykorzystać całe terabajty pamięci operacyjnej, ograniczanie najbardziej rozbudowanego i najważniejszego programu, jakim jest przeglądarka, do 3 GB pamięci jest nierozsądne. Skoro wszystko robimy w sieci, a komputery mają często więcej niż 4 GB RAM, to po co nam ta reszta pamięci? Upieranie się, że przeglądarce ma wystarczyć 3 GB jest po prostu bez sensu.

Co więcej, ten problem dotyczy przede wszystkim Firefoksa. Co prawda Chrome na Windows też posiada obecnie tylko wersję 32 bitową, ale w Chrome każda karta jest osobnym wątkiem, oznacza to, że limit 3 GB dotyczy każdej otwartej strony z osobna, a nie wszystkich razem i całej przeglądarki. Takie podejście ma swoje inne wady, np. Chrome z otwartymi bardzo wieloma stronami działa wolniej niż Firefox, gdy mówimy o dziesiątkach a nawet setkach kart otwartych jednocześnie, no i muszą to być strony, które nie wyczerpią limitu pamięci dla przeglądarki Mozilli. Z kolei Opera oraz Internet Explorer posiadają pełnoprawne wersje 64 bitowe. Dlatego fakt, że Opera umieszcza wszystko (oprócz rozszerzeń) w jednym wątku podobnie jak Firefox, nie jest problemem. Podsumowując: tylko Firefox umieszcza wszystko w jednym wątku i nie posiada wersji 64 bitowej, a zatem ze wszystkim musi zmieścić się w 3 GB.

Bezpieczeństwo

To jednak nie koniec, dochodzą również kwestie bezpieczeństwa. Chodzi o funkcję Address Space Layout Randomization, która polega na umieszczaniu ważnych plików DLL w losowych, trudnych do ustalenia lokalizacjach w pamięci, dzięki czemu przeprowadzenie ataku na te pliki jest znacząco utrudnione. W przypadku ograniczenia do 3 GB tych losowych miejsc jest znacznie, znacznie mniej, niż w wersji 64 bitowej, gdzie przynajmniej w teorii mamy dostępne 18 Eksabajtów pamięci operacyjnej. Dodatkowo atakujący może umyślnie zapełniać pamięć dostępną dla wątku przeglądarki nazywane inaczej heap spraying co ułatwia zadanie jeszcze zmniejszając dostępną przestrzeń z wyjściowych 3 GB. Zapełnienie pamięci w przypadku aplikacji 64 bitowej jest znacznie trudniejsze. Dodatkowo Windows 8 posiada usprawnienie nazwane „High Entropy ASLR”, ale 32 bitowa przeglądarka nie jest w stanie go wykorzystać. O ile w przypadku innych programów na takie rzeczy można przymknąć oko, bo nie są one niezbędne, o tyle w przypadku przeglądarki każdy element poprawiający bezpieczeństwo jest bardzo porządny, bo są nieustannie narażone na atak. Co prawda Opera w wersji 64 bitowej nie wykorzystuje technologii HE ASLR, ale robi to chociażby Internet Explorer 10 i Firefox x64 również mógłby to zrobić.

Wreszcie większa ilość pamięci pozytywnie wpływa na stabilność aplikacji, bo im mniej dostępnej pamięci, tym agresywniej przeglądarka musi ją zwalniać, co powoduje wolniejsze działanie, a przy zapełnieniu, zawieszenie się aplikacji.

Czemu zatem Mozilla porzuca rozwój 64 bitowego Firefoksa? Wygląda to na zamknięte koło: wersja 64 bitowa miała niski priorytet, więc nie naprawiano błędów zbyt szybko, które się gromadziły. Mozilla nie chcąc oferować gorszego produktu, postanowiła go całkiem porzucić. Wspominał o tym w zeszłym tygodniu Tomasz Popielarczyk w swoim artykule.

Jeśli natomiast ktoś chce przywołać argument o barku kompatybilności wielu rozszerzeń, warto wspomnieć o rozwiązaniu jakie przyjęła Opera. Podobnie jak w Firefoksie rozszerzenia są wydzielone do osobnego wątku, ale w odróżnieniu od przeglądarki Mozilli, Opera w wersji 64 bitowej może współpracować z rozszerzeniami 32 bitowymi, nie musi być w tym względzie zgodności. Nie jest to więc dobry argument, żeby zaprzestać rozwoju 64 bitowej przeglądarki, a Flash, Java i Silverlight już od jakiegoś czasu mają wersje 64 bitowe.

Na koniec artykuł na Ars Technice zwraca uwagę, że chociaż Firefox posiada wersję 64 bitową na systemach OS X i Linux, to użytkowników testowej wersji 64 bitowej na Windows było dwukrotnie więcej niż pozostałych systemów w sumie, tak przynajmniej było w październiku 2011. Tym bardziej porzucenie prac akurat nad tą wersją wydaje się nierozsądne.

Nowa, siedemnasta wersja Firefoksa bardzo mi się spodobała, pisałem o tym na łamach AntyWeb. Procesory 64 bitowe są na rynku już od wielu lat, od wydania Windows 7 nie ma też powodu, aby zrezygnować z 64 bitowego systemu, bo oferuje on same zalety, w porównaniu do wersji 32 bitowej. Pamięć RAM bardzo staniała. Naprawdę nie wiedzę dobrego uzasadnienia dla porzucenia rozwoju 64 bitowej wersji tej popularnej przeglądarki. Może lepiej byłoby gdyby Mozilla nadała Firefoksowi x64 większy priorytet, zamiast zamykać projekt? Może warto to było zrobić nawet kosztem innych obiecujących projektów?