LINUX.ORG.RU

direct i/o: на линухе?


0

2

Меня тут спрашивают, есть ли в линухе аналог aix-ового direct i/o или concurrent i/o? http://www.ibm.com/developerworks/aix/library/au-DirectIO.html У нас же вроде как есть JFS, братие - почему б не быть и этому директу?

Бонусовый вопрос. Есть ли в стандартных жабских интерфейсах такой, реализация которого гарантировала бы прямой доступ к диску во время файловых операций - без буферизации («гарантировала» = «если ОС поддерживает такую фичу»)?

★★★★★

а собственно говоря file memory map не то же самое делает? может это не киллер фича, а просто костыль для aix?

dimon555 ★★★★★
()

>Direct I/O access to a file is enabled by passing the O_DIRECT flag

в *nix вроде ж почти везде есть.

devl547 ★★★★★
()

O_DIRECT (Since Linux 2.4.10)

Это из man open.

aio_* тоже вроде есть, но я точно не знаю.

nanoo_linux
()

Как уже сказали есть O_DIRECT флаг для open kernel syscall, и, опять же, как уже сказали, Торвальдс его не советует, ибо его реализация зело кривая (потому что прямой быть не может). Есть более прямой и эффективный способ:

«Linux creator Linus Torvalds was quick to reply that despite all the claims there is no good reason for mounting files with O_DIRECT, suggesting that interfaces like madvise() and posix_fadvise() should be used instead»

Для более вдумчивого чтения:

http://kerneltrap.org/node/7563

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

Спасибо, это как раз в тему о.

А про жабку не будет идей? Я рылся-копался, ничего не нашел. Уж больно это ос-специфичная штука.

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

Напиши native библу, которая будет экспортировать UNIX fopen() с этим флагом.

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