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
|