OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4512|回复: 0

【分享-信盈达】Linux内核编码风格6!

[复制链接]

13

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2012-10-7
在线时间
1 小时
发表于 2014-7-7 10:06:15 | 显示全部楼层 |阅读模式

第十章:Kconfig配置文件

                          

对于遍布源码树的所有Kconfig*配置文件来说,它们缩进方式与C代码相比有所不同。紧挨在“config”定义下面的行缩进一个制表符,帮助信息则再多缩进2个空格。比如:

 

config AUDIT

        bool "Auditing support"

        depends on NET

        help

          Enable auditing infrastructure that can be used with another

          kernel subsystem, such as SELinux (which requires this for

          logging of avc messages output).  Does not do system-call

          auditing without CONFIG_AUDITSYSCALL.

 

仍然被认为不够稳定的功能应该被定义为依赖于“EXPERIMENTAL”:

 

config SLUB

        depends on EXPERIMENTAL && !ARCH_USES_SLAB_PAGE_STRUCT

        bool "SLUB (Unqueued Allocator)"

        ...

 

而那些危险的功能(比如某些文件系统的写支持)应该在它们的提示字符串里显著的声明这一点:

 

config ADFS_FS_RW

        bool "ADFS write support (DANGEROUS)"

        depends on ADFS_FS

        ...

 

要查看配置文件的完整文档,请看Documentation/kbuild/kconfig-language.txt

 

 

                第十一章:数据结构

 

如果一个数据结构,在创建和销毁它的单线执行环境之外可见,那么它必须要有一个引用计数器。内核里没有垃圾收集(并且内核之外的垃圾收集慢且效率低下),这意味着你绝对需要记录你对这种数据结构的使用情况。

 

引用计数意味着你能够避免上锁,并且允许多个用户并行访问这个数据结构——而不需要担心这个数据结构仅仅因为暂时不被使用就消失了,那些用户可能不过是沉睡了一阵或者做了一些其他事情而已。

 

注意上锁不能取代引用计数。上锁是为了保持数据结构的一致性,而引用计数是一个内存管理技巧。通常二者都需要,不要把两个搞混了。

 

很多数据结构实际上有2级引用计数,它们通常有不同“类”的用户。子类计数器统计子类用户的数量,每当子类计数器减至零时,全局计数器减一。

 

这种“多级引用计数”的例子可以在内存管理(“struct mm_struct”:mm_usersmm_count)和文件系统(“struct super_block”:s_counts_active)中找到。

 

记住:如果另一个执行线索可以找到你的数据结构,但是这个数据结构没有引用计数器,这里几乎肯定是一个bug

 

嵌入式解决方案提供 嵌入式人才实训
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-1 10:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表