|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Valentin Nechayev 2:5020/400 28 Apr 2006 09:43:15 To : Aleksey Cheusov Subject : Re: Тайный смысл /dev/rXXX -------------------------------------------------------------------------------- >>> Aleksey Cheusov wrote: AC>>> Кто-нибудь, объясните мне в чем тайный смысл устройств /dev/rXXX? VN>> В классической архитектуре Unix блочные устройства допускались VN>> только для монтирования файловых систем, не имели обычного VN>> "прозрачного" (raw, плоского) интерфейса ввода-вывода для прямого VN>> чтения/записи поверхности и работа с ними шла через дисковый кэш (он VN>> же BIO layer, block input-output). AC> Плоский IO - это random access? Можно и так назвать. В общем это когда можно сделать lseek(fd,0,0) и затем read(fd,buf,512) :) AC> В блочных устрояствах тогда допускалось только последовательное чтение? Hет, тоже произвольное. Hо открыть это устройство ты не можешь. Может только ядро и только для работы под драйвером FS. AC> Если да, то как тогда работало монтирование, AC> или это это из тех времен, когда были ленточные накопители? VN>> Для работы с данными на диске в VN>> обход FS использовались "raw" устройства, имеющие символьный тип. VN>> Именно они назывались /dev/rXXX. AC> Здесь мы имеем произвольный доступ (seek) и отсутствие cache-а. Так? Да. AC> Итого. AC> Было: AC> block) последовательный кешированный доступ. AC> raw) произвольный некешированный доступ. AC> Стало: AC> block) произвольный доступ. Кешируемость в зависимости от флага O_DIRECT. AC> Так? Hет, в случае block убрать слово "последовательный". Можно добавить "монтируемый":) VN>> Позднее эта схема деления перестала быть настолько актуальной. Linux VN>> уже запустился без отдельных raw-устройств, оставив только блочные и VN>> допустив плоский ввод-вывод через них. AC> Я заметил. VN>> Оборотной стороной этого VN>> стало отсутствие явного плоского ввода-вывода; значительно позднее VN>> были сделано raw devices для этого. AC> Вот тут не понял. Мы же сделали плоский IO в блочных устройствах. Да, Linux пошёл сразу по пути добавления плоского IO к блочным устройствам, а FreeBSD - по оставлению только символьных с теми же возможностями (и монтирование, и плоский ввод-вывод). VN>> Во FreeBSD это деление устранили VN>> в 4.0, но почему-то из /dev/MAKEDEV r-устройства не убрали. AC> Видимо, есть программы, которые их до сих пор их используют. В базовой системе 4ки таких не было. Я на многих машинах удалял все /dev/r* и ни одной жалобы ни от одной программы не было. -netch- --- ifmail v.2.15dev5.3 * Origin: Dark side of coredump (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/223831c7dac55.html, оценка из 5, голосов 10
|