Linux协议栈源码分析读书笔记(一)

   今天读了本书的第一章.这一章初步介绍了Linux内核的总体布局,也就是总体上来看有哪些模块组成.从上到下主要是:glidc->系统调用->(VFS,Schedular,Soft ISR,ISR,FILE Sytem,Task Manager,Memory Manager,IP Stack)括号里面的各个模块都是并列存在的.目前对于这其中的许多名词我还不熟悉,不禁感到惭愧,要学习的东西实在有许多,自己浪费了不少时间....按作者说的,这本书主要讲的是IP Stack的信息流程.读者可以在宏观上了解IP协议族的各个协议间的消息是如何流动的.

   第一章一开始就讲了微内核和大内核的区别,并在最后现在的OS大多不是一单一的某一种,通常都是两种都有涉及.因为各自有各自的好处:微内核的内核的实现更加高效,便于移值,方面系统其他各个模块间的通信.大内核的主要特点就是,它在执行的时候在内存中是一个大的二进制的映像,各个模块在运行的时候都要加载到内存中去,能够充分的利用硬件.

  这一章另外还讲解了几个在协议栈中用的很多的数据结构,主要是链表和Hash链表.看到这部分的时候我深深的感觉到数据结构非常的重要,并接要学活了,不能走教条主义道路!比如说Linux的链表的实现就相当的漂亮.它不是像大多教科书的说的那样,在链表的节点中存放data.而是让含有数据的结构中包含一个链表节点.这样更灵活.可以看的出来Linux源代码中许多地方都利用了C语言的灵活性,和GCC编译器的特性,如typeof等.(^_^看来C语言要加强了下了,我还很嫩..)其中链表的这种实现机制的关键是list_entry宏.list_entry(ptr,type,memeber),

ptr是指向含有真实数据的结构中strcut list head成员的指针.type是struct list head的类型.member是该成员的变量名.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值