EulerMaker Yocto Open Build Service

EulerMaker & Yocto & Open Build Service

  • 1 介绍
    • 1.1 概述
  • 2 工具
    • 2.1 Yocto 【嵌入式领域】
      • 介绍
      • 目标
      • 好处
      • 三大关键组件
      • 创建流程
      • 发行版本
    • 2.2 Open Build Service 【OBS】【服务器领域】
      • 介绍
      • 应用
    • 2.3 EulerMaker 【全场景】
      • 介绍
      • 特性
      • 需求背景
        • (1)能支持全场景
        • (2)新的构建系统要集成测试流程
        • (3)强大的定制能力
        • (4)统一的包格式
      • 附 吴峰光博士 介绍
  • 3 openEuler
    • 3.1 openEuler 使用 OBS 【服务器场景】
    • 3.2 openEuler Embedded 使用的工具 Yocto 【嵌入式场景】
    • 3.3 嵌入式特色
  • 其他
    • Buildroot
  • 参考

1 介绍

1.1 概述

linux 开发中涉及系统构建、软件构建等,本文做一些工具用途知识普及。

服务器领域的 OBS、嵌入式领域的 Bitbake【Yocto】,是各自领域的代表性构建系统,历史悠久。而 Euler系统领域 后来者 EulerMaker 想实现全场景统一构建系统。
在这里插入图片描述

2 工具

2.1 Yocto 【嵌入式领域】

Shape the future of customizable embedded Linux.

介绍

Yocto 项目(YP)是一个开源协作项目,可帮助开发人员创建基于 Linux 的自定义系统,而不受硬件架构的影响。该项目由 Linux 基金会于 2010 年宣布,并于 2011 年 3 月与OpenEmbedded等 22 个组织合作启动。

该项目提供了一套灵活的工具和空间,全球的嵌入式开发人员可以共享技术、软件堆栈、配置和最佳实践,可用于为嵌入式和 IOT 设备或任何需要定制 Linux 操作系统的地方创建定制的 Linux 映像。

Yocto 项目的重点是改进嵌入式 Linux 发行版的软件开发流程。Yocto 项目提供可互操作的工具、元数据和流程,可实现基于 Linux 的嵌入式系统的快速、可重复开发,其中开发流程的每个方面都可以自定义。支持ARM、MIPS、PowerPC和x86 / x86-64架构的定制Linux系统开发。

除了构建 Linux 系统之外,还可以生成用于交叉编译的工具链和针对其自身发行版定制的软件开发工具包(SDK)。该项目试图与软件和供应商无关。因此,例如,可以选择要使用的包管理器格式(deb、rpm或ipk)。

目标

  • 为开源项目提供协作场所,进一步开发可定制的 Linux 平台和基于嵌入式系统的系统。
  • 鼓励对 Linux 平台开发的现有组件进行标准化和重用。
  • 专注于创建一个构建系统基础设施和技术,以满足所有用户的需求,并在已识别和实用的地方添加缺失的功能,并且源自 OpenEmbedded 架构。
  • 确定涵盖定制 Linux 产品开发(从实验和概念验证到应用程序开发和生产)的工具中缺少功能的关键领域。
  • 记录可用的方法和工具,并使用户能够轻松使用它们。
  • 尽可能确保这些开发的工具在架构上是独立的。
  • 进一步教育社区了解这种标准化和协作在 Linux 社区和行业中的好处。

好处

在这里插入图片描述

三大关键组件

  • BitBake ——实质上就是 Yocto 的构建系统引擎。它负责创建配方——构建特定系统所需的任务列表——以及解析元数据和执行配方。

  • OpenEmbedded-Core ——元数据。它保存了创建系统所需的基本配方、相关文件和类。构建时设定为通用,以便适用于各种基于 OpenEmbedded 的系统。

  • Poky ——包含一个基于 Linux 的全平台构建工具和各种其他技术,帮助各大团队以可靠的方式快速地开发新系统。Poky 基于各种架构生成文件系统镜像。其中的典型示例就是 QEMU 全系统仿真,一种极其出色的嵌入式软件测试平台。

创建流程

在这里插入图片描述

发行版本

发行代码名称日期支持
5.1(未来版本)斯蒂赫德10/202405/2025
5.0 (LTS) (当前稳定版本)斯卡斯盖普04/202404/2028
4.3 (旧版本,不再维护)南比尔德11/202305/2024
4.2 (旧版本,不再维护)米克尔多尔05/2023停产
4.1 (旧版本,不再维护)兰代尔10/2022停产
4.0 (LTS) (旧版本,但仍在维护)柯克斯通05/202204/2026
3.4 (旧版本,不再维护)霍尼斯特2021 年 11 月停产
3.3 (旧版本,不再维护)哈德诺特2021 年 4 月停产
3.2 (旧版本,不再维护)盖茨加斯2020 年 11 月停产
3.1 (LTS) (旧版本,但仍在维护)邓费尔2020 年 4 月04/2024
3.0 (旧版本,不再维护)宙斯2019 年 10 月停产
2.7 (旧版本,不再维护)战士2019 年 4 月停产
2.6 (旧版本,不再维护)2018 年 11 月停产
2.5 (旧版本,不再维护)相扑2018 年 4 月停产
2.4 (旧版本,不再维护)洛可2017 年 10 月停产
2.3 (旧版本,不再维护)火焰兵2017 年 4 月停产
2.2 (旧版本,不再维护)莫蒂2016 年 10 月停产
2.1 (旧版本,不再维护)克罗格斯2016 年 4 月停产
2.0 (旧版本,不再维护)叶忒罗2015 年 10 月停产
1.8 (旧版本,不再维护)菲多2015 年 4 月停产
1.7 (旧版本,不再维护)晕眩的2014 年 10 月停产
1.6 (旧版本,不再维护)雏菊2014 年 4 月停产
1.5 (旧版本,不再维护)多拉2013 年 10 月停产
1.4 (旧版本,不再维护)迪伦2013 年 4 月停产
1.3 (旧版本,不再维护)丹尼2012 年 10 月停产
1.2 (旧版本,不再维护)丹齐尔2012 年 4 月停产
1.1 (旧版本,不再维护)爱迪生2011年10月停产
1.0 (旧版本,不再维护)伯纳德2011停产
0.9 (旧版本,不再维护)拉维恩2010停产
  • 未来版本:带有将来发布计划的版本。
  • 当前稳定版本:当前推荐使用的稳定版本。
  • 旧版本,不再维护:已经停止更新和维护的版本。
  • 旧版本,但仍在维护:虽然不是最新,但仍在继续维护的版本。
  • 停产:产品已经停止生产,不再提供支持。

2.2 Open Build Service 【OBS】【服务器领域】

介绍

Open Build Service (OBS,开放构建服务,以前称为openSUSE Build Service) 是一个通用系统,用于以自动、一致和可重复的方式从源代码构建和分发二进制包。 您可以为各种操作系统和硬件体系结构发布软件包以及更新、附加组件、设备和整个发行版。应用在 SUSE Linux Enterprise Server 、openSUSE、Red Hat Enterprise Linux、Mandriva、Ubuntu、Fedora、Debian和Arch Linux。此外,OBS也能构建特定产品与应用程序。

Open Build Service 软件本身在 GPL 协议下发布。 Linux 基金会已经把该项目添加到 Linux 开发者网络 (LDN),认可了OBS对更广泛的Linux社区的作用。 此外,各种公司以及 MeeGo 项目、Tizen 和 EulerOS 正在使用OBS来开发他们的发行版。

build.opensuse.org支持 6 种架构上的 21 种操作系统,并且 OBS 提供对打包过程的完全控制,使其成为终极打包平台。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

应用

  • redhat
  • debian
  • ubuntu

2.3 EulerMaker 【全场景】

介绍

EulerMaker 是一个支持软件包、文件级剪切的统一构建工具,目标替代 OBS 和 Yocto,如今 OBS 已经替代,替代 Yocto,还在努力中。

统一构建平台是一款软件包构建平台,实现从源码到二进制软件包与软件仓库的平台服务。该平台通过统一的软件包配置管理,软件包依赖关系分析,实现基于依赖关系的软件包高效构建。帮助开发者与合作伙伴建设自己的用户个人仓,OS核心仓,构建门禁能力。

openEuler 社区一开始是用 OBS 来构建的,2022 年 3 月,openEuler 团队开始设计新的构建系统 EulerMaker,致力于替代 OBS 和 Yocto。

特性

EulerMaker 构建系统是一款软件包构建系统,完成源码到二进制软件包的构建,并支持开发者通过搭积木方式,组装 和 定制出适合自己需求的场景化 OS。主要提供增量/全量构建,分层定制与镜像定制的能力。

增量/全量构建,基于软件包变化,结合软件包依赖关系,分析影响范围,得到待构建软件包列表,按照依赖顺序下发并行构建任务。

构建依赖关系,提供工程软件包构建依赖表,支持筛选及统计软件包依赖及被依赖的软件包内容。

分层定制,支持在构建工程中,通过选择与配置层模型,实现对软件包的patch构建依赖、安装依赖、编译选项等内容的定制,完成针对软件包的场景化定制。

镜像定制,支持开发者通过配置repo源,生成iso、qcow2、容器等OS镜像,并支持对镜像进行软件包列表定制。

分层定制,支持在构建工程中,基于 spec 或 yaml,叠加配置层模型,实现针对软件包的版本、patch、构建依赖、安装依赖、编译选项及构建流程等内容的定制。

镜像定制,支持开发者通过配置 repo 源,生成 iso、qcow2、容器等 OS 镜像,并支持对镜像进行软件包列表定制。

支持本地任务复现,通过命令行在本地复现构建任务,方便定位构建问题。

一键工程创建,基于yaml配置实现一键工程创建,支持批量加包,大大简化用户操作。

需求背景

(1)能支持全场景

就服务器 OS 来说,OBS 构建可能够用;但是当一个操作系统要支持全场景【含嵌入式】,复杂度就大大增加,对构建系统提出了更严苛的要求。

如下摘自–吴峰光博士

“服务器领域的 OBS 主打能力是什么?几大主流的 Linux 发行版它都支持,比如可以给 Redhat 打包,也可以给 Debian 打包。兼容并包是它的核心设计目标,适应了 Linux 多样化的现状。但我们认为,多样化在早期对 Linux 发展有利,但长期而言,Linux 生态的碎片化是一个需要被解决的问题。”

“嵌入式领域的 Bitbake 采用了面向任务和过程的 DSL 描述语言,这使得它非常灵活强大,但自由度和复杂性过高,以学习曲线陡峭知名。现在流行的理念是如 YAML、JSON 等通用、声明式的配置语言,和函数式编程,以实现低门槛、易理解、可控可重复的构建过程。”

(2)新的构建系统要集成测试流程

如下摘自–吴峰光博士

“在 Linux 发展的最初阶段,需求是简单的:只要功能实现了,跑一下 gcc / make 能构建出来,用户能用,构建系统的工作就完成了。那时侯 Linux 社区对测试不重视,也还没有 CI / CD 的概念,测试基本全靠用户踩坑。现在情况就不一样了,时代的要求在提高:开发者期望有质量把控,要做测试,要有一整套的构建测试 CI / CD,要覆盖一整个开发流程,一站式全部搞定,出来的 RPM 包已经是经过测试的、用户能放心用的。这已经被开发者认为是标配,是开发者的正常预期。”

“市面上的 CI / CD 通用测试服务,适合测试上层的应用;而操作系统需要测试的,既有上层软件,又有基础软件;既面向应用开发者,又面向内核开发者,还有软件厂商、硬件厂商、OS 厂商,他们都有独特的测试需求;既要做功能测试,还要做性能测试。这些不是市面上通用 CI / CD 能做的。所以,我们需要一套全栈系统,既能构建,又满足上述所有测试需求。”

早在 2020 年,吴峰光就综合分析上述需求,设计了 Compass-CI。Compass-CI 被设计为一个通用的任务执行系统,可以执行构建、功能测试、性能测试等各类任务。Compass-CI 也被设计为一个异构调度系统,可以调度物理机、虚拟机、容器等各种资源。

(3)强大的定制能力

如下摘自–吴峰光博士

“一个通用的 OS,所带的软件往往要求大而全,把常见的功能都编进去。但很多场合有着不同的需求,比如启用一个不常用的功能,或者在嵌入式设备上,因为资源受限,需要把不必要的功能裁减掉。”
类似的,当我们说一个 OS 支持全场景,是只需维护一套 OS 源代码,通过源码级 + 镜像级定制,即可构建生成各类场景化的二进制 OS 发布。强大的定制能力,是赋能一套 OS 源码支持全场景的‘究极魔法’。”

“我们引入了开发者们都很熟悉的 YAML 配置语言,用它来声明式的描述一个软件包。”

“比如您在一家大公司的基础设施团队,需要在 openEuler 基础上定制 Linux 内核,改一下 kconfig,加一个补丁。在过去,您可能需要拷贝一份 kernel.spec,然后直接在上面修改。这意味着维护上百行的 SPEC 文件,且时不时要从上游回合新的改进,这一过程枯燥而繁琐。现在从 Fork 模式转为搭积木模式,只需维护好一个小小的 kernel.yaml 文件。然后每次拉新的 BaseOS 重新构建,都会自动拿到上游欧拉内核的最新错误修复。这样就很好的降低了开发维护成本,提高了安全性。是一种更加可持续的上下游协同演进方式。”

(4)统一的包格式

openEuler 现在采用的是业界主流的软件包格式之一:RPM 。这种软件包格式不仅仅被 Redhat Linux 使用,也被 openSUSE、OpenMandriva、Oracle Linux、Tizen 等使用。

为了一统软件包的定义,openEuler 采用了新的 YAML 配置语言进行包描述,并接管 RPM 的 SPEC 文件,成为新的开发者界面。吴峰光说,SPEC 文件中采用了大量复杂的宏定义,而 EulerMaker 将这些复杂性隐藏到YAML后面。换言之,openEuler 新的统一构建系统采用的 YAML 配置语言制定了一种更通用、更灵活的包定义。

附 吴峰光博士 介绍

2022 年末,openEuler Summit 2022 上,中国 Linux 内核圈最有影响力的开发者之一——吴峰光博士做了名为《面向全场景操作系统的构建服务发布》的主题演讲,正式向开发者披露了 openEuler 统一构建服务 EulerMaker。

吴峰光博士是著名的 Linux 内核贡献者、华为计算操作系统首席专家、openEuler 社区技术委员会委员。他在 Linux 内核领域上拥有卓越贡献,在 I/O 和内存管理、内核测试服务方面做出了重要的贡献。

3 openEuler

3.1 openEuler 使用 OBS 【服务器场景】

openEuler 社区一开始是用 OBS 来构建的,22年后使用 EulerMaker 替代 OBS。

3.2 openEuler Embedded 使用的工具 Yocto 【嵌入式场景】

由于openEuler Embedded是面向嵌入式场景的,其对构建系统的核心诉求是: 交叉编译、灵活的定制化与裁剪, 而openEuler现有的 OBS 构建系统更加适合服务器场景的大型OS构建,无法有效满足嵌入式场景的需求,所以 openEuler Embeddedd 的核心构建系统是基于Yocto,但又根据自身的需求做了很多定制化的开发。

3.3 嵌入式特色

  • 南向生态:openEuler Embedded Linux 当前主要支持 ARM64、x86-64 两种芯片架构,22.03 LTS SP3 版本新增支持 RK3588 芯片,未来还将支持龙芯、飞腾等芯片。

  • 嵌入式弹性虚拟化底座:openEuler Embedded 的弹性虚拟化底座是为了在多核片上系统(SoC,System On Chip)上实现多个操作系统共同运行的一系列技术的集合,包含了裸金属、嵌入式虚拟化、轻量级容器、LibOS、可信执行环境(TEE)、异构部署等多种实现形态。

  • 混合关键性部署框架:构建在融合弹性底座之上,通过一套统一的框架屏蔽下层弹性虚拟化底座形态的不同,从而实现 Linux 和其他 OS 运行时便捷地混合部署。

  • 北向生态:350+ 嵌入式领域常用软件包的构建;支持 ROS2 humble 版本,集成 ros-core、ros-base、SLAM 等核心包,并提供 ROS SDK,简化嵌入式 ROS 开发;提供软实时能力,软实时中断响应时延微秒级;集成 OpenHarmony 的分布式软总线和 hichain 点对点认证模块,实现欧拉嵌入式设备之间互联互通、欧拉嵌入式设备和 OpenHarmony 设备之间互联互通;支持 iSula 容器,可以实现在嵌入式上部署 openEuler 或其他操作系统容器,简化应用移植和部署。

  • 硬实时系统(UniProton):是一款实时操作系统,具备极致的低时延和灵活的混合关键性部署特性,可以适用于工业控制场景,既支持微控制器 MCU,也支持算力强的多核 CPU。

其他

Buildroot

类似 yocto,yocto用户多,资源丰富,buildroot 用户少,资源少。

参考

1、官网–Yocto
2、wiki–Yocto
3、官网–Open Build Service
4、wiki–Open Build Service
5、openEuler Embedded–构建系统
6、[Develop and Maintain a Distro with Open Build Service](https://www.slideshare.net/slideshow/
develop-and-maintain-a-distro-with-open-build-service/14015521)
7、Yocto Project – Build your custom linux
8、Yocto 还是 Buildroot,构建自定义嵌入式系统时,您会选择哪一种?
9、《Embedded Linux Systems with the Yocto Project》
10、openEuler–EulerMaker用户指南
11、openEuler操作系统(创新项目总览)
12、EulerMaker:构建 openEuler 全场景生态
13、欢迎使用EulerMaker
14、“多重人格”的操作系统——openEuler
15、EulerMaker特色
16、openEluer Embedded BSP雪球计划
17、rockchip/documents/openEuler镜像的构建

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/677015.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

群体优化算法---鲸鱼优化算法应用于电力系统优化

介绍 鲸鱼优化算法(Whale Optimization Algorithm, WOA)是一种基于鲸鱼行为的智能优化算法,由Seyedali Mirjalili等人于2016年提出。WOA受鲸鱼捕食行为的启发,尤其是座头鲸的气泡网捕食策略,模拟了鲸鱼围绕猎物游动和…

Qt图像处理技术十二:QImage实现边缘检测(sobel算法)

效果图 原理 Sobel算法是一种常用的边缘检测算法,它利用图像的灰度变化来检测图像中物体的边缘。Sobel算法主要包括以下几个步骤: 灰度化: 首先将彩色图像转换为灰度图像,因为灰度图像只包含单通道的灰度信息,有利于…

LeetCode刷题之HOT100之全排列

九点半了&#xff0c;做题吧。聊天聊到十一点多哈哈。 1、题目描述 2、逻辑分析 给定一个不重复数组&#xff0c;要求返回所有可能的全排列。这道题跟我上一道题思想一致&#xff0c;都是使用到回溯的算法思想来解决。直接用代码来解释吧 3、代码演示 public List<List&…

java的clone

一、clone的用法&#xff1a; package chatRoom.F5;class Person implements Cloneable{//1.public String name;public Person(String name) {this.name name;}//2.protected Person clone() throws CloneNotSupportedException {return (Person)super.clone();//重写Object…

mac安装nigix

1. 查看是否存在 nginx 执行brew search nginx 命令查询要安装的软件是否存在 brew search nginx 2. 安装nginx brew install nginx 3. 查看版本 nginx -v 4. 查看信息 查看ngxin下载的位置以及nginx配置文件存放路径等信息 brew info nginx 下载的存放路径 /usr/loca…

Django基础学习(一)

前端开发 目的&#xff1a;开发一个平台(网站)- 前端开发&#xff1a; HTML, CSS,JavaScript- web框架&#xff1a;接收请求并进行处理- MySQL数据库&#xff1a;存储相应的数据1.快速开发网站 pip install flask创建项目并导入flask框架,然后建立网址和函数的对应关系。 fr…

C++设计模式——Adapter适配器模式

一&#xff0c;适配器模式简介 适配器模式是一种结构型设计模式&#xff0c;用于将已有接口转换为调用者所期望的另一种接口。 适配器模式让特定的API接口可以适配多种场景。例如&#xff0c;现有一个名为"Reader()"的API接口只能解析txt格式的文件&#xff0c;给这…

JavaEE_CAS_Synchronized原理_线程安全集合类

文章目录 一、CAS1.什么是CAS2.CAS有哪些应用1.实现原子类 - AtomicInteger2.基于CAS实现的自旋锁3.CAS的ABA问题 二、Synchronized原理1.基本特点2.偏向锁3.锁消除4.锁粗化 三、JUC(java.util.concurrent)的常见类1.Callable接口2.ReentrantLock3.信号量Semaphore4.CountDownL…

11.7 堆排序

目录 11.7 堆排序 11.7.1 算法流程 11.7.2 算法特性 11.7 堆排序 Tip 阅读本节前&#xff0c;请确保已学完“堆“章节。 堆排序&#xff08;heap sort&#xff09;是一种基于堆数据结构实现的高效排序算法。我们可以利用已经学过的“建堆操作”和“元素出堆操作”…

(uniapp)简单带动画的tab切换效果

效果图 代码 <template><view class"tabBox"><view :style"{transform: translateX(${translateX})}" class"whiteBox"></view><view click"changeTab(k)" class"itemBox" v-for"(v,k) in…

安防视频融合汇聚平台EasyCVR如何实现视频画面自定义标签?

安防视频融合汇聚平台EasyCVR兼容性强&#xff0c;可支持Windows系统、Linux系统以及国产化操作系统等&#xff0c;平台既具备传统安防视频监控的能力&#xff0c;也具备接入AI智能分析的能力&#xff0c;可拓展性强、视频能力灵活&#xff0c;能对外分发RTMP、RTSP、HTTP-FLV、…

【二叉树】Leetcode 222. 完全二叉树的节点个数【简单】

完全二叉树的节点个数 你一棵 完全二叉树 的根节点 root &#xff0c;求出该树的节点个数。 完全二叉树 的定义如下&#xff1a;在完全二叉树中&#xff0c;除了最底层节点可能没填满外&#xff0c;其余每层节点数都达到最大值&#xff0c;并且最下面一层的节点都集中在该层最…

273 基于matlab的改进型节点重构小波包频带能量谱与 PNN(概率神经网络)的联合故障诊断新方法

基于matlab的改进型节点重构小波包频带能量谱与 PNN&#xff08;概率神经网络&#xff09;的联合故障诊断新方法。针对风电机组故障信号的非平稳性以及故障与征兆的非线性映射导致的故障识别困难问题&#xff0c;提出了改进型的节点重构小波包频带能量谱与PNN&#xff08;概率神…

C++设计模式-中介者模式,游戏对象之间的碰撞检测

运行在VS2022&#xff0c;x86&#xff0c;Debug下。 31. 中介者模式 中介者模式允许对象之间通过一个中介者对象进行交互&#xff0c;而不是直接相互引用。可以减少对象之间的直接耦合&#xff0c;同时集中化管理复杂的交互。应用&#xff1a;如在游戏开发中&#xff0c;可以使…

【pytorch】大模型训练张量并行

Large Scale Transformer model training with Tensor Parallel (TP) 张量并行如何工作 原始 Tensor Parallel (TP) 模型并行技术于Megatron-LM论文中被提出&#xff0c;是一种用于培育大规模Transformer模型的高效模型并行技术。我们在本练习指南中介绍的序列并行 (SP) 实际…

postgresql常用命令#postgresql认证

PostgreSQL 是一个功能强大的开源关系数据库管理系统&#xff0c;提供了一系列命令行工具来管理和操作数据库。以下是一些常用的 PostgreSQL 命令&#xff0c;涵盖数据库和用户管理、数据操作以及查询和维护等方面。 #PostgreSQL培训 #postgresql认证 #postgreSQL考试 #PG考试…

从零开始:腾讯云轻量应用服务器上部署MaxKB项目(基于LLM大语言模型的知识库问答系统)

使用腾讯云轻量应用服务器部署和使用MaxKB项目 前言 一&#xff0c; MaxKB介绍 MaxKB是基于LLM大语言模型的知识库问答系统&#xff0c;旨在成为企业的最强大脑。它支持开箱即用&#xff0c;无缝嵌入到第三方业务系统&#xff0c;并提供多模型支持&#xff0c;包括主流大模型…

R语言绘图 --- 气泡图(Biorplot 开发日志 --- 4)

「写在前面」 在科研数据分析中我们会重复地绘制一些图形&#xff0c;如果代码管理不当经常就会忘记之前绘图的代码。于是我计划开发一个 R 包&#xff08;Biorplot&#xff09;&#xff0c;用来管理自己 R 语言绘图的代码。本系列文章用于记录 Biorplot 包开发日志。 相关链接…

大数据数据治理工具

大数据数据治理-CSDN博客 大数据数据治理工具&#xff1a; 开源工具&#xff1a; Apache Atlas&#xff1a; 一个开源的数据治理和元数据框架&#xff0c;为Hadoop生态系统提供数据分类、管理和安全功能。 Apache Ranger&#xff1a; 一个集中式安全管理框架&#xff0c;用于…

RPG Maker MV 踩坑十一 精灵及背景绘制问题

精灵绘制问题 RPG Maker MV战斗问题入场飞身战斗背景绘制精灵集及精灵 RPG Maker MV战斗问题 在RMMV中战斗是在场景中调用战斗管理器&#xff0c;通过管理器去操作角色对象行动及精灵的绘制的。 入场飞身 在其中就发现一个问题加载图片进场时&#xff0c;会偏高&#xff0c;…