คำตอบ:
ตามคำตอบ SO นี้ให้arch
แยกความแตกต่างระหว่าง PowerPC ( ppc
) และ Intel ( i386
) ไม่ใช่ระหว่างเคอร์เนล 32- และ 64- บิตบน x86 ดังนั้นในบริบทนี้i386
หมายถึงซีพียู x86
ตรวจสอบผลลัพธ์ของuname -m
เพื่อค้นหาประเภทเครื่องของคุณ (บน Linux arch
เทียบเท่ากับuname -m
)
ดูเพิ่มเติมนี้ถาม Q & A ที่แตกต่างกัน
บนระบบ 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
i386
ระบุถึงความสามารถในการใช้งานซอฟต์แวร์ 32- บิต ... man arch
แน่นอนไม่แนะนำ IMHO แอปเปิ้ลเพิ่งปล่อยบอลและปล่อยให้สิ่งต่าง ๆ ยุ่งเหยิงสักหน่อย - บางทีอาจจะเป็นในชื่อของความเข้ากันได้แบบย้อนหลัง?
ผมรู้สึกว่าการใช้สาธารณูปโภค "ดั้งเดิม" (เช่นarch
, uname
,sw_vers
) ที่จะค้นพบฮาร์ดแวร์หรือซอฟต์แวร์ของ Mac ของคุณอาจจะไม่น่าเชื่อถือมาก มันไม่สอดคล้องกันอย่างแน่นอน! แม้แต่คู่มือของระบบก็ยังเต็มไปด้วยความไม่สอดคล้องกัน
นี่ไม่ใช่การบอกว่าคุณไม่สามารถรับข้อมูลที่เป็นประโยชน์จากยูทิลิตี้เหล่านี้ได้ แต่เป็นการบอกว่าถ้าคุณไม่ทราบว่าคุณกำลังมองหาอะไรคุณอาจได้รับผลลัพธ์ที่แตกต่างจากสิ่งที่คุณได้รับจากระบบอื่น
ตัวอย่างเช่น:
$ arch
i386
No! (ยกเว้นว่าคุณใช้คอมพิวเตอร์เครื่องเก่าจริงๆ)
อีกตัวอย่างหนึ่งคือเวอร์ชั่นของระบบปฏิบัติการ 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
ซึ่งเป็นสิ่งที่ดีและดี - เราทราบว่าเมล็ดและ distro รุ่นที่วางจำหน่ายเลขที่แตกต่างกัน OS Version
แต่คู่มือระบบสำหรับทั้งสองคำสั่งเหล่านี้บอกว่าคุณจะได้รับ ทำความเข้าใจเกี่ยวกับแหล่งกำเนิดของปัจจุบันmacos
อธิบายบางสิ่งนี้ แต่ก็ไม่ได้อธิบายว่าทำไมคู่มือระบบไม่สอดคล้องกัน
ดังนั้นสำหรับคำถามของ OP เกี่ยวกับวิธีการรับข้อมูลที่ชัดเจนและเชื่อถือได้ในระบบฉันรู้สึกว่าคำตอบควรใช้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?" . คำตอบ:แต่มันหมายความว่าแอปเปิ้ลไม่ได้เก็บเอกสารของพวกเขาและ / หรือปพลิเคชันได้อย่างถูกต้อง
uname -m
x86_64
ดังนั้นฉันคิดว่ามันเป็นสถาปัตยกรรม CPU 64 บิต ฉันพยายามที่arch
จะลองคำสั่งที่ฉันได้ชนในขณะที่เรียนการรับรอง Linux