Что означает i386 на MacOS Mojave?

12

Я нахожусь в подержанном MacBook Pro с конца 2013 года (Mojave 10.14.3) и когда я печатаю archв терминале, я возвращаюсь i386. Разве это не должно быть x86_64? Продавец исказил товар? Пожалуйста, смотрите скриншот ниже «Об этом Mac» . снимок экрана

WobblyWindows
источник

Ответы:

15

Согласно этому ответу SO , archразличаются PowerPC ( ppc) и Intel ( i386), а не между 32- и 64-разрядными ядрами на x86. Так что в этом контексте i386означает процессор x86.

Проверьте вывод, uname -mчтобы узнать тип вашей машины. (В Linux archэто эквивалентно uname -m.)

Смотрите также этот вопрос .

Стивен Китт
источник
Ага! Я сделал, uname -mи это дало мне x86_64. Так что я думаю, что это 64-битная архитектура процессора. Я попытался archпросто попробовать cmd, с которым столкнулся, изучая сертификацию Linux.
WobblyWindows
14

В системе MacOS, как и в других системах BSD, вы должны использовать machineутилиту:

$ arch
i386
$ machine
x86_64h

Это i386вводит в заблуждение, если вы привыкли к archутилите в других системах. В MacOS Mojave i386означает, что он способен работать с 32-разрядным программным обеспечением, скомпилированным для семейства процессоров Intel. Обратите внимание, что archутилита в macOS используется для совершенно других целей, чем, например, в Linux (см. Руководство).

Вы также можете использовать uname -mкак в Linux:

$ uname -m
x86_64
Кусалананда
источник
5
Не для того, чтобы создать гору мухи слона, но AFAIK, от Apple нет документации, которая указывала бы, что i386обозначение подразумевает, что она способна работать с 32-битным программным обеспечением ... man archконечно, не предполагает этого. ИМХО, Apple просто бросила мяч и позволила вещам немного запутаться - возможно, во имя обратной совместимости?
Симус
3

Я чувствую , что с помощью «традиционных» коммунальных услуг (например arch, uname, sw_vers) , чтобы открыть ваше оборудование или программное обеспечение Mac не может быть очень надежным. Это конечно противоречиво! Даже системные руководства изобилуют несоответствиями.

Это не означает, что вы не можете получить полезную информацию из этих утилит, это просто означает, что если вы не знаете, что ищете, вы можете получить результаты, которые отличаются от того, что вы получаете в других системах.

Например:

$ arch
i386

Нет! (Если вы не используете действительно старый компьютер.)

Другой пример - версия ОС. man sw_versи man unameоба утверждают, что сообщают «Версия ОС»:

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

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

Что все хорошо, мы знаем, что нумерация версий ядра и дистрибутива отличается, но системные руководства для обеих этих команд говорят, что вы получите OS Version. Понимание происхождения данного событияmacos объясняет некоторые из них, но не объясняет, почему системные руководства противоречивы.

И поэтому, на вопрос ОП относительно того, как получить четкую и надежную информацию о системе, я считаю, что ответом должно быть использование system_profilerкак аппаратного, так и программного обеспечения:

$ 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_profilerкажется, поддерживается в более текущем состоянии.

И, наконец, что касается главного вопроса : «Что [вывод arch] i386 означает на MacOS Mojave?» , Ответ: К сожалению, это означает, что Apple не ведет должным образом свою документацию и / или приложения.

Симус
источник