仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 679|回复: 8
打印 上一主题 下一主题

[其他Linux] 来谈谈:怎样成为一个Linux体系内核开辟者

[复制链接]
谁可相欹 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 12:08:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
在学习初期,你一定会遇到很多困难,或者说各种困难,所以你最好先将你linux中的重要内容备份,因为,在你学习的过程中,很可能将系统搞废(eg:源混乱等);
你想成晓得怎样成为一个Linux内核开辟者么?大概你的老板告知你,“往为这个设备写一个Linux驱动。“这篇文档的目标,就是经由过程形貌你必要履历的历程和提醒你怎样和社区一同事情,来教给你为到达这些目标所必要晓得的一切常识。本文也实验注释社区为何如许事情的一些缘故原由。
内核几近满是用C写成的,有一些架构相干的部分是用汇编言语写成的。纯熟把握C言语是内核开辟的必备前提。汇编言语(任何架构)的懂得不是必需的,除非你筹办做某个架构的底层开辟。固然上面这些书不克不及完整取代踏实的C言语教授教养和/大概成年累月的履历,他们仍是不错的参考,假如用得着的话:-"TheCProgrammingLanguage"作者:KernighanandRitchie[PrenticeHall]-"PracticalCProgramming"作者:SteveOualline[OReilly]
内核是用GNUC和GNU工具链写成的。固然它切合ISOC89尺度,它仍是利用了一些尺度中没有的扩大。内核是自成系统的C情况,它其实不依附尺度C库,以是某些C言语尺度是不撑持的。恣意长度longlong范例除法和浮点数是不被同意的。偶然候会很难了解内查对于它所利用的工具链和扩大的假定,并且不幸的是也没有关于它们的相对的参考。请查阅gcc的info页(`infogcc`)以猎取有关信息。
请记着你是在实验进修怎样与已存在的开辟社区一同事情。这是一群成份庞大的人们,他们关于代码,作风和步骤有高的尺度。这些尺度是经由工夫查验的。
他们发明遵守这些尺度关于如许一个年夜范围的且地舆上分离的团队是最好的选择。实验提早进修尽量多的有关这些尺度的常识,由于它们都有很好的文档;不要希冀他人会依照你大概你公司的行事体例。
功令成绩
Linux内核源代码按照GPL公布。请参考源代码树下的COPYING文件,以猎取有关这个允许证的具体信息。假如你对这个允许证有疑问,请接洽你的状师,不要在Linux内核邮件列内外扣问。邮件列内外的人们不是状师,你不该该依附于他们关于功令成绩的注释。
文档
Linux内核源代码树有良多文档,它们关于进修怎样与内核社区交换来讲有不成估计的代价。当新的功效加进内核的时分,一般倡议作者把注释这个新功效的文档也加进内核。假如一个内核变化招致了内查对用户空间界面的改动,倡议你把这个信息大概一个注释了这个变化的manpage的补钉发送给手册页的保护者mtk-manpages@gmx.net。
这里有一个内核源代码树里必要浏览的文件列表:
README
这个文件复杂先容了Linux内核的背景,并形貌了设置和编译内核必要做哪些事变。内核老手应当从这里入手下手。
Do*****entation/Changes
这个文件先容了乐成编译和运转内核所必要各类分歧软件的列表。
Do*****entation/CodingStyle
这个文件形貌了Linux内核代码作风,另有面前的一些缘故原由。一切的新代码的要切合这个文档里的原则。年夜多半保护者只会承受切合这些划定规矩的补钉,良多人只看切合准确作风的代码。
Do*****entation/SubmittingPatches
Do*****entation/SubmittingDrivers
这些文件十分具体的先容了怎样乐成的创立和发送一个补钉,包含(但不限于):
-Email内容
-Email格局
-发送给谁
恪守一切这些划定规矩其实不能包管乐成(对一切的补钉都必要举行内容微风格的具体反省),可是不恪守这些划定规矩就必定不会乐成。
其他关于怎样创立补钉的很好的文章有:
“ThePerfectPatch"
linux/patches/stuff/tpp.txt">www.zip.com.au/~akpm/linux/patches/stuff/tpp.txt
"Linuxkernlepatchsubmissionformat"
linux.yyz.us/patch-format.html
Do*****entation/stable_api_nonsense.txt
这个文件注释了无意识的决意-不在内核里利用不乱的API-的缘故原由,包含:
-子体系分开层(为了兼容?)
-操纵体系之间的驱动可移植性
-和缓(大概制止)内核源代码树的缓慢变化
这个文档关于懂得Linux的开辟哲学长短常关头的,关于由开辟其他操纵体系转而开辟Linux人也是很主要的。
Do*****entation/SecurityBugs
假如你感到到你发明了Linux内核里的一个平安成绩,请依照这个文档里所形貌的步骤来提示内核开辟者,并匡助办理成绩。
Do*****entation/ManagementStyle

12下一页


Linux的常用命令find,察看man文档,初学者一定会觉得太复杂而不原意用,但是你一旦学会就爱不释手。
谁可相欹 该用户已被删除
沙发
 楼主| 发表于 2015-1-16 13:19:40 | 只看该作者

来谈谈:怎样成为一个Linux体系内核开辟者

使用gcc或g++进行编译,使用gdb进行调试;
这个文档形貌了Linux内核保护者怎样运作,和他们为何如许做。它关于任何内核开辟老手(大概任何对本话题感乐趣的人)来讲长短常主要的。</P>由于它注释了一些惯有的毛病观点,可办理有关内核保护者共同举动的困惑。
Do*****entation/stable_kernel_rules.txt
本文件形貌了不乱版本内核释出的划定规矩,另有假如你想对个中的一个版本做一些修改应当做些甚么。
Do*****entation/kernel-docs.txt
一个有关内核开辟的内部文档的列表。假如你在内核外部文档里没有找到?要找的器材,你能够参考这个列表。
Do*****entation/applying-patches.txt
先容了关于甚么是补钉,和怎样使用补钉于分歧的内核开辟分支。
内核也有良多能够从源代码主动发生的文档。这包含内核外部API的周全形貌,有关怎样处置好锁定的划定规矩。这些文档会被创立于Do*****entation/DocBook/文件夹中。在内核主源码树中经由过程运转上面的命令能够创立出PDF,Postscript,HTML和manpage等分歧格局的文档:makepdfdocsmakepsdocsmakehtmldocsmakemandocs
成为一个内核开辟者
假如你对Linux内核开辟一窍不通,你能够看看LinuxKernelNewbies项目:
kernelnewbies.org
它包括一个邮件列表,在那边你能够问任何有关内核开辟的基本成绩(在问成绩之前先搜刮一下存档,极可能这个成绩已被解答过了。)它另有一个IRC频道,你能够在内里及时的发问。它另有良多有效的文档,关于进修Linux内核开辟很有效。
这个网站有有关代码构造,子体系,以后项目(代码树以内的和以外的)的基础信息。它也形貌了一些基础的“物流”信息,好比怎样编译内核和怎样打补钉。
假如你不晓得从那边起步,可是你想找一些义务来做以到场内核开辟社区,请看一下LinuxKernelJanitor项目:
janitor.kernelnewbies.org/
这是一个很好的起步的中央。它形貌了一些绝对来讲复杂的内核中必要清算的息争决的成绩。和卖力这个项目标开辟者一同事情,你会学到怎样令你的补钉进进Linux内核树的基础常识,并且大概会为你指明下一步的开展偏向,假如你本人尚不明白的话。
假如你已有了一段代码想要放到内核树里,可是必要某种情势的匡助,那末kernel-mentors项目就能够帮你的忙了。这是一个邮件列表,能够鄙人面找到:
selenic.com/mailman/listinfo/kernel-mentors
在你对Linux内核代码作任何实践的修改之前,必需要懂得相干的代码是怎样事情的。为了到达这个目标,没有比间接读它(良多坚苦的中央都有很好的正文)更好的办法了,乃至多是在某个特别工具的匡助上去浏览。很值得保举的如许一种工具是LinuxCross-Reference项目,它能够把源代码以一种自我援用的、索引的网页情势显现出来。一个十分好的最新的内核代码堆栈能够在这里找到://sosdg.org/~coywolf/lxr
一切这些事变偶然候很难做到。要想完善做到这些请求大概必要几年的工夫。这是一个延续的开展历程,必要良多耐烦和决计。可是不要保持,这是能够完成的。良多人已做到了这一点,每一个人都履历过你如今这个阶段
</p>
上一页12


当你经过一段时间的学习后就应该扩充自己的知识,多学习linux命令,但是不要在初学阶段就系统的学习linux命令。
飘灵儿 该用户已被删除
板凳
发表于 2015-1-18 16:45:59 | 只看该作者
安装一个新的软件时先看README,再看INSTALL然后看FAQ,最后才动手安装,这样遇到问题就知道为什么。如果Linux说明文档不看,结果出了问题再去论坛来找答案反而浪费时间。
不帅 该用户已被删除
地板
发表于 2015-1-27 12:34:50 | 只看该作者
你需要提供精确有效的信息。Linux这并不是要求你简单的把成吨的出错代码或者数据完全转储摘录到你的提问中。
简单生活 该用户已被删除
5#
发表于 2015-2-5 13:36:13 | 只看该作者
主流Linux发行版都自带非常详细的文档(包括手册页和FAQ),从系统安装到系统安全,针对不同层次的人的详尽文档,仔细阅读文档后40%问题都可在此解决。
6#
发表于 2015-3-2 22:17:14 | 只看该作者
了解Linux的网络安全,系统的安全,用户的安全等。安全对于每位用户,管理员来说是非常重要的。
海妖 该用户已被删除
7#
发表于 2015-3-11 08:34:06 | 只看该作者
学习Linux半年了~个人认为不会的多在网上找资料网上有很多资料可以搜索到,LS那位说放手去搞。
第二个灵魂 该用户已被删除
8#
发表于 2015-3-18 07:37:39 | 只看该作者
掌握硬件配置,如显卡,声卡,网卡等,硬件只要不是太老或太新一般都能被支持,作为一名Linux系统管理员建议多阅读有关硬件配置文章,对各种不支持或支持不太好的硬件有深刻的了解。
金色的骷髅 该用户已被删除
9#
发表于 2015-3-25 18:59:26 | 只看该作者
掌握硬件配置,如显卡,声卡,网卡等,硬件只要不是太老或太新一般都能被支持,作为一名Linux系统管理员建议多阅读有关硬件配置文章,对各种不支持或支持不太好的硬件有深刻的了解。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 16:57

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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