为什么要使用yocto
作为灵活多变且经济高效的解决方案,嵌入式 Linux展现了巨大的价值,并广泛应用于消费电子设备、网络设备、零售点和行业应用程序。然而,广泛的应用也意味着多样化的业务需求,嵌入式解决方案开发人员必须构建定制Linux 版本来满足其特定需求。
本文引用地址:http://www.eepw.com.cn/article/201610/305448.htm
这导致了嵌入式Linux 市场的乱象,一直以来,开发人员不得不向各家芯片制造厂商寻求主板支持包(BSP)和工具。而且这些部件往往是基于不同制式开发的,这无异于雪上加霜。虽然市面上有数百种可用的嵌入式Linux 发行版,但每个版本都是高度定制的,这导致了大量的重复工作,很多开发人员创建了大同小异的Linux 版本,再基于其开发自己的增值特性和功能。
自由修改Linux 来创建定制版本是一把双刃剑,一方面证明了开源软件的巨大价值,另一方面也是导致复杂性的根源。创建定制版本在开发、集成、测试和验证方面要承担巨大的开销。由于大多数解决方案开发人员所创造的增值效应并不会很快显现,因而这些工作的“性价比”往往并不高。BSP 集成通常也比较复杂和困难,这也显著增加了项目的成本和风险。
鉴于此,开放源代码运动的精英们意识到了统一化、一致化对于Linux性命攸关,他们聚集起来,启动了Yocto Project计划,开始为开源社区培植变革的火种。
Yocto Project通过一个开源协作项目解决了这些难题,它提供了一整套模板、工具和方法以简化定制Linux 开发。这个开源项目得到了来自商业和开源生态系统的广泛参与和支持,包括各大芯片厂商、主流操作系统供应商和独立顾问。
Yocto项目鼓励跨各种应用程序和设备类型的创新,支持多种硬件架构,包括x86(32 位和 64 位)、arm、PPC 和MIPS。随着硬件BSP 支持的增加和BSP 格式的标准化,这个项目创造了巨大的价值。
作为 Yocto Project 的创始成员之一,英特尔在 Linux Foundation 的协调下,与各个社区共同致力于为嵌入式开发人员创建一个共享的开发环境,并提供了模板、工具和最佳实践,以简化定制的嵌入式 L i n ux 应用程序的开发。通过提供的关键技术,Yocto Project 与英特尔架构之间实现完美的协同增效。
Yocto Project提供全面的开发解决方案
Yocto Project 为嵌入式开发人员提供资源, 项目采用了OpenEmbedded-Core 作为其上游发布版本。项目拥有一个积极的社区,不断完善、测试和更新 Yocto Project 内核和其他组件。
项目站点提供了全面的文档, 构建系统( 基于OpenEmbedded 架构)、交叉构建工具、通用的打包系统和一个应用程序开发人员 SDK。Yocto Project 提供的核心组件包括:
x-Architecture。Yocto Project 扩展了构建系统的功能,为 Yocto Project 内核和三个构建配置文件(最小构建、sato 构建和 LSB 构建)提供了最新的经过全面测试的元数据。
BSP。项目包含大量经过测试的 BSP,大大提高了在硬件和架构之间的可移植性,此外还提供了源代码方案以及生成的 Yocto Project 参考运行时映像。
SDK。Yocto Project 工具可以利用 Eclipse和 Anjuta 插件自动创建一个 SDK 或应用程序开发人员工具包,SDK 可用于开发应用程序, 适用于和特定的定制运行时映像一起使用。
使用Yocto Project带来的优势
Yocto Project 为解决嵌入式Linux 开发乱象迈出了一大步。芯片、操作系统和设备厂商之间的协作和战略规划有助于实现广泛而一致的行业支持。因此,操作系统厂商可以基于 Yocto Project 内核来开发商业操作系统和其他产品,而且芯片厂商也可以提供硬件 BSP。
总之,该项目为整个生态系统提供了以下获益:
健壮的构建系统。Yocto Project 支持从其他常用构建系统轻松迁移到 Yocto Project 的经过事实验证的环境,而且新的软件版本更新也十分容易。
灵活的定制能力。开发人员可以自由选择资源的使用,或者完善特定的组件(包括这些组件的特定版本)。
可简单地向商业操作系统迁移。Yocto Project 的设计允许用户使用自主开发的操作系统或商业操作系统,在迁移时不会丢失优化或功能。此外,商业操作系统也可以使用 Yocto Project 作为上游资源,从而确保最大化代码重用。
综上所述,Yocto Project赋予开发人员一个极高的起点,帮助他们避免重复工作以及不必要的维护。事实上,Yocto Project是全球最大的开源项目之一,以此为基础而开发的通用创建系统,可帮助开发人员避免从零开始,转而把时间和资源集中于开发差异化Linux设备,从而实现投资回报最大化。
为什么要使用yocto的更多相关文章
- yocto系统介绍
The Yocto Project is an open source collaboration project that provides templates, tools and methods ...
- Yocto开发笔记之《错误记录》(QQ交流群:519230208)
QQ群:519230208,为避免广告骚扰,申请时请注明 “开发者” 字样 ============================================== 提问: 1. 怎样修改linu ...
- Yocto开发笔记之《驱动调试-华为3G模块》(QQ交流群:519230208)
QQ群:519230208,为避免广告骚扰,申请时请注明 “开发者” 字样 ======================================================== 参考:ht ...
- Yocto开发笔记之《应用程序架构》(QQ交流群:519230208)
QQ群:519230208,为避免广告骚扰,申请时请注明 “开发者” 字样 ======================================================== Eclip ...
- Yocto开发笔记之《快速入门,环境搭建 & 编译》(QQ交流群:519230208)
开了一个交流群,欢迎爱好者和开发者一起交流,转载请注明出处. QQ群:,为避免广告骚扰,申请时请注明 “开发者” 字样 ======================================== ...
- Yocto 包管理 apt-get
/******************************************************************** * Yocto 包管理 apt-get * 说明: * 查一 ...
- [Freescale]Freescale L3.14.52_1.1.0 yocto build
可参照:http://blog.csdn.net/wince_lover/article/details/51456745 1. Refer to <基于i.mx6处理器的Yocto项目及Lin ...
- 通过yocto给p1010rdb定制linux,并启动linux
一.通过yocto定制linux 1.安装yocto yocto只能在非root用户下编译,所以先新建一个用户. useradd chen passwd -d chen 重启电脑进入chen用户. ...
- Yocto和Android编译命令的简化和自动完成的实现
简化编译命令 无论是在Android编译系统中,还是在Yocto编译系统中,要编译一个目标,输入命令都有点费事. Yocto系统: source setup-environment $FOLDER b ...
- yocto doc
Yocto Project Overview and Concepts Manual https://www.yoctoproject.org/docs/2.6.1/overview-manual/o ...
随机推荐
- create genil component
https://help.sap.com/viewer/79ef8b1636dd492d8fd430d2d309b90f/MDG92_SP01/en-US/16a5115454744a18e10000 ...
- Cpython解释器下实现并发编程——多进程、多线程、协程、IO模型
一.背景知识 进程即正在执行的一个过程.进程是对正在运行的程序的一个抽象. 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一.操作系统的其他所有内容都 ...
- Python random模块random/uniform/randint/choice/getrandbits/shuffle/choice/sample随机函数
1.random.random() 返回0<=n<1之间的随机实数n 2. random.uniform() 弥补了上面函数的不足,它可以设定浮点数的范围,一个是上限,一个是下限. 3. ...
- gcc 6.2.0/6.3.0/8.2.0 编译安装
参考:http://www.linuxfromscratch.org/blfs/view/stable/general/gcc.html 下载地址在这里:https://ftp.gnu.org/gnu ...
- 原来CNN是这样提取图像特征的。。。
对于即将到来的人工智能时代,作为一个有理想有追求的程序员,不懂深度学习(Deep Learning)这个超热的领域,会不会感觉马上就out了?作为机器学习的一个分支,深度学习同样需要计算机获得强大的学 ...
- Selenium基本使用(十一)异常捕获
1. 抛出异常和自定义异常 Python用异常对象(exception object)表示异常情况,遇到错误后,会引发异常.如果异常对象并未被处理或捕捉,程序就会用所谓的回溯(Traceback,一种 ...
- node.js初识01
1.对于node.js的安装在这里就不做过多的介绍了,安装成功后,可以通过cmd 输入node -v查看node的版本号,如图所示 2.开始我们的hello world,通过cmd进入所属文件夹,输入 ...
- js的基本包装类型
基本包装类型(包装对象): 先看下以下代码: var s1 = "helloworld"; var s2 = s1.substr(4); 上面我们说到字符串是基本数据类型,不应该有 ...
- div上下左右居中方法
方法一:在浏览器中只有一个div的情况 { position:fixed; position:fixed; ; ; ; ; margin:auto; } 方法一 方法二:一个父元素div和一个已知宽度 ...
- shader之法线变换
对于法线变换,进行非统一缩放时,如果使用跟变换顶点相同的变换矩阵来变换法线,则会得到错误的结果,即变换后的法线方向与平面不再垂直. 如何求得变换法线的矩阵呢: 转载请注明出处:http://www.c ...