Tại sao kernel Mac OS X 10.6 của tôi chạy ở chế độ 32 bit?


10

Tôi có MacBook Pro (5,1) với 4GB bộ nhớ chạy 10A432 - nhưng nó chạy kernel 32 bit.

Có ai biết tại sao nó không chạy ở chế độ 64 bit không và làm cách nào tôi có thể làm như vậy?


Tôi hiểu mục đích của 10.6 là viết lại thành phần cốt lõi để tối đa hóa việc sử dụng 64 bit. Vì vậy, với điều này bạn đang nói rằng nó sẽ chạy mã được tối ưu hóa trên 32 bit hầu hết thời gian? ...
OscarRyz

dunno, hầu hết các mã rõ ràng là 64 bit nhưng dường như kernel không phải vậy, đối với tôi dù sao đi nữa
Chopper3

Câu trả lời:


12

Trong bài phê bình về báo tuyết của Jon Siracusa, ông đã thảo luận về quá trình chuyển đổi 64 bit .

con hổ Báo Báo tuyết

Phiên bản ngắn là: vì không có 'chế độ hỗn hợp', hạt nhân 64 bit yêu cầu Trình điều khiển và tiện ích mở rộng hạt nhân 64 bit .

Vì những thứ này chưa được phổ biến rộng rãi, Apple đã chọn mặc định là 32 bit để tránh phá vỡ nhiều thứ.

Hướng dẫn từ bài viết:

Đối với tất cả các máy Mac có khả năng K64, hãy khởi động đồng thời giữ các phím "6" và "4" để chọn kernel 64 bit. Để có giải pháp lâu dài hơn, hãy sử dụng lệnh nvram để thêm arch=x86_64vào boot-argschuỗi của bạn hoặc chỉnh sửa tệp /Library/Preferences/SystemConfiguration/com.apple.Boot.plistvà thêm arch=x86_64vào chuỗi Kernel Flags:

...
    <key>Kernel</key>
    <string>mach_kernel</string>
    <key>Kernel Flags</key>
    <string>arch=x86_64</string>
...

Để quay lại kernel 32 bit, giữ phím "3" và "2" trong khi khởi động hoặc sử dụng một trong các kỹ thuật ở trên, thay thế "x86_64" bằng "i386".


Cảm ơn Gareth vì đã chỉnh sửa (đã chỉnh lại các liên kết hình ảnh đến imgur từ arstechnica và trích dẫn các hướng dẫn liên quan từ bài viết).
Hồ

7

Không có nhiều lợi ích khi chạy kernel 64 bit trong Snow Leopard, không giống như hầu hết các hệ điều hành khác. Trong Windows và Linux, bạn cần kernel 64 bit để chạy các ứng dụng 64 bit. Trên OS X, bạn có thể chạy các ứng dụng 64 bit với kernel 32 bit.

Hầu hết mọi người dường như lo ngại rằng việc chạy kernel 32 bit trong OS X sẽ hạn chế hiệu năng hoặc khả năng của máy của họ, nhưng trên thực tế, điều này không có tác động đáng kể đến vật chất. Hạt nhân 32 bit hỗ trợ chạy các ứng dụng 64 bit và các ứng dụng đó có không gian địa chỉ 64 bit ảo được ánh xạ tới không gian địa chỉ PAE 36 bit bởi hạt nhân, vì vậy chúng hoạt động giống như trên 64- hạt nhân bit, chỉ với việc sử dụng bộ nhớ bị hạn chế hơn và I / O được ánh xạ bộ nhớ đến phạm vi có thể sử dụng. Cách Apple xử lý không gian địa chỉ này trong kernel 32 bit dẫn đến giới hạn 32 GB cho bộ nhớ vật lý, phá vỡ giới hạn 4 GB 32 bit bằng PAE. Hiệu năng thông minh không có nhiều lợi ích, nếu có một số đo có thể đo được bằng cách sử dụng kernel 64 bit có bộ nhớ 32 GB trở xuống. Nếu bạn muốn,64chìa khóa khi khởi động. Tôi nghi ngờ bạn sẽ thấy và sự khác biệt đáng kể trong hiệu suất.

Vấn đề khác là khả năng tương thích với trình điều khiển thiết bị, phần mở rộng kernel và phần sụn của thiết bị. Đối với trình điều khiển thiết bị và phần mở rộng kernel, chúng cần khớp với bit-ness, được biên dịch lại hoặc viết lại (đặc biệt nếu chúng có bất kỳ phần lắp ráp nào, phần nào phổ biến trong các loại mã đó). EFI của Apple ban đầu chỉ có 32 bit và gần đây một số model có phần mềm 64 bit. Để hệ điều hành nói chuyện với phần sụn, tính chất bit của kernel và EFI phải khớp. Những điều liên quan đến việc nói chuyện với EFI là những việc như chọn đĩa khởi động hoặc một số điều khiển quản lý năng lượng (như nếu bạn có nhiều hơn một cài đặt OS X và bạn cần thoát khỏi trạng thái ngủ sau khi hết pin).

Vì vậy, một hạt nhân 64 bit sẽ là một lợi ích? Hiệu năng không thực sự trong thực tế và tôi có thể thấy sự khôn ngoan khi Apple sử dụng hạt nhân 32 bit cho hầu hết các máy chạy Snow Leopard để có khả năng tương thích tốt hơn.


7

Theo những gì đã bị rò rỉ cho MacRumors (vì các tài liệu chính thức nằm dưới NDA) ( Nguồn ) chỉ các máy tính sau hỗ trợ chạy kernel 64 bit:

  • Đầu năm 2008 Mac Pro (MacPro 3,1)
  • Đầu năm 2008 Xserve (Xserve 2.1)
  • MacBook Pro (15 "/ 17") (MacBookPro 4,1)
  • IMac 2008 (iMac 8.1)
  • Ưu điểm của Unibody MacBook (MacBookPro 5,1 và 5,2)
  • Đầu năm 2009 Mac Pro (MacPro 4,1)
  • IMac 2009 (iMac 9,1)
  • Đầu năm 2009 Xserve (Xserve 3,1).

Chỉ các XServes sử dụng kernel 64 bit theo mặc định.

Nếu bạn khởi động máy tính đang giữ phím 64bạn sẽ khởi động kernel 64 bit hoặc theo một nguồn khác phá vỡ NDA của họ, bạn có thể chỉnh sửa /Library/Preferences/SystemConfiguration/com.apple.Boot.plistthêm cờ kernel hoặc thực hiện trong nvram.


Tôi cũng phát hiện ra rằng, đó là lý do tại sao tôi đặt mã mô hình của mình.
Chopper3

Bắt đầu với [6] [4] thực hiện công việc, nhưng, lợi ích của việc chạy kernel trên 64 bit là gì? ...
OscarRyz

@Oscar Reyes: Sau đó, bạn có thể sử dụng trình điều khiển 64 bit và các quy trình có thể truy cập hơn 4GB bộ nhớ. Vậy ngay bây giờ? Không có gì trừ khi bạn đang chạy một ứng dụng phía máy chủ có thể sử dụng hơn 4GB bộ nhớ - do đó, mặc định 64 bit trên Xserves.
Chealion

5

Thật không may, liên kết bị xáo trộn của Jason đã che giấu một thông tin rất hữu ích:

ioreg -l -p IODeviceTree | grep firmware-abi

Máy Mac EFI 64 bit sẽ báo cáo

| | "firmware-abi" = <"EFI64">

1

Cho đến khi Snow Leopard được phát hành, chúng tôi sẽ không biết hệ thống nào sẽ hỗ trợ chế độ 64/32 bit ... Nhưng tất cả các dấu hiệu cho thấy Snow Leopard sẽ trong suốt với sự hỗ trợ của kernel ...

Nhưng, than ôi, xin lỗi vì là "kẻ hạ bệ", nếu bạn là thành viên đã đăng ký, diễn đàn Appleseed thảo luận về cách buộc kernel vào chế độ 64 bit. Mặt khác, nếu bạn đã nhận được Snow Leopard ở nơi khác, đừng lo lắng về nó.

Bản phát hành của Snow Leopard ở ngay góc ...


0

Không sao, đây là lý do:

  • SL 32 bit S run chạy các ứng dụng 64 bit; SL tương thích 64 bit bất kể bạn khởi động phiên bản kernel nào

  • SL ngay cả khi được khởi động với kernel 32 bit vẫn có thể chạy các ứng dụng 64 bit và xử lý hơn 4GB RAM

  • Lý do bạn cần kernel 64 bit là nếu kernel cần để giải quyết hơn 32 GB RAM (do đó, nó mặc định trên Xserve) hoặc bạn chỉ có kext 64 bit (nhà phát triển)

  • Hạt nhân 64 bit không làm cho máy tính của bạn nhanh hơn một cách kỳ diệu; trừ khi bạn cần nhiều hơn 32 GB RAM (dù sao tôi cũng chỉ sử dụng Xserves), bạn cũng không cần nó để giải quyết các lý do

  • bằng cách đặt mặc định 32 bit trên các hệ thống tiêu dùng và cung cấp cho các nhà phát triển và tùy chọn kernel 64 bit, Apple vẫn giữ được tính tương thích tối đa VÀ tính linh hoạt tối đa

  • 64 bit chủ yếu là một tùy chọn nhà phát triển; họ có thể sử dụng nó để kiểm tra trình điều khiển / kexts 64 bit mới của mình để đảm bảo chúng hoạt động với kernel 64 bit

Theo mặc định và trích dẫn từ Snow Leopard tải kernel 32 bit

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.