本文作者:ptiyny

linux内核协议栈学习 linux内核协议栈数据结构图

ptiyny 08-11 22
linux内核协议栈学习 linux内核协议栈数据结构图摘要: 大家好,今天小编关注到一个比较有意思的话题,就是关于linux内核协议栈学习的问题,于是小编就整理了5个相关介绍linux内核协议栈学习的解答,让我们一起看看吧。linux内核面试...

大家好,今天小关注到一个比较有意思的话题,就是关于linux内核协议栈学习的问题,于是小编就整了5个相关介绍内核协议栈学习的解答,让我们一起看吧。

linux内核协议栈学习 linux内核协议栈数据结构图
(图片来源网络,侵删)

linux内核面试必背知识点?


1 必须掌握的知识点包括、线程、文件系统、内存管理、网络协议栈等方面的知识。
2 因为Linux内核是负责管理和控制硬件资源的核心部分,所在面试过程中,面试官通常会重点考察面试者对于内核的理解和掌握程度。
3 此外,在面试过程中,还可能会涉及到一些实际应用场景和具体问题,因此需要对一些常见的问题和解决方案有所了解和掌握。
例如,如何调试内核崩溃、如何对内核进行优化等问题。

dpdk可以做出什么产品?

dpdk可以做出网络模块

DPDK应用程序是运行在用户空间利用自身提供的数据平面库来收发数据包,绕过了Linux内核协议栈对数据包处理过程。

Linux内核将DPDK应用程序看作是一个普通的用户态进程,包括它的编译、连接和加载方式和普通程序没有什么两样。

linux内核协议栈学习 linux内核协议栈数据结构图
(图片来源网络,侵删)

网络模块,传统Linux网络层数据包流程:硬件中断—>向内核线程分发数据包—>软件中断—>线程在协议栈中处理数据包—>通知用户层—>用户层接收数据包—>网络层—>逻辑层—>业务层。

dpdk框架详解?

dpdk (数据平面转发工具),为 Intel 处理器架构下用户空间高效的数据包处理提供了库函数和驱动的支持,数据包的控制层和数据层分开,dpdk绕过linux内核协议栈将数据包的接受处理放到应用层。

DPDK拦截中断,不触发后续中断流程,并绕过协议栈,通过UIO技术将网卡收到的报文拷贝到应用层处理,报文不再经过内核协议栈,减少了中断。

TCP/IP协议详解学习?

第一阶段:先了解七层模型,然后看一下CCNA/NP的教学视频和书籍,对网络模型有初步了解。

linux内核协议栈学习 linux内核协议栈数据结构图
(图片来源网络,侵删)

第二阶段:可以去看看《TCP/IP详解卷一》,讲基础。

第三阶段:学习一些理论知识,最好的还是机械工业出版社出版的《计算机网络,自顶向下网络设计》和《计算机网络,系统方法》。

第四阶段:看《TCP/IP详解卷二》,讲Unix TCP/IP协议栈设计。

第五阶段:看Linux 内核源码network部分。以上都是关于TCP/IP的知识点,不包括广域网技术和其他的接入网技术等。

Linux内核中哪个部分最复杂,能否给出一个复杂度排名?

Linux中最复杂的模块,我觉得按复杂度可以分为如下几种:

<strong>N01:网络通信

Linux网络通信模块首先需要实现各种网路协议栈,IPV4、IPV6、MAC8021、无线WIFI、有线ethernet等,首先看懂这些都是一个很难完任务

No2:进程调动

Linux进程调度的优先级策略、进程调度的算法、进程的睡眠唤醒都会直接影响一个操作系统的好坏,这直接影响你的手机或平板系统的卡顿,功耗。Linux的进程调度系统可以说很优秀的,目前安卓手机底层都是基于Linux系统的。

No3:内存管理

Linux 物理内存、虚拟内存,用户空间和内核空间,这些地址映射和实现 看起来都让人崩溃。

No4:硬件子模块抽象话

Linux系统是开源可移植的,为什么可移植。因为Linux系统将硬件模块底层的驱动框架全部抽象成一个个子系统,代码都是重复可迭代的。每一个硬件模块的驱动都根据统一的框架和接口来实现,这样就能实现平台的可移植性。想想硬件模块那么多种类、那么多类型,实现这个框架还是比较需要功力的。

No5:文件管理系统

Linux是基于文件的系统,把设备(硬盘、软驱、光驱等)都看作文件,文件夹也看作文件。

文件与文件的关系、文件的挂载,通过文件来驱动底层硬件,这都是比较复杂的系统。


以上就是Linux中最复杂的几个模块,当然还有其它很多复杂的模块,可以一起交流一下了!

到此,以上就是小编对于linux内核协议栈学习的问题就介绍到这了,希望介绍关于linux内核协议栈学习的5点解答对大家有用。

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享