开学前三周的会议总结

会议记录

时间:2010-9-24    记录者:张超

会议内容:

本次会议主要的内容是回顾一下前三周所学的内容,首先由我给大家回顾了一下内核编译的过程,然后重点讲了一些关于KconfigMakefile的一些内容,接着是由李廷和吴宪萍同学讲了内核模块源文件的架构,以及如何编译、加载、删除模块,紧接着由武特同学重点讲解了字符设备的相关知识,其中包括:全局内存的初始化和退出函数、cdev结构体、设备号的申请、以及文件操作的相关函数。

下面我将三个部分的主要内容大致的整理一下:

第一部分:

    1.讲了内核源码的获取,以及配置菜单的大概条目有哪些,最后讲了内核编译时用的一些命令:如make bzImagemake modules modules_install

mv System.map...

    2.讲了Makefile文件相关知识,Makefile说到底就是一系列编译规则的集合。同时讲了它的构成部分和各部分的相关用法,其文件构成为:显式规则、隐含规则、使用变量、文件指示、注释。其中重点讲了变量使用时的相关注意点,包括变量的赋值符的使用条件、变量引用时的展开情况、还有预定义变量。变量引用说到底就是字符串的替换,其功能和用法类似于C语言中的便利宏。

    3.讲解了伪目标的含义,以及其功能和用法,同时也讲了搜索目录的重要性,其中以模块编译时的头文件目录和模块源文件目录的指引为例来说明其用法。因为之前大家都没太注意库的概念,所以我也只是提一下让大家以后见到不会太陌生就行了。

    4.关于Kconfig的知识我主要讲了菜单的入口和菜单的结构,由于大家平时对Kconfig文件接触的也比较少,加上本人理解的也有限就简单的说了一下,其中有错误的话还请见谅!

    5.对于上次武特动手加菜单条目的实例,说实话我理解的很有限,这次通过看书总算有了较深入的了解,其核心思想就是加子目录一定要让其父目录中的KconfigMakefile能够正确的引用。

第二部分:

    1.由李廷同学讲了hello kernel模块建立到操作的整个过程,包括:新建目录、编辑模块源文件.c、编辑Makefile文件、编译生成目标文件.ko、加载、显示、卸载模块这几个部分。

    2.由吴宪萍同学讲解了源文件的结构,其中包含了内核内部的头文件、模块许可证、printk函数的讲解、模块注册函数的说明等等。由于这部分大家实在听了太多遍了,我说多了反而不好,大家自己意会去吧!

第三部分:

    1.讲了globalmem_init主要功能:(1)申请设备号。(2)为设备相关的数据结构分配内存。(3)初始化并注册cedv

    2.讲了cdev结构体的构成:其中包括:obj变量、*owner指向模块的指针、*ops文件操作结构体指针、list双向链表变量、dev设备号变量、count设备号范围大小的变量。

    3.源文件结构的分析,类似hello kernel模块的结构,包括用户自定义的函数,以及模块注册函数来完成函数的指定。在申请设备号时分事先有无设备号,函数返回的都是设备号(整型),会议中还讲到了如果要查询内核函数原型的话到lxr.linux.no输入函数名则可以看到不同版本内核的函数原型。另外还讲了编译加载进内存后还可以用cat /proc/devices命令来查看主设备号和驱动名称。我们可以用如下命令来创建设备文件节点:mknod /dev/globalmem -c 249 0,2490分别对应主设备号和次设备号。

    4.会议中还讲到了函数指针的使用,我觉得函数指针的函数名的功能和数组名很象,它实际上也是一个地址的入口,不过这里是函数代码的入口,把一个函数名赋值给一个函数指针变量的话便可以完成地址入口的指定。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值