摘要: 内核版本:linux 2.6.11 本文对Linux网络子系统的收发包的流程进行一个大致梳理,以流水账的形式记录从应用层write一个socket开始到这些数据被应用层read出来的这个过程中linux的网络子系统怎么运作的。 PS:不能保证所有内容都是正确的,同时欢迎指出问题。 发包流程 1)用户 阅读全文
posted @ 2016-08-05 20:42 jas0ns 阅读(1323) 评论(0) 推荐(0) 编辑
摘要: 在我的早期印象中,C++这门语言是软件工程发展过程中,出于对面向对象语言级支持不可或缺的情况下,一群曾经信誓旦旦想要用C统治宇宙的极客们妥协出来的一个高性能怪咖。 它驳杂万分,但引人入胜,出于多(mian)种(shi)原因,我把它拿出来进行一次重新的学习。 这篇笔记从G++编译出的汇编代码出发,对部 阅读全文
posted @ 2016-04-04 09:53 jas0ns 阅读(3249) 评论(0) 推荐(0) 编辑
摘要: 内核版本:linux 2.6.11 文件描述符(file descriptor)在Linux编程里随处可见,设备读写、网络通信、进程通信,fd可谓是关键中的关键。 深入理解可以增加我们使用它的信心。 该篇笔记主要解释了文件描述符底层的多态实现和文件描述符的生命周期。希望对自己和大家有所帮助。 先看三 阅读全文
posted @ 2016-01-07 16:11 jas0ns 阅读(6302) 评论(0) 推荐(2) 编辑
摘要: 内核版本:linux 2.6.11 Linux在加载一个可执行程序的时候做了种种复杂的工作,内存分配是其中非常重要的一环,作为一个linux程序员必然会想要知道这个过程到底是怎么样的,内核源码会告诉你这一切。 线性区 一个可执行程序,是经过编译器处理后的遵守一定规则的数据、符号表和指令序... 阅读全文
posted @ 2015-11-26 21:20 jas0ns 阅读(4062) 评论(0) 推荐(1) 编辑
摘要: webdav不识别软链接?解决办法? 在使用webdav实现公网存储共享的时候,发现webdav并不支持软链接的共享,如下源代码可以100%确定这个问题 然而实验室平台的存储目录都是使用软链接组织在一起的,这个问题将导致公网上挂载存储目录的时候看不见一些很重要的目录。 (使用apa... 阅读全文
posted @ 2015-11-17 14:44 jas0ns 阅读(1041) 评论(0) 推荐(0) 编辑
摘要: 由于实验室产品的监控模块的需求,需要绕过zabbix的验证模块,实现从二级平台到zabbix的无缝接入。测试发现,zabbix的身份验证并不是想象的那么简单,为了实现功能,遂进行源码分析。 zabbix常规登陆验证流程:分析 中的login和logout可以了解到zabbix的常规验证流程。主要逻... 阅读全文
posted @ 2015-11-05 16:01 jas0ns 阅读(6107) 评论(0) 推荐(0) 编辑
摘要: 内核版本:linux 2.6.11 在Linux中,有多种执行体(指令流、执行单位),它们是CPU调度和分配资源的基本单位,它们是内核态可见的,即内核态下,每一种执行体都有对应的唯一数据结构 来存储它的执行上下文。 它们分别是进程、轻量级进程、内核线程,创建一个执行体的方法是基于调用 函数并指定 参 阅读全文
posted @ 2015-09-24 21:12 jas0ns 阅读(1342) 评论(0) 推荐(0) 编辑
摘要: 内核版本:linux 2.6.11 内存区和内存对象伙伴系统是linux用于满足对不同大小块内存分配和释放请求的解决方案,它为slab分配器提供页框分配请求的实现。<br 如果我们需要请求具有连续物理地址和任意长度的内存单元序列时,即不定大小的 内存区 时,则需要在伙伴系统之上提供一层更细粒度的管... 阅读全文
posted @ 2015-09-19 19:34 jas0ns 阅读(2023) 评论(0) 推荐(0) 编辑
摘要: 内核版本:linux 2.6.11 伙伴系统伙伴系统是linux用于满足对不同大小块物理内存分配和释放请求的解决方案。 内存管理区linux将物理内存分成三个内存管理区,分别为 `ZONE_NORMAL ZONE_HIGHMEM`,并使用三个管理区描述符管理这三个ZONE。<br 管理区描述符里,... 阅读全文
posted @ 2015-09-12 14:57 jas0ns 阅读(1923) 评论(0) 推荐(0) 编辑