Вход

Просмотр полной версии : Разработка парсера образов дисков различных БКшных итд для индексации



SuperMax
09.03.2020, 10:04
Начало тут
https://zx-pk.ru/threads/31438-razrabotka-parsera-obrazov-diskov-rt11-files11-razlichnykh-bkshnykh-itd-dlya-indeksatsii.html

на данный момент итоги

1. демон-хешер обработал уже 4'6 млн файлов. вывод хешей файлов еще не сделал - надо разбираться с CSS - форматирование съезжает.
2. на данный момент распознано дисков RT11 в распакованном виде (те не в архиве) 784шт
3. написана "вызывалка" парсеров контейнеров, сейчас работает только на один вид RT11 но тк задача решена в общем виде, то достаточно добавить файл парсера + в базе прописать как его вызывать
ну и для новых типов контейнеров дописать их распознавание
4. написан универсальный настраиваемый парсер результатов выдачи парсеров контейнеров - те можно в базе сразу настроить какие поля и как брать, сделана поддержка хешей и доп.информации
5. первая порция загружена и проиндексирована

поиск работает:
https://mirrors.pdp-11.ru/search.php?text=VT52X+.TEC++&page=1
5й результат это как раз контейнер DSK


Что планируется:
1. расширение зоны поиска - те сейчас сканер файлов работает только на mirrors.pdp-11.ru, планируется добавить всю зону pdp-11.ru, те туда попадет и архив Хобота. те поиск на https://mirrors.pdp-11.ru/ будет выдавать результаты со всего pdp-11.ru
2. расширение списка поддерживаемых контейнеров и модулей извлечения
3. доработка модулей извлечения - дабы они выдавали хеш
4. каскадирование модулей извлечения - те DSK в архиве, архив рассматривается как контейнер, DSK тоже. индексируются файлы и в архиве и в самом контейнере. если в самом DSK есть вложенный логический диск то его тоже извлекаем и индексируем.

Принимается помощь в виде:
1. формализованных правил определения типа контейнера
2. исходники ПО работы с контейнерами - те нужно а) выдавать листинг с хешами б) извлекать файл
исходники на С/С++ тк все ПО работает на Linux

Что нужно по БКшке

1. какие вообще форматы есть ? особо интересен CSIDOS - как оттуда получать список файлов ? как извлекать данные из образов жестких дисков ?
2. исходники парсеров ? откуда выдирать итд итп

если есть информация по альтернативным форматам - типа амиги и прочих - тоже нужна

gid
09.03.2020, 14:37
какие вообще форматы есть ?
1. MicroDOS - формат который имеет несколько вариаций.
1.1 Собственно основа формата - самые ранние ОС типа Нортон-БК и ещё, чего-то всеми давно забытого. Не имеет подкаталогов.
1.2 АО-ДОС - вариант микродос со своим форматом подкаталогов.
1.3 NORD - вариант микродос, в котором автор от версии к версии метался по разным форматам подкаталогов и в конце-концов остановился на формате подкаталога MKDOS. Из-за чего эту ОС трудно по нормальному однозначно определить.
1.4 MKDOS - самый распространённый вариант микродос с самым распространённым форматом подкаталогов. Из всех видов - самая продуманная структура файловой системы.
Из всего этого зоопарка однозначно и надёжно можно детектировать только MKDOS. С остальными иногда бывают сбои. Некоторые диски NORD мимикрируют под MKDOS, старые версии NORD иногда опознаются как просто MicroDOS
У всех этих ОС своё видение, не совпадающее с остальными, как считать количество записей в каталоге, и как определять конец каталога. Из-за чего, если ОС опознается неправильно, можно недосчитаться файлов, или можно захватить мусор в конце каталога, или потерять подкаталоги.
2. ANDOS - ФАТ12 со своими уникальными параметрами BPB. И форматом подкаталогов, несовместимым с MS DOS.
3. CSIDOS3 - своя файловая система, достаточно хорошо продуманная. Существовали и более ранние версии CSIDOS, с другим форматом ФС, но от них остались только воспоминания.
4. HC DOS - до сих пор не знаю, то ли это Эн Эс Дос, то ли это Аш Це Дос - редкая, малораспространённая файловая система,
авторы которой то ли вдохновились, то ли не удовлетворились RT-11 и сделали свою ФС.
5. ОС БК11 - обычное RT-11, ничего особенного.
6. Экзотика, которую никто никогда не видел - DOSB10 в первой версии ФС совместима с RT-11, во второй - уже нет, там, по слухам, авторы добавили в RT-11 подкаталоги. Но как они это сделали, и что у них получилось, мы уже не узнаем. Дисков с этой ОС ни у кого не сохранилось.

особо интересен CSIDOS - как оттуда получать список файлов ?
можно посмотреть в исходниках утилиты BKDE, в каждом *.h файле описателя файловой системы приводятся структуры данных и форматы ФС.

как извлекать данные из образов жестких дисков ?
можно посмотреть в исходниках утилиты BKHDDTool, там приводятся алгоритмы по разборке самарского формата и формата АльтПро.

2. исходники парсеров ?
BKDE и BKHDDTool, привязка к MFC минимальная, и легко отделяется. от MSVC тоже отвязать не сложно.

shattered
15.10.2025, 20:46
2. ANDOS - ФАТ12 со своими уникальными параметрами BPB. И форматом подкаталогов, несовместимым с MS DOS.

DX-DOS -- FAT12 без подкаталогов. Можно работать через mtools (за исключением установки стартового адреса).

Изучал другие варианты чтения/записи образов и нашел, что Aaru умеет читать AO-DOS -- https://github.com/aaru-dps/Aaru/tree/devel/Aaru.Filesystems/AODOS

SuperMax
18.10.2025, 09:09
индексирование образов БКшки сделано
- при помощи консольной утилиты которая






базируется на исходниках GID-а

. сейчас работает даже поиск в образах - вот к примеру просмотр образа диска https://retrolib.info/search3.maxiol?container=1577859248

shattered
18.10.2025, 15:27
Попробовал прикрутить чтение csidos, mkdos к MAME imgtool для разминки, оценил фразу


У всех этих ОС своё видение, не совпадающее с остальными, как считать количество записей в каталоге, и как определять конец каталога


В csidos хотя бы есть флажок "конец каталога"...