Blogs

Linux内核网络设备驱动

由 梁金荣 | 5800字 | 阅读大约需要12分钟 | 归档于内核网络

2020年8月17日

本文首先从宏观上介绍数据包的接收过程,然后详细介绍了Linux网络设备驱动的工作过程,最后介绍网卡监控与调优,包括网络数据包总数、丢包、错包数量的相关统计。

继续阅读

孙张品_常见IO模型_0817

由 孙张品 | 1500字 | 阅读大约需要3分钟 | 归档于文件系统

2020年8月17日

一起来看一下常见的IO模型(缓冲IO,非缓冲IO,直接IO,间接IO,阻塞IO,非阻塞IO)以及它们之间的区别与联系。

继续阅读

虚拟机中GUEST OS时钟(TIMEKEEP)问题的探讨

由 作者:康华 编辑:张孝家 | 5900字 | 阅读大约需要12分钟 | 归档于经验交流

2020年8月11日

操作系统的时钟处理按理来说应该是个早已成熟的技术,不必再费口舌讨论什么。事实也的确如此。然而在虚拟环境下(不仅仅是xen,vmware这些虚拟机),对时钟的处理可绝非轻而易举,如果你耐心看看你虚拟环境下运行的guest操作系统,如linux/windows等,往往用眼睛就可发觉其wall clock走的不是那么的准确,有些飘忽,时快时慢. 如果你运行某些性能测试工具,也会发现测试数据忽高忽低。这是为什么呢? 怎么解决呢? 本文就该问题进行一些初步探讨.

继续阅读

Linux内核网络丢包监控

由 梁金荣 | 800字 | 阅读大约需要2分钟 | 归档于内核网络

2020年8月11日

熟悉数据包的接收流程,有助于帮助我们明白在内核哪些地方可以监控和修改数据包,帮助我们明白什么情况下数据包可能会被丢弃等。本文先简单介绍数据包的收包流程,然后使用dropwatch工具收集并查看Linux内核网络中丢包的数量和位置,使用perf监控Linux内核网络丢弃的数据包。

继续阅读

TCP超时重传定时器

由 作者:张孝家 | 2500字 | 阅读大约需要5分钟 | 归档于内核网络

2020年8月11日

本篇文章主要介绍定时器的创建、删除、激活和超时处理回调函数等内容,不介绍关于RTO和RTT的计算(后期的文章在补充),使用的内核版本为4.15

继续阅读

实时和Linux之二:抢占式内核

由 作者:康华 编辑:崔鹏程 | 6700字 | 阅读大约需要14分钟 | 归档于经验交流

2020年8月9日

本文继上一篇文章,继续介绍了实时和Linux,本文是第二篇文章,共三篇。本文主要介绍了抢占式内核,包括背景和历史,改进,保证等等。

继续阅读

tcp连接延时

由 作者:张孝家 | 1600字 | 阅读大约需要4分钟 | 归档于内核网络

2020年8月3日

本篇文章介绍tcp连接的三次握手和套接字状态转换,以及基于ebpf的tcp连接延时的提取。

继续阅读

实时和Linux(1)

由 作者:康华 编辑:张孝家 | 7900字 | 阅读大约需要16分钟 | 归档于经验交流

2020年8月3日

本文着重讨论实时应用程序的本质特性和Linux对于运行这类任务的优势和不足。以后的文章中,我将向大家介绍采用那些方法可以使实时任务满足硬实时要求。多数方法都是针对Linux内核而言,但是有时也会用到GUN C库等。

继续阅读

使用eBPF&bcc提取内核网络流量信息(二)

由 梁金荣 | 3300字 | 阅读大约需要7分钟 | 归档于eBPF

2020年8月3日

使用eBPF&bcc提取内核网络流量信息(一)已经将流量信息提取出来,本文将通过分析内核源码,扩展此bcc,为其增加源地址、源端口、目的地址、目的端口等字段。

继续阅读

linux内核空间与用户空间信息交互方法

由 作者:康华 编辑:梁金荣 | 8000字 | 阅读大约需要16分钟 | 归档于linux

2020年8月2日

在进行设备驱动程序,内核功能模块等系统级开发时,通常需要在内核和用户程序之间交换信息。Linux提供了多种方法可以用来完成这些任务。本文总结了各种常用的信息交换方法,并用简单的例子演示这些方法各自的特点及用法。其中有大家非常熟悉的方法,也有特殊条件下方可使用的手段。通过对比明确这些方法,可以加深我们对Linux内核的认识,更重要的是,可以让我们更熟练驾御linux内核级的应用开发技术。

继续阅读