Embedded Linux Primer----嵌入式Linux基础教程--章节介绍
章节介绍
第一章,“导引”,简要介绍了Linux被迅速应用在嵌入式环境的驱动因素,介绍了与嵌入式Linux相关的几个重要的标准和组织。
第二章,“第一个嵌入式经历”,介绍了与后几章所构建的嵌入式Linux相关的许多概念。
第三章,“处理器基础”,我们提出一个着眼于更流行的用来搭建嵌入式Linux系统的处理器和平台。我们检查并选择了很多主要处理器生产厂商产品。所有这些产品的架构都与现在的处理器很相似。
第四章,“Linux内核:一个不同的观点”从一个微差异的观点检查Linux内核。我们不关注内核理论和内部,我们着眼于它的结构,设计以及构建重点,学习你认为重要的内容,这其中包括内核构建系统的细节。
第五章,“内核初始化”,详细描述Linux处理器初始化处理过程。你将学习到体系结构和独特的bootloader(引导装载程序)镜像组成是如何与下载到Flash并且通过嵌入式bootloader启动的内核本身的镜像是相连接的。本章学习到的知识将帮助你为你的嵌入式设备定制嵌入式内核。
第六章,“系统初始化”,继续详细描述初始化过程的检查。当嵌入式内核已经完成了它自己的初始化,应用程序继续以预定的方式初始化。学习完本章,你已经学会了定制你自己的用户区启动序列的知识。
第七章,“Bootloaders”,作为一个在嵌入式Linux系统中引导装载程序的角色。我们查看流行的开放源码U-Boo并且提出了一个移植的例子。我们简单介绍现在使用的其它的Bootloader,让你能够为你的特殊装备提供一个合理的选择。
第八章,“设备驱动基础”,介绍了Linux设备驱动模型并且提供了强大的后台启动设备驱动。在本章的最后列出了额外阅读的建议。
第九章,“文件系统”,列举了目前嵌入式系统中使用的一些流行的文件系统,包括闪存设备上通常用的JFFS2文件系统。这一章还简要介绍了如何创建自己的文件系统映像,这也是嵌入式Linux开发人员所面临的一项艰巨任务。
第十章,“MTD子系统”,介绍了MTD(内存技术设备)子系统。MTD是Linux文件系统和硬件内存设备(尤其是闪存)之间一种非常有效的抽象层。
第十一章,“BusyBox”,介绍了BusyBox,它是我们构建小型嵌入式系统最常用的工具。这一章讲述如何根据特定需求对BusyBox进行配置和构建,随后介绍了仅使用BusyBox环境完成系统初始化的全过程。附录C列举了最新版本BusyBox的命令。
第十二章,“嵌入式开发环境”,详细介绍了典型交叉开发环境的特殊需求。这一章所介绍的一些技术能有效地提高嵌入式开发人员的工作效率,例如强大的NFS根目录挂载开发配置。
第十三章,“开发工具”,检查了许多有用的开发工具,介绍了gdb调试技术,包括内核转储分析的内容。这一章里面许多工具被提出来并且做出介绍,甚至于举出了一些例子,比如strace,ltrace,top,ps以及内存分析器mtrace,dmalloc。本章最后总结了二进制程序的说明,包括强大的readelf的效率。
第十四章,“内核调试技术”,提供一个详细的调试Linux内核的技术的检查。我们介绍内核调试器KGDB的使用,提供许多gdb调试器和KGDB调试器的组合使用技术。同样包括一份使用硬件JTAG调试器的使用说明,以及一些当你内核无法启动时分析失败原因的技巧。
第十五章,“调试嵌入式Linux应用程序”,将调试内容从内核转移到应用程序。我们继续建立基于先前两章的gdb例子,并且我们提供了多线程和多进程的调试技术。
第十六章,“移植Linux”,介绍你自定义的Linux的移植问题。我们跑一个简单的例子,强调在自定义的PowerPC上生产一个工作的Linux内核的步骤。介绍几个重要的概念已经让许多Linux内核移植新手步入陷阱。连同在十三章十四章提出的的技术,在你读完这一章之后,你应该准备好处理你自己定制板端口的准备了。
第十七章,“Linux和实时”,提供一个或多个用于嵌入式Linux的令人激动的开发环境的说明:通过CONFIG_RT选项配置实时性,我们采用实时性可用的特性以及他们能够如何被用在设计上,我们同样介绍测量应用程序延迟的技术。
第十八章,“通用串行总线”,以简单易懂的语言描述了USB子系统。我们介绍了一些概念和USB拓扑结构,接着给出了几个USB配置的例子。我们会详细分析sysfs的作用和USB,以帮助你理解这个功能强大的系统。我们还会介绍计费对于理解USB和解决USB故障有帮助的工具。
第十九章,“udev”,解密这个强大的系统配置工具udev。我们分析udev的默认行为,并以此为基础来理解如何对它进行定制。我们会给出几个现实生活中的例子。对于那些BusyBox的使用者,我们会考察BusyBox自带的mdev工具。
感谢
我时常惊讶开源开发者的热心,我总是以谦逊的态度对待我们协会里那些才能高于我的人。在这个项目过程中,我接触到许多Linux界以及开源界的人,并向他们咨询问题。许多问题都能够得到及时的回答。排名不分先后,我想对下面这些乐于回答我问题的Linux界和开源界的人表达我的感激之情。
Dan Malek在第二章“你的第一个嵌入式经历”的某些内容中给了我灵感。
DanKegel 和Daniel Jacobowitz耐心的回答我工具链的问题。
ScottAnderson在第十四章“内核调试技术”中提供了gdb宏指令的新颖想法。
BradDixon 通过他自己继续挑战以及扩大我的技术版本。
JimLewis 提供了MTD(译者:配置存储设备,使Linux可以读取闪存卡)方面的内容和建议。
ChrisHallinan
关于作者
Christopher Hallinan是MontaVista公司的现场应用工程师(译者:FAE),生活与工作在马萨诸塞州,拥有25年以上的网络和通信行业经验,做过多种产品的开发工作,在软件接口方面的深厚的开发背景。加盟MontaVista之前,Chris是一位Linux顾问,拥有4年Linux系统移植、设备驱动和bootloader开发经验,在U-Boot(一个流行的bootloader)项目中做出了杰出的贡献。在弄Linux之余,他喜欢唱歌,表演。
Embedded Linux Primer----嵌入式Linux基础教程--章节介绍的更多相关文章
- Linux下配置Squid基础教程
Linux下配置Squid基础教程 本视频高清下载地址:http://down.51cto.com/data/437529 本文出自 "李晨光原创技术博客" 博客,请务必保留此出处 ...
- ActiveMQ基础教程----简单介绍与基础使用
概述 ActiveMQ是由Apache出品的,一款最流行的,能力强劲的开源消息总线.ActiveMQ是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,它非常快速,支持多 ...
- OpenLayers3基础教程——OL3 介绍control
概述: 本文讲述的是Ol3中的control的介绍和应用. OL2和OL3 control比較: 相比較Ol2的control,OL3显得特别少,下图分别为Ol2和Ol3的control: Ol2的c ...
- [转][linux][centos]嵌入式 Linux下编译并使用curl静态库
#x86 ./configure --disable-shared --enable-static --disable-ftp --disable-ipv6 --disable-rtsp --disa ...
- (转) OpenLayers3基础教程——OL3 介绍control
http://blog.csdn.net/gisshixisheng/article/details/46761535 概述: 本文讲述的是Ol3中的control的介绍和应用. OL2和OL3 co ...
- (转)OpenLayers3基础教程——OL3 介绍interaction
http://blog.csdn.net/gisshixisheng/article/details/46808647 概述: 本节主要讲述OL3的交互操作interaction,重点介绍draw,s ...
- 嵌入式Linux学习(一)
嵌入式系统 嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分.通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板.事实上,所有带有数字接口的设备,如手表.微波炉.录像机.汽车等, ...
- Highcharts入门+Highcharts基础教程,【非常值得学习的资料】
http://www.hcharts.cn/docs/index.php?doc=index Highcharts入门章节目录 Highcharts简介 Highcharts下载与使用 Highcha ...
- iOS 9应用开发基础教程下册
iOS 9应用开发基础教程下册 介绍: 本教程是国内第一本iOS 9开发应用教程.本教程基于Xcode 7.0,使用Swift 2.0语言讲解如何开发iOS 9的应用App. 学习建议:本教程针对 ...
随机推荐
- ssh连接Linux自动断开后再也无法连上的问题
近期公司测试机有点抓狂,情况是这样的:用SSH登录后正常使用,但另外一部电脑也在登录,这时候会发生全部断开的情况,再也无法连接,连IP都PING不通. 今天尝试在/etc/hosts.deny 加入如 ...
- ZigBee研究之旅(二)
在学习ZigBee设备CC2530模块时,编程后程序无法运行,但又十分确定程序的真确性的情况下,看看是不是project栏下的option选项配置的有问题,我是经常在这里出问题,一开始找不到原因,特此 ...
- ThinkPHP - 缓存使用
用法: 需要使用不同的缓存方式的时候 需要重新初始化,如果不初始化直接调用的话,则会按照系统配置自动初始化.初始化的返回值,可以直接操作缓存: $cache = cache(array('type'= ...
- B - 最大报销额
注意超时问题,一个题可能有很多种方法解决,但是想到解决方法的同时一定要考虑这个方法的复杂度,特别是对于acm的题,有可能出现超时的情况,很浪费时间 正式比赛中就很遗憾,血的教训. 下面贴上超时的代码并 ...
- Tomcat 内存设置
大型项目或者使用了SSH 的话, Tomcat 可能会报 java.lang.OutOfmemoryError: PermGen Space Windows: 在 bin/catlina.bat 最上 ...
- Week12(11月25日)
Part I:提问 =========================== 1.如何删除一条记录? Part II:理论学习 =========================== 到目前为止,我们考 ...
- 如何在.Net中使用Redis
Redis是一个key-value存储系统.和Memcached类似,但是解决了断电后数据完全丢失的情况,而且她支持更多无化的value类型,除了和string外,还支持lists(链表).sets( ...
- ASP.NET MVC 5 学习教程:Details 和 Delete 方法详解
原文 ASP.NET MVC 5 学习教程:Details 和 Delete 方法详解 在教程的这一部分,我们将研究一下自动生成的 Details 和Delete 方法. Details 方法 打开M ...
- YII 路由配置
伪静态,通过设置server服务,做域名地址的转换工作. urlManager地址美化,通过程序的方式实现地址美化工作. 通过在主配置文件里配置组件来实现: 'components'=>arra ...
- Chrome 快捷键
chrome窗口和标签页快捷键: Ctrl+N 打开新窗口 Ctrl+T 打开新标签页 Ctrl+Shift+N 在隐身模式下打开新窗口 Ctrl+O,然后选择文件 在谷歌浏览器中打开计算机上的文件 ...