源代码分析
良少
资深挨踢人士,精通Python,C,Java,JavaScript,Linux内核,网络协议,虚拟化,云计算,分布式存储,kubernetes,数据仓库等技术。擅长微服务架构设计,DevOps。目前致力于以Fintech助力普惠金融。
展开
-
虚拟机活迁移揭秘
前几天有个朋友问我vmware虚拟机活迁移后台是怎样实现的。我给他讲解了KVM活迁移的原理。今天就在这里写出来分享。 vmware是闭源的,因此无从知道它的活迁移究竟是怎么做的。但是KVM的功能比vmware并不少,也实现了活迁移。Vmware的活迁移应该在原理上和KVM相同吧原创 2011-05-10 19:59:00 · 10012 阅读 · 14 评论 -
遍历Linux kernel的链表时删除元素的方法
内核的链表list_head设计相当巧妙。今天我说一下对list_head链表的遍历时如何删除元素。 链表遍历时,如果删除当前元素,一般都是会出错的。在所有语言的各种库中的链表都是如此。list_head也一样。 如,在java的遍历中删除当前元素,会原创 2011-05-05 19:10:00 · 7470 阅读 · 0 评论 -
Linux内核中链表和散列表的实现原理揭秘
inux内核的实现,大量使用了数据结构,包括了数组、链表和散列表。其中用的最多的是双向循环链表。Linux内核使用的是自己定义的链表和散列表,简单而高效,使用方法也非常的别具一格。研究Linux内核的链表和散列表对于看懂Linux内核源源代码有重要的意义。原创 2011-07-14 11:37:02 · 10116 阅读 · 7 评论 -
使用call_usermodehelper在Linux内核中直接运行用户空间程序
有时,我们的内核模块或者内核线程希望能够调用用户空间的进程,如,一个内核线程想神不知鬼不觉地偷偷运行个有特权的后门程序。call_usermodehelper函数可以让我们在内核中轻松运行用户空间程序,完成任何你想要的需求。本文介绍如何使用call_usermodehelper原创 2011-07-19 21:03:50 · 19395 阅读 · 7 评论