lunix 怎么上网 作为一个新人,怎样学习嵌入式Linux?(3)

电脑杂谈  发布时间:2018-02-10 21:58:20  来源:网络整理

二、内核:

想速成的人,先跨过内核的学习,直接学习怎么写驱动。

想成为高手,内核必须深刻了解。注意,我说的是了解,我没奢望去写出一个内核。

要对里面的调度机制、内存管理机制、文件管理机制等等有所了解。

推荐两本书:

1. 通读<linux内核完全注释>,请看薄的那本(浮燥的社会讲求速度, 呵),??

2. 选读<Linux内核情景分析>, 想了解哪一块就读哪一节

三、驱动:

驱动包含两部分:硬件本身的操作、驱动程序的框架。

又是硬件,还是要看得懂原理图、读得懂芯片手册,多练吧。

说到驱动框架,有一些书介绍一下。LDD3,即<Linux设备驱动>,老外写的那本,里面介绍了不少概念,值得一读。但是,它的作用

也就限于介绍概念了。我基本上是入门之前用它来熟悉一下概念,入门后就扔掉了。

驱动方面比较全的介绍,应该是宋宝华的<linux设备驱动开发详解>了,老实说我只看过目录,有不少人说好,这里推荐一下。

要想深入了解某一块,<Linux内核情景分析>绝对是超5星级推荐。你别指望把它读完,1800多页,上下两册呢。我是某一块不清楚

时,就去翻一下它。任何一部分,这书都可以讲上2、3百页,非常详细。并且是以某个目标来带你分析内核源码。它以linux 2.4为例,

但是原理相通,同样适用于其它版本的linux。lunix 怎么上网

还有没有其他介绍?呵呵,当然有了,韦东山Linux视频第2期。<嵌入式Linux应用开发完全手册>里对驱动讲得不多,不够深入。

于是我录制了这期视频。不仅仅教你怎么写怎么改驱动,还教你为什么这样写这样改驱动。

每一个驱动都是现场编写:??

kali linux渗透教程_linux上网 密码_lunix 怎么上网

1. 用绘图板画图讲解——相当于学校里老师在黑板上画图讲解,很直观

?? ??绝对不是对着PPT念。

2. 用source insight当场写程序,从第1行开始写,每一课都是这样。我讲了20多个驱动,就写了20多个程序。

3. 写完就编译、测试。

4. 很全面,字符设备驱动、块设备、网卡驱动3大类齐全,硬件介绍、驱动框架分析、测试3大类齐全。

?? ?? 培训机构里教的内容,远不及这期视频丰富。我在多个培训机构讲过课,从没看到哪个老师敢每一课都当场讲解当场编写代码

当场测试,除我之外!也没看到哪个培训机构讲完这些内容——因为时间不够,讲完起码要一个月,但是这部分基本只有2周授课时间。

把你手上的开发板所涉及的硬件,都去尝试写一个驱动吧。有问题就先"痛苦地思考",思考的过程中你会把很多不相关的知识

串联起来,最终贯通。

四、根文件系统:

大家有没有想过这2个问题:

1. 对于Linux做出来的产品,有些用作监控、有些做手机、有些做平板。那么内核启动后,挂载根文件系统后,应该启动哪一个应用程序呢?

?? ??答:内核不知道也不管应该启动哪一个用户程序。它只启动init这一个应用程序,它对应/sbin/init。

?? ???? ?? 显然,这个应用程序就要读取配置文件,根据配置文件去启动用户程序(监控、手册界面、平板界面等等)

?? ???? ?? 这个问题提示我们,文件系统的内容是有一些约定的,比如要有/sbin/init,要有配置文件

2. 你写的hello,world程序,有没有想过里面用到的printf是谁实现的?

?? ??答:这个函数不是你实现的,是库函数实现的。它运行时,得找到库。

?? ???? ?? 这个问题提示我们,文件系统里还要有库。

?? ???? ????

?? ???? ?? 简单的自问自答到这里,要想深入了解,可以看一下busybox的init.c,就可以知道init进程做的事情了。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-70740-3.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...