查看: 677|回复: 12
打印 上一主题 下一主题

《嵌入式Linux应用程序开发标准教程》电子书连载~!

[复制链接] qrcode

6

主题

12

帖子

32

积分

新手上路

Rank: 1

积分
32
楼主
跳转到指定楼层
发表于 2015-9-10 05:29 AM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

第2版说明

本书第1版出版以来,受到了广大读者的一致好评,很多读者都提出了很好的建议与意见。为了改进第1版的不足,我们经过精心策划与改编后推出了本书的第2版。

第2版图书的特点主要表现在以下几个方面。

= 内容讲解:在内容讲解与表达上综合了读者、作者、编审的意见,做到字斟句酌。

= 代码调整:修正了第1版图书中的代码进行大量的调整,并重新进行了编译、调试,使得第2版内容更加严谨。

= 图片清晰:更换了第1版图书中一些比较模糊的图片。

= 细节调整:投入了大量的精力和时间,对容易引起读者阅读困难的细节进行了全面调整。

本书写作背景

随着嵌入式技术的不断发展,近年来嵌入式技术在国内得到了广泛应用,在消费电子中得到了普及性的应用,越来越多的学校开设嵌入式系统课程,还有不少学校专门开设了嵌入式专业。国内目前的嵌入式图书大多理论讲解为主,缺少根据目前嵌入式技术实际应用理论与实际操作相结合的图书。

如何学习嵌入式系统

嵌入式领域是一个综合技术要求较高的的技术领域,实际的嵌入式开发需要开发者精通计算机体系结构、操作系统、多种芯片的原理结构、嵌入式Linux系统开发、嵌入式Linux内核等多种知识体系,而目前这也造成了国内嵌入式开发人才极其缺乏的局面。

学习嵌入式系统首先要掌握常用嵌入式处理器、嵌入式操作系统、嵌入式编程语言,即ARM处理器、嵌入式Linux系统、嵌入式C语言,有了这些基础就可以进行前入式Linux应用开发、系统开发、驱动开发等的学习。

本书专门为那些已经有较全面的计算机基础,而又希望能快速进入嵌入式Linux相关行业的开发人员而编写,希望能帮助读者快速跨过嵌入式开发的门槛。

本书的主要内容

本书分为3个部分。

第一部分主要讲解了Linux系统的基础知识。

第1章全面介绍了Linux的基本概念、Linux文件及文件系统。

第2章介绍了Linux的常见命令,包括用户系统常见命令、文件目录相关目录、压缩打包相关命令等,并简要分析了Linux的启动过程和Linux系统服务的配置。

第3章介绍了Linux下的C编程基础,由于C语言是嵌入式开发中最常用的语言,因此熟悉它的开发是非常重要的,本书详细介绍了Linux下的编辑器、编译器、调试器和工程管理器等工具使用,并附以具体实例进行讲解。

本书的第二部分主要讲解了如何搭建嵌入式Linux环境。

第4章全面介绍了嵌入式系统的基础知识,包括嵌入式系统的基本概念、几种主流的嵌入式操作系统的介绍,并且简要介绍了ARM处理器及本书的实验平台S3C2410处理器,此外还简要介绍了嵌入式软件的开发流程。

第5章介绍了嵌入式Linux开发环境的搭建和嵌入式开发中常见工具的使用,包括如何使用tftp、配置串口、编译Linux内核、制作文件系统以及如何使用u-boot。

本书的第三部分是本书的重点内容—嵌入式Linux的应用开发。

第6章详细讲解了嵌入式Linux的I/O与文件系统的开发,内容包含Linux系统调用及用户编程接口、Linux中文件及文件描述符、嵌入式Linux串口应用开发、标准I/O开发。

第7章介绍了进程控制开发,包括Linux进程控制编程和Linux守护进程。

第8章介绍了进程间通信开发,内容包含管道通信、信号通信、共享内存、消息队列、。

第9章介绍了多线程编程,内容包含Linux下线程分类、线程基本操作、线程访问控制

第10章介绍了嵌入式Linux网络编程,内容包含TCP/IP协议、网络基础编程、网络高级编程等。

第11章介绍了设备驱动程序的开发,内容包含设备驱动概述、字符设备驱动编写、LCD驱动编写实例、块设备驱动编写、中断编程键盘驱动实现等。

第12章介绍了嵌入式图形界面的开发,内容包含嵌入式GUI简介、和Qt/Embedded开发入门。以上各章在讲解中都给出了翔实的例子和实验,以便于读者尽快了解相关函数的使用。

适合的读者

本书可作为高等院校电子类、电气类、控制类等专业高年级本科生、研究生学习嵌入式Linux的教材,也可供广大希望转入嵌入式领域的DSP科研和工程技术人员参考使用,还可作为广大嵌入式Linux就业培训班的教材和参考书。

本书的阅读建议

本书以实践为特色,若读者能够动手操作书中安排的每一个环节,必定取得很快的提高。

嵌入式的开发与具体的硬件环境紧密相关,作者在讲解中尽量考虑了一些通用的方法以减少具体操作对硬件环境的依赖。因此,本书所述的方法大多是可以在绝大多数开发板上运行的,对于没有开发板的读者,也可以在PC机上完整地学习嵌入式Linux应用开发的部分,有条件时再转入到开发板上实践。

本书之外的内容

本书内容来自北京华清远见科技信息有限公司(www.farsight.com.cn)的培训课程资料,有关本书的相关源代码和嵌入式Linux更多的资料、公开课视频,请参见http://www.farsight.
com.cn/download/。

本书由孙琼执笔、赵苍明修订,孙天泽、孙纪坤为本书审定写作提纲,另外感谢以下人员为本书所做的工作:孙颂武、汪荷君、林雪梅、孙明、魏小康、杨玉林、任震宇、杨林、黄昕、张全、田彦、王辉、张强、陈曦等。

由于时间仓促,加之水平有限,书中的不足之处在所难免,敬请读者批评指正。本书责任编辑的联系方法是huangyan@ptpress.com.cn,欢迎来信交流。


编者 2009年1月

回复

使用道具 举报

6

主题

12

帖子

32

积分

新手上路

Rank: 1

积分
32
沙发
 楼主| 发表于 2015-9-11 10:03 AM | 只看该作者
第1章 Linux快速入门
本章目标
嵌入式Linux是以Linux为基础的操作系统,只有熟练使用Linux系统之后,才能在嵌入式Linux开发领域得心应手。通过本章的学习,读者能够掌握如下内容。
● 能够独立安装Linux操作系统
● 能够熟练使用Linux系统的基本命令
● 认识Linux系统启动过程
● 能够独立在Linux系统中安装软件
● 能够独立设置Linux环境变量
● 能够独立定制Linux服务

1.1 嵌入式Linux基础
自由开源软件在嵌入式应用上,受到青睐,Linux日益成为主流的嵌入式操作系统之一。随着摩托罗拉手机A760、IBM智能型手表WatchPad、夏普PDA Zaurus等一款款高性能“智能数码产品”的出现,以及Motolola、三星、MontaVista、飞利浦、Nokia、IBM、SUN等众多国际顶级巨头的加入,嵌入式Linux的队伍越来越庞大了。目前,国外不少大学、研究机构和知名公司都加入了嵌入式Linux的开发工作,成熟的嵌入式Linux产品不断涌现。
2004年全球嵌入式Linux市场规模已达9150万美元,2005年有1.336亿美元,2006年有1.653亿美元,2007年达到2.011亿美元,每年平均增长30%。
究竟是什么原因让嵌入式Linux系统发展如此迅速。业界归纳为三大原因︰第一,Linux在嵌入式系统所需的实时性、电源管理等核心技术不断发展;第二,国际标准组织(如OSDL、CELF等)持续建立嵌入式Linux相关标准,有效解决版本分歧与兼容性问题;第三,业界主导组织、开发厂商等不断推出嵌入式Linux相关开发工具、维护系统。
嵌入式Linux以年费订阅方式为主,与其他的以产品利润为收入方式的嵌入式系统不同,弹性的捆-绑销售策略,助其成功地逐年提高市场占有率,从2004年的46.8%扩大到2007年的56.4%。
国际有名的嵌入式Linux操作系统提供商Montavista,收购了PalmSource的爱可信和奇趣科技等,加强了对中国市场的投入,并在整个嵌入式操作系统市场中,占据了重要地位。而嵌入式操作系统的领先厂商,也改变了原来的单一产品路线,开始推出自己的Linux软件产品,实现“两条腿走路”。国内的嵌入式软件厂商也以Linux为突破口,纷纷开发各种基于Linux的操作系统产品。这些嵌入式Linux厂商已经形成了一个不容忽视的群体。
以下就从Linux开始,一层层揭开嵌入式Linux的面纱。
1.1.1 Linux发展概述
简单地说,Linux是指一套免费使用和自由传播的类UNIX操作系统。人们通常所说的Linux是Linus Torvalds所写的Linux操作系统内核。
当时的Linus还是芬兰赫尔辛基大学的一名学生,他主修的课程中有一门课是操作系统,而且这门课是专门研究程序的设计和执行。最后这门课程提供了一种称为Minix的初期UNIX系统。Minix是一款仅为教学而设计的操作系统,而且功能有限。因此,和Minix的众多使用者一样,Linus也希望能给它添加一些功能。
在之后的几个月里,Linus根据实际的需要编写了磁盘驱动程序以便下载访问新闻组的文件,又编写了个文件系统以便能够阅读Minix文件系统中的文件。这样,“当你有了任务切换,有了文件系统和设备驱动程序后,这就是UNIX,或者至少是其内核。”。于是,0.0.1版本的Linux就诞生了。
Linus从一开始就决定自由传播Linux,他把源代码发布在网上,于是,众多的爱好者和程序员也都通过互联网加入到Linux的内核开发工作中。这个思想与FSF(Free Software Foundation)资助发起的GNU(GNU’s Not UNIX)的自由软件精神不谋而合。
GNU是为了推广自由软件的精神以实现一个自由的操作系统,然后从应用程序开始,实现其内核。而当时Linux的优良性能备受GNU的赏识,于是GNU就决定采用Linus及其开发者的内核。在他们的共同努力下,Linux这个完整的操作系统诞生了。其中的程序开发共同遵守General Public License(GPL)协议,这是最开放也是最严格的许可协议方式,这个协议规定了源码必须可以无偿的获取并且修改。因此,从严格意义上说,Linux应该叫做GNU/Linux,其中许多重要的工具如gcc、gdb、make、emacs等都是GNU贡献的。
这个“婴儿版”的操作系统以平均两星期更新一次的速度迅速成长,如今的Linux已经有超过250种发行版本,且可以支持所有体系结构的处理器,如X86、PowerPC、ARM、Xscale等,也可以支持带MMU或不带MMU的处理器。到目前为止,它的内核版本也已经从原先的0.0.1发展到现在的2.6.xx。

小知识

自由软件(free software)中的free并不是指免费,而是指自由。它赋予使用者4种自由。

· 自由之1:有使用软件的自由。

· 自由之2:有研究该软件如何运作的自由,并且得以改写该软件来满足使用者自身的需求。取得该软件的源码是达成此目的前提。

· 自由之3:有重新散布该软件的自由,所以每个人都可以藉由散布自由软件来敦亲睦邻。

· 自由之4:有改善再利用该软件的自由,并且可以发表改写版供公众使用,如此一来,整个社群都可以受惠。取得该软件的源码是达成此目的前提。

GPL:GPL协议是GNU组织、维护的一种版权协议,遵守这个协议的软件可以自由地获取、查看、使用其源代码。GPL协议是整个开源世界的精神基础。

Linux的内核版本号:

Linux内核版本号格式是x.y.zz-www,数字x代表版本类型,数字y为偶数时是稳定版本,为奇数时是开发版本,如2.0.40为稳定版本,2.3.41为开发版本,测试版本为3个数字加上测试号,如2.4.12-rc1。最新的Linux内核版本可从http://www.kernel.org上获得。

回复 支持 反对

使用道具 举报

0

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
板凳
发表于 2015-12-15 05:35 AM | 只看该作者
1.1.2 Linux作为嵌入式操作系统的优势
从Linux系统的发展过程可以看出,Linux从最开始就是一个开放的系统,并且它始终遵循着源代码开放的原则,它是一个成熟而稳定的网络操作系统,作为嵌入式操作系统有如下优势。
1.低成本开发系统
Linux的源码开放性允许任何人获取并修改Linux的源码。这样一方面大大降低了开发的成本,另一方面又可以提高开发产品的效率。并且还可以在Linux社区中获得支持,用户只需向邮件列表发一封邮件,即可获得作者的支持。
2.可应用于多种硬件平台
Linux可支持X86、PowerPC、ARM、Xscale、MIPS、SH、68K、Alpha、Sparc等多种体系结构,并且已经被移植到多种硬件平台。这对于经费、时间受限制的研究与开发项目是很有吸引力的。Linux采用一个统一的框架对硬件进行管理,同时从一个硬件平台到另一个硬件平台的改动与上层应用无关。
3.可定制的内核
Linux具有独特的内核模块机制,它可以根据用户的需要,实时地将某些模块插入到内核中或者从内核中移走,并能根据嵌入式设备的个性需要量体裁衣。经裁减的Linux内核最小可达到150KB以下,尤其适合嵌入式领域中资源受限的实际情况。当前的2.6内核加入了许多嵌入式友好特性。
4.性能优异
Linux系统内核精简、高效并且稳定,能够充分发挥硬件的功能,因此它比其他操作系统的运行效率更高。在个人计算机上使用Linux,可以将它作为工作站。它也非常适合在嵌入式领域中应用,对比其他操作系统,它占用的资源更少,运行更稳定,速度更快。
5.良好的网络支持
Linux是首先实现TCP/IP协议栈的操作系统,它的内核结构在网络方面是非常完整的,并提供了对包括十兆位、百兆位及千兆位的以太网,还有无线网络、Token ring(令牌环)和光纤甚至卫星的支持,这对现在依赖于网络的嵌入式设备来说无疑是很好的选择。
1.1.3 Linux发行版本
由于Linux属于GNU系统,而这个系统采用GPL协议,并保证了源代码的公开,于是众多组织或公司在Linux内核源代码的基础上进行了一些必要的修改加工,然后再开发一些配套的软件,并把它整合成一个自己的发布版Linux。除去非商业组织Debian开发的Debian GNU/Linux外,美国的Red Hat公司发行了Red Hat Linux,法国的Mandrake公司发行了Mandrake Linux,德国的SUSE公司发行了SUSE Linux,国内众多公司也发行了中文版的Linux,如著名的红旗Linux。Linux目前已经有超过250个发行版本。
下面仅对Red Hat、Debian、Mandrake等具有代表性的Linux发行版本进行介绍。
1.Red Hat
国内,乃至是全世界的Linux用户最熟悉的发行版想必就是Red Hat了。Red Hat最早是由Bob Young和Marc Ewing在1995年创建的。目前Red Hat分为两个系列:由Red Hat公司提供收费技术支持和更新的Red Hat Enterprise Linux(RHEL,Red Hat的企业版),以及由社区开发的免费的桌面版Fedora Core。
Red Hat企业版有3个版本——AS、ES和WS。AS是其中-功能最为强大和完善的版本。而正统的桌面版Red Hat版本更新早已停止,最后一版是Red Hat 9.0。本书就以稳定性高的RHEL AS作为安装实例进行讲解。
官方主页:http://www.redhat.com/
2.Debian
之所以把Debian单独列出,是因为Debian GNU/Linux是一个非常特殊的版本。在1993年,伊恩?默多克(Ian Murdock)发起Debian计划,它的开发模式和 Linux 及其他开放性源代码操作系统的精神一样,都是由超过800位志愿者通过互联网合作开发而成的。一直以来,Debian GNU/Linux被认为是最正宗的Linux发行版本,而且它是一个完全免费、高质量的且与UNIX兼容的操作系统。
Debian系统分为3个版本,分别为稳定版(Stable)、测试版(Testing)和不稳定版(Unstable)。每次发布的版本都是稳定版,而测试版在经过一段时间的测试证明没有问题后会成为新的稳定版。Debian拥有超过8710种不同的软件,每一种软件都是自由的,而且有非常方便的升级安装指令,基本囊括了用户的所有需要。Debian也是最受欢迎的嵌入式Linux之一。
官方主页:http://www.debian.org/
3.国内的发行版本及其他
目前国内的红旗、新华等都发行了自己的Linux版本。
除了前面所提到的这些版本外,业界还存在着诸如gentoo、LFS等适合专业人士使用的版本。在此不做介绍,有兴趣的读者可以自行查找相关的资料做进一步的了解。
1.1.4 如何学习Linux
正如人们常说的“实践出真知”,学习Linux的过程也一样。只有通过大量的动手实践才能真正地领会Linux的精髓,才能迅速掌握在Linux上的应用开发,相信有编程语言经验的读者一定会认同这一点。因此,在本书中笔者安排了大量的实验环节和课后实践环节,希望读者尽可能多参与。
另外要指出的是,互联网也是一个很好的学习工具,一定要充分地加以利用。正如编程一样,实践的过程中总会出现多种多样的问题,笔者在写作的过程当中会尽可能地考虑可能出现的问题,但限于篇幅和读者的实际情况,不可能考虑到所有可能出现的问题,所以希望读者能充分利用互联网这一共享的天空,在其中寻找答案。
以下列出了国内的一些Linux论坛:
http://www.linuxfans.org
http://www.linuxforum.net/
http://www.linuxeden.com/bbs/
http://www.newsmth.net
回复 支持 反对

使用道具 举报

0

主题

35

帖子

72

积分

注册会员

Rank: 2

积分
72
地板
发表于 2015-1-6 09:47 AM | 只看该作者
xpeng_xpeng@163.com

多谢!发我一份资料!
回复 支持 反对

使用道具 举报

0

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
5#
发表于 2015-6-11 09:22 AM | 只看该作者
真是超级好阿,太经典了,适合初学入门,
讲linux非常详细

能麻烦您给我发一份么?
非常的感谢您。

我的邮箱是 yanwei0109@163.com
回复 支持 反对

使用道具 举报

0

主题

3

帖子

8

积分

新手上路

Rank: 1

积分
8
6#
发表于 2015-4-20 04:25 AM | 只看该作者
很需要学习,感谢楼主!                                                                                                                                                                       
回复 支持 反对

使用道具 举报

0

主题

3

帖子

8

积分

新手上路

Rank: 1

积分
8
7#
发表于 2013-2-7 03:20 AM | 只看该作者
我是初学者,要好好学学,辛苦楼主发给我啊邮箱:liukuiwu@126.com
回复 支持 反对

使用道具 举报

6

主题

12

帖子

32

积分

新手上路

Rank: 1

积分
32
8#
 楼主| 发表于 2013-2-7 04:22 AM | 只看该作者
以上几位留言的,已发送到邮箱中了,其他想要的,请到这里留言,更便于及时处理,统一发给大家~!

感谢关注~!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

0

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
9#
发表于 2013-2-7 06:14 AM | 只看该作者
回复 支持 反对

使用道具 举报

0

主题

3

帖子

8

积分

新手上路

Rank: 1

积分
8
10#
发表于 2013-2-7 06:33 AM | 只看该作者
谢谢LZ
也发我一份

mmspring@126.com
谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表