免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: chenrvmldd

有奖线上连载讨论:我的内核学习之路-回忆录 活动结束 获奖名单公布 [复制链接]

论坛徽章:
0
发表于 2011-09-07 11:39 |显示全部楼层
回复 80# easyblue
说的太在理了。我目前就在一家这样的公司。。

论坛徽章:
0
发表于 2011-09-07 12:59 |显示全部楼层
回复 4# chenrvmldd


    那时你是在读研究生吗?

论坛徽章:
17
水瓶座
日期:2013-08-29 12:09:27白羊座
日期:2014-08-07 12:36:42丑牛
日期:2014-07-24 12:44:41寅虎
日期:2014-04-16 16:15:33寅虎
日期:2014-03-12 09:28:43摩羯座
日期:2014-03-06 13:22:04技术图书徽章
日期:2014-03-06 11:34:50天蝎座
日期:2014-01-09 11:31:44寅虎
日期:2013-12-27 17:01:44双子座
日期:2013-12-27 12:32:29双子座
日期:2013-12-25 09:03:33丑牛
日期:2013-12-24 16:18:44
发表于 2011-09-08 10:07 |显示全部楼层
做为接触内核不久的菜鸟,斗胆班门弄斧了,还请大家拍砖!

我学习内核是从看《鸟哥的Linux私房菜》开始,熟悉Linux的命令和使用。

然后是从两个方面入手内核,一个是从大方向上,这个我是看的《Linux内核的设计与实现》。全局上先大概了解下Linux内核,不求甚解,但是要了解内核的一些比较重要的机制,至少混个脸熟。另一个是从实践上,这个我是看的LDD3,可以动动手,写点实际的代码运行下,巩固自己对Linux的认识,培养信心。

我觉得如果一开始就都求甚解,人的精力有限,不利于培养自己学习内核的信心,而且容易遗忘,毕竟没有经过实践巩固是很难记忆深刻的。所以我觉得初学内核,还是不要好高务远,主要了解Linux提供的机制,然后使用他们,写内核最简单的部分---驱动。然后在实践的时候,又可以反过来加深对Linux总体框架的把握。

接下来,我开始逐渐加深对Linux的了解,这时候我开始看ULK3,它非常详尽和博大,所以我是对照书和源代码开始看的,并且对比2.6.11和最新版本内核的区别,并且多总结多思索。这个阶段我认为要求甚解,任何东西都不能搞得模模糊糊,要想清楚,弄明白。。。人学东西有时候认为自己了解了,但是真的多思索,对细节上其实是了解的不够的,所以要多反思,多总结,并且最好写读书笔记,把自己的心得体会,以及重要的容易遗忘的细节部分记录下来,方便以后重新温习。

我现在还在慢慢啃ULK3,谈不上对后面的学习有什么心得了,也请高手们给点建议!

论坛徽章:
17
水瓶座
日期:2013-08-29 12:09:27白羊座
日期:2014-08-07 12:36:42丑牛
日期:2014-07-24 12:44:41寅虎
日期:2014-04-16 16:15:33寅虎
日期:2014-03-12 09:28:43摩羯座
日期:2014-03-06 13:22:04技术图书徽章
日期:2014-03-06 11:34:50天蝎座
日期:2014-01-09 11:31:44寅虎
日期:2013-12-27 17:01:44双子座
日期:2013-12-27 12:32:29双子座
日期:2013-12-25 09:03:33丑牛
日期:2013-12-24 16:18:44
发表于 2011-09-08 10:18 |显示全部楼层
上面是纵向的学习历程,横向上我觉得其实也有可以扩展的地方。

学以致用,我觉得内核的方方面面我们不仅仅应该拿来学习,而且要用,在实践中加深体会。我体会最深的自然是Linux的驱动模型,从中看到面向对象的思想,以及区分机制与策略的好处,这个对我的编程风格是很大的提高。

然后是Linux内核提供的机制,很多时候我们在应用层解决问题时,同样可以借鉴,内核提供的机制,都是对一些普遍需求的解决方案,而且汇聚了大师们的心血;比如对并发与同步,对时间管理,各种异步通信与消息传递等。。。我觉得设计的都非常精巧,很值得我们借鉴使用。

相信大家都能从内核中体会到很多能够借鉴到日常工作应用中的好处,本人能力有限,希望能抛砖引玉,高手多为我们指点解惑。

论坛徽章:
0
发表于 2011-09-08 10:56 |显示全部楼层
内核的东西一直都觉得很深奥,也都没有去学习
一年多来,坚持用linux,也觉得狸linux是个很好的东西
渐渐的,我也会爱上它
我现在打算从c开始学,为了搞懂linux,虽然我也浮躁,我也经常半途而废。

论坛徽章:
0
发表于 2011-09-10 00:48 |显示全部楼层
本帖最后由 linewer 于 2011-09-10 00:54 编辑

好几天没上CU了,看到前面好些人的学习路线,深有感触,偶物理出身,阴差阳错搞起来IT,算是半路出家,呵呵也来说下自己:

    最初知道linux还是本科时听同学提到过Redhat,(当初以为是国产的来着,几年以后自己真正用时才知道国产的叫红旗)做毕设时见到实验室用Redhat9做数值计算,算是摸了一下, 但真正意义上用还是05年读研那会,那时算是人生中的一个低谷期,无聊郁闷之余想起了曾经摸过的Redhat9,就从图书馆借了书,学习基本命令,配置系统,当初也是一把血一把泪过来的:所需软件包太少,网上满大街找确失软件, 一个人摸索着,按照自己平时的学习方法像蜗牛一样笨笨的学习着, 后来给实验室做网站(几乎算是从头学起),无意中知道了Debian,还是蛮喜欢这个发行版的(虽然之后用过Ubuntu,Fedora,RHEL,Centos,Suse,Arch,Gentoo等,但用的最长的还是这个,可能和性格有关),最终在这个系统上架设个Apache的Web服务器, 之后在校内从USTC还弄了Debian的源镜像,管理过Ftp,以前在windows下学习过visual C++/C,所以linxu下用g++/gcc没感觉有多大困难, 自学过bash, perl,python,OS等,去计算机系蹭过一些课(学物理对我来说还算轻松,从本科时就喜欢去工科系蹭课)..安装各种系统对我来说也没啥难度, 基本自己想做的东西通过查资料或者搜索/提问都能自己解决(当然仅限应用的东西).
期间认识不少校内玩linux/bsd的的高手(见面没见面的),有些最后还成为了同事(这都是后话了...)

     图书馆里见到过介绍内核的书,鉴于当时水平不够,也就是简单看了下介绍目录结构的部分,真正接触内核还是因为自己用的IBM本本windows下有个硬盘防震软件,后来在一次LUG中看到有校友展示过,就自己下了内核打了补丁在自己机器上捣鼓编译内核,折腾了几个小时还是成功编译并加载运行,抖动本本时看到有效果还是很有成就感的.但真正开始研究内核还是毕业工作之后,刚开始做SA,凭以前知识和学习能力,应付工作还是够用的。空闲之余就开始看内核的东西,谈不上啥原因,可能是系统用久了,专业原因使然, 就想看看到底是怎么实现的,尤其是刚开始启动linux时看到屏幕上刷刷的打印好多东西(其实当初第一次接触windows时看到启动时那个进度条就想这背后是咋实现的来着),每次启动时就对着打印看,有时也记下点打印.然后在代码里搜相关打印.
最初看的书是那本浙大人写的<<边干边学linux>>,看了下启动部分,系统调用和文件系统,因为是2.4的内核,在2.6的系统上试验老是出问题,后来只好作罢,只是多了解了相关的知识。后来买了本<<linux内核设计与实现>><<深入理解linux内核>>和<<linux0.11完全注释>>说实在的,进程管理虽说平时写程序加上os的一些知识有些感性的认识,直觉上觉得表述一个进程的各种状态得靠一个结构体的东西来表达,但刚开始看也是一头雾水.认为书写的也不咋样  (这个咋让人看着这么费劲呢,印象中好书不应该是这样的)现在回过头来想想,并不是书写的不好,写书的大师理解得比我们大多数要深刻的多,当初他是站在一个很高的角度来看待内核的,有些知识在他看来是"理所当然",应该具备的,很少提到,只不过我们由于背景知识的原因,当初是很难看懂和理解的.半路出家还是有些短板的,这个需要时间的积累和沉淀的.刚开始看内存时,对书上说的东西不是太理解,一些东西只是机械的记忆,看着前面觉得理解了,后面看到某个问题时发现和前面的理解又矛盾了.当时看书还是很痛苦的.后来有一天回想起本科学的不太深刻的分段分页知识,加上前面看的,重新理了下思路,算是开窍了,虽然还是有些东西不是太懂,但之后再看书以及后续看代码就没那么困难了.看代码时,为了查找方便,想了个办法:将非x86架构的文件/代码全删了,接口没用的也删了,只是为了便于理解,少受干扰...
    后来买了看了<<linux修炼之道>><<深入理解linux内核架构>>等书,发现<<深入理解linux内核架构>>倒是挺适合先于<<深入理解linux内核>>看的.不过这个问题是仁者见仁,智者见智,别人的学习方法不一定适合自己,关键是要找到适合自己的方法
   学习应用linxu(确切的说是GNU/Linux)内核,于我而言,学到了不少计算机方面的知识,以前学校里学习计算机结构/汇编,内存分段/分页等知识(其实生产实践中用到的好些东西课上都是没讲的,讲的东西反而用的不多),囫囵吞枣,应付考试还是足够的,后来在学习的过程中尤其是看内核的过程中算是又复习/学习了一编,有了更深的体会.另外更主要的是自学能力和分析解决问题的方法,享受的是解决问题的过程。工作之后感受最大的事不是像学校里一样老师讲知识以及告诉你原因,你只要被动的听就可以了,发现工作中甚至论坛上还是有些人上来就是直接让你告诉答案,而自己不先思考搜索下,也不说对某某问题自己做了哪些先期工作,好像人家就该告诉你似的.已个人经验,有些知识自己动手找答案是比别人告诉你要记得牢. 当然期间肯定会走一些弯路的,不过话说回来,曲折的路也并不一定是坏事,学东西要全方位,多层次多角度的体会。这也是另类成长,一种收获。
自己算是一非典型内核研究者,没啥特别的原因,只是喜欢(当初确实想做个专职的),想了解下当初是在啥背景下采取这个设计的, 除GNU/linux外(其实还是可以搭配一些其他内核的,以debian为例,除GNU/linux外,还有GNU/Hurd,GNU/Kfreebsd,后两者还是有些问题的,有待继续完善), 还有其他好些优秀的系统,比如BSD系列,Solaris,苹果Mac OS/X等;自己走了不少弯路,长时间坐在电脑旁,身体出现各种小毛病;以后有时间还是要多陪陪家人,朋友和同学,毕竟这只是生活的一小部分,不干这个话,照样还是可以活得精彩
啰里八嗦写了这么多,算是小记下自己的经历,最后提前祝各位Cuer中秋快乐~~

论坛徽章:
0
发表于 2011-09-10 11:21 |显示全部楼层
支持一下!~

论坛徽章:
1
双子座
日期:2013-10-30 14:48:40
发表于 2011-09-10 18:32 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
2
CU十二周年纪念徽章
日期:2013-10-24 15:41:34处女座
日期:2013-12-27 22:22:41
发表于 2011-09-10 19:47 |显示全部楼层
回复 128# flike

陈莉君?

论坛徽章:
1
双子座
日期:2013-10-30 14:48:40
发表于 2011-09-10 19:59 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP