系统调用
ruthless_killer
good
展开
-
socket系统调用
从别人那里看,一边翻源码。总结的socket的系统调用,主要是参考大神的 Socket系统调用对应的内核函数为: asmlinkage long sys_socket(int family, int type, int protocol) { int retval; struct socket *sock; /* 根据协议族、套口类型、传输层协议创建套口 *转载 2017-07-29 16:38:27 · 812 阅读 · 0 评论 -
系统调用过程
系统调用: 每个系统调用都通过lib库体现。每一个系统调用在lib库中一般是一个宏syscallX(),X是具体某个调用的数字参数。 有的系统调用更复杂,因为它们有可变 的参数列表,但它们仍用一样的入口指针。 当syscall()被调用后,并没有任何的系统代码被执行,直到syscall()调用了int 0x80 ,中断0x80 把调用 (控制)传给核心入口地址中的_s原创 2017-07-20 14:31:16 · 238 阅读 · 0 评论 -
fork系统调用过程
又是查找资料,又是看源码,折腾了大半天,终于把fork的过程弄完了,但是后面的跟踪状态还不太懂,等具体后面弄清楚了,再加上。内核是2.6.11版本的。fork()系统调用:我们运行一个系统调用时,系统将调用宏指令_syscall0 #define _syscall0(type,name) \ type name(void) \ { \ register long原创 2017-07-19 18:25:23 · 956 阅读 · 0 评论 -
epoll详解
ET模式实现分析 1.1 ET和LT的实现区别 注:上图的poll不要理解成和select相似那个poll,这是通过epoll_ctl调用的。 下面简要分析一下epoll的工作过程: (1) epoll_wait调用ep_poll,当rdlist为空(无就绪fd)时挂起当前进程,知道rdlist不空时进程才被唤醒。 (2) 文件fd状态改变(buffer由不可读变为可读或由不可写变为可转载 2017-07-29 18:11:45 · 377 阅读 · 0 评论