Чому моє ядро ​​Mac OS X 10.6 працює в 32-бітному режимі?


10

У мене MacBook Pro (5,1) з 4 ГБ пам’яті під керуванням 10A432 - але він працює під 32-бітним ядром.

Будь-які ідеї, чому б він не працював у 64-бітному режимі, і як я можу це зробити?


Я зрозумів, що самою метою 10.6 було переписати основний компонент, щоб максимально використовувати 64-бітовий. Отже, з цим ви говорите, що він буде працювати оптимізованим кодом на 32-бітовій більшості випадків? ...
OscarRyz

dunno, більшість кодів явно 64 біт, але ядро, здається, для мене все одно
Chopper3

Відповіді:


12

У Огляді Джона Сіракузи про Снігового Леопарда він обговорює 64-бітний перехід .

Тигр Леопард Сніговий леопард

Коротка версія полягає в тому, що немає "змішаного режиму", для 64-бітного ядра потрібні 64-бітні розширення та драйвери .

Оскільки вони ще не широко доступні, Apple вирішила встановити за замовчуванням 32-розрядні, щоб не зламати багато речей.

Інструкції зі статті:

Для всіх Macs, що підтримують K64, завантажте одночасно клавіші "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".


Дякуємо Гарету за редагування (переглянуті посилання на зображення на imgur з arstechnica та цитовані відповідні інструкції зі статті).
Озеро

7

Немало користі для запуску 64-бітного ядра у Snow Leopard, на відміну від більшості інших операційних систем. У Windows та Linux для запуску 64-розрядних програм вам потрібне 64-бітове ядро. В OS X ви можете запускати 64-бітні програми з 32-бітним ядром.

Більшість людей, мабуть, стурбовані тим, що запуск 32-розрядного ядра в OS X обмежує продуктивність або можливості їх машин, але на практиці це не має значного матеріального впливу. 32-бітове ядро ​​підтримує запущені 64-розрядні програми, і ці програми мають віртуальний 64-розрядний адресний простір, який ядро ​​відображається в 36-бітному адресному просторі PAE, тому вони поводяться так само, як і в 64- бітове ядро, просто з більш обмеженим використанням пам’яті та відображенням вводу / виводу пам’яті у відповідний діапазон. Те, як Apple обробляє цей адресний простір у 32-бітному ядрі, призводить до обмеження об'ємом 32 ГБ для фізичної пам'яті, порушуючи 32-розрядний ліміт 4 ГБ з PAE. Виконання продуктивності не має великої користі, якщо він взагалі вимірюється, коли використовується 64-бітове ядро ​​з 32 ГБ пам'яті або менше. Якщо ти хочеш,6і 4клавіші при запуску. Сумніваюся, ви побачили б і суттєву різницю у виконанні.

Інша проблема - сумісність з драйверами пристроїв, розширеннями ядра та прошивкою пристрою. Для драйверів пристроїв та розширень ядра вони повинні відповідати біт-ніс, бути перекомпільовані або переписані (особливо, якщо вони мають будь-яку збірку, які частини є загальними для цих типів коду). EFI Apple спочатку поставився лише у 32-розрядному режимі, а останнім часом деякі моделі мають 64-бітну прошивку. Щоб операційна система могла спілкуватися з прошивкою, розрядність ядра та EFI повинні відповідати. Що стосується розмови з EFI - це такі речі, як вибір стартового диска або деякі елементи керування живленням (наприклад, якщо у вас більше однієї інсталяції OS X і вам потрібно прокинутися зі сну після вичерпання акумулятора).

Отже, чи буде 64-бітове ядро ​​користю? Практично не вистачає ефективності, і я можу бачити мудрість у Apple, використовуючи 32-бітні ядра для більшості машин, на яких працює Snow Leopard для кращої сумісності.


7

Відповідно до того, що було просочено до MacRumors (оскільки офіційні документи знаходяться під NDA) ( Джерело ), лише такі комп'ютери підтримують 64-бітове ядро:

  • На початку 2008 року Mac Pro (MacPro 3,1)
  • На початку 2008 року Xserve (Xserve 2,1)
  • Плюси MacBook (15 "/ 17") (MacBookPro 4,1)
  • IMacs 2008 (iMac 8,1)
  • Плюси UniBook MacBook (MacBookPro 5,1 і 5,2)
  • На початку 2009 року Mac Pro (MacPro 4,1)
  • IMacs 2009 (iMac 9,1)
  • На початку 2009 року Xserve (Xserve 3,1).

Тільки XServes за замовчуванням використовує 64-бітове ядро.

Якщо ви запускаєте комп'ютер, що тримає клавіші 6і, 4ви запускаєте 64-бітове ядро, або, згідно з іншим джерелом, порушуючи їх NDA, ви можете редагувати /Library/Preferences/SystemConfiguration/com.apple.Boot.plistдодавання прапора ядра або робити це в nvram.


Я також помітив це, тому я поставив свій модельний код.
Chopper3

Починаючи з [6] [4] виконує цю роботу, але яка користь у тому, що ядро ​​працює на 64 біті? ...
OscarRyz

@Oscar Reyes: Ви можете використовувати 64-бітні драйвери, а процеси можуть отримати більше 4 Гб пам'яті. Так зараз? Жоден, якщо ви не використовуєте серверну програму, яка може використовувати більше 4 ГБ пам’яті - отже, 64-бітний за замовчуванням для Xserva.
Chealion

5

На жаль затуманене посилання Джейсона приховало дуже корисну інформацію:

ioreg -l -p IODeviceTree | grep firmware-abi

64-бітові EFI-маки звітуватимуть

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

1

Поки Snow Leopard не буде випущений, ми не будемо знати, які системи підтримуватимуть 64/32 бітовий режим ... Але всі вказівки на те, що Snow Leopard буде прозорим із підтримкою ядра ...

Але, на жаль, вибачте, що ви "збилися", якщо ви зареєстрований член Appleseed, форум Appleseed обговорює, як змусити ядро ​​до 64-бітного режиму. В іншому випадку, якщо ви отримали Snow Leopard в іншому місці, не хвилюйтеся про це.

Випуск Snow Leopard - прямо за кутом ...


0

Це добре, ось чому:

  • 32-бітний SL запустить 64-бітні програми; SL сумісний з 64 бітами незалежно від версії ядра, яку ви завантажуєте

  • SL навіть у випадку завантаження 32-розрядного ядра все одно зможе запускати 64-бітні програми та адресувати більше 4 Гб оперативної пам’яті

  • тому, що вам знадобиться 64-бітове ядро, це якщо ядро ​​потрібно для адреси більше 32 ГБ оперативної пам’яті (отже, це за замовчуванням для Xserve) або у вас 64-бітний кекс (розробники)

  • 64-бітні ядра не роблять ваш комп'ютер чарівно швидшим; якщо вам не потрібно більше 32 ГБ оперативної пам’яті (все-таки тільки IOW зберігається), вона вам також не потрібна для вирішення причин.

  • зробивши 32-бітові за замовчуванням у споживчих системах та надавши професіоналам та розробникам 64-бітну опцію ядра Apple, зберігає максимальну сумісність І максимальну гнучкість

  • 64 біт - це в основному варіант для розробників; вони можуть використовувати його для тестування своїх 64-бітних драйверів / кексів, щоб переконатися, що вони працюють з 64-бітовим ядром

Перефразоване і цитується від Snow Leopard завантажує за замовчуванням 32-бітове ядро

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.