Skip to content

Latest commit

 

History

History
59 lines (37 loc) · 4.44 KB

README_zh_CN.md

File metadata and controls

59 lines (37 loc) · 4.44 KB

Linux ci Windows ci Macos ci Android ci IOS ci Documentation Status CodeFactor GitHub tag (latest SemVer) GitHub All Releases GitHub stars GitHub forks Gitee stars Gitee forks

基于qemu从0开始构建嵌入式linux系统

English | 简体中文

logo

引言

本项目旨在真正从0开始构建嵌入式linux系统,为了剖析芯片从上电开始执行第一条指令到整个系统运行,相关应用服务启动,因此不使用市面上真实的板子,基于qemu定制模拟器开发板,且不使用qemu提供的快速加载elf的文件方式,因而我们需要下载qemu源码,自己编写(或使用qemu自带的)硬件ip相关模拟代码定制属于自己的硬件板卡。本项目同步制作博客专栏(2021.8.11:目前开始使用readthedocs构建文档,与博客内容相同),因此项目尽量保证每增加一个feature就提交一次,方便索引跟踪开发过程以方便对应到博客的具体章节。

环境搭建

ubuntu20.04需要使用apt安装的包:

sudo apt install ninja-build pkg-config libglib2.0-dev libpixman-1-dev libgtk-3-dev libcap-ng-dev libattr1-dev libsdl2-dev device-tree-compiler bison flex gperf intltool mtd-utils libpulse-dev libalsa-ocaml-dev libsdl2-dev libslirp-dev libvirglrenderer-dev libsdl2-image-dev

硬件架构

下图为目前的虚拟硬件架构,随着项目推进会持续更新。

硬件架构

软件流程

下图为目前的软件流程,随着项目推进会持续更新。

软件流程

内存分布

下图为目前的内存分布,随着项目推进会持续更新。

内存分布

开发记录

开发日记

更多

项目main分支目前为稳定分支,配套教程文档使用,next-kernel分支用来学习实验kernel上的最新功能,定期与linux-next同步。

项目仓库目前体积比较大,但是故意没有用submodule的方式管理,主要是考虑可能会有初学者或git不熟练的同学。还望大家谅解。