![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux内核
rocfu
钻研技术爱游戏屌丝一枚
展开
-
PROC的实现
挂载在/PROC,通过特殊文件系统的形式提供内核数据的接口。对该文件系统中文件的读写操作是映射到PROC读写操作,可能的一种实现是根据文件路径名标识内核数据或者是构建类似于register_sysctl_table表的结构(对应/proc/sys)。一般只能对文件读写,对该文件系统中的文件创建和删除可以通过内核模块调用相关函数的方法来实现。-----原创 2013-05-16 15:30:10 · 666 阅读 · 0 评论 -
POLL/EPOLL的实现剖析
参考自:http://blog.csdn.net/21aspnet/article/details/2627662?reload#reply 里面有源码的详细剖析。POLL实现剖析:sys_poll()首先设置关键数据结构struct poll_wqueues中的回调函数poll_wait(用来将current加入到每个fd对应的等待队列中)。接着kmalloc()获得存储原创 2013-05-15 23:17:12 · 697 阅读 · 0 评论 -
管道,FIFO的实现
管道: 利用inode里面的i_pipe指向的pipe_inode_info结构来表示管道的特殊信息(缓冲区,等待队列,当前待读数据信息等),相关的VFS对象被组织为pipefs特殊文件系统以加速它们的处理。 pipe()创建管道,在pipefs中分配新的索引结点并初始化,初始化pipe_inode_info结构。分配一个只读文件对象和一个只写文件对象, 它原创 2013-05-16 14:59:09 · 853 阅读 · 0 评论 -
文件映射,共享内存的实现
文件映射: mmap()实际上是一个vma的创建过程,分配进程线性区来映射打开的文件,把对文件的读写转为对内存的读写,在频繁移动指针读写文件的时候,读写效率有很大的提高。 mmap()函数会调用特定文件系统的mmap(),全部执行之后,线性区结构vm_area_struct的vm_file指向映射文件的文件对象,vm_pgoff指向映射文件中的偏移,vm_ops指向相应的线性区原创 2013-05-16 15:25:41 · 688 阅读 · 0 评论