如何成为一个Linux内核开发者】的更多相关文章

你想知道如何成为一个Linux内核开发者么?或者你的老板告诉你,“去为这个设备写一个Linux驱动.“这篇文档的目的,就是通过描述你需要 经历的过程和提示你如何和社区一起工作,来教给你为达到这些目的所需要知道的所有知识.本文也尝试解释社区为什么这样工作的一些原因.内核几乎全 是用C写成的,有一些架构相关的部分是用汇编语言写成的.熟练掌握C语言是内核开发的必备条件.汇编语言(任何架构)的了解不是必须的,除非你准备做某个 架构的底层开发.虽然下面这些书不能完全代替扎实的C语言教学和/或者成年累月的经…
新年的开始,聊聊「怎么做才能成为Linux内核开发者」. Linux内核的开发都是由志愿开发者们完成的.他们并不属于某些特定的企业. 因此,你也有参加Linux内核开发的资格.不用说,卓越的编码技术以及对所开发功能的相关知识有确实的掌握是必要的. 但是,除了技术和知识之外,如果还有很好的交流能力的话,那么你写的代码会有更大的机会被Linux内核所采用. 本来Linux内核的来源就是,Linus Torvalds在互联网上公开内核的最初代码,随着这个代码在开发人员中的广泛流传,很多的开发人员参与到…
刚才看到一张Linux内核开发者峰会照的全家福,有历史价值,给大家分享一下.上面有Torvalds(大致在中间).Andrew Morton(目前的内核主要维护者,第二排右数第二个).Alan Cox(Linux贡献最大的黑客之一,为<Linux程序设计>写序的老大,两个柱子之间个子不高的大胡子).Jonathan Corbet(<Linux设备驱动程序>一书的作者,第一排左数第一个)和写书的伙伴Greg Kroah-Hartman(中间的柱子左边).上面发言的Tso(中间的柱子右…
在编译linux内核时,遇到了一个比较诡异的问题.具体log如下: Can't locate strict.pm in @INC (you may need to install the strict module) (@INC contains: //usr/lib/perl/site_perl/5.22.1 //usr/lib/perl/vendor_perl/5.22.1 //usr/lib/perl/5.22.1 /tmp/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx…
原文网址:http://blog.csdn.net/nexttake/article/details/8181008 刚看 O’REILLY 写的<LINUX 设备驱动程序>时.作者一再强调在编写驱动程序时必须 建立内核树.所谓内核树,我的理解和网上资料说的一致就是内核源码的一种逻辑形式. 先查看自己OS使用的内核版本shana@shana:~$ uname -r2.6.22-14-generic           /*  这是我显示的结果 */如果安装系统时,自动安装了源码.在 /usr/…
NULL指针一般都是应用于有效性检测的,其实这里面有一个约定俗成的规则,就是说无效指针并不一定是 NULL,只是为了简单起见,规则约定只要指针无效了就将之设置为NULL,结果就是NULL这个指针被用来检测指针有效性,于是它就不能用作其它了,而实际上NULL就是0,代表了数值编号为0的一个内存地址,抛开那个约定,它和别的addr没有任何区别,简单的说,完全可以选择一个其它的地址作为指针有效性检测,比如0x1234等等,不选其它地址的原因就是第一,NULL比较好记忆,第二,由于NULL就是0,因此很…
构造一个简单的Linux系统MenuOS linux内核目录结构 arch目录包括了所有和体系结构相关的核心代码.它下面的每一个子目录都代表一种Linux支持的体系结构,例如i386就是Intel CPU及与之相兼容体系结构的子目录.PC机一般都基于此目录. include目录包括编译核心所需要的大部分头文件,例如与平台无关的头文件在include/linux子目录下. init目录包含核心的初始化代码(不是系统的引导代码),有main.c和Version.c两个文件.这是研究核心如何工作的好起…
  本文,我们将一步一步地介绍如何从源代码编译和安装一个Linux内核.需要注意的是本指导基于Ubuntu 20.04版本编译安装,其它发行版可能会有差异. 在前面文章中我们反复提到过Linux内核,知道Linux内核才是Linux操作系统最为核心的内容.内核实现了对硬件的管理,为应用软件提供了使用硬件的接口. 对于Linux开发人员而言,内核的学习和开发才是终极目标.因此我们今天先介绍一下内核的编译. 需要知道的是,Linux内核的编译和安装并非想象的那么难,那么复杂,其实只需要几条命令就可以…
第一节 - 一般性问题 1. 为什么有些时候使用“GNU/Linux"而另一些时候使用“Linux”? 答:在这个FAQ中,我们尝试使用“linux”或者“linux kernel”来表示内核,而GNU/Linux用于表示整个GNU/GPL的操作系统软件.我们需要分清:) FAQ的目的是提供linux内核更多的信息并避免语义上的歧义.更多GNU软件和linux关系的讨论可以在http://www.gnu.org/gnu/linux-and-gnu.html获取.看上去很多人都忽视了linux内核…
本文来源于linux内核代码的Document文件夹下的Hoto文件.Chinese translated version of Documentation/HOWTO If you have any comment or update to the content, please contact theoriginal document maintainer directly.  However, if you have a problemcommunicating in English yo…