摘要: 1.内核中的链表 linux内核链表与众不同,他不是把将数据结构塞入链表,而是将链表节点塞入数据,在2.1内核中引入了官方链表,从此内核中所有的链表使用都采用此链表,千万不要在重复造车轮子了!链表实现定义在,使用内核链表时,包含此文件。 1.1.传统的双向链表和内核中的双向链表的区别 有个单独的头结 阅读全文
posted @ 2016-06-03 15:26 wangLinuxer 阅读(6145) 评论(0) 推荐(3) 编辑
摘要: 本文从read函数入手,主要讲述从页缓冲,一直到具体的块请求被提交给块设备驱动程序的过程,以下是本文讲述的一张概图,也是对本文的一个概括,可以结合本图,首先由一个从全局上有个清楚的认识,然后再去查看具体的代码,当然本文只是从大体流程上对页缓冲的处理流程进行分析,还有很多小的细节没有搞清楚,后面还需要 阅读全文
posted @ 2016-06-02 17:24 wangLinuxer 阅读(4051) 评论(1) 推荐(1) 编辑
摘要: 1.Linux 文件系统组成结构 linux文件系统有两个重要的特点:一个是文件系统抽象出了一个通用文件表示层——虚拟文件系统或称做VFS。另外一个重要特点就是它的文件系统支持动态安装(或说挂载等),大多数文件系统都可以作为根文件系统的叶子节点被挂在到根文件目录树下的子目录上。 1.1.虚拟文件系统 阅读全文
posted @ 2016-04-07 20:31 wangLinuxer 阅读(5947) 评论(1) 推荐(1) 编辑
摘要: 1.工作队列 工作队列是另外一种将工作推后执行的形式,它和前面的软中断以及tasklet都不相同,工作队列可以把工作推后,交由一个内核线程去执行这个下半部,但是由于是内核线程,其不能访问用户空间,最重要特点是工作队列允许重新调度甚至是睡眠。 通常,在工作队列,软中断,tasklet中做出选择非常容... 阅读全文
posted @ 2016-01-14 21:05 wangLinuxer 阅读(2318) 评论(0) 推荐(0) 编辑
摘要: 由于项目需要使用libssh2,在安装时,遇到一些问题,发现网上的都是互相抄,把自己遇到的问题,记下来,希望可以帮助到别人,自己下次使用时候,也方便查找,节约时间。 安装的流程: 1.下载源码,wget http://www.libssh2.org/download/libssh2 1.4.3.t... 阅读全文
posted @ 2016-01-11 17:24 wangLinuxer 阅读(9760) 评论(0) 推荐(0) 编辑
摘要: 1.tasklet概述下半部和退后执行的工作,软中断的使用只在那些执行频率很高和连续性要求很高的情况下才需要。在大多数情况下,为了控制一个寻常的硬件设备,tasklet机制都是实现自己下半部的最佳选择。其实tasklet是利用软中断实现的一种下半部机制。tasklet和软中断在本质上很相似,行为表... 阅读全文
posted @ 2016-01-11 11:09 wangLinuxer 阅读(3743) 评论(0) 推荐(0) 编辑
摘要: 1.内核为什么要把中断分为上半部和下半部在Linux内核中,为了在中断执行时间尽可能短和中断处理需要完成大量工作之间找到一个平衡点,Linux将中断处理程序分为两个部分:上半部和下半部。中断处理程序的上半部接受到一个中断时就立即执行,但是只做比较紧急的工作,这些工作都是在所有中断被禁止的情况下完成... 阅读全文
posted @ 2016-01-09 14:11 wangLinuxer 阅读(1591) 评论(0) 推荐(0) 编辑
摘要: 1.理解中断 中断,从字面意思理解,就是一个正在执行的东西被中断掉了。那么,其实在计算机中中断是一个复杂的处理过程。例如,当你敲击键盘的时候,键盘控制器(控制键盘的设备)会发送一个中断,通知操作系统有键被按下了。中断本质上是一种电信号,由硬件设备发向处理器,处理器接受到中断后,会马上向操作系统反映... 阅读全文
posted @ 2015-12-17 08:52 wangLinuxer 阅读(582) 评论(0) 推荐(0) 编辑
摘要: 1.预备知识 网络字节序 1.TCP/IP协议规定,网络数据流应采用大端字节序 0x12345678 小端存储:78存储在低地址 大端存储:12存储在低地址 网络字节序和主机字节序的转换 IP地址转换函数 192.168.56.101这就是一个字符串,要把这个字符串转换成32位的i... 阅读全文
posted @ 2015-11-29 09:04 wangLinuxer 阅读(552) 评论(0) 推荐(1) 编辑
摘要: 以前只是知道3次握手和4次挥手,但是对于其在连接和断开时的各个状态却不是很懂,今天就来看一下握手和挥手时的状态转换图: 1.三次握手和四次挥手时的状态转换图: 实线表示应用程序: 应用层首先发SYN的请求信号,应用层处于SYN_SENT的状态,当服务器端发送ACK应答,并且服务器端发... 阅读全文
posted @ 2015-11-28 19:04 wangLinuxer 阅读(299) 评论(0) 推荐(0) 编辑