170713_SPECIAL_DAY

本文作者是一名Java开发者,通过自身经历讲述了理解Linux EPOLL机制的重要性,并分享了从困惑到逐渐掌握的过程。作者强调,要深刻理解EPOLL,需要具备一定的硬件设备操作知识,特别是驱动程序开发的相关背景。

12年毕业开始做java开发。
13年-15年做了两年的cobol开发
15年至今17年07月做java开发

曾经对EPOLL非常非常非常的困惑,各种博客部分讲使用,部分讲原理。    

虽然讲的都是人话,贴的非常详细,都说到了等待队列,说到设备,说到回调,但是自己的理解并不是深刻的。然后有些给了代码片段,自己去搜索相关的东西,猛看代码片段。。。然后就不明觉厉了,看似明白了,其实讲不出来,也不知道讲什么。

多少个日夜,一直想着怎么去搞懂明白一点,不断的看博文,对比博文,最后的出结论:什么破fd,node,这些都是数据结构呀,然后又停滞不前了。 

后来发现自己读书少,要不去看看书吧:《linux-kernel》,《深入理解Linux内核(英文版)》,《Linux TCP IP 协议栈分析》,《程序员的自我修养—链接、装载与库》,甚至《Redis设计与实现》及淘宝的nginx的开源分享内容:http://tengine.taobao.org/book/,同时也dowload了Linux0.11的源码,redis-3.0.0源码, nginx-0.5.38源码。。。尝试去分析分析源码。

总之,凡是有可能让我去了解EPOLL,了解IO的开源东东,都想去看看,只希望有作者直接写明:FD是什么东西,EPOLL到底是什么。可惜没有任何一本书能够看完,过程也非常难过。尤其是kernel,tcp/ip这类书,书中一贴代码,下面边讲解边注释。真的是看不下去啊啊啊啊。。。。有没有同感的同学。

至此,告诫和我有同样困惑的同学,你们的路有些偏了。 

我很想了解EPOLL,道理很简单和直接,我是java程序员,我有使用dubbo,它内置netty,对于开源java系框架来讲,说到底是大部分都是调用c的系统函数库,直到内核Linux EPOLL,对于nginx更不用说,一样的道理,一样c的系统调用。 

重点来了:我不会讲什么重要的理解呀,重要的概念啥的,这些东东,大牛,小牛们都讲的很多也很明白,只是我们理解不了。今天我想说的是:一直都没有或者不能准确的理解,那是因为我们还差一样技能。那就是:硬件设备操作。说白了,就是驱动程序。 因为我本身是应用开发人员,之前的理解(关于底层设备那块)没能仔细了解,靠想象。。。明白么,靠想象呀,我的哥,对驱动,硬件的理解,我的认知停留在五年前的大学课堂。。。这要让我怎么去理解kernel进行io操作????!!!!,怎么能够去理解内核启动地址映射问题,镜像拷贝,MMU,VFS。

SO结论:赶紧去找点驱动开发的东东学学,例如ARM嵌入式开发,看的过程中,会给你补上大量你曾经视乎看懂的知识点。 反过来,回头去看那些各个关于epoll的博文。。。你的内心肯定是:呵呵呵!!!

贴两个相关的链接,这两个链接不重要(虽然是大牛的帖子。。。):
http://oldblog.donghao.org/2009/08/linuxiapolliepollaueouaeaeeio.html
https://idndx.com/tag/epoll/
记住重点是底层的驱动,能够理解数模电路更好。。。!!!

 

转载于:https://my.oschina.net/u/2402049/blog/1359415

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值