
=head1 НАЗВА

virt-v2v-hacking -

=head1 ОПИС

Спочатку трохи історії. Протягом свого існування програма virt-v2v зазнала принаймні двох повних переписувань, тому поточна версія є принаймні третьою (ми не маємо планів переписувати її ще раз). Попередню версію було написано мовою Perl. Її код і досі зберігається тут: L<https://git.fedorahosted.org/git/virt-v2v.git>

Поточну версію було започатковано як майже порядково переписану з Perl на OCaml + C, і вона все ще зберігає повністю подібну структуру. Тому, якщо ви не розумієте якихось подробиць щодо коду (особливо подробиць щодо перетворення гостьових систем), вам може допомогти читання коду мовою Perl.

Ось файли, з яких варто розпочати читання цього коду:

=over 4

=item *

F<types.mli>

=item *

F<v2v.ml>

=back

У F<types.mli> визначаються усі структури, які використовуються і передаються під час обміну даними між різними частинами програми. У F<v2v.ml> реалізовано керування роботою програми на різних етапах.

Після вивчення цих файлів ви можете перейти до вивчення модулів вхідних даних (F<input_*>), модулів вихідних даних (F<output_*>) або модулів перетворення (F<convert_*>). Модулі вхідних і вихідних даних визначають перелік варіантів для параметрів I<-i> та I<-o> (див. підручник). Модулі перетворення визначають, із якими типами гостьових систем ми можемо працювати і які конкретно кроки слід виконати для їхнього перетворення.

Усі інші файли у цьому каталозі є певним чином супровідними модулями або бібліотеками. Частину коду написано мовою C, особливо там, де ми хотіли використати зовнішні бібліотеки C, зокрема libxml2.

=head1 ТАКОЖ ПЕРЕГЛЯНЬТЕ

L<virt-p2v(1)>, L<virt-v2v(1)>.

=head1 АВТОРИ

Richard W.M. Jones

=head1 АВТОРСЬКІ ПРАВА

Copyright (C) 2009-2025 Red Hat Inc.

