|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如果你让他去用linux搭建一个web服务器,做一个linux网关,他就什么都不会了.他们把时间都浪费在了版本的转换上了.
我已经问他人怎样入手下手内核编程的进修,他们基础上都说:①假如你不必要懂得内核是怎样为你事情的,你为什么要实验呢?②你应当定阅Linux内核邮件列表,然后勉力往了解。③假如你不往编写针对Linux内核的代码,你就是在华侈工夫。
这些对我一点儿匡助都没有。以是我在这里枚举了一些可行的办法,他们是有关操纵体系和Linux内核是如何在你的项目里事情的,并且还很风趣。固然我晓得得其实不多,但最少比我做这些之前懂得了更多。
关于上面这几个路子,你只必要懂得一些C言语和汇编言语(最少要会复制粘贴)。我会写一些小的C程序,还会用汇编来上课,固然这些我都忘得差未几了。
办法一:编写你本人的操纵体系
这看起来是一个相称可骇的办法。但现实上并非!我是从rustboot这个项目入手下手的,主要的是它已能够事情了。然后我会做一些复杂的事变,好比让屏幕由白色变成蓝色,打印字符到屏幕,延续猎取键盘中止来事情。
MikeOS是我另外一个风趣的入手下手。请记着,你的操纵体系没有需要做得很年夜很专业——假如你可以让它把屏幕色彩由白色变成紫色大概让它打印一首视,你就算乐成了。
你必定会想利用一个仿真器往运转你的操纵体系,好比qemu。OSDevwiki一样是一个很有效的网站——下面有良多你会碰着的罕见的成绩。
办法二:编写写一些内核模块!
假如你已筹办运转Linux了,那末再写一些内核模块就会是相称相称简单的,即便他们甚么都不会做。
这里有一个可以打印“Hello,hackerschool!”到内核日记的模块源代码。它只要18行代码。基础上你只必要编写一个init历程和一个cleanup函数就能够了。我其实不晓得__init和_exit这两个宏命令做了些甚么,可是我会利用他们!
编写一个有必定功效的内核模块是对照难的。我做这个的时分,都是先决意要完成的功效(好比打印一个信息给每个经由内核的数据包),然后归去浏览一些KernelNewbies上的工具,再大批地利用谷歌来搜刮,再复制和粘贴大批的代码来弄分明事实该如何往编写它。这里有几个内核模块的例子,我把他们放在了kernel-module-fun项目里。
办法三:列入一次Linux内核练习!
Linux内核团队介入了GNOME女性拓展练习项目。它是惊人、奇奥而且使人十分兴奋的一个举动。这意味着,假如你是一个女人而且乐意消费三个月工夫在内核开辟上,你就可以介入内核的开辟,而且不必要任何的履历,还能失掉一些待遇(5000美圆)。在KernelNewbies上有关于它的先容。
假如你对此感乐趣,那会长短常值得往请求的——你可以为内核做一个格局化的补钉,这十分风趣。SarahSharp是一个Linux内核开辟职员,她在和谐这个举动并且她自己也长短常热情的。你能够浏览她的这篇博客文章,报告了在第一轮里137个补钉是如何被同意到场到内核中往的。这些补钉也将会是你供应的!检察请求申明!
假如你不是一个女生,那末能够选择GoogleSummerofCode这个类似的举动。(编注:这句话大概会引发女程序员的恶感)
办法四:浏览内核源码
这听起来像是最糟的倡议——“想要往懂得内核是怎样事情的就往看源代码,太蠢了”
但现实上这个办法长短常风趣。你其实不必要懂得统统工具。当碰到没法了解的工具时,我就会感应力所不及,可是我告知人们的时分,每一个人城市说:“嗯,这就是传说中的Linux内核,你不克不及了解很一般!”
我的伴侣Dave比来给了我一个网站LXR,在内里你能够浏览到内核的资本,并且还供应了大批有效的援用链接。好比,假如你想要懂得chmod这个命令的体系挪用,你能够在thechmod_commondefinition页面看到有关于它在Linux内核里的界说!
这里是部分chmod_common的部分代码,个中有一些我写的正文:
<p>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
staticintchmod_common(structpath*path,umode_tmode)
{
structinode*inode=path->dentry->d_inode;
structiattrnewattrs;
interror;
//不晓得这是在干甚么
error=mnt_want_write(path->mnt);
if(error)
returnerror;
对于开发环境的选择尽量要轻量级和高度可定制,航空母舰级别的工具往往会让你迷惑不解; |
|