yocto,poky,qemu

Yocto ,(本意Yocto是最小的计量单位,幺(科托),10^-24[1])是一个开源社区。它通过提供模版、工具和方法帮助开发者创建基于linux内核的定制系统,支持ARM, PPC, MIPS, x86 (32 & 64 bit)硬件体系架构。

假如用烹饪一桌酒席来形容yocto构建,则Yocto就是饭店,Poky就是厨房(以及提供作为参考的菜的搭配套餐),Metadata就是烹饪资源(.bb/.bbappend表示配方/配方上的补充贴签),Layers就是菜谱的分类(如川菜谱、粤菜谱),Bitbake就是厨师,构建的结果就是输出一桌酒席。

yocto项目的简要工作流程
​ Yocto项目的核心组件OpenEmbedded构建系统采用工作流方式来完成映像(Image)和SDK的生成,以下简要概述整个工作流程:


开发人员指定架构、策略、补丁和配置细节。
构建系统根据配置从指定位置获取并下载源代码。构建系统支持标准方法,例如 tarball 或源代码存储库系统,例如 Git。
下载源代码后,构建系统会将源代码提取到本地工作区,在该工作区中应用补丁并运行配置和编译软件的通用步骤。
然后,构建系统将软件安装到临时暂存区中,您选择的二进制包格式(DEB、RPM 或 IPK)用于在该暂存区中汇总软件。
不同的 QA 和健全性检查贯穿整个构建过程。
创建二进制文件后,构建系统会生成一个二进制包提要,用于创建最终的根文件映像。
构建系统同时生成文件系统镜像和定制的可扩展 SDK (eSDK) 用于应用程序开发。
​ 简单来说yocto项目工作流程就是OpenEmbedded构建系统读取各类配置文件完成编译打包工作,所以学会配置yocto项目的配置文件就OK了,但似乎没有很好的切入点?那反过来通过了解OpenEmbedded构建系统的构建过程来学习如何配置yocto项目的配置文件?
————————————————
版权声明:本文为CSDN博主「caodongwang」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zz2633105/article/details/122336684

Yocto项目通过Poky来构建一个系统,并提供了一个开放源码的开发环境,针对目标为ARM,MIPS,PowerPC和x86架构,而平台包括x86-64和模拟器。

Poky is a reference distribution of the Yocto Project®. It contains the OpenEmbedded Build System (BitBake and OpenEmbedded Core) as well as a set of metadata to get you started building your own distro. To use the Yocto Project tools, you can download Poky and use it to bootstrap your own distribution. Note that Poky does not contain binary files – it is a working example of how to build your own custom Linux distribution from source.

Poky是Yocto Project的一个参考发行版。它包含了OpenEmbedded构建系统(BitBake和OpenEmbedded Core)以及一套元数据,让你开始构建自己的发行版。为了使用Yocto项目的工具,你可以下载Poky并使用它来启动你自己的发行版。请注意,Poky不包含二进制文件--它是一个如何从源代码构建你自己的自定义Linux发行版的工作实例。

而Poky名字的由来,有两种说法。

一种是:"Poky" in English means "small". The idea being that the distro is engineered to build small OS images for small embedded devices.

"Poky "在英语中是 "小 "的意思。意思是,名为Poky的参考发行版是为小型嵌入式设备建立小型操作系统图像。

另一种说法,是由巧克力棒食品而来,我们经常可以看到的一个品牌。

All the names of Yocto (or better openembedded, which is it's ancestor) have to do with food. There is bitbake, cooker, toaster, and what not.

Pocky is a brand of chocolate coated bisquit sticks. (Not very international, I have not seen them.) But using a trademarked (I assume) name might end up in trouble, so they changed the spelling but kept the pronunciation.

Yocto(或者说openembedded,Yocoto的源头)的所有名字都与食物有关。有bitbake、cooker、toaster,还有其他的。

Pocky是一种巧克力涂层的饼干棒品牌。但使用一个有商标的名字可能会有麻烦,所以他们改变了拼写,但保留了发音。
————————————————
版权声明:本文为CSDN博主「夜流冰」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/guoqx/article/details/123415613

QEMU(Quick EMUlator,快速模拟器)是一套由法布里斯·贝拉(Fabrice Bellard)所编写的以GPL许可证分发源码模拟处理器软件,在GNU/Linux平台上使用广泛。BochsPearPC等与其类似,但不具备其许多特性,比如高速度及跨平台的特性,通过KQEMU这个闭源的加速器,QEMU能模拟至接近真实电脑的速度。

0.9.1及之前版本的qemu可以使用kqemu加速器。在qemu1.0之后的版本,都无法使用kqemu,主要利用qemu-kvm加速模块,并且加速效果以及稳定性明显比kqemu好。

运作模式

QEMU有两种主要运作模式:

Qemu下 Win NT 5.0

* User mode模拟模式,亦即是用户模式。QEMU能启动那些为不同中央处理器编译的Linux程序。WineDosemu是其主要目标。

* System mode模拟模式,亦即是系统模式。QEMU能模拟整个电脑系统,包括中央处理器及其他周边设备。它使得为跨平台编写的程序进行测试及除错工作变得容易。其亦能用来在一部主机上虚拟数部不同虚拟电脑。

QEMU的主体部份是在LGPL下发布的,而其系统模式模拟则是在GPL下发布;而kqemu这个加速器则是在免费但闭源的条件下发布的。使用kqemu可使QEMU能模拟至接近实机速度,但其在虚拟的操作系统是 Microsoft Windows 98或以下的情况下是无用的。

软件优点

默认支持多种架构。可以模拟 IA-32 (x86)个人电脑,AMD 64个人电脑,MIPS R4000, 升阳的SPARCsun3 与PowerPC(PReP 及 Power Macintosh)架构

可扩展,可自定义新的指令集

开源,可移植,仿真速度快

在支持硬件虚拟化x86构架上可以使用KVM加速配合内核ksm大页面备份内存,速度稳定远超过VMware ESX

增加了模拟速度,某些程序甚至可以实时运行

可以在其他平台上运行Linux的程序

可以储存及还原运行状态(如运行中的程序)

可以虚拟网络卡

软件缺点

对微软Windows及某些主机操作系统的不完善支持(某些模拟的系统仅能运行)

对不常用的架构的支持并不完善

除非使用kqemuKVM加速器,否则其模拟速度仍不及其他虚拟软件,如VMware

比其他模拟软件难安装及使用

使用实例

以下的指令可以建立一个500MB大小的"qcow"格式的硬盘映像。

qemu-img create -f qcow c.img 500M

而以下的指令会使虚拟机器在128MB内存,使用c.img这个用以上介绍的指令所建立的硬盘映像及以linux.iso为光盘映像的情况下运行。注意,如果使用物理光驱,请将-cdrom linux.iso这个参数变为 -cdrom /dev/cdrom或您所用的光驱。

qemu -clock dynticks -rtc-td-hack -localtime -hda c.img -cdrom linux.iso -boot d -m 128 -enable-audio -localtime

如果想缺省使用全萤幕启动子操作系统,可作以上指令后再加上"-full-screen"这个参数,如想在运行时离开全萤幕,请使用组合键Ctrl-Alt-F便可。

参数简介

-L dir 指向BIOSVGA BIOS所在目录

-hda/-hdb/-hdd/-hdc “文件名” 使用“文件名”作为硬盘0/1/2/3镜像。

-cdrom “文件名” 使用“文件名”作为光盘镜像(文件应该是ISO类型)。

Windows 下的使用者,可以透过下列指令使用实体光盘:

-cdrom //./x: -> x 代表光盘名称/位置

例如:-cdrom //./e: -> 使用 E:\ 为光盘

-fda/-fdb “文件名” 使用“文件名”作为磁盘0/1镜像。

-boot [a|d|c] 使用磁盘<a>,光盘<d>,或者硬盘<c>启动。

-m容量指定内存的大小,单位是MB。

-soundhw c1,... 使用声卡设备。

-soundhw ? 列出所有可使用的声卡

-soundhw all 使用全部声卡

-usb 允许使用usb设备。

-usbdevice 名字 添加一个usb设备“名字”。

-net nic 创建一块新的网卡。

加速模块

The QEMU 加速模组 (kqemu)

kqemu这个加速模组是Fabrice Bellard专为Linux核心而设计的闭源附加程序,目的是为了加速QEMU的子系统运行速度。在x86硬件上模拟x86的操作系统可达到主机速度。

QEMU 加速模组 - 使用者限制条件

QEMU 加速模组,kqemu,是一套闭源商业产品。可作个人使用而不受限制。但如果想使用光碟, ISO 映像或附加套件等方法分发QEMU加速模组,则必须联络作者并取得其同意后方可进行。

QVM86

现时除了以上的kqemu这个闭源的QEMU 加速模组外,亦有一个在GPL下发布的QEMU 加速模组。

KVM

KVM基于内核的虚拟机)是FreeBSD和Linux的内核模块,它允许用户空间程序运用各种处理器的虚拟化硬件特性,这个特点使得QEMU可以为x86, PPC 440, PPC 970, S/390, ARM (Cortex A15, AArch64) 以及 MIPS32主机提供虚拟化支持。当目标体系结构与宿主机相同时,QEMU可以使用KVM进行加速。

HAXM

HAXM是一个开源、跨平台的硬件辅助虚拟化引擎(hypervisor),由intel推出并广泛用作android模拟器和QEMU的加速。HAXM在宿主机上作为一个内核驱动运行,并提供一个类似KVM的用户空间接口,使得像QEMU这样的模拟软件能够使用Intel CPU提供的硬件虚拟化功能为虚拟机加速。使用需要硬件支持Intel VT-x 虚拟化以及EPT功能,软件支持windows和mac操作系统,也已经有Linux和FreeBSD的移植版本。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值