- 博客(98)
- 资源 (20)
- 收藏
- 关注

原创 Linux虚拟化技术KVM入门必看
1.《关于Linux虚拟化技术KVM的科普 科普一(先用起来!)2.KVM虚拟机代码揭秘 《KVM虚拟机代码揭秘——QEMU代码结构分析》、 《KVM虚拟机代码揭秘——中断虚拟化》、 《KVM虚拟机代码揭秘——设备IO虚拟化》、 《KVM虚拟机代码揭秘——QEMU的PCI总线与设备...
2019-08-25 14:42:53
595

原创 好文汇总(不断更新)
好文收集网络 路由:https://blog.youkuaiyun.com/lickylin/article/details/38326719内存 英文电子书:https://www.kernel.org/doc/gorman/html/understand/index.html 内存源码:https://www.cnblogs.com/tolimit/ 内存、中断、时钟、...
2019-08-19 18:54:27
312
1
原创 kmem_cache的创建和释放-slub分配器
目录kmem_cache_createkmem_cache_create_usercopy __kmem_cache_aliasfind_mergeablecreate_cache__kmem_cache_createkmem_cache_openkmem_cache_destroyshutdown_cache 内核版本:kernel-4.19kmem_cache是slub...
2022-05-13 23:42:13
3921
1
原创 Failed to load selinux policy, Freezing | CentOS | Redhat | RHEL
这个问题,很多博主直接建议grub里面关闭selinux,起来后,直接关闭selinux功能!坚持太气愤,还都如出一辙。。。。。那如果要用selinux功能怎么办呢??让我来sava your life!二步:1)yum remove selinux-policy2)yum install selinux-policy...
2020-10-17 14:16:01
298
原创 qemu-kvm内存虚拟化的原理及其流程
1.内存虚拟化技术实现原理 内存虚拟化其实就是关于如何做Guest虚机到host宿主机物理内存之间的各种地址转换,KVM经历了三代的内存虚拟化技术,大大加快了内存的访问速率。先看看虚拟化环境和非虚拟化环境,内存分配的差异:非虚拟化环境,内存分配时逻辑地址需要转换为线性地址,然后由线性地址转换为物理地址。 逻辑地址 ==> 线性地址 ==> 物理地址虚拟化环境下,由于qemu-kvm进程在宿主机上作为一个普通进程,那对于Guest而言,需要的转换过程就是这样: ...
2020-08-27 20:25:21
4666
1
原创 网络丢包排查思路
网络丢包排查思路1.防火墙确认:看防火墙是否配置了DROP特定端口范围的可能性方法:查看iptables filter表,确认是否有相应规则会导致此丢包行为,命令:sudoiptables-save-tfilter2.连接跟踪表溢出除了防火墙本身配置DROP规则外,与防火墙有关的还有连接跟踪表nf_conntrack,Linux为每个经过内核网络栈的数据包,生成一个新的连接记录项,...
2020-03-18 18:28:56
7538
1
原创 网络收包流程-网络层处理流程ip_rcv(五)
报文提交给内核协议栈处理后,最终会调用到__netif_receive_skb_core函数,如果报文没有被网桥处理函数rx_handler消费掉,最终会交给ptype_base中注册的协议处理,包括内核注册的协议,也包括raw socket等创建的协议处理。本文将分析普通ipv4 报文的处理过程,处理入口函数为ip_rcv函数。主要调用流程:ip_rcv-->ip_...
2020-03-18 18:25:54
3778
1
原创 网路收包流程-网桥的处理流程(br网桥)(四)
目录1.网桥收发报文模型2.网桥的初始化和相关数据结构关系 1)通过br_init函数注册和初始化网桥功能 2) 添加一个桥设备-br_add_bridge 3)给网桥添加端口-br_add_if 4)数据结构3.网桥收包处理流程-br_handle_frame函数1)br_handle_frame函数2)br_han...
2020-02-15 15:07:33
6007
原创 网路收报流程-网桥的处理流程(br网桥)(四)
1.网桥收发报文模型 linux内核是通过一个虚拟的网桥设备来实现桥接的。这个虚拟设备可以绑定若干个以太网接口设备,从而将它们桥接起来。其网桥收发包模型如下所示:网络收发报文的二种方式:1)网桥转发给具体端口处理:网桥设备br0绑定了eth0和eth1。对于网络协议栈的上层来说,只看得到br0,因为桥接是在数据链路层实现的,上层不需要关心桥接的细节。于是协议栈上层需要发送...
2020-02-15 14:57:22
3746
原创 网络收包流程-收包函数__netif_receive_skb的核心函数__netif_receive_skb_core(三)
调用关系:netif_receive_skb-->netif_receive_skb-->netif_receive_skb_internal(->__netif_receive_skb)-->__netif_receive_skb_core1.netif_receive_skb_internal的实现static int netif_receive_skb_int...
2020-02-15 14:39:57
6267
1
原创 对象释放函数kmem_cache_free核心函数slab_free的实现详解
1.kmem_cache_free函数void kmem_cache_free(struct kmem_cache *s, void *x)//X是要释放的对象{ s = cache_from_obj(s, x);//virt_to_head_page通过对象x找到该对象所在的slab的首个page,再通过page找到所属的slab缓存 if (!s) return; slab_...
2020-02-15 14:23:34
1444
原创 虚拟网桥
1.虚拟网桥与NAT网桥区别 1)bridged networking(桥接模式) 在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。在桥接模式下,需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,配置好网关和DNS的地址后,以实现通过局域网的网关或路由器访...
2019-11-13 16:01:48
5167
原创 docker的macvlan网络
1.macvlan基本介绍 macvlan 允许你在主机的一个网络接口上配置多个虚拟的网络接口,这些网络 interface 有自己独立的 mac 地址,也可以配置上 ip 地址进行通信。macvlan 下的虚拟机或者容器网络和主机在同一个网段中,共享同一个广播域。macvlan 和 bridge 比较相似,但因为它省去了 bridge 的存在,所以配置和调试起来比较简单,而且效率也...
2019-11-13 16:01:27
3281
原创 网络收包流程-软中断中process_backlog和poll方式处理流程(二)
在硬中断中触发了软中断后,最终会调用软中断处理函数 net_rx_action,注意:硬中断流程触发软中断后退出中断上下文,但是并不会立刻进入软中断,具体的实现需要了解软中断处理流程。1.软中断处理函数net_rx_action具体实现详解:static void net_rx_action(struct softirq_action *h){ struct ...
2019-09-10 18:51:24
2697
原创 sk_buff详解
sk_buff 整理笔记(一、数据结构)sk_buff整理笔记(二、操作函数)sk_buff整理笔记(三、内存申请和释放)sk_buff整理笔记(四、克隆与复制)sk_buff整理笔记(五、队列管理函数)from:https://blog.youkuaiyun.com/YuZhiHui_No1...
2019-09-08 10:38:45
7322
1
转载 Docker 网络模型之 macvlan 详解,图解,实验完整
上一篇文章我们详细介绍了 macvlan 这种技术,macvlan 详解,由于它高效易配置的特性,被用在了 Docker 的网络方案设计中,这篇文章就来说说这个。01 macvlan 用于 Docker 网络#在 Docker 中,macvlan 是众多 Docker 网络模型中的一种,并且是一种跨主机的网络模型,作为一种驱动(driver)启用(-d 参数指定),Docker macvlan...
2019-09-01 16:07:51
1395
转载 macvlan 详解
01 macvlan 简介前面的文章讲过了几种 Linux 虚拟网络设备:tap/tun、veth-pair、bridge,它们本质上是 Linux 系统 提供的网络虚拟化解决方案,今天要讲的 macvlan 也是其中的一种,准确说这是一种网卡虚拟化的解决方案。因为 macvlan 这种技术能将 一块物理网卡虚拟成多块虚拟网卡 ,相当于物理网卡施展了 多重影分身之术 ,由一个变多个。02 m...
2019-09-01 13:51:57
23688
原创 图解Linux网络虚拟化相关的虚拟网卡-VETH/MACVLAN/MACVTAP/IPVLAN
原 图解几个与Linux网络虚拟化相关的虚拟网卡-VETH/MACVLAN/MACVTAP/IPVLAN ...
2019-09-01 13:05:44
1619
原创 玩转docker、Swarm、Kubernetes
Kubernetes 集群日志管理 - 每天5分钟玩转 Docker 容器技术(180)部署 Prometheus Operator - 每天5分钟玩转 Docker 容器技术(179)Prometheus Operator 架构 - 每天5分钟玩转 Docker 容器技术(178)Prometheus Operator - 每天5分钟玩转 Docker 容器技术(177)...
2019-08-31 11:34:27
299
原创 虚机串口的配置
虚机串口的二种配置方式:1.虚机xml文件配置:2种方法 1)配置pty串口,可以通过virsh console 虚机ID 访问<serial type='pty'> <source path='/dev/pts/1'/> <target port='0'/> <alias name='s...
2019-08-28 19:37:25
737
原创 网络收包流程-报文从网卡驱动到网络层(或者网桥)的流程(非NAPI、NAPI)(一)
1.上图(网上的没我这个详细,哈哈):2.具体说明NAPI和非NAPI的区别:(1) 支持NAPI的网卡驱动必须提供轮询方法poll()。(2) 非NAPI的内核接口为netif_rx(),NAPI的内核接口为napi_schedule()。(3) 非NAPI使用共享的CPU队列softnet_data->input_pkt_queue,NAPI使用设备内存(或者设备驱动程序的...
2019-08-26 20:23:05
1662
原创 linux内核开发常用站点
转载:https://github.com/hduffddybz/Linux_websites在这里整理下 Linux 开发中常用的站点1、国外站点kernel.orgLinux 内核的官方网站,在这个站点可以下载到不同版本的内核,也可以找到 kernel.org 下的各种项目 Embedded Linux wiki这个站点有嵌入式 Linux 的各种资料 lwn.net这个...
2019-08-25 16:04:56
308
原创 netfilter源码学习
【推荐】Netfilter连接跟踪状态解析 【推荐】Linux内核连接跟踪锁的优化分析(2) 【推荐】Linux内核连接跟踪锁的优化分析(1) netfilter源码学习(5)——connection track处理(1) 【推荐】netfilter源码学习(4)——NAT处理(1) netfilter源码学习(3)——框架hook处理(3) 【推荐】netfil...
2019-08-25 16:02:20
656
原创 TCP/IP源码分析
struct s_mbuf与struct sk_buffstruct sk_buff与socket内核中的UDP socket流程(1)内核中的UDP socket流程(2)——API “sys_socket”内核中的UDP socket流程(3)——sock_create内核中的UDP socket流程(4)——sock_create内核中的UDP socket流程(...
2019-08-25 15:42:14
2111
原创 vmcore经典案例(hardlockup、softlockup、读写锁、hung、oom)
一次spinlock死锁故障的定位中断上下文使用spin_lock使导致死锁案例分析用crash工具分析Linux内核死锁的一次实战linux 3.10 一次softlock排查linux 2.6.32.220的一个crash记录linux 一个读写锁的使用异常导致的故障linux 3.10 的又一次hung一个rcu回调导致的简单死锁一个未完成的2.6.32-2...
2019-08-25 15:24:32
1021
原创 ipv4反向路由配置
反向路由rp_filter - INTEGER0 - 表示不进行源地址反向路由验证1 - 表示对收到的包进行反向路由验证,如果路由得到的接口不是,报文收到的接口,将把包丢掉,这是种比较严格的检查。参考RFC37042 - 表示一种宽松的检查模式,如果收上来的包的源IP地址进行反向路由后,找不到出口,这是源地址路由才失败,将包丢掉。系统推荐使用使用严格模式检查,这种检查方式可以防止DD...
2019-08-24 17:17:20
1701
原创 softlockup/hardlockup原理详细介绍
主体涉及到了3个机制:kernel watchodog线程,高精度定时器(时钟中断),基于PMU硬件perf event的NMI(不可屏蔽中断)。基本思想: 1.)(soft lockup):抢占被长时间关闭而导致其余进程无法调度 2.)(hard lockup):中断被长时间关闭而导致softlockup基本原理: 1)SoftLockup 检测首先需...
2019-08-24 17:01:15
2916
原创 Hard lockup occurs due to an infinite loop encountered in distribute_cfs_runtime()
Hard lockup occurs due to an infinite loop encountered in distribute_cfs_runtime()SOLUTION 已验证 - 已更新 2018年一月29日08:14 - English环境Red Hat Enterprise Linux 7.3 (kernel-3.10.0-514.el7.x86_64)问题Hard...
2019-08-24 12:19:18
475
原创 systemtap打印accept的进程pid和对应的socket套接字(嵌入c的使用)
#probe kernel.function("unix_accept")%{#include <net/sock.h>#include <net/af_unix.h>%}function _unix_path:long(sock:long)%{ struct socket *sock = (struct socket *)(long) ST...
2019-08-23 17:46:33
704
原创 systemtap监控所有进程的收发包情况(数组的使用)
global recv, xmit probe begin { printf("Starting network capture...Press ^C to terminate\n") } probe netdev.receive { recv[dev_name, pid(), execnam...
2019-08-23 17:44:41
546
原创 systemtap打点方法
CentOS/RedHat发行版使用yum安装下列rpm包即可:systemtap:SystemTap包gcc:c语言编译器elfutils:提供库函数来分析调试信息kernel-devel:编译内核模块所需的内核头文件及模块配置信息kernel-debuginfo:提供所需的内核调试信息来定位内核函数和变量的位置使用一些例子SystemTap的简单例...
2019-08-23 17:43:19
770
原创 VSZ、RSS、Pss的区别和含义
ps aux命令的VSZ和RSS项:VSZ:指的是进程内存空间的大小,并不代表进程真正用到的内存,因为有些空间会仅在页表中挂个名,也就是说只是虚拟存在着,只有真正用到的时候内核才会把虚拟页面和真正的物理页面映射起来。比如,(malloc或mmap的调用),由于程序中并没有用到这些内存,没有物理内存被分配,也就不应算到进程的帐上。RSS:(resident set size)表示常驻内存的大小,但是...
2019-08-23 17:39:23
13725
原创 统计系统所有进程总共占用多少内存
常见误解: ps aux 命令显示的 RSS 列来统计全部进程总共占用的物理内存大小,这是不合理的。RSS(resident set size)表示常驻内存的大小,但是由于不同的进程之间会共享内存,所以把所有进程RSS进行累加的方法会重复计算共享内存,得到的结果是偏大的。正确的方法: 累加 /proc/[1-9]*/smaps 中的 Pss 。/proc/&l...
2019-08-23 17:38:08
1747
原创 配置vmcore通过ssh转储到其他主机的方法
1.配置/etc/kdump.conf修改以下二项: 1)ssh root@xx.xx.xx.xx (vmcore会被scp到目的端的/var/crash目录) 2)core_collector 增加 -F 选项,否则,kdump无法启动(具体为:core_collector makedumpfile -l -F --message-level 1 -d 31)2.执行kdum...
2019-08-22 14:06:54
402
原创 主机串口配置
grub 加上,console=ttyS0,115200 console=tty0(或者修改/etc/grub2.cfg)好像需要重启生效;调试机器上用minicom或者串口工具;
2019-08-19 19:32:56
525
linux-4.0.tar.gz
2019-09-08
linux-3.10.tar.gz
2019-09-08
kvm实战与原理解析(任永杰)
2019-04-16
linux内核源码剖析-TCPIP实现上下册合集-樊东东著(高清版)
2018-10-16
isic依赖库libnet
2018-09-30
协议栈稳定性测试工具
2018-09-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人