首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux内核书籍

Linux设备驱动》   --  也就是我们所说LDD3了; 适合一定基础的人阅读,深入学习Linux不可或缺知识; 《UNIX环境高级编程》 这本书并不是面对linux内核书,但是我是从最基础看这本书逐步入门...; 《Linux内核完全剖析》 本书对早期Linux内核(v0.12)全部代码文件进行了详细、全面的注释和说明,旨在帮助读者用较短时间对Linux工作机理获得全面而深刻理解,为进一步学习和研究Linux...虽然选择版本较低,但该内核已能够正常编译运行,并且其中已包括了Linux工作原理精髓。...《Linux那些事》 由复旦一群大神所写,团队为fudan_adc,主要写了我是xxx系列,本人比较喜欢对USB 部分描述,不得不说大神就是大神。...《Linux设备驱动开发详解》 由华清远见出身大神所写,宋宝华大神所写,华清远见出来技术杠杠。 《深入理解计算机操作系统》 当然啦,不得不说大学学过操作系统啊!!!!

3.7K60

Linux网络编程书籍

linux就是受其影响。。。。 ? 第五版是2012年出,也比较新。...写非常好,建议一定要买!可作入门,但即使是高手,也应看看,学习作者分析问题方法和思想。其实是无数次印刷了,经典不能错过。...本书称不上非常通俗,但是在有一定基础情况下还是比较容易看懂。本书是世面上极少见讲述内部网关路由技术经典书籍,内容极为丰富。...网络体系结构:linux内核中网络协议设计与实现》 ?...一本在kernel实现网络功能基础书籍,最好还是看英文版,翻译实在太烂了。有条件还是看原版吧,没办法啊,中国此类书籍基本上落后老美3-4年。结合linux源代码分析一书收获更多。

3.4K30
您找到你想要的搜索结果了吗?
是的
没有找到

Linux epoll 源码分析 3

在上一篇文章 Linux epoll 源码分析 2 中,我们分析了 epoll_ctl ep_insert 方法,在这里我们继续看下 ep_remove 和 ep_modify 方法。...struct file *file = epi->ffd.file; ... // 将epitem从tcp socket事件变动通知队列中移除 ep_unregister_pollwait...return 0; } 该方法逻辑和ep_insert方法里逻辑比较像,它先覆盖epitem中epoll_event旧值,然后检查该文件当前已经就绪事件,如果这些事件中有我们感兴趣事件,则把epitem...放到eventpollrdllist队列中,最后通知因调用epoll_wait堵塞线程,它们可以继续执行了。...至此,epoll所有逻辑都已讲完。 有关tcp在何种情况下,会通知给epoll何种事件,我们会在其他文章中详细讲解。

1.7K30

Linux tcpip 源码分析 - close

上一篇文章我们分析了shutdown方法实现,这里我们再看下close方法。...先将file->f_count字段减1,再判断该字段值是否为0,如果是,则继续执行if内逻辑。 2. 调用init_task_work方法,设置file销毁回调函数为____fput。 3....调用task_work_add方法,将销毁该文件task放到待执行任务队列中。 最终____fput方法会被回调,继续执行文件close逻辑。...,找到对应file指针,然后再调用__fput方法,传入这个file参数。...本文为了代码上简便,省略了很多内存释放逻辑。 与shutdown方法相比,close方法不仅会根据当前状态决定是否要发送fin消息,还会释放该socket涉及到一系列内存。

2.2K100

Linux tcpip 源码分析 - write

上面的文章已经分析了tcp建立整个过程,下面我们来看下write是如何实现tcp写。...// include/linux/fs.h static inline ssize_t call_write_iter(struct file *file, struct kiocb *kio,...调用这个方法第三个参数为方法msg_data_left返回值,该值为我们最开始调用write时,传入要写数据长度。...do_error逻辑大体上为,如果当前写成功字节数大于0,则正常返回当前写成功字节数,如果等于0,则调用sk_stream_error方法,获取当前应该返回给用户错误码并赋值给err,最后返回err...进入while循环,循环继续条件为当前剩余要写字节数大于0。 5. 设置copy变量值为0,该变量用于表示这次while循环可拷贝字节数。 6.

2K30

Linux内核源码分析方法

Linux内核源码分析方法 一、内核源码之我见 Linux内核代码庞大令不少人“望而生畏”,也正因为如此,使得人们对Linux了解仅处于泛泛层次。...我也是通过一个项目接触了Linux内核源码分析,从源码分析工作中,我受益颇多。除了获取相关内核知识外,也改变了我对内核代码过往认知: 1.内核源码分析并非“高不可攀”。...内核源码分析难度不在于源码本身,而在于如何使用更合适分析代码方式和手段。...这里所说一切资源是指无论是Baidu、Google大型网络搜索引擎,还是操作系统原理教材和专业书籍,亦或是他人提供经验和资料,甚至是Linux源码提供文档、注释和源码标识符名称(不要小看代码中标识符命名...目前Linux源码会把模块相关文档说明保存在源码目录documention文件夹下,如果待分析模块没有文档说明,这多少会增加定位关键源码文件难度,但是不会导致我们找不到我们要分析源码

5.2K70

Linux tcpip 源码分析 - read

之后又调用call_read_iter方法,传入这些新参数,继续执行read逻辑 // include/linux/fs.h static inline ssize_t call_read_iter...设置变量seq值,使其持有tp->copied_seq字段地址,tp->copied_seq字段用于表示下一个要拷贝给用户数据seq是多少。 4....进入while循环,该循环继续条件为len>0,即剩余要拷贝给用户数据字节数大于0。 6....当tcp层收到数据后,会将数据放到sk->sk_receive_queue队列中,等待用户读取,该部分逻辑详细分析,我们以后会另开文章详细讲解。 7....seq值,即下一个要拷贝字节位置,copied值,即已经拷贝字节数,len值,即剩余要拷贝字节数,最后,根据情况决定是否要将skb从sk->sk_receive_queue队列中移除。

3K20
领券