《Linux内核设计与实现》——补丁、开发和社区
2014-12-05 16:04
176 查看
一、社区
二、编码风格
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
三)、提交补丁
二、编码风格
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
三)、提交补丁
相关文章推荐
- 《Linux内核设计与实现》读书笔记(二十)- 补丁, 开发和社区
- 《Linux内核设计与实现》读书笔记(二十)- 补丁, 开发和社区
- 《Linux内核设计与实现》读书笔记(二十)- 补丁, 开发和社区
- 《Linux内核设计与实现》读书笔记(二十)- 补丁, 开发和社区
- Linux内核设计与实现 学习笔记(10)补丁,开发和社区
- Linux内核设计与实现(20)--补丁、开发和社区
- 如何将浮动的DIV位置一直居中?~ Web 开发 / ASP - CSDN社区 community.csdn.net
- Visual C++开发工具与调试技巧整理 - Azure Product - 游戏创造网--社区 - powered by X-Space
- 社区新版BBS开发主线里程碑(20060213初步整理稿)
- ROR与社区网站开发
- 嵌入式系统网址大全 驱动程序开发网技术社区
- 基于ASPNETFORUM开发的拼客社区系统进入全面内测阶段
- ROR与社区网站开发
- CSDN 社区开发中的几个重要里程碑
- 若用MASM写操作系统的启动部分如何实现? 其他开发语言 / 汇编语言 - CSDN社区 community.csdn.net
- 苹果与英飞凌开发补丁应对3G版Phone掉线
- [Torque项目活动] 我们TORQUE社区将开始利用TORQUE引擎开发我们的第一个范例游戏[坦克],欢迎参加
- 利用forum框架进行论坛社区接口的开发
- CSDN 社区开发中的几个重要里程碑
- CSDN 社区开发中的几个重要里程碑