文章目录
- 简述
- 背景
- 关键词理解
yocto 官方参考文档: https://docs.yoctoproject.org/index.html
bitbake 参考文档: https://docs.yoctoproject.org/bitbake/index.html
简述
Yocto项目比Buildroot复杂得多。它不仅可以像Buildroot一样构建工具链、引导加载程序、内核和根文件系统,还可以为你生成一个完整的Linux发行版,包含可以在运行时安装的二进制文件包。Yocto项目主要是 一系列项目方案的集合,类似Buildroot的包,但由Python、shell脚本以及名为BitBake的任务调度程序混合编写而成,BitBake能从方案中生成任意配置。
对于我们做软件开发的盆友们而言简直就是福音,省去了我们交叉编译每个软件项目的时间,又容易将我们的成果固化下来,使我们的项目更加的规范和标准化。对于开发者而言,仅仅两条终端命令即可编译出我们需要的所有镜像文件。从此,不必再纠结交叉编译的问题,公司也不必担心某个程序员离职导致项目开发无法继承的问题,即使一个N年之后没有接触的项目,仍然可以快速上手、编译和刷机运行。
背景
Yocto项目源于OpenEmbedded,OpenEmbedded衍生出许多项目,使Linux可以移植到各种手提电脑上,比如夏普Zaurus系列和康柏iPaq系列。OpenEmbedded于2003年诞生,最初作为手提电脑的构建系统工具,但很快就扩展应用到其他类型的嵌入式开发板。
OpenEmbedded项目创建了一套使用紧凑的.ipk格式的二进制包,这些包可以用不同方式结合起来创建一个目标系统,并在运行时安装在目标上。为了实现这一点,它为每个软件创建方案并把BitBake作为任务调度程序使用。这个过程一直都非常灵活。通过提供合适的元数据,你可以按自己的规范创建一个完整的Linux发行版。
关键词理解
Yocto项目聚集了几个组件,其中最重要的是以下几个:
- Poky:参考发行版
- oe-core:核心元数据,与Openembedded共享
- BitBake:任务调度程序,与Openembedded和其他项目共享
- Documentation:每个组件的用户手册和开发者指导
- Hob:openembedded和BitBake的图形化用户接口
- Toaster:基于Web的openembedded和BitBake接口
- ADT Eclipse:Eclipse插件,使通过Yocto Project的SDK构建项目更加容易
严格来说,Yocto Project是这些子项目的汇总。它采用Openembedded作为构建系统,Poky作为其默认配置和参考环境。然后,人们经常使用“Yocto项目”一词来单独指代构建系统。
yocto是国际单位制中代表10^-24 的词冠,正如micro代表 10^-6 一样,使用这个来命名这么一个项目原因可能是为了表明这个项目可以构建出非常微小的Linux系统的意思吧!