Adolph两边

 

12 2011 档案

协议栈初始化流程以及一些重要的oop思想.
摘要:1.基础系统初始化 1.1.初始化内存 1.2.初始化网络文件系统2.初始化协议栈 这里有一些重要的oop设计.地址簇包涵了数据类型,各类型包涵了自己对应各协议的数据处理方式.3.设备接口初始化4.设备驱动初始化 设备驱动初始化以后,会在设备描述结构中区分出设备抽象层,以及特定网络设备层(主要关联设备特定的 数据).设备抽象层的数据主要提供给设备无关层使用.设备无关层再把数据提交给上层. 阅读全文

posted @ 2011-12-24 21:09 Adolph两边 阅读(250) 评论(0) 推荐(0)

同步,异步,阻塞,非阻塞
摘要:阻塞:等待资源直到可用,并且完成操作后返回.非阻塞:检查资源是否可用,可用就完成操作,不可用直接返回.同步I/O:必然导致进程阻塞,直到I/O操作完成.(只是根据采用的I/O模型不同,等待资源的方式不一样,可以是:阻塞,非阻塞,复用,信号驱动.执行I/O操作时必然导致进程阻塞.)异步I/O:不会导致应用进程阻塞.(也就是所有I/O操作完成以后,应用进程就已经获得了全部数据,然后获得信号通知.) 阅读全文

posted @ 2011-12-18 12:30 Adolph两边 阅读(139) 评论(0) 推荐(0)

LDD 第三章 (二.一个简化过的超级简单的scull实现)
摘要:看LDD到第三章,发现example里面包含了前几章的内容.于是重新实现了只依赖第三章中所提及的部分.顺道加了实现流程的注释,有助于理解整个实现的过程.scull.hView Code #ifndef _SCULL_H_#define _SCULL_H_#ifndef SCULL_MAJOR#define SCULL_MAJOR 0 /*默认的动态主设备号*/#endif /* SCULL_MAJOR */#ifndef SCULL_QUANTUM#define SCULL_QUANTUM 4000#endif /* SCULL_QUANTUM */#ifn... 阅读全文

posted @ 2011-12-04 19:40 Adolph两边 阅读(630) 评论(0) 推荐(0)

LDD 第三章 (一.重要的结构和实现)
摘要:一.重要的结构和实现设备描述结构struct scull_dev {struct scull_qset *data; int quantum; int qset; unsigned long size; unsigned int access_key; struct semaphore sem; struct cdev cdev;};设备量子集struct scull_qset {void **data;struct scull_qset *next;};起初看了上面的图有一些不明白,当看了scull_trim的代码以后,就很清晰了.很多地方的指针被申明为void *,主要是为了让你在使用之前 阅读全文

posted @ 2011-12-02 15:19 Adolph两边 阅读(274) 评论(0) 推荐(1)

关于数组的一些高级分析
摘要:今天为了描述这个问题,折腾了很久.下面就总结归纳一下.首先数组名是不占空间的.列:int a[10];printf("%d", a);printf("%d", &a);上面的输出是一样的.而指针是占用空间的.int b[10];int *p;p = b;printf("%d", p);printf("%d", &p);上面的输出是不一样的.下面开始重点部分:多维数组.实际上我是不建议理解成多维数组的.内存都是线性的,仅此而已.大家可以看看下面这个例子.int a[] = {1,2,3,4,5};in 阅读全文

posted @ 2011-12-02 15:14 Adolph两边 阅读(137) 评论(0) 推荐(0)

导航