• 深入理解linux网络技术内幕读书笔记(一)简介


    基本术语

    • 八个位的量通常称为八位组(octet), 本书使用最常见的术语字节(byte).
    • 术语向量(vector)和数组(array)是交互替换使用的。
    • 在上下文中, 术语“入口数据(ingress)"和”输入数据(input)“会交互使用,
      “出口数据(egress)"和”输出数据(output)“也一样。

    本书常用的缩写

    表1-1 本书常用的缩写
    缩写意义
    L2链路层(如ethernet)
    L3网络层(如ip)
    L4传输层(如tcp/udp/icmp)
    BH下半部(Bottom Half)
    IRQ中断(事件)
    RX接收
    TX发送


    引用计数

    引用计数函数

    • 递增函数: xxx_hold()
    • 递减函数: xxx_release()
      有时候,释放函数被称为xxx_put(),例如net_device结构的释放函数为dev_put().


    垃圾回收

    内核不用虚拟内存,直接使用物理内存。

    异步

    定时扫描,把那些可以释放的数据结构释放掉。
    常见的准则:释放引用计数为0或null的数据结构。

    同步

    当内存不足的情况下,直接触发垃圾回收,不用等待同步机制。


    函数指针

    • 执行一个函数指针之前,必须先检查其值。避免使用为null的函数指针。


      if (dev->init && dev->init(dev) != 0 ) {
          ...
      }
      


    缺点

    缺点:使阅读代码稍显困难。


    goto语句

    使用环境

    • 用于处理函数内的不同返回代码。
    • 用于跳出一层以上的循环嵌套。


    捕捉bug

    • BUG_ON(): 参数为真时,打印错误消息,然后内核panic.
    • BUG_TRAP(): 参数为真时, 内核会打印出警告消息。



  • 相关阅读:
    哲学家进餐
    文件系统
    文件读写原理(转)
    数据库join种类
    http与https区别
    数字证书(转)
    B. Rebranding
    扩展欧几里德算法、证明及其应用
    CodeForces 7C Line
    UVALive 7147 World Cup
  • 原文地址:https://www.cnblogs.com/mosp/p/3550966.html
Copyright © 2020-2023  润新知