Re: [Kronos2-developer] Обсуждение монтирования в КВМ
Status: Pre-Alpha
Brought to you by:
moskvin
From: Nikolay M. <nik...@gm...> - 2011-05-29 13:12:32
|
Доброго времени суток. > -О том как можно подсовывать ОС радел как устройство (регистрация драйвера > и тому подобное). Хороший вопрос. Первым делом хочу сказать, чтобы связать наш драйвер с устройством (псевдо-устройством) необходимо создать ноду, из командной строки это выглядит так: mknode /dev/hfs0 hfs0 o+rw o-x g+rw g-x a+rw a-x Далее необходимо посмотреть как же кронос различает когда ему работать с той или иной нодой... Давайте попробуем зайти с тыла. Если зайти в реализацию mknode.m, то можно увидеть, что это всего лишь навсего обертка над вызовом библиотеки BIO, одноименной процедуры. По этому открываем BIO.m и ищем процедуру mknode, видем, что она вызывает процедуру fmknode заходим в нее и пытаемся осознать что там написано.... Открываем соответствующий путь (процедура throught()), путь приходит с аргументов команды mknode. Далее видем некоторый набор вызовов из библиотеки osFiles, таких как make_node, setattr, link и close. Теперь ясно как создать динамическое количество нод (/dev/hfs0, ,..., /dev/hfsN)? Нужно воспользоваться готовой процедурой библиотеки BIO. Теперь необходимо покурить на счет задачи распознавания той или иной точки монтирования при команде mou. Открываем mou.m -> заходим в процедуру mount и видим, что это опять используется вызовы BIO библиотеки а именно bio.mount и bio.unmount. Делать нечего отправляемся туда -> процедура fmount и нас здесь должна заинтересовать строка 916: res:=fs.mount(sub, name, dev^, file, label, info. label, ro); Используется процедура библиотеки osFiles идем вначале в osFiles.d (заголовочный файл) видим набор процедур и среди них есть и наша PROCEDURE mount (dir: FILE; name: ARRAY OF CHAR; dev: FILE; fsname: ARRAY OF CHAR; info: ARRAY OF CHAR; VAR lab: ARRAY OF CHAR; ro: BOOLEAN): INTEGER; Далее нас не интересует osFiles.m, так как в нем реализация процедуры заканчивается вызовом конкретной реализацией драйвера: dir^.fsid^.mount(dir,name,dev,fsname,info,lab,ro) Умолчательная файловая система кронос имеет реализацию в модуле osFileSystem Собственно открываем заголовочный файл osFileSystem и видим абстрактную процедуру MOUNT = PROCEDURE ( _FILE , ARRAY OF CHAR , _FILE , ARRAY OF CHAR , ARRAY OF CHAR , VAR ARRAY OF CHAR , BOOLEAN ): INTEGER; Теперь время экспериментов для вас ;) Необходимо проследить в голове, либо с помощь логов, что и как вам следует изменить в реализации windows драйвера. Реализация windows файловой системы находится в модуле vmHostFS. Реализация псевдо-драйвера находится в HFS модуле. Приведу еще здесь его точку входа: BEGIN define('hfs0',0); --define('hfs1',1); С помощью этого я хотел сделать еще одну связь с нодой --define('hfs2',2); env.become_ipr; os.suspend(os.active(),-1) END HFS. > -Ну и возможное реализации конфиг файла, если таковой > понадобится(рано или поздно всё-равно понадобится). Конфиг - хорошая идея, так как нам не нужны некоторые разделы в виндовс, такие как A:, D:, но зашивать в конфиге связи к нодам не стоит. Там можно лишь отфильтровать существующие разделы виндовс. Что-нибудь проясняется в какую сторону нужно копать? PS: Давайте выкроим время и встретимся для уточнения понимания? -- Best regards, Nikolay Moskvin Certified Java SE 6 Programmer C/C++ Linux developer On Saturday 28 May 2011 02:43:34 Курагин Дмитрий wrote: > Рассматривали мною предложенные варианты монтирования разделов Windows > через конфиг, т.к. сейчас у кроноса нет никакого конфиг файла необходимо > его создать. Писать отдельный язык для конфигов думаю нет смысла (Просто > на многих форумах предлагают), то можно юзать XML(Но это отдельная песня). > Тогда возникает вопрос в том как подсунть определнный раздел, под > определнным устойством, то бишь сама работа с системой, и как самой ОС > сказать, что у нас есть тот или иной раздел. Мы создаём конфиг для > эмулятора, но как эмулятор скажет о новом разделе системе мне вообще не > понятно. У нас есть константа которая тянется по всем классам связанным с > NTFS. В ней смысл отпадает вовсе, потому что нам необходимо взаимодействие > системы именно с устройством (Это связано с переносом кроноса на стороннюю > файловую систему). Меня интересуют 2 вопроса: > > -О том как можно подсовывать ОС радел как устройство (регистрация драйвера > и тому подобное). -Ну и возможное реализации конфиг файла, если таковой > понадобится(рано или поздно всё-равно понадобится). > > Меня интересую возможные пути решения данных проблем и просто комметарии по > поводу мною сказанного. > > 28.05.2011, 00:18, "Nikolay Moskvin" <nik...@gm...>: > > Привет, студентам. > > > > Хочу узнать как у вас дела? > > Есть ли проблемы или вопросы? > > > > Давайте обсудим монтирование Windows-устройств в Кронос. > > > > Цитирую Андрея Хапугина: > >> А то есть по №3 соображение, старое, но не помню, с тобой это обсждал > >> или > > > > нет. > > > >> Суть идеи: с точки зрения пользования красиво выглядит монтирование > >> диска > > > > "X:" как-нибудь так: > >> mou /mnt /dev/host-drive-X > >> То есть если есть возможность параметр - "имя тома в винде" спряать в > >> ноду > > > > на /dev (причем не в его имя, а внутрь самого нода), то все очень красиво > > для пользователя и администратора получается. > > > >> Я не помню что там в нодах и как, надо посмотреть, но смутно кажется, > >> что > > > > ничего невероятного. > > > > Расскажите свои идеи на этот счет. > > > > Жду от вас ответа. > > > > -- > > Best regards, Nikolay Moskvin > > Certified Java SE 6 Programmer > > C/C++ Linux developer > > ------------------------------------------------------------------------- > > ----- vRanger cuts backup time in half-while increasing security. > > With the market-leading solution for virtual backup and recovery, > > you get blazing-fast, flexible, and affordable data protection. > > Download your free trial now. > > http://p.sf.net/sfu/quest-d2dcopy1 > > _______________________________________________ > > Kronos2-developer mailing list > > Kro...@li... > > https://lists.sourceforge.net/lists/listinfo/kronos2-developer > > --------------------------------------------------------------------------- > --- vRanger cuts backup time in half-while increasing security. > With the market-leading solution for virtual backup and recovery, > you get blazing-fast, flexible, and affordable data protection. > Download your free trial now. > http://p.sf.net/sfu/quest-d2dcopy1 > _______________________________________________ > Kronos2-developer mailing list > Kro...@li... > https://lists.sourceforge.net/lists/listinfo/kronos2-developer |