爻易 发表于 2015-02-10 21:17

内核是连浮点数都不提倡用的,你觉得它对数学要求高吗?

知之者不如好之者,好之者不如乐之者。--《论语》

开发Linux内核不需要天赋异秉,不需要有什么魔法,连Unix开发者普遍长着的络腮胡子都不一定要有。内核虽然有一些有趣并且独特的规则和要求,但是它和其他大型软件项目相比,并没有太大差别。像所有的大型软件开发一样,要学的东西确实不少,但是不同之处在于数量上的积累,而非本质上的区别。 --《Linux内核设计与实现》

sohusina 发表于 2015-02-11 09:51

学吧,学吧,我最近就在学习内核,建议:
1,先把c语言课本学好,然后学数据结构课本,注意,是课本,不是别的。
2,关于算法,到目前为止,可能我的水平有限,个人看到的算法似乎都还简单。至少还没看到大学微积分,矩阵,这些复杂的内容。倒是移位操作比较多,也就是一些加减乘除了。
3,学习内核,最好从简单处开始慢慢加深。
4,在看内核书籍的同时,下一个内核版本结合代码一起看。

25641463 发表于 2015-02-11 10:08

http://bbs.chinaunix.net/thread-4062484-1-1.html
我几年前发的帖子,最后搞清楚了。磁盘回写的流量控制算法里就有微积分的思想。

sohusina 发表于 2015-02-11 10:48

回复 14# 25641463


    你的原帖我看了,包括英文链接,那个算法也未见有很复杂的运算。
    说实话,对于这种算法,作者的创作也许用到了微积分,说明其创作深度有一些,但是对读者而言,(注意,我们是读者),能够理解就够了,这水平不需要很高深的数学知识。

mosquitoh 发表于 2015-02-11 10:57

SeAL80s 发表于 2015-02-11 00:13 static/image/common/back.gif
1.不是搞内核的,不太清楚你要的答案
2.看你的目的是干什么?如果是补贴家用为主,那就跟主流,做Web、企业 ...
是家用啊,做内核不能养活我自己吗?

25641463 发表于 2015-02-11 10:58

你指的简单运算是 加减乘除 移位这种么。难道C语言还有矩阵、微积分运算符?
如果你要修改代码改进算法,不知道作者的意图,并且阐述你的意图,怎么证明自己的算法更适合。而且理解作者意图,这种算法可以移植到自己的项目里。只看表面代码复杂不复杂,加减移位,我觉得意义不大。

SeAL80s 发表于 2015-02-11 11:05

回复 16# mosquitoh


    当然可以。但是,按你说的自身情况,要打的基础有很多啊。内核开发是最接近底层的,越是靠近底层,需要开发者的基础、能力越强。

sohusina 发表于 2015-02-11 11:08

就事论事吧,就举你的帖子里的例子,的确是用到了微积分,但是也仅是一个函数而已,如果大致理解了函数的意图,把入参出参搞清楚,调试便可。要改进算法,一般情况下,不也是要一边改一边测试的么?

fire_vr 发表于 2015-02-15 15:47

Kernel对数学、算法要求都不高,但我建议你找个做底层的小公司,比如做Linux driver的,一边学、一边做,这样学起来很快。
在家里闭门造车,很难用起来的,毕竟这个是实践性很强的学问,估计外面的公司也不承认。
还有,精通Kernel的人还是很值钱的(尤其是有很强的故障分析解决能力),据我观察,虽然比不上那些高大上的互联网公司,但在一线城市2.5W、3W的月薪还是拿得到的。

mosquitoh 发表于 2015-02-15 16:39

fire_vr 发表于 2015-02-15 15:47 static/image/common/back.gif
Kernel对数学、算法要求都不高,但我建议你找个做底层的小公司,比如做Linux driver的,一边学、一边做,这 ...
恩恩,谢谢了
页: 1 [2]
查看完整版本: 学内核对数学、算法、数据结构的要求怎么样?