lujian19861986
发表于 2011-09-02 11:53
我一开始在学校学习重点放在java编程,只是玩一下linux的命令,到了公司接触了linux用gcc编译c写的程序完成工作,后面又要vc++做了一个项目,后面才接触开始真正接触linux(修改cgi开始,查看thttpd服务器源代码比较难懂)、交叉编译、用console查看打印信息等,发现开发环境比较复杂,代码不在自己pc上,全是摸索,幸好遇到不懂的问题可以问问同事。
我总结一下工作的心得和体会。
1.必须对linux熟悉,会用常用的命令查看信息。
2.必须熟悉gcc编译C语言程序和Makefile写法和技巧,你懂的。
3.对于网络开发,必须熟悉netfilter和iptables命令的使用。
4.多上cu,找最新的网络方面的书看看
5.多做实验,打印信息,看看是否与自己理解的符合
6.熟悉如何在内核增加模块,熟悉网络数据包在内核中的流程
推荐《linux网络编程》,结合书中的例子,用虚拟机实验一下源代码,记住提及的函数的使用方法。将代码和内核源代码,用source insight生成项目查看比较好查看理解。
学习Linux比windows麻烦很多,用vs写代码确实方便舒服,嵌入式更新固件也累,调试都是打印信息,gdb都不好用上,有没有熟悉linux调试技巧的童鞋?给点建议。
lujian19861986
发表于 2011-09-02 11:57
回复 23# 塑料袋
保证身体很重要~
colin_chan
发表于 2011-09-02 11:59
支持个,不懂编程的飘过...不过看了让人很有学习的劲头
redhatuser
发表于 2011-09-02 12:25
:em06: 不懂C没法看,,
easyblue
发表于 2011-09-02 12:26
探讨内核学习之路
通常学习像爬山,开始缓,慢慢陡峭,最后到达山顶。
但是内核的学习路径不是。开始就是悬崖,能爬上去就能坚持,否则基本停留在原地。。。
经典的内核书籍有 深入理解linux内核(翻译的极差),情景分析(毛德操写的),内核详细注释(基于0.11版),不管那本树,看过的人都很多,能坚持看一个月以上的就只有十分之一了,能坚持半年以上的更少。
内核的学习曲线是九十度陡峭的,能建立基本的架构,看内核代码像普通的c代码一样,后面就后走了。
可惜这一步恰恰最难。。。
探讨一下内核的难度所在:
内核是一个整体,很难分割。比如看文件系统,vfs和具体文件系统,还行,可以看下去,
inode ,dentry概念出来了,有点难了,坚持吧。
咦, 怎么有address_space 了,这是干啥的?又出来alloc_page,跳到内存管理了,
越来越搞不明白了,完了,,放弃。。。
第二,前面帖子说了,国内的工作学习环境应用内核的太少(也有,下面再说),
大多数人学只是兴趣,难以致用,再加上出门就是悬崖,苦逼的学习需要极强的毅力坚持,
多半也就放弃了。。
easyblue
发表于 2011-09-02 12:38
建议一下的学习之路哈:
1. 建立操作系统的基本概念,达到国内本科科班教育的水准。
鉴于国内极差的教学水平和游乐园一样的学习氛围,不是达到大多数计算机本科生的
操作系统理解水平。
2.建立实际操作系统的概念和架构。
前景分析这本书不适合这个阶段,情景分析是代码解读,太绕。
深入理解linux内核也不适合,翻译的太差, 而且基本接近代码导读。
详细注释这本书倒适合入门,可惜0.11太简陋,和现在的linux2.6版本差的太远。。。可以花一定时间看看,迅速建立架构。
3. 读代码,做试验。
从内存管理,文件系统,中断异常,进程管理,设备模型,io体系结构等等分章节,分层面阅读代码, 然后修改内核代码,做试验,做项目。。
论坛ID
发表于 2011-09-02 13:46
回复 106# easyblue
兄弟发的几个贴说的很有道理啊。
看过很多人说学习kernel浮躁是大敌,实际上在我们这样的环境真正能不问待遇不去攀比,一心学习的人能有多少呢?
内核所牵涉的每一块都是非常庞大,就你说的例子,从vfs到alloc_pages,这里全部吃透就要花上非常多的时间。
一个人的精力总是有限的,若只求了解一个基本架构,可能并不需要很多时间,但是要深入一个子系统,那就要花上相当大的精力。
一个人若是在做项目又怎么能挤出那么大把的时间呢?
再说一个公司要是只是培养你(或者说一个可以让你有大把大把学习时间的公司),能给出多高的薪资呢。
一个人是不是能够不“浮躁”地一直安心踏实学习,不管同学们现在的工资比你高上一截。
攀比可能不算什么,但是我们确实需要钱,要住房子,要娶媳妇。
这么说确实很俗,但是很现实。
如果我能有一个比较安稳的环境,不必顾虑这些生活上的事(富二代)
我愿意每天把除了睡觉吃饭之外几乎所有的时间花在内核上,因为我喜欢做
但是想着这些,又不禁有些彷徨,有些浮躁
我觉得,出于兴趣学习内核是好的,如果为了钱就会显得“得不偿失”,学习内核性价比不行啊。
bxfqing
发表于 2011-09-02 17:19
在读书的时候,比较讨厌windows,我这个人,比较喜欢折腾,总是想知道为什么,在大二的时候,在图书馆借了毛德操的
"Linux内核源码情景分析",我记的是上下册,还续借了1次,但是还是没有好好,认认真真的看,现在想想,浪费了大好时光,工作后,买了本赵X的 0.11内核分析,现在也没细看,惭愧,惭愧
yaongtime
发表于 2011-09-03 15:31
本人也读过一点内核代码,但是我不知道怎么去用这些东西,是去修改,还是把相同的方法用到别的地方。
小电锯
发表于 2011-09-03 16:59
开始学习linux最近学了网络应用 想以后做驱动和内核希望前辈们多多指点
页:
1
2
3
4
5
6
7
8
9
10
[11]
12
13
14