完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
YiYiYa操作系统是一个朴实无华的操作系统,追求快速开发,最小实现,同时遵循SOLID原则。编码简洁明了,非常适合学习操作系统的同学。目前既有宏内核,也逐步实现了微内核架构,未来将会是混合内核。 目前YiYiYa OS支持很多种架构和平台,包括ARM-Cortex A7系列的V3s、T113-S3等芯片、ARM9内核的F1C系列芯片以及部分RISC-V内核芯片,所有移植教程及方法都在Github上公开。 系统架构架构从上而下分层设计,同一层从左到右为模块。越下层与用户离得远,就会变得越通用越公共。分层设计便于扩展,方便维护,每一层的职责单一,让每一层依赖都是固定,不会胡乱调用(实现低耦合)。同时高层依赖底层,依赖接口,不依赖具体细节实现,底层的改动不至于影响太大,这就是基本的设计原则。 应用层应用层直接和用户操作打交道。有图形界面和shell命令交互。此层面对用户开发应用和常用库,对应源码目录为app。 应用层应用层直接和用户操作打交道。有图形界面和shell命令交互。此层面对用户开发应用和常用库,对应源码目录为app。 接口层(C标准库)接口层为操作系统内核向外核提供的基本功能。通过libc和libmusl可选,实现基本的标准库,方便开发者直接移植代码或者适配应用app。 内核层内核层则为核心领域业务。每一小个模块都提供基本的功能。按各自的职责划分,分别对应与传统内核层则为核心领域业务。每一小个模块都提供基本的功能。按各自的职责划分,分别对应与传统操作系统的内存管理、进程通信、文件系统、进程通信、等等。在演进操作系统时候,可以修改这里,对应源码目录为kernel。 基础设施层(公共层和硬件层)将硬件CPU相关和平台模块相关的单独作为公用库使用。目录为arch、platform、libs/kernel。 在移植适配的时候基本上和这些模块打交道比较多,同时单独一个库可以提高内核代码复用性,内核有专门的内核库,以便增加代码安全,减少出错。
系统移植教程作者本人及团队自制的开源掌机FunKey所采用的操作系统就是基于Linux内核和YiYiYa OS,YiYiYa OS内提供了丰富的桌面系统和游戏开发框架,其非常简易的移植过程,也让开发者可以轻松地运用YiYiYa OS裸机开发自己的设备。 以基于T113-S3开发的FunKey掌机为例,在进行平台移植时,需要在新增的duck/platform目录下添加gpio.h头文件以及编写 init.c 包含基本的串口功能,然后再执行以下三个步骤,就可以轻松运行起YiYiYa OS: 克隆项目
安装构建工具
编译
#其它功能及开源资料获取 整体来说,YiYiYa操作系统非常轻量,支持POSIX操作系统标准协议,同时还支持扩展,方便使用其他语言开发模块。在应用层,可以通过libc/libmusl标准库和常用的库开发应用;在内核层可以调用基本内核模块的功能和共用库,开发者可以在DIY过程中自行选择。 |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
705 浏览 0 评论
875 浏览 0 评论
798 浏览 0 评论
579 浏览 0 评论
1825 浏览 0 评论
【开源硬件大赛】基于全志V853设计的全功能BTB学习开发板
3074浏览 8评论
2714浏览 5评论
1608浏览 4评论
全志V85x硬件设计大赛作品精选第二期,快来Pick你心目中的最佳方案
79945浏览 3评论
3156浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-27 13:24 , Processed in 0.434185 second(s), Total 38, Slave 32 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191