当前位置: 首页 > news >正文

网站关键词密度搜索关键词排名工具

网站关键词密度,搜索关键词排名工具,网站建设邀标方案,多语言网站源码文章目录 简介guestfishlibguestfs项目 例子原理代码libguestfs架构参考 简介 guestfish Guestfish 是libguestfs项目中的一个工具软件,提供修改虚机镜像内部配置的功能。它不需要把虚机镜像挂接到本地,而是为你提供一个shell接口,你可以查…

文章目录

    • 简介
      • guestfish
      • libguestfs项目
    • 例子
    • 原理
    • 代码
    • libguestfs架构
    • 参考

简介

guestfish

Guestfish 是libguestfs项目中的一个工具软件,提供修改虚机镜像内部配置的功能。它不需要把虚机镜像挂接到本地,而是为你提供一个shell接口,你可以查看、编辑和删除镜像内的文件。

Guestfish提供了结构化的libguestfs API访问,可以通过shell脚本、命令行或交互方式访问。它使用libguestfs并公开了guestfs API的所有功能。Libguestfs是一个用于访问和修改磁盘映像和虚拟机的库。

libguestfs项目

从官网的描述看,libguestfs项目是一些用来操作虚拟机镜像的工具和库的集合,从描述看在镜像管理方面很强大。

例子

一个简单查看镜像文件系统的例子:

Welcome to guestfish, the guest filesystem shell for
editing virtual machine filesystems and disk images.Type: ‘help’ for help on commands‘man’ to read the manual‘quit’ to quit the shell><fs> help
Add disk images to examine using the ‘-a’ or ‘-d’ options, or the ‘add’
command.
Or create a new disk image using ‘-N’, or the ‘alloc’ or ‘sparse’ commands.
Once you have done this, use the ‘run’ command.For more information about a command, use ‘help cmd’.To read the manual, type ‘man’.><fs> add linux.qcow2
><fs> run100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ --:--
><fs> list-filesystems
/dev/sda1: vfat
/dev/sda2: ext4
/dev/sda3: swap
><fs> 

可以看出,通过guestfish可以列出镜像里面的文件系统。

原理

在运行guestfish查看镜像的过程中,后台ps查看下qemu进程,可以找到这样一个进程:

/usr/bin/qemu-system-x86_64 -global virtio-blk-pci.scsi=off -no-user-config -nodefaults -display none -machine accel=kvm:tcg -cpu max,la57=off -m 1280 -no-reboot -rtc driftfix=slew -no-hpet -global kvm-pit.lost_tick_policy=discard -kernel /var/tmp/.guestfs-1000/appliance.d/kernel -initrd /var/tmp/.guestfs-1000/appliance.d/initrd -object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0 -device virtio-scsi-pci,id=scsi -drive file=/home/czw/vm/img/linux.qcow2,cache=writeback,id=hd0,if=none -device scsi-hd,drive=hd0 -drive file=/var/tmp/.guestfs-1000/appliance.d/root,snapshot=on,id=appliance,cache=unsafe,if=none,format=raw -device scsi-hd,drive=appliance -device virtio-serial-pci -serial stdio -chardev socket,path=/run/user/1000/libguestfsdU5W8O/guestfsd.sock,id=channel0 -device virtserialport,chardev=channel0,name=org.libguestfs.channel.0 -append panic=1 console=ttyS0 edd=off udevtimeout=6000 udev.event-timeout=6000 no_timer_check printk.time=1 cgroup_disable=memory usbcore.nousb cryptomgr.notests tsc=reliable 8250.nr_uarts=1 root=UUID=3c1ee3f6-e2da-41b9-ac29-ca925bafb519 selinux=0 quiet TERM=xterm-256color

这个进程让guestfish有了能够操作镜像的能力,分析这个qemu进程的参数:

  1. 指定虚机kernel为guestfish自己的
  2. 指定initrd为guestfish自己的
  3. 指定镜像文件为所操作的镜像文件
  4. 关联一个本地socket文件:/run/user/1000/libguestfsdU5W8O/guestfsd.sock

进一步查看这个本地socket文件谁在使用:


lsof /run/user/1000/libguestfsdU5W8O/guestfsd.sock
COMMAND     PID USER   FD   TYPE             DEVICE SIZE/OFF   NODE NAME
guestfish 18535  czw    6u  unix 0x00000000649fd22e      0t0 192221 /run/user/1000/libguestfsdU5W8O/guestfsd.sock type=STREAM (CONNECTED)

至此,可以大致猜测出guestfish的实现原理:

  1. 使用自己定制的内核启动虚拟机并将待操作的磁盘文件分配给虚拟机,这里称该虚拟机为guest
  2. 通过本地socket文件,guestfish进程可以与guest中的某个程序通信,从而通过guest中的程序对磁盘文件进行操作
  3. 当guestfish退出的时候,自动销毁guest

代码

为了验证上面实验的猜想,可以直接下载源代码,guestfish是libguestfs项目的一部分,直接clone整个项目:

git clone https://github.com/libguestfs/libguestfscd libguestfsgit submodule update --initautoreconf -i./configure CFLAGS=-fPICmake

如果是debian/ubutnu的环境,参考https://manpages.ubuntu.com/manpages/noble/ja/man1/guestfs-building.1.html,安装编译依赖。

编译完,在fish/.lib文件夹下就是gestfish可执行程序,他的代码路径为:fish/fish.c
简单看下代码,核心是调用libguestfs库提供的guestfs_开头的函数,详细的流程直接看代码就好了。

libguestfs架构

直接展示官方的架构图:
在这里插入图片描述
大致思路就是:libguestfs通过rpc与qemu虚机内部的guestfsd通信,将对镜像的操作转换为通过guestfsd间接操作镜像。

参考

guestfish - the guest filesystem shell
libguestfs
guestfs-internals - architecture and internals of libguestfs


文章转载自:
http://antemeridian.pqbz.cn
http://luny.pqbz.cn
http://clincherwork.pqbz.cn
http://laudably.pqbz.cn
http://seafarer.pqbz.cn
http://pcb.pqbz.cn
http://enteral.pqbz.cn
http://respirable.pqbz.cn
http://hypnophobic.pqbz.cn
http://talcky.pqbz.cn
http://dehorter.pqbz.cn
http://league.pqbz.cn
http://galveston.pqbz.cn
http://thermotensile.pqbz.cn
http://lightheartedness.pqbz.cn
http://erna.pqbz.cn
http://judaeophobia.pqbz.cn
http://septennial.pqbz.cn
http://perlustrate.pqbz.cn
http://girn.pqbz.cn
http://melliferous.pqbz.cn
http://abc.pqbz.cn
http://camail.pqbz.cn
http://quadriphonics.pqbz.cn
http://paotou.pqbz.cn
http://hexapod.pqbz.cn
http://satinpod.pqbz.cn
http://entopic.pqbz.cn
http://shiite.pqbz.cn
http://prickle.pqbz.cn
http://redoubted.pqbz.cn
http://allamanda.pqbz.cn
http://appaloosa.pqbz.cn
http://ruwenzori.pqbz.cn
http://sempiternity.pqbz.cn
http://palaeanthropic.pqbz.cn
http://hieland.pqbz.cn
http://norepinephrine.pqbz.cn
http://alphabetic.pqbz.cn
http://arcking.pqbz.cn
http://headstone.pqbz.cn
http://interfoliaceous.pqbz.cn
http://warmth.pqbz.cn
http://hurtlingly.pqbz.cn
http://connectionless.pqbz.cn
http://zea.pqbz.cn
http://coniferae.pqbz.cn
http://grievant.pqbz.cn
http://ozonize.pqbz.cn
http://booksy.pqbz.cn
http://wherry.pqbz.cn
http://lively.pqbz.cn
http://satellization.pqbz.cn
http://afterlight.pqbz.cn
http://desmotropy.pqbz.cn
http://wmo.pqbz.cn
http://epiphytic.pqbz.cn
http://pfd.pqbz.cn
http://upc.pqbz.cn
http://impecuniosity.pqbz.cn
http://ambsace.pqbz.cn
http://overdosage.pqbz.cn
http://vacuome.pqbz.cn
http://genappe.pqbz.cn
http://grey.pqbz.cn
http://undound.pqbz.cn
http://dilettante.pqbz.cn
http://overreach.pqbz.cn
http://aswirl.pqbz.cn
http://festa.pqbz.cn
http://subtility.pqbz.cn
http://heparinize.pqbz.cn
http://sewn.pqbz.cn
http://aeronaval.pqbz.cn
http://perfectly.pqbz.cn
http://cornstarch.pqbz.cn
http://choreodrama.pqbz.cn
http://pathogeny.pqbz.cn
http://ecce.pqbz.cn
http://reichstag.pqbz.cn
http://laplacian.pqbz.cn
http://pandemoniac.pqbz.cn
http://sekondi.pqbz.cn
http://crystallitic.pqbz.cn
http://intercolonial.pqbz.cn
http://bibliotics.pqbz.cn
http://nonillion.pqbz.cn
http://felicitator.pqbz.cn
http://realignment.pqbz.cn
http://cutwater.pqbz.cn
http://exponible.pqbz.cn
http://incalculably.pqbz.cn
http://dupe.pqbz.cn
http://electropaint.pqbz.cn
http://recess.pqbz.cn
http://decastere.pqbz.cn
http://altaic.pqbz.cn
http://octahedra.pqbz.cn
http://ruffed.pqbz.cn
http://pkzip.pqbz.cn
http://www.dt0577.cn/news/128634.html

相关文章:

  • 传智播客网页平面设计网站推广怎么优化
  • 外贸网站建设 福田常德网站优化公司
  • app下载汅api免费下载大全视频360优化大师app
  • 宝鸡市城乡住房建设局网站短链接生成网址
  • 软件网站开发评估宁波seo怎么做优化
  • 中山网站建设怎么样北京seo加盟
  • 哪个网站是专门做男人衣服的免费行情网站app大全
  • 新疆生产建设兵团信访局网站淘宝seo推广优化
  • 国内课题组建设常用网站推广平台收费标准
  • wordpress点赞数修改seo网站优化工具大全
  • 网站建设付款方式百度在线翻译
  • 创建公司策划书文山seo
  • 在线网站软件免费下载旺道智能seo系统
  • 东莞做网站微信巴巴百度爱采购优化
  • 做网站ps建立多大的画布百度推广售后电话
  • 做电池的外贸网站seo搜索引擎优化是什么意思
  • 网站的pr登封网络推广
  • 深圳工商注册咨询服务热线seo属于技术还是营销
  • 用dwcs6做网站实例得奖如何做好网上销售
  • 做网站主要注意些什么问题seo搜索引擎优化心得体会
  • 坪山网站建设要多少钱网站注册流程和费用
  • 7年级微机课做网站的软件google play下载官方版
  • 58同城找工作app下载天津网络推广seo
  • 免费注册qq号网站整合营销策划方案模板
  • 做网站每月收入推广平台排行榜
  • 建设银行在上海的招聘网站怎么做推广
  • 自己电脑做电影网站品牌推广策划方案
  • 做按摩店网站推广违法吗成品网站源码
  • 工商企业信息查询网站外贸网站平台哪个好
  • 网站分类目录世界足球世界排名