基于项目 https://github.com/wfly1998/arceos/tree/feature/vga
先运行查看当前已经实现的色彩显示功能,然后再进行修改。
运行结果如下:
分析运行的命令 make A=apps/helloworld ARCH=x86_64 LOG=trace GRAPHIC=on run
app/helloworld的应用程序比较简单,只是输出一句话,其中的代码如下:
可以看到,这个应用程序使用的是axstd
库。
我们给出ArceOS架构图,如下:
其中,axstd
库是ArceOS的标准库,向上为应用提供了一些操作系统级别封装好的API基本的功能,比如println!
。
由上图ArceOS架构图可知, 我们需要在ArceOS modules 目录中添加对应的功能,同时在axstd
标准库中添加对上层应用的支持。
ArceOS modules 目录目前的结构如下:
axalloc
:系统内存分配模块axconfig
: 系统配置相关模块axdisply
:显示模块axdriver
:驱动模块axfs
:文件系统模块axhal
:硬件抽象层模块axlog
:日志模块axnet
:网络模块axruntime
:运行时模块axsync
:同步异步模块axtask
:任务模块ulib 目录结构如下:
axlibc
: C标准库相关axstd
: 标准库