《Linux内核设计与实现》——补丁、开发和社区

一、社区



二、编码风格

  1、与其他大型软件项目一样,Linux制订了一套编码风格,对代码的格式、风格和布局做错了规定。编码风格的主要规范都记录在内核源码树的Documemtation/CodingStyle

        中。


  2、缩进

    1)、缩进风格是用制表符(Tab)每次缩进8个字符长度。这不是说用八个空格就可以了。这里的规定很明确,每次缩进通过制表符进行,每个制表位8个字符长度。


  3、awitch语句

    1)、Switch语句下属的case标记应该缩进到和switch声明对齐,这样将有助于减少8个字符的tab键带来的排版缩进。


  4、空格

    1)、一般来说,Linux的编码风格规定,空格放在关键字周围,函数名和圆括号之间无空格。

    2)、相反,函数、宏以及函数相像的关键字在关键字和圆括号之间没有空格。在圆括号内,参数前后也不加空格。

    3)、对于大多数二元和三元操作符,在操作符的两边加上空格。相反,对于大多数一元操作符,在操作符和操作数之间不加空格。

    4)、在提领运算符的周围加上合适的空格尤为重要。在提领运算符的以便加上空格是不良的风格。把提领运算符放在紧挨类型的地方也是借用C++的一种不良风格。


  5、花括号

    1)、内核选定的风格是左括号紧跟在语句的最后,与语句在相同的一行。而括号要新起一行,作为该行的第一个字符。注意,在接下来的标识符是相同语句块的一部分,那

              么花括号就不单独占一行,而是与那个标识符在同一行。

    2)、函数不采用下列书写方式,因为函数不会在内部嵌套定义:

               unsigned  long  func(void);

               {

                   /*  .  .  .  */

               };

    3)、不需要一定使用括号的语句就可以忽略它。


   6、每行代码的长度

    1)、源代码中要尽可能地保证每行长度不超过80个字符,因为这样做可以最适合在标准的80X24的终端上显示。

    2)、有些开发者会在圆括号内来分行,对齐排列函数参数。

    3)、而另一些开发者虽然也会将分行输入,但不会把它们对齐排列,而是在开头简单的加上标准tab。


  7、命令规范

    1)、名称中不允许使用骆驼拼写法、Studly Caps或者其他混合的大小写字符。

    2)、匈牙利命名法是不必要的,绝对不允许使用。

    3)、而全局变量和函数应该选择包含描述性内容的名称,并且使用小写字母,必要时加上上下划线区分单词。


  8、函数

    1)、根据经验,函数的代码长度不应该超过两屏,局部变量不应该超过10个。


  9、注释

    1)、一般情况下,你应该描述的是你的代码要做什么和为什么要做,而不是具体通过什么方式实现。

    2)、注释不应该包含谁写了那个函数、修改日期和其他那些琐碎而无实际意义的内容。这些信息应该集中在文件最开头的地方。

    3)、在注释中,重要信息常常以“XXX :”开头,而bug通常以“FIXME:”开头。


  10、多用现成的东西。


  11、在源码中少用itdef。


  12、结构初始化

    1)、结构初始化的时候必须在它的成员前加上结构标识符。这种初始化避免错误地使用其他结构而引发一个初始化错误。


  13、代码的事后修正。

    1)、indent是一个在大多数Linux系统中都能够找到的好工具,它可以按照指定的方式对源代码进行格式化,默认情况下它按照不怎么好看的GNU编码风格格式化代码。


三、管理系统


四、提交错误报告



五、补丁

 一)、创建补丁

  1、创建补丁最简单的办法是通过两份内核源代码进行的,一份源码,另一份是加进了所修改部分的源代码。一般会给原来的内核代码起名linux-x.y.z,而修改过的就起名

        linux,然后利用下面的命令通过这两份代码创建补丁:

        diff  -urN  linux-x.y.z/  linux/  >  my-patch

    1)、通过-u参数指定使用特殊的diff输出格式。

    2)、-r参数保证会变异所有子目录进行操作,而-N参数指明做出修改的源代码中所有新加入的文件在diff操作时包含在内。

    3)、如果想对一个单独的文件进行diff,你也可以这么做:

        diff  -u  linux-x.y.z/some/file  linux/file  >  my->patch


  2、diffstat可以列出补丁所引起的变更的统计。输出关于补丁的信息,执行:

        diffstat  -pl  my-patch



 二)、用Git创建补丁

  1、用Git创建补丁过程:

    1)、首先,你必须是修改者,然后在本地提交你的修改。

    2)、作出修改后,就需要把所做的修改提交到你的Git版本库:

        git  commit  -a

    3)、如果你仅仅想提交某个指定文件的修改,则如下实例:

       git  commit  some/file.c

    4)、要增加一个文件,然后提交(以及其它所有修改),则输入下列两条命令:

       git  add  some/other/file.c

       git  commit  -a


  2、Git的设计可谓考虑周全,多个提交甚至可以针对同一文件,每个提交的创建各自独立。当在源代码有一个(或两个)提交创建一个补丁,可以用下列命令:

        git  firmat  -patch  origin


  3、GIT产生的补丁位于源代码树中的根目录中。如果指向为最后第N次提交产生补丁,则可以执行下列命令:

        git  format -patch  -N



 三)、提交补丁

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值