network / 翻译 / nw internals
Zpeg
暂无
展开
-
[翻译] understanding Linux Network internals
Copyright 版权 Preface 前言 The Audience for This Book 本书的读者 Background Information 背景知识 Organization of the Material 材料组织 Conventions Used in This Book 本书的(写作)习惯 ...翻译 2018-08-22 15:03:59 · 968 阅读 · 0 评论 -
[翻译] Chapter 11. Frame Transmission 帧传输
Transmission 是 帧从Linux系统中出去的 术语,这时帧由系统发送出去或者是转发出去的情况。在本章会涉及到帧传输过程中的主要任务,有以下:1、启动和禁用帧传输2、调度网口设备传输帧3、在设备的出口队列中选择等待的下一帧进行传输4、传输本身(transmission实现函数)帧传输在很多情况下是在第十章介绍的帧接收的逆过程,比如传输的软中断是NET_TX_SOFTI...翻译 2018-09-25 16:00:02 · 373 阅读 · 0 评论 -
[翻译] Chapter 7. Kernel Infrastructure for Component Initialization 组件初始化的底层内核(实现)
为了完全理解内核组件,不仅需要知道内核组件做了什么,还需要知道何时调用这些例程以及由谁调用的。子系统的初始化是内核的基本处理任务之一。对基础架构的研究,可以帮助理解是如何初始化网络堆栈核心组件,包括NIC设备驱动程序。本章的目的是展示内核处理例程如何初始化内核组件,包括内核built-in组件和加载组件,尤其着重网络设备。因此,将有以下几点:1、初始化程序通过宏命名和识别2、如何根据内...翻译 2018-09-10 21:36:20 · 211 阅读 · 0 评论 -
[翻译] Chapter 6. The PCI Layer and Network Interface Cards PCI层和网卡
由于在x86架构和其他架构上PCI总线的普及,本章会在将会介绍内核如何管理PCI设备,尤其是网络设备。还会介绍PCI如何处理关键的内核特性比如探测和电源管理。如果想深入了解PCI,比如设备驱动程序设计、PCI总线特性和实现细节,请参考Linux Device Drivers和Understanding the Linux Kernel以及PCI标准。内核中的PCI子系统提供了所有的通用功能,常...翻译 2018-09-10 20:52:52 · 157 阅读 · 0 评论 -
[翻译] Section 5.7. Initializing the Device Handling Layer: net_dev_init 设备处理层的初始化
网络初始化非常重要的一部分,其功能包括流量控制、CPU的ingress Queues。该初始化过程在boot阶段通过函数net_dev_init,在net/core/dev.c中声明static int _ _init net_dev_init(void){...}subsys_initcall(net_dev_init);查看第七章可以插件subsys_initcall如何确保...翻译 2018-09-10 14:38:03 · 274 阅读 · 0 评论 -
[翻译] Section 5.6. Module Options 模块选项
内核模块通过宏(比如module_param)来定义他们使用的参数模块注册函数如下例:...module_param(multicast_filter_limit, int, 0444);module_param(max_interrupt_work, int, 0444);module_param(debug, int, 0444);...最终会显示在/sys/module...翻译 2018-08-28 11:04:07 · 311 阅读 · 0 评论 -
[翻译] Section 5.5. Initialization Options 初始化选项
内核中的built-in组件和做为模块加载的组件都可以传递传输,以便用户可以微调组件功能或者从一个系统引导传递到下个系统。内核提供了两种宏定义选项:1、module options (module_param的宏定义)在加载模块时提供的选项。??? "Module Options"小节中会详细介绍2、Boot-time kernel options (_ _setup宏定义)这些选...翻译 2018-08-23 15:18:35 · 194 阅读 · 0 评论 -
[翻译] Section 5.4. Interaction Between Devices and Kernel 设备与内核的交互
几乎所有的设备(包括NICs)都有两种方式与内核交互:polling轮询方式内核方发起。内核定期检查设备状态,看看它有什么想说的interrupt中断方式设备方发起。当需要内核处理时,设备发送IRQ信号给内核在第九章,有NIC驱动程序设计方案以及软中断的详细讨论,并且还有Linux如何使用轮询和中断的组合提高效率。在本章中只基于中断进行讨论。本书不会详细介绍硬件如何引起中断...翻译 2018-08-23 09:56:43 · 189 阅读 · 0 评论 -
[翻译] Section 5.3. Basic Goals of NIC Initialization NIC初始化的基本目标
在Linux内核中的每一个网络设备都是实例化一个net_device结构体。在第八章,将会介绍net_device结构体每一个字段是如何被初始化的,一部分是由内核实现,另一部分是由驱动程序实现。在本章,将介绍驱动如何去申请内核与设备通信的资源,比如:1、IRQ线将会在“设备与内核之间交互Interaction Between Devices and Kernel”一节中详细介绍。NIC需要...翻译 2018-08-23 09:38:39 · 181 阅读 · 0 评论 -
[翻译] Section 5.2. Device Registration and Initialization 设备注册与初始化
网络设备必须被内核识别,并且与正确的驱动相关联才能正确的使用。驱动存储了驱动设备以及和其他设备交互的所有信息。注册和初始化设备的任务一部分由内核完成,另一部分有驱动完成。回顾一下初始化阶段做了哪些事:1、硬件初始化这部分是驱动配合通用总线完成的(USB PCI etc..)。驱动程序会配置IO和IRQ使自己可以与内核交互。2、软件初始化在设备使用前,会根据启动和配置了哪些网络协议,...翻译 2018-08-23 09:14:06 · 213 阅读 · 0 评论 -
[翻译] Section 5.1. System Initialization Overview 系统初始化简介
了解网络子系统在何时被初始化是比较重要的。然而,由于这本书只覆盖了初始化网络方面,并没有涉及到通用驱动程序以及Linux service(例如内存管理)的方面。为了理解背景知识,建议阅读 Linux Device Drivers 和 Understanding the Linux Kernel,均出版自 O’Reilly.Figure 5-1展示了内核启动过程中内核子系统的初始化次序(init...翻译 2018-08-22 17:47:41 · 220 阅读 · 0 评论 -
[翻译]Chapter 5. Network Device Initialization 网络设备初始化
由于现代操作系统的灵活性,使得初始化过程变得更加复杂。首先,内核驱动既可以动态加载,也可以做为内核的一个静态组件。另外,设备既可以在内核刚启动时就存在,也可以在运行时加嵌或移除。后一种被称为热插拔设备,包括有USB、PCI、IEEE 1394(Apple)等。本章会介绍设备进行热插拔时,User-space和kernel-space都会做哪些操作。本章将会介绍以下几点:1、内核网络初始...翻译 2018-08-22 16:22:35 · 275 阅读 · 0 评论 -
[翻译]Part II: System Initialization 系统初始化
目录在本章,我们将了解网络设备初始化的实现细节,以及在Linux启动时何时去初始化网络。由于Peripheral Component Interconnect (PCI)设备的普遍性和特殊性,本章会着重于这一部分。网络能够运行前必须执行以下几部分:1、内核关键组件初始化2、设备驱动初始化和注册,分配内核资源与设备交互(IRQ、IO port etc)以下为各章节介绍:第四章...翻译 2018-08-22 15:50:34 · 797 阅读 · 0 评论 -
[翻译] Chapter 8. Device Registration and Initialization 设备的注册与初始化
在第五章和第六章描述了内核如何识别NIC,以及内核如何执行NIC初始化,使NIC设备可以与设备驱动程序交互。在本章,将研究初始化的剩下的部分内容:1、什么时候 以一种什么方式注册内核网络设备2、网络设备如何注册到网络设备数据库并且得到net_device结构体分配的实例3、如何将net_device结构体组织成列表和哈希表,以满足不同类型的查找4、net_device结构体如何被初...翻译 2018-10-24 14:37:12 · 176 阅读 · 0 评论