LINUX.ORG.RU

Low level floppy


0

0

Можно ли уважаемые у вас поинтересоваться - как в линуксе получить посекторный доступ к флопу(показать маленький примерчик чтобы было куда копать). и как лучше это формить? мне нужна такая вещ - сервер на линуксе получает запросы от клиента(dos/windows) на чтение опрелеенных секторов и т.п. тот читает и отдает а также получает инфу на запись от клиента. Это лучше оформить в виде модуля ядра?

И еще - NBD Server в каком виде отдает данные??? близкие к посекторному или нет?(просто не нашел инфы а копать исходники пока нету времени)

★★★

черт, одни ламеры пошли.

/dev/fd0

anonymous
()

может лучше, что-то вроде :
fd=open("/dev/fd0u1440",O_RDWR);
image=mmap(0,1440*1024,PROT_READ|PROT_WRITE,fd,0);
if (image == MMAP_FAILED)
  exit(1);
/** далее работает с образом диска в памяти **/

еще могут помоч вызовы ioctl FDxxx описанные в include/linux/fd.h

модуль ядра однозначно писать не стоит - это задача не того уровня

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

нет, делать образ не приемлимо... тут подумал - задачу можно упростить...еслибы организовать доступ к флопу(а в перспективо возможно понадобится и к CD) как к одному большому файлу и экспортировать его посредством nfs или samba, а потом уже читать из файла нужные участки. Это я так понимю надо написать простой драйвер ФС?

А по поводу ламерства - просто небыло опыта программирования под линукс, под виндой например есть опыт написания драйверов(виртуальные порты, драйвы и т.д.)...

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

у людей с "опытом программирования под Вин" есть интерестное качество - сильно усложнять задачи, причем под благим предлогом упрощения/оптимизации ;-))

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

образ диска в памяти Вы получили ?
 - получили
клиент-сервер писать умеете ?
ну так в путь..

а зашаривать raw-устройства через самбу - это знаете-ли изврат

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

Да зашаривать это я наверно погорячился от безъисходности... ну получил я образ в памяти - вопервых это долго читать дискету целиком когда пользователю понадобится максимум 50-150кб. А во вторых - как мне определять смену дискеты чтобы перечитать? Ну тогда как мне обратится к fdd как raw-устройсту, чтоб не заморачиваться с чтением секторов а просто указать смещение от начала и размер для чтения. Аналогично и для записи.

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

>еслибы организовать доступ к флопу(а в перспективо возможно понадобится и к >CD) как к одному большому файлу

тебе же уже сказали ответ, ты что читать не умеешь?

в Linux почти все файл,
/dev/fd0 и есть файл, а с другой стороны это файл.

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

>/dev/fd0 и есть файл, а с другой стороны это файл.

хотел сказать: а с другой стороны это устройство.

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

ты можешь его смонтировать

mount -t msdos /dev/fd0 /a

и тогда в директори /a ты увидишь что именно на нем.

а можешь работать с ним(флопиком) как с одним большим
используя /dev/fd0

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

>чтоб не заморачиваться с чтением секторов а просто указать смещение от начала >и размер для чтения.

FILE *f=fopen("/dev/fd0", "r");
fseek(f, 100, SEEK_SET);
fread(...

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

>Да зашаривать это я наверно погорячился от безъисходности... ну получил я образ >в памяти - вопервых это долго читать дискету целиком когда пользователю >понадобится максимум 50-150кб.

почитай книжку по С, что-нибудь про fread/fopen/fwrite

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

Вот теперь понятно...я просто не знал что /dev/fd0 это обычный файл, который можно читать стандартными средствами, точнее недодумался когда мне показали пример по чтению образа в память...

Ну а информацию о дискете(формате и т.д.) из из ioctl можно взять наверно... Вопрос в другом - как определять смену дискет...ID у дискеты есть какойнибудь:)? вообще что-то слышал что дисковвод сам это пределяет и в случае смены дискеты сообщает о том что надо перечитать...можеть кто знает?

а про книжку не надо...

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

щас запугаем бедного человека ;-)
еще стоит почитать Робачевского, 
или ещё что-нить про архитектуру UNIX, чтобы понять,
что образ в памяти - это нечто виртуальное, это не значит что 
вся дискетка будет обязательно прочитанна в помещенна в память ;-)

Тут вам готовых решений не скажут, максимум подтолкут в направлении,
так что побольше эксперементируйте, не бойтесь писать!

ЗЫ : прикольный получился столбик слева ;)

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

а что бывают необычные файлы? для cdrom кстати тоже самое.

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