LINUX.ORG.RU
ФорумTalks

4gb 32-bit os проблема и pae


0

0

Проблем нету, просто стало интересно.

Понятно почему чуществует такая проблема , mmio в последнем гигабайте и т.д.

НО, решает ли проблему в таком случае PAE

Вопрос возник т.к. существует 8-гигбайтный макпро, ядро там 32-битное, НО, ядро использует pae ( для запуска 64-битных прог и д.р.) , и там вроде такой проблемы нету

★★

о да, грибы мерзкая вещь, точно тебе говорю!

lester_dev ★★★★★
()

pae не меняет адресацию. как она была 32 битной, так и останется. pae-костыль создан для того, чтобы иметь возможность установить больше 4G _физической_ памяти на машинки с 4G ограничением лимитом.

asgard
()
Ответ на: комментарий от asgard

Понятно что физической, _Physical_ adress extensions

Вообщем понятно что не меняет нечего, наверно в макпро efi рулит этим делом, чтобы все ок было

B084 ★★
() автор топика
Ответ на: комментарий от asgard

+1

PAE немного похож на древнюю сегментную адресацию памяти

the_one
()
Ответ на: комментарий от B084

+ сейчас глянул формат efi модулей из макпро - 32-битный PE, так что свиду 64-битный макпро, а на самом деле такойже он 64-битный , как и обычный c2d imac.

только в новом mbp видел 64-битную efi.

B084 ★★
() автор топика
Ответ на: комментарий от anonymous

А на заборах тоже всему веришь ?

возьми ядро с макпро, file mach_kernel, в OSX, и убедись что оно i386, а не x86_64, только в леопарде библиотеки гуевые стали в т.ч. 64-битными

B084 ★★
() автор топика

> Вопрос возник т.к. существует 8-гигбайтный макпро, ядро там 32-битное, НО, ядро использует pae ( для запуска 64-битных прог и д.р.) , и там вроде такой проблемы нету

Mac Pro не использует РАЕ (если в boot-args не указать явно параметр "-legacy"), там 64-битный paging. Кстати PTE лежат сплошным массивом по адресу PTmap (линейный адрес в пространстве ядра 0xfe800000, насколько я помню), можете посмотреть kernel debugger'ом. :) У ядра макоси есть два сегмента кода, между которыми переключается поток исполнения в kernel-mode:

1) Один с установленным битом L, т.е. в нем лежит 64-битный код. Сюда ядро прыгает когда необходимо осуществить какие-то манипуляции с пейджинговыми структурами, при обработке прерываний и т.д. (interrupt handler'ы естественно тоже 64-битные). Селектор этого сегмента -- 0х80.

2) Второй со сброшенным битом L, т.е. код в нем исполняется в compatibility mode. Здесь лежит основной код ядра, селектор -- 0х08. При необходимости отсюда делается far jump в сегмент 0x80.

Гуёвые приложения (да и то только под Cocoa, Carbon в пролёте) перейдут на 64 бита в Леопарде. В Тигре 64-битными могут быть только консольные проги. Ядро так и останется в compatibility mode.

Relan ★★★★★
()
Ответ на: комментарий от B084

> file mach_kernel, в OSX, и убедись что оно i386, а не x86_64

В данном случае file не авторитет. :D

Relan ★★★★★
()
Ответ на: комментарий от anonymous

file привел чтобы не нагружать мозг анонимуса, авторитетом будет otool -l mach_kernel

А Relan спасибо.

B084 ★★
() автор топика
Ответ на: комментарий от B084

> авторитетом будет otool -l mach_kernel

Зачем otool? Исходники-то доступны. :)

> А Relan спасибо.

Да всегда пожалуйста. :) Ядро МакОС -- забавная штука, хоть и местами оно е-тое на всю голову...

Relan ★★★★★
()
Ответ на: комментарий от Relan

/me смотрит своих исходники....ой...это PC ядро %)

B084 ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.