• LDM上层建筑之Bus---局部窥探

    日期:

    首先看下sys/devices怎么来的? 在初始的启动汇编中会跳到start_kernel----rest_init----kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND)----do_basic_setup(void)----driver_init(void)----buses_init(); int __init buses_init(void) { bus_k...

  • LDM上层建筑之dev---局部窥探

    日期:

    首先看下sys/devices怎么来的? 在初始的启动汇编中会跳到start_kernel----rest_init----kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND)----do_basic_setup(void)----driver_init(void)----devices_init(); int __init devices_init(void) { de...

  • kset_example 初探

    日期:

    LDM以kobject和kset为根本,初步了解了kobject后,继续趁热打铁,对kset做下了解,并对kobject和kest的关系做下了解。 内核空间与用户空间的映射关系如下表所示: 内核空间(internel) 用户空间(externel) 内核对象 (kernel objects) 目录 (directories) 对象...

  • kobject_example 初探

    日期:

    首先看了下/Documentation/kobject.txt文档中的说明,然后结合sample/kobject/kobject-example.c 对kobject做一些初步了解。 在内核配置中将kobject-example配置成model编译成.ko加载到内核之中。 在insmod kobject-example.ko时会用到 module_init(example_...

  • linux设备模型之kobject

    日期:

    Linux驱动模型是整个linux设备驱动的基石。一般来说,驱动工程师可以忽略设备模型,因为底下的设备模型可以处理好复杂的device、driver、bus以及class等等的关系。了解linux的模块机制,了解file的read、write和ioctl,了解register_chrdev、misc_register等...

  • linux设备模型之kset

    日期:

    同样的,在看kset-example之前我们先看下kset的相关操作函数。 kobject_set_name设定kobject的name 这个函数就是前面介绍的kobject_set_name_vargs函数的封装。 kset_init初始化kset voidkset_init(struct kset *k) { kobject_init_internal(k-kobj); INIT_L...

  • linux设备模型之字符设备

    日期:

    Linux 设备模型之字符设备 以 ldd 中 scull 为例来分析一下设备模型的字符设备。 对 scull 做了一些修改,一方面是内核版本不同引起的一些定义上的修改,另一方面是去除了 scull 中包括的 scullpipe 等设备。 为使得我们对字符设备更清晰,我们不分析 scull...

  • Linux 字符设备驱动简单总结

    日期:

    看完宋宝华的《Linux设备驱动开发详解》及其有关博客,对字符设备驱动做一个小总结。 一、字符设备、字符设备驱动与用户空间访问该设备的程序三者之间的关系。 如图,在Linux内核中使用cdev结构体来描述字符设备,通过其成员dev_t来定义设备号(分为主、次设...

  • OSI七层网络模型与TCP/IP四层网络模型

    日期:

    1. OSI网络分层参考模型 网络协议设计者不应当设计一个单一、巨大的协议来为所有形式的通信规定完整的细节,而应把通信问题划分成多个小问题,然后为每一个小问题设计一个单独的协议。这样做使得每个协议的设计、分析、时限和测试比较容易。协议划分的一个主...

  • 查看Linux下默认的DNS

    日期:

    cat /etc/resolv.conf 或 vi /etc/resolv.conf 显示如: nameserver 10.242.252.8 nameserver 10.242.252.66...