Inne zalety 64-bitowego systemu operacyjnego oprócz rozszerzenia pamięci?

40

Próbuję przekonać kogoś o zaletach przejścia na 64-bitowy system operacyjny, ale trudno mi znaleźć inne argumenty niż „możesz użyć więcej niż 3 GB pamięci RAM”. Czy są jakieś inne wyraźnie komunikowalne korzyści z posiadania 64-bitowego systemu operacyjnego?

Jonathan Prior
źródło
1
Dobre pytanie, myślałem tak samo. Być może powinieneś wyjaśnić, jaką osobę próbujesz przekonać, ponieważ niektóre z poniższych odpowiedzi byłyby zdecydowanie zbyt techniczne, jeśli mówimy o zwykłym użytkowniku komputerowym.
Ash
1
ashh: to dlatego, że zalety i wady 64-bitowych systemów operacyjnych są bardzo techniczne. Przynajmniej w Linuksie, dla nietechnicznych użytkowników końcowych prawie nie ma zauważalnej różnicy (nawet ciągle zapominam, czy komputer, którego używam, jest 64-bitowy czy 32-bitowy); w systemie Windows jest więcej niezgodności i dziwności, z którymi trzeba sobie poradzić w wersji 64-bitowej, ale poza tym nietechniczny użytkownik końcowy prawie nie zauważy różnicy.
CesarB

Odpowiedzi:

27
  • Dla x86-64 w porównaniu do IA-32 istnieje dwa razy więcej rejestrów, co pozwala kompilatorom na generowanie lepszego kodu.
  • W większości systemów operacyjnych 64-bitowy ABI umożliwia generowanie lepszego kodu niż 32-bitowy ABI (na przykład poprzez przekazywanie parametrów do rejestrów zamiast na stosie).
  • Niektóre rzeczy, które są rozszerzeniami IA-32, są zawsze obecne na x86-64, więc programy mogą z nich korzystać bez konieczności kodowania rezerwowego (na przykład pewien poziom SSE).
  • Wreszcie wersja 64-bitowa time_t, która będzie coraz ważniejsza w miarę zbliżania się roku 2038.
CesarB
źródło
2
Musisz wyjaśnić, co masz na myśli: „dwa razy więcej rejestrów, co pozwala kompilatorom na generowanie lepszego kodu”. Co to jest „lepszy kod”?
Ash
1
Zauważyłem również, że operacje na 64-bitowych liczbach całkowitych są około cztery razy szybsze w 64-bitowym kodzie w porównaniu z 32-bitowym kodem (regularnie wybieram tutaj zły kompilator C i zastanawiam się, dlaczego Lua jest szybszy niż C :))
Joey
4
ashh: Rejestry to miejsca do przechowywania, do których procesor ma najszybszy dostęp, ale na x86 są bardzo ograniczonym zasobem. Jeśli więc potrzebujesz wielu zmiennych lokalnych, musisz stale przenosić je z rejestrów na stos iz powrotem, co zajmuje dużo czasu. Przy większej liczbie rejestrów możesz trzymać ich więcej w zasięgu naraz, bez konieczności używania stosu. Porównaj z tobą tylko mając dwie ręce: Możesz manipulować tylko dwiema rzeczami na raz; z czterema rękami możesz zrobić dwa razy więcej (jeśli twój mózg nadąża, ale na razie to na bok).
Joey,
@Johannes, powinieneś dodać swój komentarz jako odpowiedź na to pytanie! Pytałem retorycznie, aby Cesar dodał takie wyjaśnienie.
Ash
1
Podałeś kilka technicznych przyczyn, nie wyjaśniając, co to znaczy. Co to jest „lepszy kod” i jakie korzyści przynosi użytkownikowi?
Igby Largeman 21.11.11
7

W rzeczywistości można uruchomić więcej niż 3 GB (lub więcej niż 4 GB) pamięci RAM w 32-bitowych systemach operacyjnych. PAE zapewnia procesorowi x86 lub x86-64 dostęp do 64 GB pamięci nawet w 32-bitowym systemie operacyjnym. Pamiętaj, że nie jest to tak proste, jak uruchomienie 64-bitowego systemu operacyjnego. Pamięć jest stronicowana, więc każdy proces jest nadal ograniczony do maksymalnie 4 GB. Ponadto nie wszystkie systemy operacyjne obsługują to. Niektóre wersje 32-bitowego systemu Windows korzystały z PAE, ale niestety, aby mogły obsługiwać źle napisane sterowniki, większość wersji ogranicza obsługę do 4 GB pamięci. Na przykład Windows XP i Windows Vista są ograniczone do 4 GB (i, jak wspomniano, mają tendencję do wystawiania tylko około 3 GB). Z drugiej strony, Windows Server 2008 Enterprise, Datacenter obsługuje 64 GB pamięci RAM.

Jądro Linux wspierało ponad 4 GB jako część jądra 2.6 . Jednak dystrybucje systemu Linux czasami wymagają zainstalowania obrazu jądra „serwera” w celu skorzystania z tej funkcji.

ChrisInEdmonton
źródło
Słuszna uwaga. Naprawdę nie mogę zrozumieć, dlaczego ludzie nadal uważają, że potrzebują 64-bitowego systemu operacyjnego, aby wykorzystać więcej niż 4 GB pamięci RAM.
neu242,
W Linuksie inną opcją jest uruchomienie 64-bitowego jądra i 32-bitowej przestrzeni użytkownika, co zapewnia pełny dostęp do> = 4 GB pamięci RAM, chociaż procesy są nadal ograniczone do 4 GB.
TRS-80,
5

To naprawdę zależy od tego, do czego chcesz używać systemu operacyjnego. Dla zdecydowanej większości „normalnych” użytkowników przejście na wersję 64-bitową nie daje im zbyt wiele. Jedynymi obszarami, w których 64-bit jest naprawdę przydatny, jest to, że chcesz użyć więcej niż 4 GB pamięci (jak już wspomniano) lub wykonywać obliczenia z liczbami, które nie mieszczą się w 32-bitach.

Ostatecznie wszystkie komputery PC i systemy operacyjne będą dostępne tylko w wersjach 64-bitowych, ale na razie, jeśli wszystko, co chcą zrobić, to surfować po Internecie lub sprawdzać pocztę e-mail, nie ma pilnej potrzeby przejścia na wersję 64-bitową.

Andy
źródło
Dla mnie dodatkowe wsparcie pamięci jest już wystarczająco dobrym powodem do aktualizacji. Założę się, że z czasem większość zwykłych użytkowników też się tak poczuje :-)
marc_s
2
@marc, większość zwykłych użytkowników nie będzie się tak czuć, chyba że dostawcy oprogramowania zaczną pisać klientów e-mail, przeglądarki internetowe i edytory tekstu, które potrzebują> 4 GB pamięci RAM. Z drugiej strony jestem pewien, że to nie potrwa długo.
Ash
@ashh mój Firefox lubi już używać ~ 2 GB pamięci RAM. To nie potrwa długo :)
Quiark,
4

Nie tylko możesz mieć więcej niż 3 GB pamięci RAM, każde oprogramowanie skompilowane / napisane z myślą o wersji 64-bitowej może używać 64-bitowych rejestrów i typów danych, co zdecydowanie przyspieszy aplikacje, które przenoszą ogromne ilości danych, takie jak programy 3D, CAD, Photoshop itp.

Jeśli jednak jesteś przeciętnym Joe, który nie działa z kreatywnymi programami i po prostu czyta e-maile, surfuje po Internecie, ogląda filmy z YouTube'a, prawdopodobnie nawet nie zauważysz, dopóki nie podłączysz urządzenia, które wymaga 64 sterowniki bitowe, ale sprzedawca nie wydał żadnego.

Steven DeWitt
źródło
2
Miałem ten problem przy wielu okazjach. Jeśli używasz systemu x-64-bitowego, który leżał jako serwer, możesz znaleźć nieprzyjemną niespodziankę, gdy zaczniesz dodawać dodatkowy sprzęt, który masz w pobliżu. Dobrym ilustrującym przykładem dylematu, który napotkałem, była próba dodania karty NIC 3COM 3c509 do systemu. Nigdzie NIE ma sterowników dla starszych urządzeń. Odkryłem, że miałem ponad baryłkę i musiałem kupić kartę premium NIC firmy Intel, aby uzyskać działający 64-bitowy sterownik. Z czasem problem ten zniknie. Dostawcy nie mają wystarczającej zachęty do obsługi starego sprzętu.
Axxmasterr
@Axxmasterr: sloty ISA i obsługa procesorów x64 na tej samej płycie głównej? Poważnie? Tam nie może być tylu takich. Czy to jakiś przemysłowy komputer?
bk1e,
3

Silnik .NET JIT (Just-In-Time) zawiera bardziej zaawansowane optymalizacje w wersji x64 (na przykład optymalizacja rekurencji ogona). Oznacza to, że aplikacje .NET mogą potencjalnie działać szybciej w systemach 64-bitowych.

Milan Gardian
źródło
0

Nie. To o to chodzi.

Dla zwykłych użytkowników domowych x64 nie ma przewagi. Jeśli już, bo wszystkie twoje wskaźniki, a teraz 64-bitowe, może się okazać, że używasz więcej pamięci, aby zrobić to samo.

Jedyną znaczącą zaletą x64 jest większa pamięć, która obecnie jest wykorzystywana tylko przez serwery.

Simon P. Stevens
źródło
0

Jeśli znajdziesz dobre 64-bitowe wersje swojego popularnego oprogramowania, to tak, uaktualnienie do wersji 64-bitowej będzie dodatkowym atutem. Dostępne są 64-bitowe wersje niektórych aplikacji. Jednak aplikacje te są zwykle powiązane z manipulacjami obrazami, edycją filmów i oczywiście edycją dźwięku. Zasadniczo, tylko aplikacje, które obsłużą mnóstwo danych. Jakość oglądania filmu DVD na twoim komputerze również wzrośnie, ponieważ system może obsługiwać dane nieco szybciej i może także przechowywać więcej danych, jeśli twój system ma więcej dostępnej pamięci RAM.

Istnieje również niewielki wzrost wydajności, jeśli masz tendencję do uruchamiania wielu aplikacji jednocześnie. (Nawet jeśli wszystkie te aplikacje są wersjami 32-bitowymi!) Dlaczego? Ponieważ sam system operacyjny może poradzić sobie z dodatkową pamięcią nieco łatwiej, dzięki czemu więcej aplikacji pozostaje w pamięci, co powoduje mniej wymiany plików wymiany. (I możesz mieć też dużo większy plik wymiany!)

Ale uaktualniłem do 64-bitów, ponieważ wykonuję wiele manipulacji obrazem, co wymaga potężnego systemu i dużej ilości pamięci. (Cóż, potrzebuję przynajmniej dużo pamięci.)

Wim ten Brink
źródło