Linux
发布时间:2015-02-06 21:04:04
很久没更新了,最近涉及Linux协议栈的工作,再梳理一下点击(此处)折叠或打开SYSCALL_DEFINE3(connect, int, fd, struct sockaddr __user *, uservaddr, int, addrlen){ stru.........【阅读全文】
发布时间:2015-02-03 17:57:49
打算用packetdrill测点东西,从https://code.google.com/p/packetdrill/下载源码后,进行安装。根据README,安装过程是很简单的,不过解压源码后先需要把configure设置为可执行权限, configure判断当前的系统类型然后建立Makefile的软连接指向对应类型的Makefile.Linux/Makefile.FreeBSD等。./configure && makemake.........【阅读全文】
发布时间:2015-02-01 14:48:55
LVS简介 LVS是Linux Virtual Server的简称,即Linux虚拟服务器,官网是http://www.linuxvirtualserver.org/。目前已经合入Linux Kernel主干版本,旨在利用集群负载均衡和Linux OS实现一个高性能、高可用的服务器,具有良好的可靠性、可扩展性和可管理性。LVS集群由三部分组成,如下:l Load B.........【阅读全文】
发布时间:2015-01-18 23:22:56
上一篇回收slab对象时,先考虑放入local cache,当local cache已超过上限时,尝试放入shared cache。否则从local cache中批量释放batch_count对象放入slab三链。当slab三链的空闲对象超过上限,并且待释放的slab对象对应的slab中已经没有正在使用的对象时,将slab直接释放掉。释放slab对应的函数是slab_destroy,下面分.........【阅读全文】
发布时间:2015-01-18 22:09:14
我们的分析顺序是初始化、创建cache、申请对象、申请对象时会涉及创建slab、释放对象、释放对象时会涉及释放slab、销毁cache。前面已经介绍到了创建slab,本节分析一下释放对象,有两个入口kfree和kmem_cache_free,由于两者实现的本质相同只是对外体现为了两个API,这里放在一起梳理一下,下面分析一下代码。.........【阅读全文】