Как получить доступ к хранилищу на уровне блоков через ядро (без использования библиотек scsi)?
Мое намерение - реализовать протокол хранения на уровне блоков по сети для целей обучения, почти так же, как работает SCSI. Запросы будут сгенерированы инициатором и отправлены в цель (обе программы пользовательского пространства), которая выполняет вызов модуля ядра и возвращает данные по протоколу TCP инициатору.
До сих пор мне удалось собрать простой модуль "Hello" и запустить его (я новичок в программировании ядра), но не смог продолжить работу с блочным доступом.
После долгих поисков я нашел struct buffer_head * bread(int dev,int block)
в linux/fs.h
, но компилятор выдает ошибку.
error: implicit declaration of function ‘bread’
Пожалуйста, помогите, также не стесняйтесь советов по началу работы с программированием ядра.
Спасибо!
bread
как используется в старых ядрах.
Просмотр struct request *blk_get_request(struct request_queue *, int, gfp_t);
в linux/blkdev.h
Доступ к блочному устройству имеет , который должен быть выполнен через ядро.