Jaka jest różnica między standardowym pobieraniem i386 a pobieraniem amd64 Ubuntu 11.04? Obecnie używam i386 na komputerze z systemem amd, czy mój system działałby lepiej z pobieraniem amd64? (na moim komputerze działał system Windows 7 64bit, ale zaniedbałem go przed zainstalowaniem Ubuntu).
architecture
Obrabować
źródło
źródło
Odpowiedzi:
i386 odnosi się do wersji 32-bitowej, a amd64 (lub x86_64) odnosi się do wersji 64-bitowej dla procesorów Intel i AMD.
Wpis Wikipedii i386:
Wpis Wikipedii x86_64:
Nawet jeśli masz procesor Intel, powinieneś użyć AMD64, aby zainstalować 64-bit na swoim komputerze (używa tych samych zestawów instrukcji).
Bardzo polecam go używać. W większości przypadków nie zauważysz różnicy, ale w przypadku dużych obciążeń (takich jak edycja wideo, gry itp.) Komputer będzie działał szybciej (komputer może obliczyć 2 + 2 + 2 = 6 zamiast robić 2 + 2 = 4 + 2 = 6 w przykładzie). W świecie Windows 32-bitowy system operacyjny nie pozwala na użycie więcej niż 3,5 gigabajtów pamięci RAM na komputerze (nawet jeśli masz 8!). Aby w pełni wykorzystać całą pamięć RAM, musisz użyć 64-bitowego systemu operacyjnego. Jednak w przypadku Linuksa nie ma takiego limitu (dzięki, Uri).
Niezależnie od tego świat zmienił się z 32-bitowego i jest tylko tam, aby obsługiwać starsze maszyny, które nie są w stanie uruchomić 64-bitowego.
źródło
Źródło: https://superuser.com/questions/128482/ubuntu-amd64-vs-i386
źródło
tak, możesz zainstalować amd64 bit na 64-bitowym procesorze Intel. Firma AMD wynalazła procesor zestawu instrukcji x86-64 bit, więc nazwa jest tylko hołdem dla AMD.
źródło
Różnica między amd64 a i386 polega na tym, że amd64 jest 64-bitowy, a i386 jest 32-bitowy . Jest to szerokość (w bitach) rejestrów dostępnych w rdzeniu.
Zasadniczo największa liczba, którą 32-bitowy rdzeń procesora może obsłużyć za jednym razem, to nieco ponad 4,29 miliarda, podczas gdy 64-bitowy rdzeń może obsłużyć liczbę nieco ponad 18,44 miliarda miliardów.
Rdzenie współczesnych komputerów PC mogą zachowywać się jak procesory 64-bitowe lub 32-bitowe w zależności od zainstalowanej wersji systemu operacyjnego.
Kod 64-bitowy zwykle działa szybciej niż kod 32-bitowy, ponieważ może poradzić sobie z większymi numerami w ruchu lub ponieważ 64-bitowe rdzenie mają więcej rejestrów, dzięki czemu można przechowywać więcej rzeczy bez konieczności umieszczania rzeczy w pamięci zewnętrznej. Chociaż nie ma gwarancji, że 64-bitowy kod będzie działał szybciej, jeśli kod nie został napisany, aby skorzystać z dodatkowych funkcji procesora.
Kompilacja w systemie 32-bitowym da inny kod niż system 64-bitowy. Możesz to udowodnić, kompilując do kodu asemblera w dwóch systemach. Zakładając, że plik C to mój_plik.c spróbuj
gcc -S myfile.c
na obu systemach i porównaj mój_plik.sDobrze napisany kod dla systemu 32-bitowego powinien się skompilować i uruchomić w systemie 64-bitowym, ale nie cały kod jest dobrze napisany. Wielu programistów przyjmuje założenia dotyczące systemu, które mogą nie być prawdziwe: na przykład szerokość rejestru lub kolejność bajtów.
Bez dostępu do kodu źródłowego trudno jest zrozumieć, na czym polega problem, ale
segmenation fault
wskazuje, że podjęto próbę uzyskania dostępu do pamięci, która nie należy do programu. Może to na przykład wskazywać, że mem_ptr jest 32-bitowym wskaźnikiem, który jest odpowiedni w systemie 32-bitowym, ale musi być 64-bitowym wskaźnikiem w systemie 64-bitowym.źródło
realloc(mem_ptr, 0)
Funkcja jest pamięć uwalniając wcześniej przyporządkowaćmalloc
,calloc
itp Jeśli wskaźnik został uszkodzony w jakikolwiek sposób to jesteś stara się wolnej pamięci nie jesteś właścicielem, a to generuje błąd segmentacjiTak, możesz użyć tego .ISO. amd64 odnosi się do architektury. AMD jako pierwszy stworzyło 64-bitowy procesor, więc uważam, że nazywał się tak w tamtym czasie, a nazwa utknęła. Wydaje się to trochę mylące, ale amd64 oznacza po prostu 64-bit.
źródło