linux的学习方法,详细的学习过程,从什么地方入手到驱动编程。越详细越好。

87 2024-11-17 19:13

一、linux的学习方法,详细的学习过程,从什么地方入手到驱动编程。越详细越好。

我学linux的时候都把win7卸载了,然后就一直在ubuntu上作业。

先学linux的基本操作,建议看《鸟哥的私房菜基础篇》

学linux下编程(还没到驱动),建议看《unix高级环境编程》

最后就是你说的驱动编程,建议看《Linux设备驱动程序》

。。。当然这里写成3步走,还是有点简单了,还要看你的学习能力。

最好把linux的0.11的内核看看吧,0.11内核才1w左右行代码,比起现在2.6内核都上千万行了,有助你把握linux内核的框架,以后看2.6内核就不会像盲人摸象一样。

二、linux系统如何更好的学习?

LINUX系统因为开源给了我们很好学习操作系统的机会,和微软的视窗系统相比较的话都是各有千秋的,想很好的掌握LINUX系统还是需要花很多时间的,不仅仅是掌握几个命令几个服务的搭建,要全面来学习掌握内核的运行原理,理解对硬件的操作和调度,网上这类资料很多,要是还有什么需要帮助的就联系我,学习资料很乐意提供大家学习!

三、linux和嵌入式linux

为什么一说嵌入式Linux就老是想到“裁剪”、“阉割”这种修饰语呢?如果你这么理解的话,说明,你对嵌入式还是存在一定的误区的,对自己知识结构的完善是不利的。。。

什么叫做嵌入式呢?虽然目前没有很标准的定义,但业界普遍认为:专门为某个应用场景而实现的计算机系统,都叫做嵌入式系统。家里的四口路由器,手机,平板电脑,甚至是PC主板(注意,我说的是主板,不是整个PC)都是嵌入式系统。也可以说,除了你用的PC,工作站,服务器以外,都可以归纳如嵌入式系统的领域。

在嵌入式系统中,有的是有操作系统的,有的是没有操作系统的。虽然单片机在嵌入式应用中仍旧占据着很重要的角色和份额,但从软件工程师的就业发展来说,带有操作系统的嵌入式系统无疑有着更广的发展空间。

嵌入式操作系统中,有各种RTOS(最有名的,莫过于VxWorks了),也有一些实时性能不错的OS(较新的2.6版及向后版本的Linux可以规划在这里),还有一些实时性能不怎么样的OS(2.4版本的Linux内核,Windows等可以划归在这里)。

所以,根据应用场景,操作系统是有可能非非非常复杂的。所以,嵌入式Linux未必是“不完整的”“阉割了重大功能的”“简单化的”Linux。。。

纠正了概念,统一了你我的认识之后,你肯定就不会再问:究竟是学“纯”Linux呢,还是学嵌入式Linux呢?这个问题是没有意义的。其实,无论是内核,还是libc库,还是各种应用程序,PC和嵌入式的知识是共同的,没有严格界限的。嵌入式Linux跟PC上Linux的区别,更多的在于驱动程序的选择,本地编译还是交叉编译,UI界面的选择等方面。它们的本质技术,是没有任何区别的。

你在嵌入式上可能需要做小量裁剪,你在PC上同样会做裁剪。这并不意味着要阉割重要功能,因为,你在PC上做的工作,同样会希望在手机、平板电脑等这些复杂的移动终端上得以实现的~~~

(如果你只是为了实现一个很简单的功能,那我还是干脆建议你不要学习、使用Linux了)~~

所以,最终的结论是:如果你能精通Linux,那无论是PC上的Linux,还是嵌入式Linux,那么你都是很精通的。嵌入式和PC只是应用场景不同而已(更多的体现在用户空间各种程序的区别)。

如果希望成为一个内核开发者:

如果你对内核感兴趣的话,可以推荐两本公认的经典书籍:《深入理解Linux内核》《LInux设备驱动程序》。这两本,是所有内核开发工作者,读1遍,10遍,100遍,仍旧会认真读下去,并尝试理解每一个字的经典中的经典。

另外,我个人推荐一本《深入Linux内核架构》。这本书是一个德国人写的,对于基础比较薄弱的,是一个很好的自学教材。

如果看起来感觉还是吃力,建议以《Linux内核设计与实现》作为起步。这本书里没有讲透彻的地方,都可以去参看上面的那三本书。这本书,如果读起来也比较吃力的话,建议看看《Linux内核0.11完全注释(赵炯)》。如果连这本书都比较吃力的话,我还真没辙了,建议先看Linux的一些科普文章了。

补充一句:看任何书,永远都无法替代自己读内核源码~~~

如果你要搞应用,那么《UNIX环境高级编程》不可不读。剩下的,就要看你搞什么应用了。

四、如何开始学习Linux内核

在学习内核过程中最容易犯的错误,也是非常难掌握的其实是站在一个什么样的高度上去学习。

站什么样的高度去学习也与自身的能力相关,所以这个问题其实更多是在新开始学习的学习者感到非常痛苦的一件事。一方面又希望自己能学懂,但是又不知道如何开始入手。

列举几个常见的例子:

(1) 一开始就看源码,内核有什么都不知道,结果就想着啃0.11的内核,结果很显然,2天立马放弃,完全看不懂。

(2) 翻开书从第一页开始往下啃,如果这本书比较薄还好,如果比较厚,比如《深入Linux内核架构》,那看2天也得放弃。

(3) 不喜欢看目录,不喜欢快速浏览,就想着一个一个字眼的往下抠。如果本身有一定基础,看的时候还不会觉得腻,但是很快就发现,看了半天,什么都没有记住。

还有很多类似的问题,这些都是平时学习的时候特别容易出现的一些误区。这些其实都是没有正确审视自己的能力,胡乱挑选高度导致。

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
点击我更换图片