- 论坛徽章:
- 0
|
本帖最后由 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中秋快乐~~ |
|