随着物联网的快速发展,嵌入式系统早已成为了现代化社会不可缺乏的一部份,而Linux作为一种首选的操作系统linux嵌入式开发书籍,也是嵌入式系统中广泛应用的操作系统之一。本文将为您介绍Linux嵌入式系统开发的相关知识,并提供PDF手册供您参考。
1.哪些是Linux嵌入式系统?
嵌入式系统通常是指嵌入到各类家电或机器中的微型计算机系统,它们一般只有极少的资源(处理器、存储器、接口等),而同时须要具有可靠性、实时性、安全性和低帧率等特点。而Linux嵌入式系统就是在嵌入式系统中运行Linux操作系统的一种构架。Linux嵌入式系统具有稳定、灵活、易开发等特性。
2.Linux嵌入式系统开发的必备技能
要开发出完整的Linux嵌入式系统,您须要把握以下技能:
(1)熟悉Linux操作系统,包括Linux内核、驱动程序、工具链等;
(2)了解嵌入式系统硬件构架,如芯片选型、硬件插口设计等;
(3)了解Linux嵌入式系统的应用开发,例如使用Qt开发界面、使用OpenCV进行图象处理等。
3.怎样学习Linux嵌入式系统开发?
学习Linux嵌入式系统开发,您可以通过以下途径:
(1)在线教程。网路上有好多免费的在线教程,如网易云课堂、Coursera等,您可以通过这种平台学习Linux嵌入式系统的相关知识;
(2)书籍。有好多高质量的书籍可以帮助您学习Linux嵌入式系统开发,如《深入理解Linux内核》、《嵌入式Linux应用开发解读》等;
(3)实践。只有通过实践能够真正把握Linux嵌入式系统开发,您可以自己订购嵌入式系统开发板,进行实验和开发。
4.Linux嵌入式系统开发的工具
要进行Linux嵌入式系统开发,您须要以下工具链:
(1)交叉编译工具链。因为嵌入式系统一般不具有计算机的性能和储存资源,因而须要在其他计算机上编译和建立嵌入式系统的应用程序和内核模块深度linux系统,并用交叉编译器生成可执行文件;
(2)调试工具。嵌入式系统开发须要进行调试和测试,因而您须要使用调试工具来帮助您进行测试和调试,如GDB、dmesg、strace等;
(3)下载器。通过下载器将您的应用程序和内核模块下载到目标设备中。
5.Linux嵌入式系统开发的PDF手册
不仅在线教程和书籍外,还有好多PDF格式的嵌入式系统开发手册供您参考。
(1)《Linux系统嵌入式开发手册》。本手册详尽介绍了怎样在嵌入式系统上移植Linux操作系统,包括操作系统、驱动程序、Uboot等内容。
(2)《嵌入式Linux应用开发手册》。本手册介绍了怎样使用Qt和OpenCV来开发Linux嵌入式系统上的图形界面和图象处理应用程序。
(3)《嵌入式Linux驱动程序开发手册》。本手册介绍了怎么开发Linux内核模块,包括驱动程序、文件系统等。
6.
Linux嵌入式系统开发须要把握Linux操作系统、嵌入式系统硬件构架和Linux嵌入式系统应用开发等相关知识,您可以通过在线教程、书籍和实践等途径来学习。同时,PDF手册也是一个挺好的参考工具。随着物联网的快速发展,Linux嵌入式系统的重要性将越来越显现。
相关问题拓展阅读:
嵌入式设备的嵌入式设备上的Linux系统开发_嵌入式linux应用
Linux正在嵌入式开发领域逐步发展。由于Linux使用GPL(请参阅本文前面的参考资料),所以任何对将Linux订制于PDA、掌上机或则可佩戴设备感兴趣的人都可以从因特网免费下载其内核和应用程序,并开始移植或开发。许多仔毕Linux改良品种顺应了嵌入式/实时市场。它们包括RTLinux(实时Linux)、uclinux(用于非MMU设备的Linux)、MontavistaLinux(用于ARM、MIPS、PPC的Linux分发版)、ARM-Linux(ARM上的Linux)和其它Linux系统
嵌入式Linux开发大致涉及三个层次:引导装载程序、Linux内核和图形用户界面(或称GUI)。引导装载程序一般是在任何硬件上执行的之一段代码。在象台式机这样的常规系统中,一般将引导装载程序放入主引导记录(MasterBootRecord,(MBR))中,或则放入Linux留驻的c盘的之一个磁道中。一般,在台式机或其它系统上,BIOS将控制移交给引导装载程序。
专用软件可以直接与远程系统上的闪存设备进行交互并将引导装载程序安装在闪存的给定位置中。闪存设备是与储存设备功能类似的特殊芯片,但是它们能持久储存信息—即,在重新引导时不会擦除其内容。
个别种类的嵌入式设备具有微小的引导代码—根据几个字节的指令—它将初始化一些DRAM设置并启用目标上的一个串行(或则USB,或则以太网)端口与主机程序通讯。之后linux安全加固,主机程序或放入程序可以使用这个联接将引导装载程序传送到目标上,并将它写入闪存。设置工具链在主机机器上创建一个用于编译将在目标上运行的内核和应用程序的建立环境—这是由于目标硬件可能没有与主机兼容的二补码执行级别。
工具链由一套用于编译、汇编和链接内核及应用程序的组件组成。这种组件包括:Binutils—用哪档于操作二补码文件的实用程序。它们包括例如ar、as、objmp、objcopy这样的实用程序。G—GNUC编译器。Glibc—所有用户应用程序都将链接到的C库。防止使用任何C库函数的内核和其它应用程序可以在没有该库的情况下进行编译。建立工具链构建了一个交叉编译器环境。本地编译器编译与本机同类的处理器的指令。交叉编译器运行在某一种处理器上,却可以编译另一种处理器的指令。重头设置交叉编译器工具链可不是一项简单的任务:它包括下载源代码、修补补丁、配置、编译、设置头文件、安装以及好多好多的操作。另外,这样一个彻底的建立过程对显存和硬碟的需求是巨大的。假如没有足够的显存和硬碟空间,这么在建立阶段因为相关性、配置或头文件设置等念缓芹问题会忽然冒出许多问题。
因而才能从因特网上获得已预编译的二补码文件是一件好事(但不太好的一点是linux嵌入式开发书籍,它们大多数只限于基于ARM的系统,但迟早会改变的)。一些比较流行的已预编译的工具链包括这些来自Compaq(FamiliarLinux)、LART(LARTLinux)和Embedian(基于Debian但与它无关)的工具链—所有那些工具链都用于基于ARM的平台。从用户的观点来看,图形用户界面(GUI)是系统的一个最至关重要的方面:用户通过GUI与系统进行交互。所以GUI应当便于使用而且十分可靠。但它还须要是有显存意识的,便于在显存受限的、微型嵌入式设备上可以无缝执行。所以,它应当是轻量级的,而且还能快速倒入。
另一个要考虑的重要方面涉及许可证问题。一些GUI分发版具有准许免费使用的许可证,甚至在一些商业产品中也是这么。另一些许可证要求假如想将GUI合并入项目中则要支付版税。
最后,大多数开发人员可能会选择XFree86,由于XFree86为她们提供了一个能使用她们喜欢的工具的熟悉环境。而且市场上较新的GUI,象CenturySoftware的(Nano-X)和TrolltechQT/Embedded,与X在嵌入式Linux的竞技舞台中展开了激烈竞争,这主要是由于它们占用极少的资源、执行的速率很快而且具有订制窗口预制构件的支持。