Mac OS X 10.6 커널이 32 비트 모드로 실행되는 이유는 무엇입니까?


10

10A432를 실행하는 4GB 메모리가있는 MacBook Pro (5,1)가 있지만 32 비트 커널을 실행 중입니다.

왜 64 비트 모드에서 실행되지 않는지, 어떻게 그렇게 할 수 있습니까?


10.6의 목적은 64 비트 사용을 최대화하기 위해 핵심 구성 요소를 다시 작성하는 것입니다. 그래서 이것으로 32 비트에서 대부분 최적화 된 코드를 실행할 것이라고 말하고 있습니까? ...
OscarRyz

몰라, 대부분의 코드는 어쨌든 64 비트하지만 커널 나를 위해, 될 것 같지 않습니다 분명히
Chopper3

답변:


12

Jon Siracusa의 Snow Leopard 검토 에서 64 비트 전환에 대해 설명합니다 .

호랑이 표범 눈표범

짧은 버전은 '혼합 모드'가 없기 때문에 64 비트 커널에는 64 비트 커널 확장 및 드라이버가 필요 합니다.

아직 널리 보급되지 않았기 때문에 Apple은 많은 것을 깨뜨리지 않기 위해 기본적으로 32 비트로 설정했습니다.

기사의 지침 :

모든 K64 가능 Mac의 경우 "6"과 "4"키를 동시에 누른 상태에서 부팅하여 64 비트 커널을 선택하십시오. 보다 영구적 인 솔루션을 얻으려면 nvram 명령을 사용 arch=x86_64하여 boot-args문자열 에 추가 하거나 파일을 편집 하고 커널 플래그 문자열에 /Library/Preferences/SystemConfiguration/com.apple.Boot.plist추가하십시오 arch=x86_64.

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

32 비트 커널로 다시 전환하려면 부팅 중에 "3"및 "2"키를 누르거나 위의 기술 중 하나를 사용하여 "x86_64"를 "i386"으로 바꿉니다.


편집을위한 Gareth에게 감사드립니다 (arstechnica의 imgur에 대한 이미지 링크를 호스트하고 기사에서 관련 지침을 인용했습니다).
Lake

7

대부분의 다른 운영 체제와 달리 Snow Leopard에서 64 비트 커널을 실행하면 큰 이점이 없습니다. Windows 및 Linux에서는 64 비트 응용 프로그램을 실행하려면 64 비트 커널이 필요합니다. OS X에서는 32 비트 커널로 64 비트 응용 프로그램을 실행할 수 있습니다.

대부분의 사람들은 OS X에서 32 비트 커널을 실행하면 시스템의 성능이나 기능이 제한되지만 실제로는 큰 영향을 미치지 않습니다. 32 비트 커널은 64 비트 응용 프로그램 실행을 지원하며 해당 응용 프로그램에는 커널에 의해 36 비트 PAE 주소 공간에 매핑되는 가상 64 비트 주소 공간이 있으므로 64 비트에서와 동일하게 동작합니다. 비트 커널,보다 제한된 메모리 사용 및 메모리 매핑 된 I / O를 사용 가능한 범위로 설정합니다. Apple이 32 비트 커널에서이 주소 공간을 처리하는 방식에 따라 실제 메모리에 대한 32GB 제한이 발생하여 PAE에서 4GB 32 비트 제한이 해제됩니다. 32GB 이하의 메모리를 가진 64 비트 커널을 사용하여 측정 할 수있는 것이 있다면 성능면에서는 별다른 이점이 없습니다. 원한다면64시작시 키. 성능에 큰 차이가 있다는 것을 의심합니다.

다른 문제는 장치 드라이버, 커널 확장 및 장치 펌웨어와의 호환성입니다. 장치 드라이버 및 커널 확장의 경우 비트 단위와 일치하거나 다시 컴파일하거나 다시 작성해야합니다 (특히 어셈블리가있는 경우 해당 유형의 코드에서 공통적 인 부분). Apple의 EFI는 원래 32 비트로 만 제공되었으며 최근에는 일부 모델에 64 비트 펌웨어가 있습니다. 운영 체제가 펌웨어와 통신하려면 커널의 비트 크기와 EFI가 일치해야합니다. EFI와 통신하는 것은 시동 디스크 또는 일부 전원 관리 제어 (예 : OS X 설치가 두 개 이상이고 배터리가 소진 된 후 절전 모드에서 해제해야하는 경우)를 선택하는 것과 같습니다.

64 비트 커널이 도움이 될까요? 실제로 성능 측면에서는 실용적이지 않으며 더 나은 호환성을 위해 Snow Leopard를 실행하는 대부분의 시스템에 32 비트 커널을 사용하는 Apple의 지혜를 볼 수 있습니다.


7

MacRumors에 유출 된 것에 따르면 (공식 문서는 NDA하에 있기 때문에) ( Source ) 다음 컴퓨터 만 64 비트 커널 실행을 지원합니다.

  • 2008 년 초 Mac Pro (MacPro 3,1)
  • 2008 년 초 Xserve (Xserve 2,1)
  • MacBook Pro (15 "/ 17") (MacBookPro 4,1)
  • 2008 iMac (iMac 8,1)
  • Unibody MacBook Pro (MacBookPro 5,1 및 5,2)
  • 2009 년 초 Mac Pro (MacPro 4,1)
  • 2009 iMac (iMac 9,1)
  • 2009 년 초 Xserve (Xserve 3,1).

XServes 만 기본적으로 64 비트 커널을 사용합니다.

64키를 보유한 컴퓨터를 시작하면 64 비트 커널을 시작하거나 NDA를 위반하는 다른 소스 에 따라 /Library/Preferences/SystemConfiguration/com.apple.Boot.plist커널 플래그 추가 를 편집 하거나 nvram에서 수행 할 수 있습니다 .


나는 또한 그것을 발견했다. 그것이 내 모델 코드를 넣는 이유이다.
Chopper3

[6] [4]부터 작업이 시작되지만 64 비트에서 커널을 실행하면 어떤 이점이 있습니까? ...
OscarRyz

@Oscar Reyes : 그런 다음 64 비트 드라이버를 사용하고 프로세스는 4GB 이상의 메모리에 액세스 할 수 있습니다. 그래서 지금? 4GB 이상의 메모리를 활용할 수있는 서버 측 응용 프로그램을 실행하지 않는 한 Xserve의 64 비트 기본값입니다.
Chealion

5

불행히도 Jason의 난독 화 된 링크 는 매우 유용한 정보를 숨겼습니다.

ioreg -l -p IODeviceTree | grep firmware-abi

64 비트 EFI Mac에서보고합니다.

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

1

Snow Leopard가 출시 될 때까지 어떤 시스템이 64/32 비트 모드를 지원하는지 알 수 없습니다 ... 그러나 모든 표시는 Snow Leopard가 커널 지원으로 투명하다는 것입니다 ...

그러나 아쉽게도 "다운 너"가되어 죄송합니다. 등록 된 Appleseed 회원 인 경우 Appleseed 포럼에서 커널을 64 비트 모드로 설정하는 방법에 대해 설명합니다. 그렇지 않으면 다른 곳에서 Snow Leopard를 받았다고해도 걱정하지 마십시오.

Snow Leopard의 출시는 바로 모퉁이입니다 ...


0

괜찮습니다. 이유는 다음과 같습니다.

  • 32 비트 SL은 64 비트 앱을 실행합니다. SL은 부팅하는 커널 버전에 관계없이 64 비트 호환 가능

  • 32 비트 커널로 부팅하더라도 SL은 여전히 ​​64 비트 앱을 실행하고 4GB 이상의 RAM을 처리 할 수 ​​있습니다.

  • 64 비트 커널이 필요한 이유는 커널이 32GB 이상의 RAM을 처리해야하기 때문에 (따라서 Xserve의 기본값) 64 비트 전용 kext (개발자)

  • 64 비트 커널은 컴퓨터를 마술처럼 빠르게 만들지 않습니다. 32GB 이상의 RAM이 필요하지 않은 경우 (IOW 만 Xserves 만 가능) 이유를 해결하기 위해 필요하지 않습니다.

  • 소비자 시스템에서 32 비트 기본값을 설정하고 전문가와 개발자에게 64 비트 커널 옵션을 제공함으로써 Apple은 최대 호환성과 최대 유연성을 유지합니다.

  • 64 비트는 주로 개발자 옵션입니다. 새로운 64 비트 드라이버 / kext를 테스트하여 64 비트 커널과 작동하는지 확인할 수 있습니다.

Snow Leopard 에서 해석하고 인용하면 기본적으로 32 비트 커널이로드됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.