History log of /DragonOS/kernel/src/ (Results 226 – 250 of 344)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
f5df0e7928-Aug-2023 LoGin <longjin@DragonOS.org>

解决userbufferwriter的长度错误问题,并修复gettimeofday的pagefault问题 (#349)

* 解决userbufferwriter的长度错误问题,并修复gettimeofday的pagefault问题

ddb9d91727-Aug-2023 Xshine <gshine@m.scnu.edu.cn>

将 io 移动至 vfs 目录,并修正引用路径 (#339)

* 将 io 移动至 vfs 目录,并修正引用路径

* fix bug in makefile

e92d022826-Aug-2023 LoGin <longjin@DragonOS.org>

解决设置rust workspace带来的“工具链不一致”的问题 (#345)

更改workflow

9a367aa724-Aug-2023 LoGin <longjin@DragonOS.org>

添加github workflow,检查代码是否已经格式化 (#342)

* 添加github workflow,检查代码是否已经格式化

4537ffb721-Aug-2023 Chiichen <39649411+Chiichen@users.noreply.github.com>

实现了对用户空间传入指针抽象的UserBufferReader/Writer,来检验用户空间指针地址并提供一定的功能抽象 (#326)

* 构建了 Userbuffer 对用户空间传入的指针进行了抽象,并提供了读写操作

* 分成了Reader和Writer,增加了从地址读和写入到指定地址的功能

* 删除了多余的注释

* 增加了直接获取BufferWriter切片的函数

实现了对用户空间传入指针抽象的UserBufferReader/Writer,来检验用户空间指针地址并提供一定的功能抽象 (#326)

* 构建了 Userbuffer 对用户空间传入的指针进行了抽象,并提供了读写操作

* 分成了Reader和Writer,增加了从地址读和写入到指定地址的功能

* 删除了多余的注释

* 增加了直接获取BufferWriter切片的函数

* 通过 where 的一个 Trick 实现了 const generic 和后续功能

* 替换为了 core::slice::align_to 实现&[u8}转&[T]

* 移除了 userbuffer.rs

* 提供了独立获取缓冲区中不同偏移量位置的数据的函数

* 替换了部分系统调用(还未测试

* 简化了代码

* 修复内存越界的bug

---------

Co-authored-by: longjin <longjin@RinGoTek.cn>

show more ...

abe3a6ea19-Aug-2023 hanjiezhou <zhouhanjie@dragonos.org>

Patch refactor scm and textui (#289)

* 重构屏幕管理器和textui框架

* 切换字体为spleen,并增加对字体的抽象

* 修正文档

---------

Co-authored-by: longjin <longjin@RinGoTek.cn>

5db5a56516-Aug-2023 LoGin <longjin@DragonOS.org>

Patch add 0.1.8 changelog (#334)

* 删除无用代码,并把about app的版本号更新为0.1.8

* v0.1.8 changelog

* 修正未安装rust-src的问题

* 完善文档

67b4818814-Aug-2023 houmkh <1119644616@qq.com>

移动fstat (#330)

* 移动fstat

90a0a49013-Aug-2023 LoGin <longjin@DragonOS.org>

修正rwlock有的地方由于未使用ManuallyDrop导致的use after free && spinlock守卫新增leak,spinlock新增force unlock功能.(#329)

1.修正rwlock有的地方由于未使用ManuallyDrop导致的use after free
2. spinlock守卫新增leak,spinlock新增force unlock功能.

c3dad00113-Aug-2023 LoGin <longjin@DragonOS.org>

添加per cpu变量支持 (#327)

42c97fa708-Aug-2023 LoGin <longjin@DragonOS.org>

删除旧的libELF (#324)

6d81180b08-Aug-2023 LoGin <longjin@DragonOS.org>

移植sqlite3,并修复一些bug (#323)

* bugfix: 程序加载器映射内存时,计算要映射的大小不正确的问题。

* 修正brk系统调用不符合规范的地方

* bugfix: 修正fat文件系统未能正确的扩展文件大小的bug

* 增加fcntl系统调用

* 移植sqlite3

26887c6306-Aug-2023 LoGin <longjin@DragonOS.org>

bugfix: 解决取消低地址映射时,错误的把重映射的物理页释放,从而导致的use after free问题。 (#321)

729a96ef06-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 ...

be63f3b205-Aug-2023 houmkh <1119644616@qq.com>

实现系统调用Fstat (#295)

* fstat

* 修改syscall.rs中的verify_area

9550910a05-Aug-2023 Chiichen <39649411+Chiichen@users.noreply.github.com>

替换 local_irq_save 为 IrqFlagsGuard 实现 (#317)

1a62e77602-Aug-2023 LoGin <longjin@DragonOS.org>

解决relibc的头文件没能识别__dragonos__定义的问题 (#315)

0650030302-Aug-2023 LoGin <longjin@DragonOS.org>

修正null设备以及zero设备无法open、行为不符合预期的问题 (#314)

4da3758a02-Aug-2023 Chiichen <39649411+Chiichen@users.noreply.github.com>

修复了wait4的异常报错 (#312)

* 修复了wait4的异常报错

821bb9a228-Jul-2023 Xshine <caijiaxin@dragonos.org>

增加 ListenTable 来检测端口占用 (#291)

* 增加 ListenTable 来检测端口占用


* 使用Arc封装GlobalSocketHandle

* 删除 listen 处的端口检测逻辑,延至实现端口复用时完成

* 设立两张表,分别记录TCP和UDP的端口占用

* 实现 meatadata 相关逻辑

* 实现socket关闭时,端口在表中移

增加 ListenTable 来检测端口占用 (#291)

* 增加 ListenTable 来检测端口占用


* 使用Arc封装GlobalSocketHandle

* 删除 listen 处的端口检测逻辑,延至实现端口复用时完成

* 设立两张表,分别记录TCP和UDP的端口占用

* 实现 meatadata 相关逻辑

* 实现socket关闭时,端口在表中移除

* 使用端口管理器重构端口记录表

* 修正与RawSocket相关的端口管理逻辑

* 补充测试文件

* 修正 unbind_port 在逻辑错误

* 修正格式问题

---------

Co-authored-by: longjin <longjin@RinGoTek.cn>

show more ...

7cc4a02c28-Jul-2023 zhaoyao73 <zhaoyao73@users.noreply.github.com>

fix arch_try_cmpxchg macro declaration (#307)

fix arch_try_cmpxchg in atomic_cmpxchg

Co-authored-by: Yao Zhao <dragonlinux@gmail.com>

40fe15e022-Jul-2023 LoGin <longjin@DragonOS.org>

新的内存管理模块 (#303)

&emsp;&emsp;实现了具有优秀架构设计的新的内存管理模块,对内核空间和用户空间的内存映射、分配、释放、管理等操作进行了封装,使得内核开发者可以更加方便地进行内存管理。

&emsp;&emsp;内存管理模块主要由以下类型的组件组成:

- **硬件抽象层(MemoryManagementArch)** - 提供对具体处理器架构的抽象,使得内存管理

新的内存管理模块 (#303)

&emsp;&emsp;实现了具有优秀架构设计的新的内存管理模块,对内核空间和用户空间的内存映射、分配、释放、管理等操作进行了封装,使得内核开发者可以更加方便地进行内存管理。

&emsp;&emsp;内存管理模块主要由以下类型的组件组成:

- **硬件抽象层(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 ...


/DragonOS/.vscode/settings.json
/DragonOS/Makefile
/DragonOS/README.md
/DragonOS/README_EN.md
/DragonOS/docs/community/contact/index.rst
/DragonOS/docs/introduction/build_system.md
/DragonOS/docs/introduction/features.md
/DragonOS/docs/introduction/index.rst
/DragonOS/docs/kernel/core_api/index.rst
/DragonOS/docs/kernel/memory_management/allocate-memory.md
/DragonOS/docs/kernel/memory_management/index.rst
/DragonOS/docs/kernel/memory_management/intro.md
/DragonOS/docs/kernel/process_management/index.rst
/DragonOS/docs/kernel/process_management/load_binary.md
/DragonOS/kernel/Cargo.toml
Makefile
arch/mod.rs
arch/x86_64/asm/irqflags.rs
arch/x86_64/context.rs
arch/x86_64/fpu.rs
arch/x86_64/interrupt/mod.rs
arch/x86_64/libs/mod.rs
arch/x86_64/mm/mod.rs
arch/x86_64/mod.rs
arch/x86_64/msi.rs
arch/x86_64/syscall.rs
common/atomic.h
driver/acpi/acpi.c
driver/base/char/mod.rs
driver/base/device/mod.rs
driver/disk/ahci/ahci.c
driver/interrupt/apic/apic.c
driver/pci/msi.c
driver/pci/pci.rs
driver/pci/pci_irq.rs
driver/uart/uart.rs
driver/video/video.c
driver/virtio/virtio_impl.rs
exception/mod.rs
exception/softirq.rs
filesystem/procfs/mod.rs
filesystem/sysfs/bus.rs
filesystem/vfs/VFS.h
filesystem/vfs/file.rs
head.S
include/bindings/wrapper.h
ipc/signal.rs
lib.rs
libs/align.rs
libs/elf.rs
libs/libUI/screen_manager.c
libs/libUI/screen_manager.h
libs/libUI/textui.c
libs/libUI/textui.h
libs/mod.rs
libs/printk.c
libs/printk.rs
libs/rwlock.rs
libs/spinlock.rs
main.c
mm/allocator/buddy.rs
mm/allocator/bump.rs
mm/allocator/kernel_allocator.rs
mm/allocator/mod.rs
mm/allocator/page_frame.rs
mm/allocator/slab.rs
mm/c_adapter.rs
mm/kernel_mapper.rs
mm/mm-types.h
mm/mm.h
mm/mmio.h
mm/mmio_buddy.rs
mm/mod.rs
mm/no_init.rs
mm/page.rs
mm/slab.h
mm/syscall.rs
mm/ucontext.rs
process/abi.rs
process/c_adapter.rs
process/exec.rs
process/fork.c
process/fork.rs
process/mod.rs
process/proc-types.h
process/process.c
process/process.h
process/process.rs
sched/cfs.rs
sched/core.c
sched/core.rs
sched/rt.rs
sched/syscall.rs
smp/c_adapter.rs
smp/mod.rs
smp/smp.c
syscall/mod.rs
syscall/syscall.c
syscall/syscall_num.h
syscall/user_access.rs
time/clocksource.rs
time/jiffies.rs
time/syscall.rs
time/timekeeping.rs
time/timer.h
time/timer.rs
/DragonOS/user/apps/about/about.c
/DragonOS/user/apps/shell/cmd.c
/DragonOS/user/apps/test_relibc/Makefile
/DragonOS/user/libs/libc/src/malloc.c
/DragonOS/user/libs/libc/src/unistd.c
bb5f098a22-Jul-2023 LoGin <longjin@DragonOS.org>

Revert "新的内存管理模块 (#301)" (#302)

This reverts commit d8ad0a5e7724469abd5cc3cf271993538878033e.


/DragonOS/.vscode/settings.json
/DragonOS/Makefile
/DragonOS/README.md
/DragonOS/README_EN.md
/DragonOS/docs/Multiboot2 Specification version 2.0.pdf
/DragonOS/docs/community/contact/index.rst
/DragonOS/docs/introduction/build_system.md
/DragonOS/docs/introduction/features.md
/DragonOS/docs/introduction/index.rst
/DragonOS/docs/kernel/core_api/allocate-memory.md
/DragonOS/docs/kernel/core_api/index.rst
/DragonOS/docs/kernel/core_api/mm-api.md
/DragonOS/docs/kernel/memory_management/index.rst
/DragonOS/docs/kernel/process_management/index.rst
/DragonOS/kernel/Cargo.toml
Makefile
arch/mod.rs
arch/x86_64/asm/irqflags.rs
arch/x86_64/context.rs
arch/x86_64/fpu.rs
arch/x86_64/interrupt/mod.rs
arch/x86_64/mm/mod.rs
arch/x86_64/mod.rs
arch/x86_64/msi.rs
arch/x86_64/syscall.rs
common/atomic.h
driver/acpi/acpi.c
driver/base/char/mod.rs
driver/base/device/mod.rs
driver/disk/ahci/ahci.c
driver/interrupt/apic/apic.c
driver/pci/msi.c
driver/pci/pci.rs
driver/pci/pci_irq.rs
driver/uart/uart.rs
driver/video/video.c
driver/virtio/virtio_impl.rs
exception/mod.rs
exception/softirq.rs
filesystem/procfs/mod.rs
filesystem/sysfs/bus.rs
filesystem/vfs/VFS.h
filesystem/vfs/file.rs
head.S
include/bindings/wrapper.h
ipc/signal.rs
lib.rs
libs/align.rs
libs/libUI/screen_manager.c
libs/libUI/screen_manager.h
libs/libUI/textui.c
libs/libUI/textui.h
libs/mod.rs
libs/printk.c
libs/printk.rs
libs/rwlock.rs
libs/spinlock.rs
main.c
mm/Makefile
mm/allocator.rs
mm/internal.h
mm/mm-stat.c
mm/mm-types.h
mm/mm.c
mm/mm.h
mm/mmap.c
mm/mmio.c
mm/mmio.h
mm/mmio_buddy.rs
mm/mod.rs
mm/slab.c
mm/slab.h
mm/syscall.rs
mm/utils.c
mm/vma.c
process/fork.c
process/fork.rs
process/mod.rs
process/proc-types.h
process/process.c
process/process.h
process/process.rs
sched/cfs.rs
sched/core.c
sched/core.rs
sched/rt.rs
sched/syscall.rs
smp/mod.rs
smp/smp.c
syscall/mod.rs
syscall/syscall.c
syscall/syscall_num.h
time/clocksource.rs
time/jiffies.rs
time/syscall.rs
time/timekeeping.rs
time/timer.h
time/timer.rs
/DragonOS/user/apps/about/about.c
/DragonOS/user/apps/shell/cmd.c
/DragonOS/user/apps/test_relibc/Makefile
/DragonOS/user/libs/libc/src/malloc.c
/DragonOS/user/libs/libc/src/unistd.c
d8ad0a5e22-Jul-2023 LoGin <longjin@DragonOS.org>

新的内存管理模块 (#301)

&emsp;&emsp;实现了具有优秀架构设计的新的内存管理模块,对内核空间和用户空间的内存映射、分配、释放、管理等操作进行了封装,使得内核开发者可以更加方便地进行内存管理。

&emsp;&emsp;内存管理模块主要由以下类型的组件组成:

- **硬件抽象层(MemoryManagementArch)** - 提供对具体处理器架构的抽象,使得内存管理

新的内存管理模块 (#301)

&emsp;&emsp;实现了具有优秀架构设计的新的内存管理模块,对内核空间和用户空间的内存映射、分配、释放、管理等操作进行了封装,使得内核开发者可以更加方便地进行内存管理。

&emsp;&emsp;内存管理模块主要由以下类型的组件组成:

- **硬件抽象层(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 ...


/DragonOS/.vscode/settings.json
/DragonOS/Makefile
/DragonOS/README.md
/DragonOS/README_EN.md
/DragonOS/docs/community/contact/index.rst
/DragonOS/docs/introduction/build_system.md
/DragonOS/docs/introduction/features.md
/DragonOS/docs/introduction/index.rst
/DragonOS/docs/kernel/core_api/index.rst
/DragonOS/docs/kernel/memory_management/allocate-memory.md
/DragonOS/docs/kernel/memory_management/index.rst
/DragonOS/docs/kernel/memory_management/intro.md
/DragonOS/docs/kernel/process_management/index.rst
/DragonOS/docs/kernel/process_management/load_binary.md
/DragonOS/kernel/Cargo.toml
Makefile
arch/mod.rs
arch/x86_64/asm/irqflags.rs
arch/x86_64/context.rs
arch/x86_64/fpu.rs
arch/x86_64/interrupt/mod.rs
arch/x86_64/libs/mod.rs
arch/x86_64/mm/mod.rs
arch/x86_64/mod.rs
arch/x86_64/msi.rs
arch/x86_64/syscall.rs
common/atomic.h
driver/acpi/acpi.c
driver/base/char/mod.rs
driver/base/device/mod.rs
driver/disk/ahci/ahci.c
driver/interrupt/apic/apic.c
driver/pci/msi.c
driver/pci/pci.rs
driver/pci/pci_irq.rs
driver/uart/uart.rs
driver/video/video.c
driver/virtio/virtio_impl.rs
exception/mod.rs
exception/softirq.rs
filesystem/procfs/mod.rs
filesystem/sysfs/bus.rs
filesystem/vfs/VFS.h
filesystem/vfs/file.rs
head.S
include/bindings/wrapper.h
ipc/signal.rs
lib.rs
libs/align.rs
libs/elf.rs
libs/libUI/screen_manager.c
libs/libUI/screen_manager.h
libs/libUI/textui.c
libs/libUI/textui.h
libs/mod.rs
libs/printk.c
libs/printk.rs
libs/rwlock.rs
libs/spinlock.rs
main.c
mm/allocator/buddy.rs
mm/allocator/bump.rs
mm/allocator/kernel_allocator.rs
mm/allocator/mod.rs
mm/allocator/page_frame.rs
mm/allocator/slab.rs
mm/c_adapter.rs
mm/kernel_mapper.rs
mm/mm-types.h
mm/mm.h
mm/mmio.h
mm/mmio_buddy.rs
mm/mod.rs
mm/no_init.rs
mm/page.rs
mm/slab.h
mm/syscall.rs
mm/ucontext.rs
process/abi.rs
process/c_adapter.rs
process/exec.rs
process/fork.c
process/fork.rs
process/mod.rs
process/proc-types.h
process/process.c
process/process.h
process/process.rs
sched/cfs.rs
sched/core.c
sched/core.rs
sched/rt.rs
sched/syscall.rs
smp/c_adapter.rs
smp/mod.rs
smp/smp.c
syscall/mod.rs
syscall/syscall.c
syscall/syscall_num.h
syscall/user_access.rs
time/clocksource.rs
time/jiffies.rs
time/syscall.rs
time/timekeeping.rs
time/timer.h
time/timer.rs
/DragonOS/user/apps/about/about.c
/DragonOS/user/apps/shell/cmd.c
/DragonOS/user/apps/test_relibc/Makefile
/DragonOS/user/libs/libc/src/malloc.c
/DragonOS/user/libs/libc/src/unistd.c
0663027b12-Jul-2023 TingHuang <92705854+TingSHub@users.noreply.github.com>

注册串口设备,创建字符设备框架(#290)

* 按照rust规范修改两个函数名称

* 修改一些函数句柄以符合rust规范

* 添加字符设备相关

* 添加字符设备相关文件

* 添加字符设备驱动框架代码

* 将串口注册

* 规范代码

12345678910>>...14