摘要: 创建镜像、mount等操作和上一篇一样,测试目录结构如下: 一些文件系统信息如下: Block size: 1024 Inodes per group: 128 Inode size: 128 Block bitmap at 6 Inode bitmap at 7 Inode table at 8- 阅读全文
posted @ 2017-06-22 23:02 sduzh 阅读(1649) 评论(0) 推荐(0) 编辑
摘要: 源码分析网上太多了,不写了,记录简单的实践步骤: 1. 创建ext2文件镜像并映射 2. 在ext2文件系统内创建一个普通文件,方便测试 3. 用vim打开ext2-1M.img,十六进制查看(:%!xxd) 4. 查看block大小,定位各个磁盘数据结构的位置 所以超级快的地址为1 * 1024 阅读全文
posted @ 2017-06-20 23:55 sduzh 阅读(1271) 评论(0) 推荐(0) 编辑
摘要: 在通过epoll_ctl(2)向epoll中添加被监视文件描述符时,会将ep_poll_callback()作为回调函数添加被监视文件的等待队列中。下面分析ep_poll_callback()函数 1008行首先调用ep_item_from_wait()来获取到与被监视文件描述符相关联的结构体str 阅读全文
posted @ 2017-05-07 00:02 sduzh 阅读(1375) 评论(1) 推荐(0) 编辑
摘要: 考虑如下情况(实际一般不会做,这里只是举个例子): 在主线程中创建一个socket、绑定到本地端口并监听 在主线程中创建一个epoll实例(epoll_create(2)) 将监听socket添加到epoll中(epoll_ctl(2)) 创建多个子线程,每个子线程都共享步骤2里创建的同一个epol 阅读全文
posted @ 2017-05-04 23:13 sduzh 阅读(3521) 评论(0) 推荐(1) 编辑
摘要: 一、说明 针对的内核版本为4.4.10。 本文只是我自己看源码的简单笔记,如果想了解epoll的实现,强烈推荐下面的文章: The Implementation of epoll(1) The Implementation of epoll(2) The Implementation of epol 阅读全文
posted @ 2017-04-16 18:13 sduzh 阅读(14400) 评论(4) 推荐(1) 编辑
摘要: 原文How TCP backlog works in Linux水平有限,难免有错,欢迎指出!以下为翻译: 当应用程序通过系统调用listen将一个套接字(socket)置为LISTEN状态时,需要为该套接字指定一个backlog参数,该参数通常被描述为用来限制进来的连接队列长度(queue of 阅读全文
posted @ 2017-04-01 00:24 sduzh 阅读(1173) 评论(0) 推荐(1) 编辑