Адресное пространство в Линуксе

stm7870384

Есть ли такой Линукс, который бы реально поддерживал 4 Гб на 32-х разрядной машине? Заранее спасибо.

kamputer

Бедняга

Chupa

что есть такая партия

stm7870384

Спасибо. Буду думать.

Marinavo_0507

Я бы рекомендовал таки переписать программу, чтобы она подключала куски памяти по очереди.

stm7870384

Имеются в виду куски оперативки или подгрузка с винта?

Marinavo_0507

Создаёшь файл(ы) в tmpfs или hugetlbfs, или сегменты разделяемой памяти, и отображаешь их в адресное пространство по очереди.

nattana

Чуве, я думаю в любой вменяемой операционной системе тебе запретят писать и читать по адресу 0x00000000 (в винде первые 64к запрещены) и записывать по адресам кода твоей программы, так что 4Гб ты никогда не получишь, соотв вопрос: нах?

stm7870384

А не мог бы ты пояснить это чуть-чуть популярнее...

Marinavo_0507

Какое слово пояснить?

stm7870384

Ну, я уж писал, что про 4 Гб я погорячился. Это понятно, что столько не даст никто. Но 3,5 Гб мне действительно бы не помешало...

stm7870384

Это:
tmpfs или hugetlbfs
А заодно и это:
сегменты разделяемой памяти

Marinavo_0507

tmpfs и hugetlbfs - специальные файловые системы, в которых данные хранятся в оперативной памяти
linux/Documentation/filesystems/tmpfs.txt - описание tmpfs
hugetlbfs - что-то вроде этого, но использует страницы размером 4МБ, что для больших файлов
уменьшает накладные расходы
сегменты раздeляемой памяти - области памяти, не привязанные к процессу,
которые можно отображать в адресные пространства разных процессов
бывает System V shared memory (man shmget и POSIX shared memory (реализовано поверх tmpfs, man shm_open)

stm7870384

Хоть я и не до конца понял, но большое спасибо...

rosali

man shmget, man shm_open
Ну тогда уж и Виндовс не будем обижать MSDN CreateFileMapping
Оставить комментарий
Имя или ник:
Комментарий: