Co oznacza i386 w systemie macOS Mojave?

12

Korzystam z używanego MacBooka Pro z końca 2013 roku (Mojave 10.14.3) i kiedy piszę archw Terminalu, wracam i386. Czy to nie powinno być x86_64? Czy sprzedawca wprowadził w błąd przedmiot? Zobacz zrzut ekranu poniżej „About this Mac” . zrzut ekranu

WobblyWindows
źródło

Odpowiedzi:

15

Zgodnie z tym SO odpowiedź , archrozróżnia PowerPC ( ppc) oraz Intel ( i386), a nie między 32- i 64-bitowego jądra na x86. W tym kontekście i386oznacza to procesor x86.

Sprawdź dane wyjściowe, uname -maby dowiedzieć się, jaki jest twój typ maszyny. (W systemie Linux archjest odpowiednikiem uname -m).

Zobacz także: Zapytaj Różne pytania i odpowiedzi .

Stephen Kitt
źródło
tak! Zrobiłem uname -mi to mi dało x86_64. Sądzę więc, że jest to 64-bitowa architektura procesora. Próbowałem archpo prostu wypróbować cmd, na które wpadłem podczas nauki o certyfikat Linux.
WobblyWindows
14

W systemie macOS, podobnie jak w innych systemach BSD, należy użyć machinenarzędzia:

$ arch
i386
$ machine
x86_64h

Jest i386to mylące, jeśli jesteś przyzwyczajony do archnarzędzia w innych systemach. W systemie macOS Mojave i386oznacza to, że może on uruchamiać 32-bitowe oprogramowanie skompilowane dla rodziny procesorów Intel. Zauważ, że archnarzędzie w systemie macOS jest używane do całkiem różnych rzeczy w porównaniu do np. Linuksa (patrz jego instrukcja).

Możesz również użyć uname -mjak w systemie Linux:

$ uname -m
x86_64
Kusalananda
źródło
5
Nie po to, żeby stworzyć górę kretowiska, ale AFAIK, nie ma dokumentacji od Apple, która wskazywałaby, że i386oznaczenie sugeruje, że jest w stanie uruchomić 32-bitowe oprogramowanie ... z man archpewnością tego nie sugeruje. IMHO, Apple właśnie upuściło piłkę i pozwoliło, aby sprawy trochę się popsuły - może w imię wstecznej kompatybilności?
Seamus
3

Czuję, że za pomocą „tradycyjnych” narzędzi (np arch, uname, sw_vers), aby odkryć swój sprzęt lub oprogramowanie Mac nie może być bardzo wiarygodne. To z pewnością niespójne! Nawet instrukcje systemowe są pełne niespójności.

Nie oznacza to, że nie można uzyskać przydatnych informacji z tych narzędzi, a jedynie powiedzieć, że jeśli nie wiesz, czego szukasz, możesz uzyskać wyniki, które różnią się od wyników uzyskiwanych w innych systemach.

Na przykład:

$ arch
i386

Nie! (Chyba że używasz naprawdę starego komputera).

Innym przykładem jest wersja systemu operacyjnego. man sw_versi man unameoba twierdzą, że zgłaszają „wersję systemu operacyjnego”:

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.14.4
BuildVersion:   18E226

$ uname -v
Darwin Kernel Version 18.5.0 ....  # output snipped 

Co jest dobre i dobre - mamy świadomość, że numeracja wersji wydania jądra i dystrybucji jest inna, ale instrukcje systemowe dla obu tych poleceń mówią, że tak OS Version. Zrozumienie genezy prądumacos wyjaśnia niektóre z nich, ale nie wyjaśnia, dlaczego instrukcje systemowe są niespójne.

I tak na pytanie OP dotyczące tego, jak uzyskać jasne i wiarygodne informacje o systemie, uważam, że odpowiedzią powinno być użycie system_profilerzarówno sprzętu, jak i oprogramowania:

$ system_profiler SPHardwareDataType
Hardware:

    Hardware Overview:

      Model Name: MacBook Pro
      Model Identifier: MacBookPro13,3
      Processor Name: Intel Core i7
      Processor Speed: 2.9 GHz
      Number of Processors: 1
      Total Number of Cores: 4
      L2 Cache (per Core): 256 KB
      L3 Cache: 8 MB
      Memory: 16 GB
      Boot ROM Version: 254.0.0.0.0
      SMC Version (system): 2.38f7
      Serial Number (system): C02*********
      Hardware UUID: ********-****-****-****-************

$ system_profiler SPSoftwareDataType
Software:

    System Software Overview:

      System Version: macOS 10.14.4 (18E226)
      Kernel Version: Darwin 18.5.0
      Boot Volume: Macintosh HD
      Boot Mode: Normal
      Computer Name: MacBook No 2
      User Name: Seamus (seamus)
      Secure Virtual Memory: Enabled
      System Integrity Protection: Enabled
      Time since boot: 13:13

system_profilerWydaje się również, że podręcznik systemowy dla bardziej aktualnego stanu.

I wreszcie, jeśli chodzi o główne pytanie : „Co oznacza [wynik arch] i386 na MacOS Mojave?” . Odpowiedź: Niestety, oznacza to, że Apple nie utrzymywał poprawnie swojej dokumentacji i / lub aplikacji.

Seamus
źródło