![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux 系统
文章平均质量分 57
DD-WL
Just try it
展开
-
GSO/GRO常见疑问
LRO是网卡硬件对小包合并大包的实现,GRO是软件版本的LRO,开启后,在不支持LRO的环境,skb在进入协议栈之前会进行报文合并,以减小协议栈处理的报文数,提高协议栈处理能力。内核合并流程:npai_gro_receive->dev_napi_gro_receive->inet_gro_receive->tcp_gro_receive->skb_gro_receive。原创 2024-04-22 16:38:45 · 704 阅读 · 0 评论 -
kvm系统开启嵌套虚拟化
在虚拟机XML中使用CPU host-passthrough模式。【返回Y则跳过以下操作,返回N请继续执行下面操作】创建虚拟配置文件 (保证虚拟机全部关机状态中)intel查看处理器是否支持。amd查看处理器是否支持。原创 2023-10-30 10:08:30 · 220 阅读 · 0 评论 -
sriov开启混杂模式
2、宿主机将vf设置trust on ,关闭spoof check;1、需要网卡硬件支持,如x700系列支持,82599不支持。3、vm内设置网卡为混杂模式。原创 2023-03-02 14:14:23 · 665 阅读 · 0 评论 -
HTTPS握手过程、常见问题
HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。解决web访问的保密性与完整性答:两个字段的值是一样的,具体参考RFC5280https://www.rfc-editor.org/rfc/rfc5280#secti原创 2021-05-08 17:19:14 · 739 阅读 · 0 评论 -
linux内核网络模块笔记
1、veth接口的dev->xmit函数为veth_xmit接口,直接将报文skb发给peer dev,重新调用netif_rx进入协议栈流程。3、tun_net_xmit 为tun/tap口发包函数,将skb发到tun_file中,然后唤醒vhost-net线程处理报文。2、ovs的upcall上送到用户态的skb最终匹配流表后会重新下发给内核,在内核进行转发。原创 2022-11-08 20:19:07 · 235 阅读 · 0 评论 -
Linux内核NAPI原理机制、网卡收包过程
2、硬中断函数为驱动probe函数注册的中断回调函数,非napi时一般为netif_rx,napi时一般为驱动自己实现的函数,函数内部触发软中断。3、backlog_process为默认的poll函数(使用默认poll函数时,硬中断函数中一般调用netif_rx),部分驱动会定义自己的poll函数,此时不会使用默认的(也不调用netif_rx)。6、napi和非napi一次都会处理多个报文,但非napi时会触发多次硬中断,硬中断会打断软中断流程,对性能有影响。逻辑一样,都是减少硬中断次数。原创 2022-11-07 20:33:21 · 850 阅读 · 0 评论 -
Linux网络 IP/TCP校验和、checksum、伪首部相关问题
ip校验和、tcp校验和、skb->ip_summed、伪首部、checksum原创 2022-10-25 18:01:36 · 3975 阅读 · 0 评论 -
mmap MAP_PRIVATE MAP_SHARED
2、private的修改不会回写硬盘文件,并且是copy-on-write模式,文件未修改时指向的共享文件内容(此时其他进程修改文件,private是可见的,因为是同一块内存。当private修改了内存以后,private重新申请一块内存,此时其他进程再修改文件内容private将看不到修改)1、mmap成功以后,fd可以立即关闭,而不影响mmap。3、share修改会回写磁盘文件;man mmap手册。原创 2022-10-18 14:13:00 · 855 阅读 · 0 评论 -
Linux内核中的Watchdog
linux /dev/watchdog softlockup hardlockup 看门狗 kvm watchdog i6300esb原创 2022-10-09 18:29:07 · 4643 阅读 · 0 评论 -
linux 网卡tx-checksumming和tx-checksum-ip-generic
如果 VIRTIO_NET_F_CSUM 设置的话,只是具备了 NETIF_F_HW_CSUM 的feature,所以它展示为on,而。NETIF_F_HW_CSUM 的出现,显得 NETIF_F_IP_CSUM 和 NETIF_F_IPV6_CSUM 就过时了。也就是说,NETIF_F_HW_CSUM 是 NETIF_F_IP_CSUM 和 NETIF_F_IPV6_CSUM 的一个超集。但是既然是硬件计算校验和,NETIF_F_HW_CSUM从功能上显然是能覆盖,所以。转载 2022-09-23 16:50:22 · 1873 阅读 · 0 评论 -
skb->truesize,len,datalen区别
3、skb->true_size,整个skb长度,包含sk_buff结构、数据长度(线程和非线程)。2、skb->data_len非线性区数据长度,包括frag_list和frags[]两部分数据。1、skb->len数据包长度(协议栈不同位置,包含的协议头不一致)...原创 2022-07-19 17:41:23 · 1240 阅读 · 0 评论 -
Qemu-kvm常见问题
这种问题一般是更新版本后,qemu支持的machine类型不兼容导致,修改对应虚拟机xml配置文件并重新定义即可。步骤:输入qemu-kvm -machine help查看支持的type选择指定type进行替换 一般选择default那个即可。virsh define ./centos-v1.xml 重启启动虚拟机即可另外更新之后,重启机器可能会遇到kvm因为权限无法启动的问题解决方法:chmod 666 /dev/kvm并编辑vim /etc/libvirt/qemu.conf之后systemct原创 2022-06-30 01:12:46 · 1703 阅读 · 0 评论 -
linux网络命名空间
在 Linux 上通过 veth 我们可以创建出许多的虚拟设备。通过 Bridge 模拟以太网交换机的方式可以让这些网络设备之间进行通信。不过虚拟化中还有很重要的一步,那就是隔离。借用 Docker 的概念来说,那就是不能让 A 容器用到 B 容器的设备,甚至连看一眼都不可以。只有这样才能保证不同的容器之间复用硬件资源的同时,还不会影响其它容器的正常运行。在 Linux 上实现隔离的技术手段就是 namespace。通过 namespace 可以隔离容器的进程 PID、文件系统挂载点、主机名等多种资源。不过转载 2022-06-20 15:49:16 · 165 阅读 · 0 评论 -
linux文件权限详解
//权限与用户是强相关的,这里先简单介绍下linux的不同类型用户1、Linux系统中的3类用户1)管理员:比如root用户,权限最大的用户,拥有所有权限2)系统用户系统用户:在红帽5或者6系列的系统中,系统用户的uid值为0-499;不同发行版可能不一致,以实际实现为准;系统用户一般用于守护进程/服务使用,一般不允许登录系统(即/sbin/nologin),这样可以降低对应进程的权限3)普通用户普通用户:一般用于人机交互登录的账户useradd、id、groupadd、userdel、use原创 2022-05-30 19:46:50 · 8374 阅读 · 0 评论 -
Linux文件硬链接与软链接
在Linux操作系统中,链接被分为两种:软链接(Soft Link,符号链接)和硬链接(Hard Link)。硬链接(Hard Link)A是B的硬链接,则A的目录项中的inode节点号与B的目录项中的inode节点号相同,即一个inode节点对应两个不同的文件名,两个文件名指向同一个文件,A和B对文件系统来说是完全平等的。如果删除其中一个,对另外一个没有任何影响。每增加一个文件名,inode节点上的链接数增加一,每删除一个对应的文件名,inode节点上的链接数减一,直到为0,inode节点和对应的数据原创 2022-05-26 10:28:08 · 248 阅读 · 0 评论 -
DPDK多进程间通信机制
DPDK将进程分为两种 : primary process 和secondary process。由primary process对系统的资源(如内存,vfio container等)进行控制,而secondary process若需要申请资源,则向primary process发送申请的请求,由promary process处理请求后,将结果通知secondary process。...原创 2022-04-29 11:20:45 · 1103 阅读 · 0 评论 -
DPDK内存管理(初始化+分配释放)
以下内容以dpdk19.11版本代码为准,其他版本可能有出入。DPDK通过使用hugetlbfs,减少CPU TLB表的Miss次数,提高性能。DPDK的内存初始化工作,主要是将hugetlbfs的配置的大内存页,根据其映射的物理地址是否连续、属于哪个Socket等,有效的组织起来,为后续管理提供便利。主要init过程://以启用了大页,legacy-mem模式为主内存管理主结构为struct rte_mem_config* mem_config = rte_config.mem_config内存原创 2022-04-14 17:48:53 · 1349 阅读 · 0 评论 -
Linux kernel的中断子系统之(二):IRQ Domain介绍
转载自:蜗窝科技(博客)作者:linuxer一、概述在linux kernel中,我们使用下面两个ID来标识一个来自外设的中断:1、IRQ number。CPU需要为每一个外设中断编号,我们称之IRQ Number。这个IRQ number是一个虚拟的interrupt ID,和硬件无关,仅仅是被CPU用来标识一个外设中断。2、HW interrupt ID。对于interrupt controller而言,它收集了多个外设的interrupt request line并向上传递,因此,inter转载 2022-04-12 21:20:16 · 455 阅读 · 0 评论 -
制作Ubuntu/Centos自动安装 ISO
制作Ubuntu/Centos自动安装 ISO目标环境和软件工具Ubuntu ISO参考资料:Centos ISO参考资料目标1、达到系统自动安装,不需要人机交互2、自定义操作系统(开机界面、默认账户等等)环境和软件工具环境:Linux Ubuntu/CentOS操作系统软件:mkisofs,xorrisoCentOS : yum install mkisofs xorriso -yUbuntu: sudo apt install -y mkisofs xorrisoUbuntu ISO原创 2022-03-01 15:22:47 · 1302 阅读 · 0 评论 -
Docker常用命令
https://docs.docker.com/engine/faq/https://www.runoob.com/docker/docker-resources.htmlhttps://www.katacoda.com/提供对应相关REST API接口1、启动、设置开启开机启动sudo systemctl start dockersudo systemctl enable docker启动容器时使用 –oom-kill-disable=true指定通过dockerfile可自动构建镜像d原创 2021-11-15 10:15:45 · 712 阅读 · 0 评论 -
jiffies和jiffies_64
Linux内核时间管理(二)——jiffies与jiffies_64释疑 </h1> <div class="clear"></div> <div class="postBody"> <div id="cnblogs_post_body" class="blogpost-body blogpost-body-html"> ...转载 2021-08-25 00:40:16 · 269 阅读 · 0 评论 -
Linux gettid和pthread_self区别
1 线程ID获取方法 linux下获取线程有两种方法: 1)gettid或者类似gettid的方法 2)直接调用pthread_self() gettid 获取的是内核中线程ID,而pthread_self 是posix描述的线程ID。 通过执行man手册,我们也能发现他们的区别: SYNOPSIS #include ...转载 2021-05-18 11:45:28 · 512 阅读 · 0 评论 -
linux 共享库soname与realname
1、soname,可以使不同版本号的共享库共存,保证升级时不需要升级程 序文件。2、realname, 共享库文件名字,文件控制信息中保存有soname。readelf -d 可查看soname3、ld -llibfile, 程序加载时会根据libfile的soname查找依赖库。如: soname : libtest-1.sorealname : libtest-1-2.so, libtest-1-3.sogcc -fPIC -shared -Wl,soname,libhello.so原创 2020-09-14 15:54:19 · 298 阅读 · 0 评论