# rv-porting-dataset **Repository Path**: rvsmart-porting/rv-porting-dataset ## Basic Information - **Project Name**: rv-porting-dataset - **Description**: 睿迁 RISC-V 架构开源软件适配历史综合分析 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2024-04-27 - **Last Updated**: 2024-10-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 开源软件 RISC-V 架构适配历史综合分析 [点击前往 **点亮计划** 项目详情页](https://summer-ospp.ac.cn/) ## 项目介绍 RISC-V 架构是近年来的新兴开源开放指令集架构。在各大 Linux 操作系统发行版社区的共同努力下, 已有许多开源软件可在 RISC-V 架构下顺利编译运行。对于尚无法在 RISC-V 架构下编译运行的软件, 通常是由于其源代码和相关编译/打包配置文件中存在与处理器架构相关代码导致的。 一般地,上层应用软件中可能存在少量架构相关代码,而底层基础软件 (特别是内核、驱动程序、引导程序等)中可能存在大量架构相关代码。 这些架构相关代码以不同形式零散地分布在数量庞大的开源软件中, 成为开源软件适配 RISC-V 架构的主要瓶颈所在。 由于开源软件社区松散的管理机制,等待上游开发者对软件问题进行修复、响应安全事件等所需的时间代价往往难以接受。 为此,各大 Linux 操作系统发行版团队通常会以软件包为单位,自行维护发行版下各软件包的源代码。 在此场景下,若某个软件包急需但尚未适配 RISC-V 架构,则发行版团队可以为该软件包提供临时补丁, 先行为该软件提供 RISC-V 架构支持。这些补丁也会积极向上游推送,促使其成为软件官方支持架构。 若上游未接受,则在之后的版本中调整后继续以架构支持补丁的形式存在。 目前,各大 Linux 发行版团队已花费大量人力,对大量软件包进行了 RISC-V 架构的适配。然而, 这些适配过程产生的数据、知识和经验尚未得到系统性的总结, 这对于其它尚未完成 RISC-V 架构适配的软件来说具有重要指导意义。 目前,`RVSmartPorting` 社区已开展大量调研工作,初步总结形成了一套 RISC-V 架构适配知识库。 但目前,该知识库所覆盖的架构相关代码形式仍有待完善,且需要大量过往适配 RISC-V 架构的历史数据进行支撑。 结合各大Linux操作系统发行版的软件包构建系统记录、发行版自有软件源代码仓库的历史变更记录等信息, 可获知某个软件包在何时进行了何种修改,使其支持了 RISC-V 架构。 本项目旨在广泛调研各大 Linux 发行版中关于此类工程数据的存在形式, 提出一套可靠的、完善的、可持续扩展的 RISC-V 架构适配历史数据挖掘与分析方案, 实现相应的原型工具,对目前已适配 RISC-V 架构的软件包进行总结分析,提取并形成真实工程数据, 支撑和完善本社区维护的 RISC-V 架构适配知识库。 ## 产出要求 1. RISC-V 架构适配历史数据挖掘与分析技术报告; 2. 面向主流 Linux 发行版的软件 RISC-V 架构适配历史数据挖掘与分析原型工具(优先考虑 openEuler、Fedora 和/或 Ubuntu); 3. 不少于 50 个软件包的 RISC-V 架构适配历史工程数据(包括但不限于构建历史、源代码变更信息、失败和成功的构建日志等)。 ## 技术要求 1. 了解RISC-V架构,了解原生编译和交叉编译(最好有RISC-V原生开发经验); 2. 了解主流Linux操作系统发行版的软件管理与发布方式; 3. 熟悉RPM、Deb等主流Linux操作系统软件包格式; 4. 熟练使用git工具及其diff功能,能够按照给定要求对commit历史进行分析; 5. 熟练使用Python或Java语言编写原型工具。