c3dc6f2f | 08-Mar-2024 |
LoGin <longjin@DragonOS.org> |
删除一些过时的C代码 (#565)
* 删除C版本的crc库
* 删除lockref
* 删除过时的libc文档以及wait.c
* 删除过时的C版本kfifo代码及文档
* 移除未用到的lz4库
* 删除内核的stdlib.c
* 删除fabs.c
* fmt
* 使得put_string系统调用能够通过tty输出颜色
暂且这样改,这一部分应
删除一些过时的C代码 (#565)
* 删除C版本的crc库
* 删除lockref
* 删除过时的libc文档以及wait.c
* 删除过时的C版本kfifo代码及文档
* 移除未用到的lz4库
* 删除内核的stdlib.c
* 删除fabs.c
* fmt
* 使得put_string系统调用能够通过tty输出颜色
暂且这样改,这一部分应该是用户层面提供的功能,后续删除
---------
Co-authored-by: GnoCiYeH <heyicong@dragonos.org>
show more ...
|
e2841179 | 03-Mar-2024 |
LoGin <longjin@DragonOS.org> |
完成中断管理模块重构 (#554)
- 支持中断共享
- 把现有驱动程序移植到新的irq模块
- 使用`ProcessorId`标识处理器id
- 尚未实现threaded_irq
性能上,edge irq flow handler里面,对于锁的使用,可能有点问题。为了获取/修改common data还有其他几个结构体的状态,进行了多次加锁和放锁,导致性能降低。这是接下来需要优化的
完成中断管理模块重构 (#554)
- 支持中断共享
- 把现有驱动程序移植到新的irq模块
- 使用`ProcessorId`标识处理器id
- 尚未实现threaded_irq
性能上,edge irq flow handler里面,对于锁的使用,可能有点问题。为了获取/修改common data还有其他几个结构体的状态,进行了多次加锁和放锁,导致性能降低。这是接下来需要优化的点。
show more ...
|
70158955 | 19-Feb-2024 |
LoGin <longjin@DragonOS.org> |
删除无用的C版本bitree和ida/idr. (#526)
这些数据结构不再使用,将其删除. |
729a96ef | 06-Aug-2023 |
Xshine <gshine@m.scnu.edu.cn> |
实现内核通知链 notifier chain (#316)
* 实现通知链块结构
* 实现通知链的基本功能
* 实现 atomic notifier chain
* 实现 blocking notifier chain
* 使用 rust 范式完成功能
* 支持回调次数 nr_to_call
* 移动至 libs 目录
* 完善通知链相关方法
*
实现内核通知链 notifier chain (#316)
* 实现通知链块结构
* 实现通知链的基本功能
* 实现 atomic notifier chain
* 实现 blocking notifier chain
* 使用 rust 范式完成功能
* 支持回调次数 nr_to_call
* 移动至 libs 目录
* 完善通知链相关方法
* 修正相关格式
* 文档编写
* 更改文档路径
show more ...
|
40fe15e0 | 22-Jul-2023 |
LoGin <longjin@DragonOS.org> |
新的内存管理模块 (#303)
  实现了具有优秀架构设计的新的内存管理模块,对内核空间和用户空间的内存映射、分配、释放、管理等操作进行了封装,使得内核开发者可以更加方便地进行内存管理。
  内存管理模块主要由以下类型的组件组成:
- **硬件抽象层(MemoryManagementArch)** - 提供对具体处理器架构的抽象,使得内存管理
新的内存管理模块 (#303)
  实现了具有优秀架构设计的新的内存管理模块,对内核空间和用户空间的内存映射、分配、释放、管理等操作进行了封装,使得内核开发者可以更加方便地进行内存管理。
  内存管理模块主要由以下类型的组件组成:
- **硬件抽象层(MemoryManagementArch)** - 提供对具体处理器架构的抽象,使得内存管理模块可以在不同的处理器架构上运行
- **页面映射器(PageMapper)**- 提供对虚拟地址和物理地址的映射,以及页表的创建、填写、销毁、权限管理等操作。分为两种类型:内核页表映射器(KernelMapper)和用户页表映射器(位于具体的用户地址空间结构中)
- **页面刷新器(PageFlusher)** - 提供对页表的刷新操作(整表刷新、单页刷新、跨核心刷新)
- **页帧分配器(FrameAllocator)** - 提供对页帧的分配、释放、管理等操作。具体来说,包括BumpAllocator、BuddyAllocator
- **小对象分配器** - 提供对小内存对象的分配、释放、管理等操作。指的是内核里面的SlabAllocator (SlabAllocator的实现目前还没有完成)
- **MMIO空间管理器** - 提供对MMIO地址空间的分配、管理操作。(目前这个模块待进一步重构)
- **用户地址空间管理机制** - 提供对用户地址空间的管理。
- VMA机制 - 提供对用户地址空间的管理,包括VMA的创建、销毁、权限管理等操作
- 用户映射管理 - 与VMA机制共同作用,管理用户地址空间的映射
- **系统调用层** - 提供对用户空间的内存管理系统调用,包括mmap、munmap、mprotect、mremap等
- **C接口兼容层** - 提供对原有的C代码的接口,是的C代码能够正常运行。
除上面的新增内容以外,其它的更改内容:
- 新增二进制加载器,以及elf的解析器
- 解决由于local_irq_save、local_irq_restore函数的汇编不规范导致影响栈行为的bug。
- 解决local_irq_save未关中断的错误。
- 修复sys_gettimeofday对timezone参数的处理的bug
---------
Co-authored-by: kong <kongweichao@dragonos.org>
show more ...
|
bb5f098a | 22-Jul-2023 |
LoGin <longjin@DragonOS.org> |
Revert "新的内存管理模块 (#301)" (#302)
This reverts commit d8ad0a5e7724469abd5cc3cf271993538878033e. |
d8ad0a5e | 22-Jul-2023 |
LoGin <longjin@DragonOS.org> |
新的内存管理模块 (#301)
  实现了具有优秀架构设计的新的内存管理模块,对内核空间和用户空间的内存映射、分配、释放、管理等操作进行了封装,使得内核开发者可以更加方便地进行内存管理。
  内存管理模块主要由以下类型的组件组成:
- **硬件抽象层(MemoryManagementArch)** - 提供对具体处理器架构的抽象,使得内存管理
新的内存管理模块 (#301)
  实现了具有优秀架构设计的新的内存管理模块,对内核空间和用户空间的内存映射、分配、释放、管理等操作进行了封装,使得内核开发者可以更加方便地进行内存管理。
  内存管理模块主要由以下类型的组件组成:
- **硬件抽象层(MemoryManagementArch)** - 提供对具体处理器架构的抽象,使得内存管理模块可以在不同的处理器架构上运行
- **页面映射器(PageMapper)**- 提供对虚拟地址和物理地址的映射,以及页表的创建、填写、销毁、权限管理等操作。分为两种类型:内核页表映射器(KernelMapper)和用户页表映射器(位于具体的用户地址空间结构中)
- **页面刷新器(PageFlusher)** - 提供对页表的刷新操作(整表刷新、单页刷新、跨核心刷新)
- **页帧分配器(FrameAllocator)** - 提供对页帧的分配、释放、管理等操作。具体来说,包括BumpAllocator、BuddyAllocator
- **小对象分配器** - 提供对小内存对象的分配、释放、管理等操作。指的是内核里面的SlabAllocator (SlabAllocator的实现目前还没有完成)
- **MMIO空间管理器** - 提供对MMIO地址空间的分配、管理操作。(目前这个模块待进一步重构)
- **用户地址空间管理机制** - 提供对用户地址空间的管理。
- VMA机制 - 提供对用户地址空间的管理,包括VMA的创建、销毁、权限管理等操作
- 用户映射管理 - 与VMA机制共同作用,管理用户地址空间的映射
- **系统调用层** - 提供对用户空间的内存管理系统调用,包括mmap、munmap、mprotect、mremap等
- **C接口兼容层** - 提供对原有的C代码的接口,是的C代码能够正常运行。
除上面的新增内容以外,其它的更改内容:
- 新增二进制加载器,以及elf的解析器
- 解决由于local_irq_save、local_irq_restore函数的汇编不规范导致影响栈行为的bug。
- 解决local_irq_save未关中断的错误。
- 修复sys_gettimeofday对timezone参数的处理的bug
show more ...
|
8fd71f27 | 17-Apr-2023 |
houmkh <1119644616@qq.com> |
增加定时器和软中断文档,修改了softirq面向c的接口 (#245)
* 增加定时器和软中断文档
* 修改softirq对c的接口和文档
* 修改文档格式 |
77c928f6 | 16-Apr-2023 |
login <longjin@DragonOS.org> |
new: DowncastArc and its docs (#244) |
a274d5a0 | 23-Oct-2022 |
longjin <longjin@RinGoTek.cn> |
暂时解决idr不能跑的问题(目前只能在o1下运行,o0存在栈损坏错误) |
d53ddde9 | 23-Oct-2022 |
guanjinquan <75822481+guanjinquan@users.noreply.github.com> |
Patch add idr (#56)
* 增加了idr模块
* 增加了IDR模块,并尝试覆盖上一个错误版本.
* 增加了IDR模块
* 修改了test-idr.c文件
* 进一步完善函数注释
* 更新idr文档同时修改了test-idr的错误
* 将lz4库改为使用系统的clz函数
* idr和test-idr O1
* bugfix: 修
Patch add idr (#56)
* 增加了idr模块
* 增加了IDR模块,并尝试覆盖上一个错误版本.
* 增加了IDR模块
* 修改了test-idr.c文件
* 进一步完善函数注释
* 更新idr文档同时修改了test-idr的错误
* 将lz4库改为使用系统的clz函数
* idr和test-idr O1
* bugfix: 修复测试用例中的移位问题
* 修正问题
Signed-off-by: guanjinquan <1666320330@qq.com>
Co-authored-by: fslongjin <longjin@RinGoTek.cn>
show more ...
|
53233d5e | 04-Oct-2022 |
fslongjin <longjin@RinGoTek.cn> |
doc: 更正文档错误 |
7087e9fb | 04-Oct-2022 |
fslongjin <longjin@RinGoTek.cn> |
doc: 更新List文档 |
cbbf79b2 | 20-Sep-2022 |
Mustang <handsomepd@qq.com> |
crc库(#46)
* crc
* 更改crc7
* add crc.h,crc.md
* 调整文件编码格式
* 调整文档
Co-authored-by: fslongjin <longjin@RinGoTek.cn> |
357343b0 | 03-Sep-2022 |
fslongjin <longjin@RinGoTek.cn> |
doc: memcpy文档 |
2c4f8b9c | 20-Aug-2022 |
fslongjin <longjin@RinGoTek.cn> |
doc: mmio文档 |
0223232f | 19-Aug-2022 |
fslongjin <longjin@RinGoTek.cn> |
new: 初步完成了mmio地址空间自动分配(未测试)
bugfix: mmio虚拟地址分配的bug |
f513286f | 15-Aug-2022 |
fslongjin <longjin@RinGoTek.cn> |
new:kzalloc |
16ad3e87 | 06-Aug-2022 |
fslongjin <longjin@RinGoTek.cn> |
doc: mm_stat文档 |
d9ee6ea8 | 03-Aug-2022 |
fslongjin <longjin@RinGoTek.cn> |
new: string.h |
a02acbdb | 31-Jul-2022 |
fslongjin <longjin@RinGoTek.cn> |
将进程同步原语移动到common文件夹下 |
c1f51bf4 | 29-Jul-2022 |
fslongjin <longjin@RinGoTek.cn> |
kfifo文档 |
aacb77e0 | 27-Jul-2022 |
fslongjin <fslongjin@vip.qq.com> |
doc: 原子变量文档 |
63528369 | 27-Jul-2022 |
fslongjin <fslongjin@vip.qq.com> |
doc: 锁机制的文档 |
1b4f812f | 26-Jul-2022 |
fslongjin <fslongjin@vip.qq.com> |
doc: 内存管理api |