深入理解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(): 参数为真时, 内核会打印出警告消息。



转载于:https://www.cnblogs.com/mosp/p/3550966.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值