คำตอบ:
ตามคำตอบ 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ดูเหมือนว่าจะยังคงอยู่ในสถานะปัจจุบันมากขึ้น
และสุดท้ายสำหรับคำถามหัวข้อ : "อะไรคือผลลัพธ์ของarchi386 บน macOS Mojave?" . คำตอบ:แต่มันหมายความว่าแอปเปิ้ลไม่ได้เก็บเอกสารของพวกเขาและ / หรือปพลิเคชันได้อย่างถูกต้อง
uname -mx86_64ดังนั้นฉันคิดว่ามันเป็นสถาปัตยกรรม CPU 64 บิต ฉันพยายามที่archจะลองคำสั่งที่ฉันได้ชนในขณะที่เรียนการรับรอง Linux