tianocore/edk2

GitHub: tianocore/edk2

TianoCore EDK II 是跨平台 UEFI 固件开发的开源参考实现,提供完整的固件开发环境和虚拟机 OVMF 固件支持。

Stars: 5825 | Forks: 3076

# EDK II 项目 一个现代化、功能丰富、跨平台的固件开发环境,适用于来自 www.uefi.org 的 UEFI 和 PI 规范。 .. image:: https://img.shields.io/badge/dynamic/toml?url=https%3A%2F%2Fraw.githubusercontent.com%2Ftianocore%2Fedk2-pytool-extensions%2Frefs%2Fheads%2Fmaster%2Fpyproject.toml&query=%24.%5B'requires-python'%5D&style=for-the-badge&logo=python&logoColor=ffd343&label=Minimum%20Python%20Version%20for%20CI&color=3776ab&link=https%3A%2F%2Fwww.python.org%2Fdownloads%2F :alt: CI Minimum Python Version 建议安装此 Python 版本以运行项目中启用 CI 的完整脚本集。 其他用于构建的 Python 要求可以在 `EDK II 构建说明 `__ 中找到。 ## 核心 CI 构建状态 ============================= ================= =============== =================== 宿主类型与工具链 构建状态 测试状态 代码覆盖率 ============================= ================= =============== =================== Windows_VS_ |WindowsCiBuild| |WindowsCiTest| |WindowsCiCoverage| Ubuntu_GCC_ |UbuntuCiBuild| |UbuntuCiTest| |UbuntuCiCoverage| ============================= ================= =============== =================== `更多 CI 构建信息 <.pytool/Readme.md>`__ ## 平台 CI 构建状态 #### Microsoft Windows Visual Studio (VS) ============================= ================= ============= ============= ============== 工具链 CONFIG DEBUG RELEASE NOOPT ============================= ================= ============= ============= ============== EmulatorPkg_Win_VS_ | IA32 |em32d| |em32r| |em32n| | | X64 |em64d| |em64r| |em64n| | | IA32 FULL |em32fd| |em32fr| |em32fn| | | X64 FULL |em64fd| |em64fr| |em64fn| OvmfPkg_Win_VS_ | IA32 |op32d| |op32r| |op32n| | | X64 |op64d| |op64r| |op64n| ============================= ================= ============= ============= ============== #### Ubuntu 24.04 ============================= ================= ============= ============= ============== 工具链 CONFIG DEBUG RELEASE NOOPT ============================= ================= ============= ============= ============== ArmVirtPkg_Ubuntu_GCC_ | AARCH64 |avAArch64du| |avAArch64ru| |avAArch64nu| EmulatorPkg_Ubuntu_GCC_ | IA32 **N/A** **N/A** **N/A** | | X64 |em64du| |em64ru| |em64nu| | | IA32 FULL **N/A** **N/A** **N/A** | | X64 FULL |em64fdu| |em64fru| |em64fnu| OvmfPkg_Ubuntu_GCC_ | IA32 |op32du| |op32ru| |op32nu| | | X64 |op64du| |op64ru| |op64nu| ============================= ================= ============= ============= ============== |TCBZ_2639|_ - EmulatorPkg Ubuntu GCC5 在执行期间发生段错误。 `更多 ArmVirtPkg CI 构建信息 `__ `更多 EmulatorPkg CI 构建信息 `__ `更多 OvmfPkg CI 构建信息 `__ ## 许可证详情 EDK II 开源项目的大部分内容使用 `BSD-2-Clause Plus Patent License `__。EDK II 开源项目包含以下受额外许可证涵盖的组件: - `BaseTools/Plugin/CodeQL/analyze `__ - `BaseTools/Source/C/LzmaCompress `__ - `BaseTools/Source/C/VfrCompile/Pccts `__ - `CryptoPkg\Library\BaseCryptLib\SysCall\inet_pton.c `__ - `CryptoPkg\Library\Include\crypto\dso_conf.h `__ - `CryptoPkg\Library\Include\openssl\opensslconf.h `__ - `MdeModulePkg/Library/LzmaCustomDecompressLib `__ - `OvmfPkg `__ EDK II 开源项目使用来自上游项目的内容作为 git submodules,这些内容由额外的许可证涵盖。 - `BaseTools/Source/C/BrotliCompress/brotli `__ - `CryptoPkg/Library/OpensslLib/openssl `__ - `CryptoPkg/Library/MbedTlsLib/mbedtls `__ - `MdeModulePkg/Library/BrotliCustomDecompressLib/brotli `__ - `MdeModulePkg/Universal/RegularExpressionDxe/oniguruma `__ - `UnitTestFrameworkPkg/Library/CmockaLib/cmocka `__ - `UnitTestFrameworkPkg/Library/GoogleTestLib/googletest `__ - `UnitTestFrameworkPkg/Library/SubhookLib/subhook `__ - `RedfishPkg/Library/JsonLib/jansson `__ - `MdePkg/Library/BaseFdtLib/libfdt `__ - `MdePkg/Library/MipiSysTLib/mipisyst `__ - `SecurityPkg/DeviceSecurity/SpdmLib/libspdm `__ - `TcgTpmPkg/Library/TpmLib/TPM `__ EDK II 项目由多个包组成。每个包的维护者列在 `Maintainers.txt `__ 中。 ## 资源 - `TianoCore `__ - `EDK II `__ - `EDK II 入门指南 `__ - `邮件列表 `__ - `如何贡献 `__ - `发布计划 `__ ## 代码贡献 要向 TianoCore 项目做出贡献,请遵循以下步骤。 #. 按照下面指定的格式创建更改描述,以用于源代码控制提交日志。 #. 您的提交消息必须包含您的 ``Signed-off-by`` 签名 #. 使用该项目在其网页上记录的流程将您的代码提交给 TianoCore 项目。如果该流程未被记录,则将代码提交到该项目的开发邮件列表。 #. 优先接受使用与基础项目相同的版权许可证提交的贡献。如果这不可能,则可以接受使用以下许可证的贡献: - Apache License, Version 2.0: https://opensource.org/license/apache-2-0/ - BSD (2-clause): https://opensource.org/license/BSD-2-Clause - BSD (3-clause): https://opensource.org/license/BSD-3-Clause - MIT: https://opensource.org/license/MIT - Python-2.0: https://opensource.org/license/Python-2.0 - Zlib: https://opensource.org/license/Zlib 对于文档: - FreeBSD Documentation License https://www.freebsd.org/copyright/freebsd-doc-license.html 也可以接受放入公共领域的代码贡献。 使用其他许可证的贡献可能会被接受,但需要进一步审查。 ## 开发者原创证书 您的更改描述应使用提交消息的标准格式,并且必须包含您的 ``Signed-off-by`` 签名。 为了跟踪谁做了什么,所有贡献的补丁必须包含一个声明,即据贡献者所知,他们有权根据指定的许可证对其进行贡献。 对此的测试如 `Developer's Certificate of Origin (DCO) 1.1 `__ 中所规定。贡献者通过添加一行来证明合规性 Signed-off-by: Developer Name developer@example.org 其中 ``Developer Name`` 是贡献者的真实姓名,电子邮件地址是开发者在贡献时可以通过其联系到的地址。 :: ``` Developer's Certificate of Origin 1.1 By making a contribution to this project, I certify that: (a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or (b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or (c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it. (d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved. ``` ## 示例更改描述 / 提交消息 :: ``` From: Contributor Name Subject: [Repository/Branch PATCH] Pkg-Module: Brief-single-line-summary Full-commit-message Signed-off-by: Contributor Name ``` #### 示例补丁邮件说明 - 提交消息的第一行取自邮件主题行中 ``[Repository/Branch PATCH]`` 之后的内容。提交消息的其余部分是邮件的内容。 - ``git format-patch`` 是创建此格式的一种方法 #### 示例补丁邮件的定义 - ``Repository`` 是补丁适用的仓库的标识符。此标识符仅应为 ``edk2`` 以外的仓库提供。例如 ``edk2-BuildSpecification`` 或 ``staging``。 - ``Branch`` 是补丁适用的分支的标识符。此标识符仅应为 ``edk2/master`` 以外的分支提供。例如 ``edk2/UDK2015``, ``edk2-BuildSpecification/release/1.27``, 或 ``staging/edk2-test``。 - ``Module`` 是受影响的代码或文档的简短标识符。例如 ``MdePkg``, ``MdeModulePkg/UsbBusDxe``, ``Introduction``, 或 ``EDK II INF File Format``。 - ``Brief-single-line-summary`` 是更改的简短摘要。 - 整个第一行应少于约 70 个字符。 - ``Full-commit-message`` 是描述更改的详细多行注释。每行应少于约 70 个字符。 - ``Signed-off-by`` 是贡献者的签名,通过其真实法定姓名和电子邮件地址标识他们。 ## Submodules EDK II 中使用的当前 submodules 位于 `.gitmodules <.gitmodules>`__。 要获取完整的、可构建的 EDK II 仓库,请使用以下 git 命令步骤 .. code-block:: bash git clone https://github.com/tianocore/edk2.git cd edk2 git submodule update --init cd .. 如果 submodules 有更新,请使用以下 git 命令获取最新的 submodules 代码。 .. code-block:: bash cd edk2 git pull git submodule update 注意:克隆 submodule 仓库时,不建议使用 '--recursive' 选项。EDK II 本身不会使用上述 submodules 中任何子模块的代码/功能。因此,使用 '--recursive' 会增加对实际上不需要其代码的服务器的依赖,以及不必要地下载我们将不使用的代码。 .. =================================================================== .. This is a bunch of directives to make the README file more readable .. =================================================================== .. CoreCI .. _Windows_VS: https://dev.azure.com/tianocore/edk2-ci/_build/latest?definitionId=74&branchName=master .. |WindowsCiBuild| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FWindows%20VS%20-%20CI?branchName=master .. |WindowsCiTest| image:: https://img.shields.io/azure-devops/tests/tianocore/edk2-ci/74.svg .. |WindowsCiCoverage| image:: https://img.shields.io/badge/coverage-coming_soon-blue .. _Ubuntu_GCC: https://dev.azure.com/tianocore/edk2-ci/_build/latest?definitionId=76&branchName=master .. |UbuntuCiBuild| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FUbuntu%20GCC%20-%20CI?branchName=master .. |UbuntuCiTest| image:: https://img.shields.io/azure-devops/tests/tianocore/edk2-ci/76.svg .. |UbuntuCiCoverage| image:: https://img.shields.io/badge/coverage-coming_soon-blue .. ArmVirtPkg .. _ArmVirtPkg_Ubuntu_GCC: https://dev.azure.com/tianocore/edk2-ci/_build/latest?definitionId=79&branchName=master .. |avAArch64du| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FArmVirtPkg%20-%20Ubuntu%20GCC%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20QEMU_AARCH64_DEBUG .. |avAArch64ru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FArmVirtPkg%20-%20Ubuntu%20GCC%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20QEMU_AARCH64_RELEASE .. |avAArch64nu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FArmVirtPkg%20-%20Ubuntu%20GCC%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20QEMU_AARCH64_NOOPT .. |avArmdu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FArmVirtPkg%20-%20Ubuntu%20GCC%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20QEMU_ARM_DEBUG .. |avArmru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FArmVirtPkg%20-%20Ubuntu%20GCC%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20QEMU_ARM_RELEASE .. |avArmnu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FArmVirtPkg%20-%20Ubuntu%20GCC%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20QEMU_ARM_NOOPT .. EmulatorPkg .. |TCBZ_2639| image:: https://img.shields.io/github/issues/tianocore/edk2?baseUrl=https%3A%2F%2Fgithub.com .. _TCBZ_2639: https://github.com/tianocore/edk2/issues/9905 .. _EmulatorPkg_Win_VS: https://dev.azure.com/tianocore/edk2-ci/_build/latest?definitionId=73&branchName=master .. _EmulatorPkg_Ubuntu_GCC: https://dev.azure.com/tianocore/edk2-ci/_build/latest?definitionId=78&branchName=master .. |em32d| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FEmulatorPkg%20-%20Windows%20VS%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_IA32_DEBUG .. |em32r| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FEmulatorPkg%20-%20Windows%20VS%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_IA32_RELEASE .. |em32n| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FEmulatorPkg%20-%20Windows%20VS%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_IA32_NOOPT .. |em32fd| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FEmulatorPkg%20-%20Windows%20VS%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_IA32_FULL_DEBUG .. |em32fr| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FEmulatorPkg%20-%20Windows%20VS%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_IA32_FULL_RELEASE .. |em32fn| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FEmulatorPkg%20-%20Windows%20VS%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_IA32_FULL_NOOPT .. |em64d| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FEmulatorPkg%20-%20Windows%20VS%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_DEBUG .. |em64du| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FEmulatorPkg%20-%20Ubuntu%20GCC%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_DEBUG .. |em64r| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FEmulatorPkg%20-%20Windows%20VS%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_RELEASE .. |em64ru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FEmulatorPkg%20-%20Ubuntu%20GCC%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_RELEASE .. |em64n| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FEmulatorPkg%20-%20Windows%20VS%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_NOOPT .. |em64nu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FEmulatorPkg%20-%20Ubuntu%20GCC%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_NOOPT .. |em64fd| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FEmulatorPkg%20-%20Windows%20VS%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_FULL_DEBUG .. |em64fdu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FEmulatorPkg%20-%20Ubuntu%20GCC%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_FULL_DEBUG .. |em64fr| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FEmulatorPkg%20-%20Windows%20VS%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_FULL_RELEASE .. |em64fru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FEmulatorPkg%20-%20Ubuntu%20GCC%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_FULL_RELEASE .. |em64fn| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FEmulatorPkg%20-%20Windows%20VS%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_FULL_NOOPT .. |em64fnu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FEmulatorPkg%20-%20Ubuntu%20GCC%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_FULL_NOOPT .. OvmfPkg .. _OvmfPkg_Win_VS: https://dev.azure.com/tianocore/edk2-ci/_build/latest?definitionId=72&branchName=master .. _OvmfPkg_Ubuntu_GCC: https://dev.azure.com/tianocore/edk2-ci/_build/latest?definitionId=77&branchName=master .. |op32d| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FOvmfPkg%20-%20Windows%20VS%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32_DEBUG .. |op32du| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FOvmfPkg%20-%20Ubuntu%20GCC%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32_DEBUG .. |op32r| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FOvmfPkg%20-%20Windows%20VS%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32_RELEASE .. |op32ru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FOvmfPkg%20-%20Ubuntu%20GCC%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32_RELEASE .. |32n| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FOvmfPkg%20-%20Windows%20VS%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32_DEBUG .. |op32nu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FOvmfPkg%20-%20Ubuntu%20GCC%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32_NOOPT .. |op64d| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FOvmfPkg%20-%20Windows%20VS%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_X64_DEBUG .. |op64du| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FOvmfPkg%20-%20Ubuntu%20GCC%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_X64_DEBUG .. |op64r| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FOvmfPkg%20-%20Windows%20VS%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_X64_RELEASE .. |op64ru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FOvmfPkg%20-%20Ubuntu%20GCC%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_X64_RELEASE .. |op64n| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FOvmfPkg%20-%20Windows%20VS%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_X64_NOOPT .. |op64nu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status%2FCI%2FOvmfPkg%20-%20Ubuntu%20GCC%20-%20CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_X64_NOOPT
标签:BIOS, DNS解析, EDK II, EmulatorPkg, GCC, IA32, Linux开发, PI规范, Python, TianoCore, UEFI, Visual Studio, Windows开发, X64, 固件安全, 固件开发, 安全测试工具, 客户端加密, 客户端加密, 底层开发, 开源项目, 引导加载程序, 无后门, 硬件抽象层, 系统编程, 网络安全监控, 逆向工具, 驱动开发