Thread: [Kronos2-developer] Обсуждение монтирования в КВМ
Status: Pre-Alpha
Brought to you by:
moskvin
From: Nikolay M. <nik...@gm...> - 2011-05-27 17:17:34
|
Привет, студентам. Хочу узнать как у вас дела? Есть ли проблемы или вопросы? Давайте обсудим монтирование Windows-устройств в Кронос. Цитирую Андрея Хапугина: > А то есть по №3 соображение, старое, но не помню, с тобой это обсждал или нет. > Суть идеи: с точки зрения пользования красиво выглядит монтирование диска "X:" как-нибудь так: > mou /mnt /dev/host-drive-X > То есть если есть возможность параметр - "имя тома в винде" спряать в ноду на /dev (причем не в его имя, а внутрь самого нода), то все очень красиво для пользователя и администратора получается. > Я не помню что там в нодах и как, надо посмотреть, но смутно кажется, что ничего невероятного. Расскажите свои идеи на этот счет. Жду от вас ответа. -- Best regards, Nikolay Moskvin Certified Java SE 6 Programmer C/C++ Linux developer |
From: Курагин Д. <dku...@ya...> - 2011-05-27 19:43:43
|
Рассматривали мною предложенные варианты монтирования разделов 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 |
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 |