- 博客(32)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 qemu和libvirt的配置对比
libvirt的很多配置选项其实是调用了qemu的接口,但也有增加和优化的地方,本文主要总结这些配置选项,当个手册来查询。
2024-09-12 20:11:41 822
原创 Arm GIC-v3中断原理及验证(通过kvm-unit-tests)
由于讲述中断,所以直接开讲的中断发送以及中断处理,其实是倒叙看源码了。至此,SGI中断的逻辑以及原理差不多可以了,反正就是触发SGI中断就写ICC_SGI1R_EL1寄存器,接收中断handler就是按标准步骤操作寄存器:读取iar,获取irq,逻辑处理,回写eoi。kut中关于发送sgi中断的函数是lib/arm/gic-v3.c中的gicv3_ipi_send_mask()函数(可类比kernel-5.10中的gic_ipi_send_mask函数),IPI即核间中断,arm的叫sgi。
2024-09-06 17:05:13 1098
原创 tiny_qemu模拟qemu虚拟化原理
笔者就实现了下相关操作。看汇编是在x86平台下操作的,其中两个文件分别是。2.tiny_qemu.c (这个用例程序写得很经典)程序原理很简单,就是模仿kvm-qemu那一套。cpu虚拟化原理来源于。本次虚拟机操作来源于。
2024-09-02 19:46:01 252
原创 Arm-v8/v9虚拟化原理---aarch64_virtualization_guide
上述文章无一例外的指明此时需要置位ECH==1,以使得在EL2层面访问TTBR0_EL12就是访问TTBR0_EL1,奈何我在官方UM中搜遍了armv8所有寄存器的所有字段,也没发现有个ECH的比特的。所以,本篇文章直接追本溯源,只参考arm官方给的文章,然后针对前人错误的地方辅以佐证,文章是虚拟化中的一个个模块,想要连贯性还是读官方文档,当然英语不好的可以直接看参考连接。2)有几处原理出现标识错误,而且是全部错在同一个点,可能是他们参考老版本导致(更有甚者,尼玛第一个人写错了导致后面所有人都抄错了)。
2024-08-15 10:51:26 991
原创 kpatch制作内核热补丁步骤总结
A:缺少包,直接yum -y install openssl-devel即可(apt-get install libssl-dev)A:有时发现报错“No targets, No makefile”确实离谱,可能是版本不匹配,最后一步就是换个kpatch-build.rpm包。如果仅仅移除kpatch热补丁模块不会卸载运行内核已加载的热补丁模块,除非使用上面描述的kpatch upload命令。彻底移除该kpatch热补丁模块可以使用uninstall。3.卸载某个kpatch热补丁模块。
2024-07-04 15:08:43 514
原创 git 常用场景实例
git remote add 欧拉的src-qemugit checkout 我的提交分支git pull rebase 欧拉的src-qemu/mastervim 解决冲突git push 我自己的远程fork仓库master分支。
2023-12-01 14:48:56 45
原创 Linux下配置邮箱客户端MUTT,整合msmtp + procmail + fetchmail
1.首先,需要安装一系列rpm包,最好通过上述文章给出的几个rpm网站查找相应rpm包安装,实在找不到就只能自己源码安装,安装的rpm主要为mutt + msmtp + procmail + fetchmail,在安装这些包时会依赖于gnutls,openssl, libsasl等几个包,具体看机器。mutt可以看成是一个集成软件,具体介绍可查看参考链接,总之mutt可以通过整合其他软件来实现邮箱客户端功能,如发送邮件的msmtp,以及接收邮件的procmail及fetchmail。
2023-11-29 15:01:57 2095
原创 Redhat Linux v8.2 实时内核环境配置及参数调优
本文档包含有关Redhat Linux for Real Time的基本安装和调试信息。许多行业和组织需要极高性能的计算,并且可能需要低且可预测的延迟,尤其是在金融和电信行业中。延迟(或响应时间)定义为事件与系统响应之间的时间,通常以微秒(us)为单位。对于在 Linux 环境中运行的大多数应用程序,系统基本性能调整可以充分提高延迟。系统调整提供了确定性方面的绝大部分改进,使用实时内核时,系统调整与内核一样重要。
2023-11-13 19:52:35 3676
原创 VFIO的使用及原理
vfio设备透传主要用于将设备直通给虚拟机以提高性能,本篇以一张网卡为例讲述VFIO设备的配置使用及底层原理。其中涉及的技术背景主要有linux+qemu+kvm+vfio。
2023-11-02 15:58:10 1533
原创 QEMU-cpr热升级编包问题QA记录
报错文件qapi-commands.c包含qapi-commands.h,qapi-commands.h又包含qapi-commands-cpr.h,qapi-commands-cpr.h中声明了qmp_marshal_cpr_xxx函数,qapi-commands-cpr.c定义了qmp_marshal_cpr_xxx()函数,完美引用,没问题啊。其中4=commands/events/types/visit,2=Makefile中的.h和.c,1=Makefile.objs中的.o。
2023-10-30 18:15:23 43
原创 undefined symbol: _ZN3fmt2v76detail10basic_dataIvE27zero_or_powers_of_10_32_newE
一、看这里说,是链接顺序的问题,于是在CMakeLists里加了这个: -Wl,--start-group ${PROJECT_SOURCE_DIR}/lib/libngraph.so ${PROJECT_SOURCE_DIR}/lib/libinference_engine_legacy.so libinference_engine_transformations.so ${PROJECT_SOURCE_DIR}/lib/libinference_engine_undefined symbol怎么解决。
2023-09-28 11:23:08 216
原创 vim常用操作
g/old/s//new/g (全部替换的另一种方式)特别地当n1=1且n2=尾行时,就是全局替换。第n1行至n2行中所有的old替换为new。“CTRL+v” 进入visual模式。“CTRL+v” 进入“可视 块”模式。按下shift+i ,开始插入……三、Visual模式(块模式,常用于多列操作)操作上下左右键,选取要删除的行。操作上下左右键,选取要插入的行。按ESC+ESC,结束插入。恢复撤销:Ctrl + r。一、Esc键 & 命令模式。
2023-09-06 11:05:05 1032
原创 linux kernel单独编译某项驱动----网卡驱动
linux内核经常涉及编译某一项驱动代码的场景,本次以网卡驱动e1000为例说明整个步骤流程。首先编译内核驱动不必要编译整个内核,但编译的驱动代码必须要和要安装的内核版本保持一致,否则经常会出现无法加载模块。在编译驱动前,最好要保证3个版本一致:1.`uname -r`当前系统内核版本 ----为了能够安装到本系统2.yum install kernel-devel 版本 ----kernel-devel保证编译驱动时kernel的源码。
2023-07-18 14:56:09 3652
原创 format ‘%lu’ expects argument of type ‘long unsigned int’……
d %ld %lld , %u %lu %llu , %x %lx %llx的区别。打印问题,这种报错一看就是输出格式与变量不匹配,先引用前人的文章简单说明下。
2023-06-06 15:18:45 1555
原创 三大调试工具gdb,*trace,systemTap使用指南
总体而言三者各有千秋,gdb可动态调试,ftrace主打系统函数追踪,而systemtap功能很强大,个人感觉基本覆盖了ftrace,且能动态捕获系统函数或应用函数的执行时间,项目工作中很实用。
2022-08-08 15:25:09 2051
原创 安装打印机驱动步骤(win10)
1.开始菜单->控制面板-->设备和打印机-->添加打印机 2.之后一般会自动查找可用的打印机。若未找到,则通过TCP/IP查找(前提是公司内网已配置了打印机,会得到一个192.168.xxx.xxx的内网本地IP) 3.输入Standard TCP/IP地址4.接下来就是安装驱动,驱动肯定是提前下好放在本地盘中,选择从磁盘安装。5.选择打印机驱动所存位置,如WIN-X64——KOAYXJ-——选择打开6.选择共享打印机,点击下一页,安装成功...
2022-06-10 09:40:22 5571
原创 expect脚本proc函数定义及使用
expect脚本的基本语法就不多做介绍了,其它网上的文章很详细;这里只介绍下expect脚本中如何定义及使用函数,直接用例子说明吧,比较直观一些。1.单参数函数#!/usr/bin/expect -fproc myfunc { TOTAL } { set TOTAL [expr $TOTAL + 1] return "$TOTAL"}set NUM 0while {$NUM <= 5} { puts "\nNumber $NUM" set NUM [m
2022-05-22 12:15:25 1486
原创 char *const 和 const char *(char const*)
零、看谁在const后面,谁在const后面,就代表谁被const修饰,谁就被限定死,不可改。eg.const char *p -> *p 被修饰,*p(值)不可改;char * const p -> p 被修饰, p(指针)不可改;一、const char *p (限定*p,放开p;*p值不可改,指针p可修改)对于 const char *s 来说,const char*是指向常量的指针,而不是指针本身为常量,可以不被初...
2022-05-10 19:29:36 6634 5
原创 创建共享文件夹(qemu虚拟机&宿主机)
1.说明qemu-kvm虚拟机与宿主机之间实现文件传输,主要是使用网络来进行,一般是qemu在创建虚拟机时在xml中配置好<network>标签然后通过ssh的scp远程拷贝命令实现。但在某些情况下,qemu不是以xml创建的虚拟机,而是以纯命令创建的虚机。这个需要先在宿主机上配置网络桥架,在qemu-kvm启动配置网卡就可以实现文件传输。 <interface type='network'> <source network='default'/
2022-04-28 16:58:15 12023 2
原创 向 Linux kernel 社区提交patch补丁步骤总结(已验证成功)
一、详细步骤本次使用CentOS Linux8系统虚机,git下载修改源码提取patch并邮件给maintainer。1.安装git和git send-emailyum install gityum install git-email2.配置git和smtpgit config --global user.name "xxx"git config --global user.email "xxx@xxx.com"配置smtpvi ~/.gitconfig .
2022-03-24 19:50:21 13267 2
原创 swing中Jpanel设置透明度
课题研究中应用到要生成透明背景的电子签章,所以通过网上搜寻资料以及自己整合最终实现了这项功能。实现图如下:关键代码如下:1.在生成panel时,设置为透明 DrawPanel panel = new DrawPanel(); //DrawPanel继承swing中的Panel,具体实现不影响最后的结果 panel.setBackground(Colo
2016-12-12 11:16:28 17147
原创 Windows下Apache整合Tomcat
Windows下Apache整合Tomcat成功实例 ——2016.5.19 【下载】 1.Apache HTTP Server (httpd) 2.2.22 : http://httpd.apache.org/download.cgi#apache22 2.Tomcat5.5: http://mirror.bjtu.ed
2016-11-21 10:19:51 516
原创 2017软件开发校招内推,阿里、华为等面试经验
先介绍下本人,笔者是国内一所知名院校的硕士研究生,专业方向是软件工程(JAVA方向),主攻Web端,前台后台都有涉及,但应聘后端岗位。其实我本人也是从研二开始真正接触到软件方面的知识,研一一年基本就上课然后参与各种社团活动,暑假初期也曾为找工作忧心忡忡,不过截止目前(9月底)已经拿到了保底的offer,而且薪资待遇等方面也超过了自己预期,所以总体而言还是蛮顺利的。我就按时间顺序列出我所参与的主
2016-11-07 15:32:16 3943 1
原创 宏观面试经验技巧
先介绍下本人,笔者是国内一所知名院校的硕士研究生,专业方向是软件工程(JAVA方向),主攻Web端,前台后台都有涉及,但应聘后端岗位(对于其他相近专业同学,本篇同样适用)。之前在研究学习中在CSDN论坛上发现了很多好的文章,也解决了我很多的问题。也曾想过等有朝一日自己有能力了,也能写点东西让别人借鉴,毕竟自己也是那种喜欢文字喜欢记录的一类人。目前工作已经落实了,所以在自己的技术上还没太多建树的我,
2016-11-07 14:58:50 1416
Windows下Apache整合Tomcat.doc
2016-06-01
用pdfBox给pdf文档插入图片时抛出异常
2016-12-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人