Linux内核网络数据包发送(三)——IP协议层分析
Linux内核网络 UDP 协议层通过调用 ip_send_skb 将 skb 交给 IP 协议层,本文通过分析内核 IP 协议层的关键函数来分享内核数据包发送在 IP 协议层的处理,并分享了监控IP层的方法。
电子杂志第二期——I386的体系结构(下)
上半期我们一起学习了 I386 体系结构,下半期我们的主要目标是实现一个能启动而且可以进入保护模式的简易操作系统。所以本期首先来分析一下计算机的启动流程,然后着手学习开发一个基于 I386 体系的可启动系统。
CMA机制
当一些设备需要使用大块连续物理内存时,可以比较容易的申请到,而当这些设备不工作时,这些内存又可以当做普通的内存那样被系统其他模块申请使用。引入CMA就是为了解决这个问题的,定义为cma区域的内存,也是由操作系统来管理的,当一个驱动模块想要申请大块连续内存时,通过内存管理子系统把CMA区域的内存进行迁移,空出连续内存给驱动使用;而当驱动模块释放这块连续内存后,它又被归还给操作系统管理,可以给其他申请者分配使用
Ubuntu下bpf纯c程序的编写与运行
编写纯c的bpf程序主要编写或修改三个文件。第一个是编写bpfname_kern.c文件,这是需要被llvm编译为目标码而注入内核的代码。第二个是编写bpfname_user.c文件,它主要用来将目标码安全的注入内核,并通过bpf的map机制来做数据处理,是和bpfname_kern.c文件成对出现的。第三个就是修改Makefile文件,一般要修改三处,详细文中可见。最后编译生成可执行文件,就可在用户态下安全和高效的提取和处理很多内核数据。
Linux内核网络数据包发送(二)——UDP协议层分析
本文分享了Linux内核网络数据包发送在UDP协议层的处理,主要分析了 udp_sendmsg 和 udp_send_skb 函数,并分享了UDP层的数据统计和监控以及socket发送队列大小的调优。
linux中对Task_struct结构体的注释
本文主要对linux内核中的task_struct结构体进行成员的分析,主要包括调度的数据成员、进程队列指针、进程标识、进程队列的全局变量等13个部分。