libguestfs java_libguestfs实现原理

libguestfs主要有三个部分:guestfsd,guestfs-lib,guestfish

其中,guestfsd是一个demon,libguestfs是一个lib,guestfish是一个命令行的工具。

guestfsd是一个daemon,但是他不是运行在host上的daemon,它运行在guest上,libguestfs首先febootstrap和febootstrap-supermin-helper两个工具。

将host中的kernel,用得到的一些modules,配置文件和一些工具的rpm package重新组合到一起,接着在后台启动一个qemu进程读取这个由febootstrap工具链生成的image。在用qemu启动的一个通信的协议,他可以通过socket接受子host端guestfs-lib写道socket的数据。guestfsd通过分析接受到的数据,进而执行相应的do_*操作,do_*操作实际上市对guest端普通命令的一些封装,如果想实现一个new api,只要在guestfsd里用相应的do_*对普通命令进行封装即可,但是一定要将这个普通命令程序通过febootstrap大宝到qemu启动读取的image中。

guestfs-lib 是一个库,他实现了一些libguestfs的库函数-guestfs_*.这些库函数想socket发送相应的数据,数据就会被guest段的guestfsd接收到,进而分析所要执行的操作。

guestfish是对guestfs-lib接口函数的一些应用,guestfish的命令哦都市通过调用guestfs-lib的库函数来实现的。

因此在使用libguestfs的时候,可以使用guestfish这样的命令行工具,也可以直接在程序(包括C,java以及libguestfs支持的一些script language)中调用guestfs-lib实现的库函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值