admin 管理员组文章数量: 1086019
2024年3月22日发(作者:电子购物商城网站源码)
维普资讯
。
内核:开源基石
口本fq记者陈杰
开放源码的开发模式为国家软件发展带来了籁的机遇。如何利用好开放
源码的软件资源?显然,仅仅将其拿来是不够用的,还需要认真“解剖麻雀”,
将其理解透彻,以便为我所用。
内核作为系统的心脏,是远行程序和管理像磁盘和打印机等硬件设备的
核心程序,从用户那里接受命令并把命令送给内核去执行。正是Linus开发了
Linux内核,才带来了开源世界今天的繁荣。Linux内核的研发来自整个国际
开源社区,世界上众多开源爱好者一起为Linux内核进行补丁升级,如何参与
内核社区进行内核研发有着许多的规则和技巧,本系列文耄将介绍如何参与
内核社区的研发工作,并对Linux内核接口,内核的测试、调试和内存 地址
空间的管理进行详细的描述。
圃软侔世界2007.6.20……
维普资讯
遨游在内核开源社区
在国际内核社区,众多的开源爱好者都在为内核进行开发,作为内核分支
的维护者,需要遵循内核社区的规则并掌握各种技巧。
口Intel开源技术中心虞陆铭
作为Linux ACPI社区的主要成员之 传给linux net子系统的维护者Jeff
一
,
笔者协助ACPI的维护者Len Brown
Garzik。Jeff会将这些修改放进他的GIT
维护了ACPI已及相关的内核代码近4年
tree。Linus和Andrew Morton会从Jeff
时间。通过把这些在实际的工作中逐渐积
的GIT tree中把Rro/l00+Ethernet
累起来的经验教训告诉大家,以帮助那些
driver的修改分别纳入Baseline和开发版
有志于开源软件的人们少走弯路,尽可能 内核。
快的理解开源软件的工作方式,从而更有
效地参与到开源社区,特别是Linux内核
公开宣布新的项目
的开发中,同时希望抛砖引玉,共同提高
将上面所述的事情都准备好以后,还
壮大中国的开源社区。 需要向开源社区宣布这个项目的存在。在
这个公告中需要说明项目的目标,i需要哪
启动开源项目
些硬件,有哪些特性以及相关的文档和开
在开源社区启动一个新的开源项目必 发人员、测试人员和已有的用户。这样的
须完成以下的准备工作:首先公开项目的
公告应该发布在LKML和相关的邮件列表
主页;公开所有源程序和版本存档网址;
中。如果不定性那里是正确的邮件类表,
将所有该项目的邮件列表存档;然后是 可以咨询upstream维护者,会得到正确的
不定期的发布新的版本;最后是Bug的调
地址。
试和跟踪。 如果是为硬件开发驱动,请务必确保
开源代码和硬件文档同时向开源社区开
确定内核维护者
放,并且尽可能早的让社区人员一起加
在/usr/src/linux/Maintainers中列
入开发测试工作。这种作法往往会博得
出了内核各部分的维护者,Baseline内核
开源社区对硬件的信任,并且会帮助完
与开发版内核站在整个开发社区层次的顶
善产品。
层。任何patch可能需要经过好几层维护
者的认可才能到达顶层进入Baseline内核
经常化发布代码
或者开发版内核,一但P at ch进入了 相对于封闭的软件而言,开源软件特
Baseline内核,patch就会自动的进入
别注重高频率的版本更新。这是为了使
downstream内核。
整个开源社区快速的使用最新的版本,
例如Scott Feldman是PRO/1 00+
并且让开源社区的主要精力集中在未被
Ethernet driver的维护者,他负责所有 发现的问题之上,从而提高整个开源世
针对这个驱动的修改,将驱动程序的更新 界的工作效率。
另一方面,许多用户需要稳定的版本
存在,他们并不希望不稳定的最新版干扰
日常的使用。
就ACPI这个项目而言,我们采用的
是双版本的策略。ACPI测试patch的发布
频率基本上和Andrew Morton的mm
patch发布频率保持一致,并且A CPI发布
Patch
墨指对已有代码的修改,当然也可
件或者新建潦
:文件。在修改了现有的代码后,可以用 j
;工具diff获取所做的改变,并且可以以
单独的文件发布。
测试patch之前仅仅通过了最基本的编译
和单元测试,真正的测试完全依靠开源社
区的贡献。
只有在ACPI测试版中等待了足够长
时间以后,并且得到开源社区的充分使用
后,相关的patch才有机会进入ACPI稳定
版。从而这个版本的ACPI patch会进入
upstream baseline。OSD会从upstream
baseline直接获得稳定的ACPI patch,当
然有时候OSD也会直接从ACPI tree中抓
取他们所需要的patch。
lh 列表沟通技巧
由于内核开发者主要是通过公开的邮
件列表进行讨论和沟通,所以必须掌握以
下技巧,以免引起不必要的误解,提高工
作的效率:
Software World 2007.6.20即……
维普资讯
Ope S。 ree要圈
◆尽可能多地掌握一些英语习惯表示;
◆不要公开做出任何无节制的承诺;
复,如果缺乏一定的响应度,可能会丢掉维护者的身
份。并且必须定期发布纯文本的patches,并提供完
dit。最好建立一个GIT
◆不要讨论竞争对手的产品,除非你引用它
善的修改日志,给开发者们cre
来阐述你的观点;
tree,同时在IRC这个实时的交流平台上和项目成员
进行必要的交流。
◆不要讨论你的合作伙伴的商业事务;
◆不要讨论版权或者法律事务;
◆不要卷入有关信仰的话题例如S C O的诉
讼,GPL的阐述等;
◆有时候最好的回答就是保持沉默;
能从社区得到的
测试和抱怨,这是开源社区的两种主要手段,也
是所能够期望得到的。主动提供的patch为项目更
◆在发出你的邮件之前估计可能的问题并加
正错误,增加功能。主动提供的patch改变了内核接
什么是Linux内棱?
在lT术语中.内核既是操作
系统的心脏,也是它的大脑,因为
内核控制着基本的硬件。内核是
操作系统的核心,具有很多最基
本功能,如虚拟内存、多任务、共
享库 需求加载、共享的写时拷贝
(copy--on--write)可执行程序和
TCP/IP网络功能。
以解释;
口从而间接的影响了代码。这里有必要讨论一下关
◆在你询问问题之前,请务必查询一下历史
于接受PATCH的问题,作为维护者,有权力接受
归档。
或拒绝。对原始patch的修正,需要给予原创作者
credit,并且保留作者的版权。有时Kernel维护者
如何说
的。所以在回复邮件时要尽可能少地引用上下
文,只需要保留一些关键点,并且把剩余部分全
部删除。其次选择好的标题,LKML有超过5000
会直接接收一些显而易见的patch,并且他们不需要
尽可能的简明扼要,简要的贴子是最有效
寻求帮助。
Linux内核的起源可追溯到
1991年芬兰大学生Linus Torvalds
编写和第一次公布Linux的日子。
尽管到目前为止Linux生态系统早
如何处理downstream发行版
最好的情形是只专注于upstream稳定版本,并
己远远发展到了Towal ̄人之外
个用户,你的邮件会有许多读者,大多数人并不
且只争对它来解决问题,完善代吗,完全忽略
eam的发行版,毕竟downstream的发行版
会关心你的话题,但是会有人正好具有你所需要
downstr
的知识来帮助你。
的范围.但Torvalds仍保持着对
Linux内核的控制权,并且是Linux
名称的唯一版权所有人。自发布
Linux 0 12版起.Linux就一直依
是基于upstream的稳定内核版本,如果在upstream
对于大多数LKML的读者而言,英语是他们
stable kernel中所有的都是恰当的,那downstream
的第二语言,所以不要奇怪你的贴子会被误解, 发行版就不需要做任何改动。
照GPL(通用公共许可协议)自由
软件许可协议进行授权。
L[nux内核本身并不是操作系
必要时可以换个说法重新解释一下。最重要的一
点是保持谦虚,整个社区的智慧远远超过个人。
但是问题是不知道0sD会决定哪一个版本的
upstream稳定版作为他们产品开发的基础。一旦
OSD做出选择,在这一点上downstream发行版
统,它是一个完整操作系统的组
成部分。Red Hat、Novell、Debian
和Gentoo等Linux发行商都采用
Linux内核,然后加入更多的工具、
库和应用程序来构建一个完整的
操作系统。
Linux发行商一般会根据自己
的需要对基本内核进行定制,在
一
代码分格
将成为Upstream kernel的一个分支,接下来
xes,或者back—ports
理解并遵守/usr/src/linux/Documenta-
OSD会有选择性地接受fi
tion/Codingstle文档的规定,唯一的例外是如
新的功能。
果修改已有文件,那个文件可能并没有遵守代码
些情况下.不同的Linux版本会
这样做的原因是并不知道发行商会采用哪个内
在自己的内核中加入主内核中没
CPI代码能够很容易的进
风格要求。只需要根据这个文件的风格修改已有
核。而目的是确保最新的A
的代码,不要试图把代码风格的修改混杂在
PATC H中,使用/usr/src/scripts/Lindent对
入发行版,从而惠及最终用户。
大量的对不同版本的ACPI发布工作并不像看起
有的特性和支持.如Red Hat将部
分2 6内核的特性向前移植到它
自己的2 4 x内核中:再如Ubuntu
Linuxj ̄ ̄最近在Ubuntu的2 6 1 5
Linux内核中增加了对Sun T1处理
新的代码进行自动的代码风格优化。
来那么令人气馁,因为在ACPI中只有两个主要的分
支:稳定版和开发版。在很多实例中同样的PATCH
器的支持,而这种支持目前还没
有出现在主内核中。
如何做好内核维护者
提供的第一个版本必需具有最基本的功能,
做为内核维护者,必须保持一定的响应度,对于
LKML和项目邮件列表上的邮件都必须进行回
适用于两者,因此新的PATCH首先被集成进老的
GIT tree,然后被纳入更新的各个分支中,借助于
G I T,可以很轻松得到针对各个分支纯文本的最新
ACPI PATCH。赣
固软件世界2007.6.20 …
版权声明:本文标题:内核:开源基石:遨游在内核开源社区 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1711040082a585396.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论