docs(README): Add readme.
This commit is contained in:
50
README.md
Normal file
50
README.md
Normal file
@@ -0,0 +1,50 @@
|
||||
<h1 align="center">MR-X</h1>
|
||||
|
||||
MR-X是一个高度模块化的内核,专为资源受限的嵌入式系统设计。提供确定性执行环境和完整系统服务,使开发者能够构建可靠的嵌入式应用,同时保持极小的内存占用和高效的资源利用。
|
||||
|
||||
## 核心特性
|
||||
|
||||
- **模块化架构**:通过配置宏按需引入功能模块,实现极致的资源优化
|
||||
- **对象管理系统**:基于Kobject的统一对象模型,实现引用计数和分层组织
|
||||
- **内存管理**:高效的动态内存分配器,支持标准内存操作接口
|
||||
- **定时器系统**:精确的定时服务支持一次性和周期性定时任务
|
||||
- **工作队列**:灵活的任务延迟执行框架,优化系统响应性
|
||||
- **同步机制**:提供自旋锁、原子操作等线程安全原语
|
||||
- **标准库实现**:轻量级的字符串处理、格式化输出等基础函数
|
||||
- **初始化框架**:依赖感知的系统初始化机制,确保组件正确启动顺序
|
||||
|
||||
## 关键组件
|
||||
|
||||
### Kobject系统
|
||||
|
||||
Kobject(内核对象)系统是MR-X的核心基础设施,提供统一的对象管理框架:
|
||||
|
||||
- **引用计数**:通过Kref实现精确的对象生命周期管理,防止内存泄漏,确保资源正确释放
|
||||
- **层次结构**:对象按父子树结构组织,支持基于路径的对象查找和遍历
|
||||
- **类型系统**:ktype机制支持多态行为和特定对象的释放方法,实现通用与特定行为的分离
|
||||
- **属性接口**:对象可暴露可读写属性,支持运行时配置和状态监控
|
||||
- **命名空间**:类文件系统的路径访问方式,简化对象定位和管理
|
||||
|
||||

|
||||
|
||||
### Ktimer系统
|
||||
|
||||
Ktimer(内核定时器)提供高精度的定时服务,是实时操作的关键组件:
|
||||
|
||||
- **双模式支持**:一次性定时与周期性定时统一接口
|
||||
- **回调机制**:定时到期时自动触发用户定义函数
|
||||
- **动态控制**:运行时可启动、停止、修改定时参数
|
||||
- **精确调度**:基于系统时钟提供确定性的时间行为
|
||||
- **对象化管理**:作为Kobject实例,集成引用计数和层次管理
|
||||
|
||||
### 工作队列系统 (kworkqueue)
|
||||
|
||||
kworkqueue提供任务延迟执行机制,实现资源高效利用:
|
||||
|
||||
- **执行模式**:支持即时执行和定时延迟执行
|
||||
- **上下文转换**:安全地将中断上下文任务转移到线程上下文
|
||||
- **任务模型**:通过工作项封装回调函数和上下文数据
|
||||
- **定时集成**:与ktimer紧密集成实现精确的执行调度
|
||||
- **电源管理**:支持自定义挂起/唤醒钩子函数,便于系统线程/功耗管理
|
||||
- **对象化设计**:利用Kobject特性实现统一的生命周期管理
|
||||
|
||||
BIN
document/resource/README/kobject.png
Normal file
BIN
document/resource/README/kobject.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 21 KiB |
@@ -17,7 +17,7 @@
|
||||
/* MR-X kernel version definition */
|
||||
#define MR_KVERSION_MAJOR 1
|
||||
#define MR_KVERSION_MINOR 0
|
||||
#define MR_KVERSION_PATCH 1
|
||||
#define MR_KVERSION_PATCH 0
|
||||
|
||||
/**
|
||||
* @brief This macro function constructs a kernel version code.
|
||||
|
||||
Reference in New Issue
Block a user