
=head1 名前

virt-v2v-hacking -

=head1 説明

First a little history.  Virt-v2v has been through at least two complete rewrites, so this is probably about the third version (but we don't intend to rewrite it again).  The previous version was written in Perl and can be found here: L<https://git.fedorahosted.org/git/virt-v2v.git>

The current version started out as almost a line-for-line rewrite of the Perl code in OCaml + C, and it still has a fairly similar structure. Therefore if there are details of this code that you don't understand (especially in the details of guest conversion), checking the Perl code may help.

The files to start with when reading this code are:

=over 4

=item *

F<types.mli>

=item *

F<v2v.ml>

=back

F<types.mli> defines all the structures used and passed around when communicating between different bits of the program.  F<v2v.ml> controls how the program runs in stages.

After studying those files, you may want to branch out into the input modules (F<input_*>), the output modules (F<output_*>) or the conversion modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> options (see the manual).  The conversion modules define what guest types we can handle and the detailed steps involved in converting them.

Every other file in this directory is a support module / library of some sort.  Some code is written in C, especially where we want to use an external C library such as libxml2.

=head1 関連項目

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

=head1 著者

Richard W.M. Jones

=head1 COPYRIGHT

Copyright (C) 2009-2025 Red Hat Inc.

