![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux内核
yehuiliusu
这个作者很懒,什么都没留下…
展开
-
追踪libevent-0.5
BBBc 首先在libevent.org下载libevent-0.5,解压找到event/下的test程序,打开源码 test-eof.c找到main中与目标函数相关的程序,首先是socketpair(),套接字相关,继续追,wirte()系统函数,继续追踪,找到第一个相关函数 event_init(); 程序注释启动event函数库,找到头文件event.h在其中找到该函数相关定义,找到原创 2016-08-27 13:01:37 · 451 阅读 · 0 评论 -
samlinkage限定词的作用
BBBc asmlinkage强调了系统调用从堆栈中获取参数,摒弃从寄存器获取参数这种高效高速的办法,在syscall时,参数都是通过寄存器传递的,但是在内核态中,参数是从栈中读取的,所以将寄存器的copy压栈,既保证了用户态时寄存器读取参数的标准,也保证了内核态的参数传递标准。 系统调用时,即发生了用户态向内核态的切换,此时需要将用户态的esp等栈指针传递进内核态,由于用户栈(级别0)和内核原创 2016-08-24 13:02:10 · 242 阅读 · 0 评论 -
内核链表中的container_of和list_entryg
BBBc 最近一直在读LINUX内核设计与实现,之前自己用C写过单链表的实现,读到第六章内核数据结构时,大感亲切,不似前章晦涩。内核链表结构的所有操作只接受list_head类型的数据作为参数,并依靠list_entry来完成链表的各种管理,读到这里,我想起第三章进程管理中current宏获取当前进程tpid(因为线程组号tpid和进程pid相同)中,在遍历进程时用到的list_entry获取下原创 2016-08-25 10:10:27 · 467 阅读 · 0 评论 -
list_entry头文件无法使用
BBBc: 今天在尝试用list_head结构体和list_entry写一个链表测试程序时,发现头文件无法读取。 首先我通过命令:find / -name list.h查找到list存在的位置,追踪进去确实发现了list_head的定义,在补全路径的情况下仍无果。 然后通过命令:grep list_head ./ -R查找list_head出现的位置及使用方式,但仍无果。 后来在论坛发现内原创 2016-08-25 15:39:41 · 1102 阅读 · 0 评论