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. 学习建议:本教程针对 ...
随机推荐
- HBase 几点思考
1. http://blog.csdn.net/yueyedeai/article/details/14648067 2. http://blog.csdn.net/pirateleo/article ...
- AOI自动光学检测机技术在电路板检查中的应用
1.简述 AOI技术在许多不同的制造业领域使用,自从电子影像技术开始发展,就被各种人利用在不同的应用领域.大家最熟悉的数字相机.数字摄影机是大家生活中最常用到的器材之一,而工业产品的生产也大量使用这些 ...
- 【学习】leader特别忙工作到晚上11点左右,组员7点左右下班了,作为leader怎么办?
Ø leader先将自己做的事情罗列出来,选出不属于leader当前职责的工作内容. Ø 将不属于leader职责内容的部分授权给组员(承担更多的责任,职责). Ø 授权时,先考察组员的能力和了 ...
- Android studio dabao
首先肯定是配置gradle,百度一下就知道了,我的是mac下配置的,sudo vim ~/.bash_profile ,然后设置环境变量 GRADE_HOME=/Users/Admin/gradle; ...
- 谷歌三大核心技术(三)Google BigTable中文版
谷歌三大核心技术(三)Google BigTable中文版 Bigtable:一个分布式的结构化数据存储系统 译者:alex 摘要 Bigtable是一个分布式的结构化数据存储系统,它被设计用来处理海 ...
- fedora21 codeblocks在编辑装态下无法输入
来自:http://forum.ubuntu.com.cn/viewtopic.php?f=88&t=284409 用codeblocks,突然发现怎么敲键盘都不能输入 搜索后得知: Co ...
- [NOIP 2005]-- 篝火晚会
额~~,对这组题感兴趣的具体的解题报告可以戳戳这里:http://wenku.baidu.com/view/878beb64783e0912a2162aa7.html?qq-pf-to=pcqq.c2 ...
- BZOJ 1552: [Cerc2007]robotic sort( splay )
kpm大神说可以用块状链表写...但是我不会...写了个splay.... 先离散化 , 然后splay结点加个min维护最小值 , 就可以了... ( ps BZOJ 3506 题意一样 , 双倍经 ...
- php 学习笔记 数组1
1.一般情况下$name['tom']和$name[tom]是相同的:但没有引号的键不能和常量区别开,如:define('index', 5)时:$name['tom']和$name[tom]不同 2 ...
- NET Core全新的开发体验
NET Core全新的开发体验 2016年6月27日,这是一个特殊的日子,微软全新的.NET开发平台.NET Core的RTM版本正式发布.我个人将.NET Core的核心特性归结为三点,它们的首字母 ...