![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux开发技术
文章平均质量分 65
qq_21880279
这个作者很懒,什么都没留下…
展开
-
TCP常见问题FAQ
说明:1).本文以TCP的发展历程解析容易引起混淆,误会的方方面面2).本文不会贴大量的源码,大多数是以文字形式描述,我相信文字看起来是要比代码更轻松的3).针对对象:对TCP已经有了全面了解的人。因为本文不会解析TCP头里面的每一个字段或者3次握手的细节,也不会解释慢启动和快速重传的定义4).除了《TCP/IP详解》(卷一,卷二)以及《Unix网络编程》以及Linux源代码之外,转载 2015-07-02 18:35:00 · 490 阅读 · 0 评论 -
保存dmesg 信息到文件源码
#include #include #include #include #include //#include //内核编译的配置信息 #include #include //#define __LOG_BUF_LEN (1 << CONFIG_LOG_BUF_SHIFT)//在2.6.28内核中为默认1<<17,这才是真正dmesg buffer的大小,网上其他都扯淡。 #define __LO转载 2015-07-01 17:48:23 · 2033 阅读 · 0 评论 -
Linux内核软RPS实现网络接收软中断的负载均衡分发
例行的Linux软中断分发机制与问题Linux的中断分为上下两半部,一般而言(事实确实也是如此),被中断的CPU执行中断处理函数,并在在本CPU上触发软中断(下半部),等硬中断处理返回后,软中断随即开中断在本CPU运行,或者wake up本CPU上的软中断内核线程来处理在硬中断中pending的软中断。 换句话说,Linux和同一个中断向量相关的中断上半部和软中断都是在同一个C转载 2015-07-02 09:32:27 · 516 阅读 · 0 评论 -
线程同步问题实例
1.有一个队列,线程1负责从网络接收分组,并将收到的分组放到队列尾,然后再次从网络中接收下一个到达的分组,并进行同样的队列操作。线程2从此队列头中取出一个分组进行处理,处理完毕后,再次从队列中取出一个分组进行处理,处理完毕后再次从队列头取出下一个分组进行处理,两个线程都以无限循环的方式工作,因此该队列为临时资源,若队列不为空,线程2才应该开始循环处理,否则需要等待,显然如果线程2不停的检测队列是否转载 2015-09-22 13:00:44 · 270 阅读 · 0 评论 -
通过两次fork避免产生僵尸进程
僵尸进程产生的原因是父进程没有处理子进程的退出信息,导致子进程退出后因zombie结构没有及时释放而变成了僵尸进程,为避免该问题的产生,建议采用fork两次的方案。进程关系为:爷爷->父亲->孙子。方案分析: 之所以会产生僵尸进程,是因为在进程后终止,除了回收分配到的内存和资源外,还要保留一部分信息供感兴趣者使用,一般是父进程。但是,如果在子进程退出后,父进程没有处理子进原创 2015-10-13 18:03:17 · 813 阅读 · 0 评论 -
netlink通信机制分析
Netlink 是一种特殊的 socket,它是 Linux 所特有的,类似于 BSD 中的AF_ROUTE 但又远比它的功能强大,目前在最新的 Linux 内核(2.6.14)中使用netlink 进行应用与内核通信的应用很多,包括:路由 daemon(NETLINK_ROUTE),1-wire 子系统(NETLINK_W1),用户态 socket 协议(NETLINK_USERSOCK),防火转载 2015-10-16 11:06:50 · 309 阅读 · 0 评论