Linux底层原理
文章平均质量分 67
一个小白程序员
这个作者很懒,什么都没留下…
展开
-
Linux TCP三次握手
内部机制原创 2023-11-08 23:21:42 · 87 阅读 · 1 评论 -
Linux网络发送消息
_igb_open调用相关的函数分配了所以的RingBuffer(包括传输和接收队列)APP 调用send函数会触发系统调用,系统调用将数据拷贝到内核空间进入协议栈。服务器的网卡是支持多个队列的,每一个队列都是一个RingBuffer表示。CPU接收到中断请求后,清理RingBuffer区。经过协议栈处理后,进入到RingBuffer。网卡在启动的时候就会初始化分配相关的队列。数据发送完成后,还需要释放缓存队列。发送完成后,触发中断通知CPU。接着调用协议栈相关函数进行处理。最终调用驱动程序发送。原创 2023-11-08 23:12:38 · 122 阅读 · 1 评论 -
Linux内核进程创建
vfork是一种创建子进程的方法,它与fork系统调用类似,但区别在于子进程在执行过程中会与父进程共享相同的地址空间,直到。父进程可以通过设置一个信号处理函数来捕获这个信号,并执行相应的操作,例如回收子进程的资源或者对子进程的退出状态进行处理。总的来说,这三个系统调用虽然都能创建新的进程或线程,但各自有着不同的用途和行为方式。都是Unix标准的用于复制进程的系统调用,这些系统调用在Linux和BSD等操作系统中得到了实现。最后,clone是Linux特有的系统调用,它提供了最大的灵活性和控制力,可以。原创 2023-11-02 23:28:01 · 81 阅读 · 0 评论 -
IPtable原理
IPTable原创 2023-04-18 00:13:03 · 374 阅读 · 0 评论 -
虚拟文件系统(VFS)
Linux虚拟文件系统原创 2023-04-11 23:03:53 · 1115 阅读 · 1 评论 -
epoll底层原理
epoll执行分为两个部分1. 用户进程的内核态:进行调用epoll_wait等函数的时候会陷入内核态来执行。这里只负责查看接收队列和是否将当前进程阻塞掉,让出CPU2. 下游数据部分即中断上下文:当网卡数据到来的时候内核会进行协议栈的处理,然后将这些数据放到socket的接收队列当中,对于epoll来说,再找到seocket关联的epitem,并且将它添加到epoll对象的就绪链表里面,再检查一下epoll是否有被阻塞的进程,有就唤醒它。原创 2023-04-11 22:54:59 · 245 阅读 · 1 评论