LoGin
|
70a4e5550a
|
使用rust重写了apic的驱动 (#425)
* 使用rust重写了apic的驱动。
* 修正signal和调度器的部分加锁逻辑,增加回退策略。
* 把pcb的flags字段替换为无锁的
* 使用cargo管理apic的编译
* 删除makefile中指定PIC的变量
---------
Co-authored-by: Gou Ngai <ymd7823@outlook.com>
Co-authored-by: 櫻井桃華 <89176634+TihayaKousaka@users.noreply.github.com>
|
2023-11-07 20:32:06 +08:00 |
|
LoGin
|
f4082b86b1
|
更改系统调用的寄存器传参顺序 (#409)
|
2023-10-24 16:40:49 +08:00 |
|
LoGin
|
a03c4f9dee
|
设备驱动模型:完善platform bus相关内容。并注册串口到sysfs (#403)
* 完成初始化platform bus
* 删除旧的sysfs
* 把uart驱动移动到tty/serial文件夹下
* 完成将串口挂载到sysfs
* 修复vfs系统调用未能follow symlink的问题
* 修复shell未能正确获取pwd的问题
|
2023-10-20 22:11:33 +08:00 |
|
LoGin
|
06d5e24726
|
完善设备驱动模型,基于kset、kobj来维护对象之间的关系 (#401)
* 使用kobj和kset管理/sys文件夹下的对象
* 修改notifier,把action从u64换为泛型。
* 完善设备驱动模型,基于kset、kobj来维护对象之间的关系
|
2023-10-11 00:53:15 +08:00 |
|
GnoCiYeH
|
865f4ba4cd
|
修改shell执行exec时传参错误问题 (#399)
* 修改shell执行exec时传参错误问题
|
2023-10-09 01:10:14 +08:00 |
|
yuyi2439
|
34e6d6c80f
|
实现free指令+修复 mountfs的内存泄露问题(#394)
* 实现meminfo文件
* 成功实现free指令,添加了一些string有关函数,并进行一些无影响的小改动
* 解决内存泄露的问题:mountfs inode的wrap方法使用了Arc::into_raw而没有from_raw,导致inode始终无法释放
---------
Co-authored-by: LoGin <longjin@DragonOS.org>
Co-authored-by: longjin <longjin@RinGoTek.cn>
|
2023-10-08 14:26:17 +08:00 |
|
hanjiezhou
|
22c9db312a
|
Patch pipe2 (#364)
|
2023-09-13 00:58:01 +08:00 |
|
hanjiezhou
|
abe3a6ea3c
|
Patch refactor scm and textui (#289)
* 重构屏幕管理器和textui框架
* 切换字体为spleen,并增加对字体的抽象
* 修正文档
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
|
2023-08-20 00:19:36 +08:00 |
|
LoGin
|
40fe15e095
|
新的内存管理模块 (#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>
|
2023-07-22 16:27:02 +08:00 |
|
LoGin
|
bb5f098a86
|
Revert "新的内存管理模块 (#301)" (#302)
This reverts commit d8ad0a5e7724469abd5cc3cf271993538878033e.
|
2023-07-22 16:24:55 +08:00 |
|
LoGin
|
d8ad0a5e77
|
新的内存管理模块 (#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
|
2023-07-22 16:22:17 +08:00 |
|
HoshuChiu
|
7149abaa49
|
修复Issue#220;vnc的端口号恢复5900 (#243)
* 修复Issue#220
* qemu-vnc端口号恢复为5900
|
2023-04-16 14:47:51 +08:00 |
|
login
|
20e3152e1e
|
将TTY与stdio进行连接,实现基本的stdio功能 (#217)
* 将stdio与tty接上
|
2023-03-31 12:54:37 +08:00 |
|
Gou Ngai
|
64aea4b349
|
增加x87FPU支持 (#212)
* remove `ret_from_syscall`
*修复ps2键盘驱动程序inode在进程fork的时候导致死锁的问题.
*更新: VFS每次拷贝文件描述符的时候,都会去调用inode的open函数
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
|
2023-03-28 20:44:26 +08:00 |
|
login
|
004e86ff19
|
新版文件系统重构完成 (#198)
1.重构:VFS
2. 重构:ProcFS
3. 重构:DevFS
4. 重构:FAT32
5. 重构:AHCI驱动
6. 新增:RamFS
7. 新增:MountFS
8. 新增:FAT12
9. 新增:FAT16
10. 重构:设备抽象
Co-authored-by: guanjinquan <1666320330@qq.com>
Co-authored-by: DaJiYuQia <88259094+DaJiYuQia@users.noreply.github.com>
|
2023-03-12 22:36:11 +08:00 |
|
guanjinquan
|
74bde36e01
|
Patch porting gcc v2 (#124)
* 更改编译器的Include路径,使得include时不需要加`<libc/src/include/>`前缀
* 修改include路径
Co-authored-by: longjin <longjin@RinGoTek.cn>
|
2022-12-31 17:35:39 +08:00 |
|
login
|
c588d6f77f
|
Patch add abort func (#120)
* 对于除了sigkill以外的信号,也加入队列
* bugfix:libc中,注册信号处理函数时,总是注册sigkill的问题
* 增加getpid系统调用
* 增加了raise、kill、abort
|
2022-12-19 15:03:44 +08:00 |
|
login
|
7a818da88a
|
Patch about auto gen version string (#114)
* new: about app中,显示当前构建的git commit sha1以及构建时间
* bugfix: 修复shell的exec命令对绝对路径的拼接错误问题
|
2022-12-17 17:49:12 +08:00 |
|
wwc-15172310230
|
237e95c6dd
|
调整user下libs的libc目录结构 (#103)
* 调整user下libs的libc目录结构
* 修正.gitignore文件的问题
* 修复无法编译的问题
Co-authored-by: longjin <longjin@RinGoTek.cn>
|
2022-12-11 22:22:10 +08:00 |
|
login
|
1a2eaa402f
|
signal的处理(kill命令)以及一些其他的改进 (#100)
* 将entry.S中冗余的ret_from_syscall代码删除,改为jmp Restore_all
* new: 增加判断pt_regs是否来自用户态的函数
* new: rust的cli和sti封装
* 将原有的判断pt_regs是否来自用户态的代码,统一改为调用user_mode函数
* ffz函数:获取u64中的第一个值为0的bit
* spinlock增加 spinlock irq spin_unlock_irq
* 临时解决显示刷新线程迟迟不运行的问题
* 更改ffi_convert的生命周期标签
* new: 测试signal用的app
* 解决由于编译器优化导致local_irq_restore无法获取到正确的rflags的值的问题
* new: exec命令增加"&"后台运行选项
* procfs->status增加显示preempt和虚拟运行时间
* 更改引用计数的FFIBind2Rust trait中的生命周期标签
* new: signal处理(kill)
* 更正在review中发现的一些细节问题
|
2022-12-08 22:59:51 +08:00 |
|
DaJiYuQia
|
27a97abd24
|
Patch procf (#90)
* 1234
* 123
* 合并master
* procfs
* 1
* procfs展示进程基本信息
* modified code
* 恢复权限
* 恢复权限
#恢复权限
* modify permission
* 删除run.sh
* 解决第一次编译时磁盘镜像权限错误的问题
* 恢复.vscode/c_cpp_properties.json
* 删除process.c中错误的do_fork
* remake procfs
* 修改一些变量名
* 修改类型
* modified
* data_puts缓冲区溢出后return
Co-authored-by: longjin <longjin@RinGoTek.cn>
|
2022-11-26 17:34:00 +08:00 |
|
login
|
66f67c6a95
|
signal的发送(暂时父子进程之间共享信号及相应的结构体) (#89)
* 解决由于spinlock.h中包含preempt_enable()带来的循环include问题
* new: 初步实现signal的数据结构
* new:signal相关数据结构
* fix: 解决bindings.rs报一堆警告的问题
* new: rust下的kdebug kinfo kwarn kBUG kerror宏
* 移动asm.h和cmpxchg.h
* new: signal的发送(暂时只支持父子进程共享信号及处理函数)
|
2022-11-23 11:38:20 +08:00 |
|
longjin
|
c811947dd0
|
new: 将可执行文件移动到bin目录下
|
2022-11-02 15:54:04 +08:00 |
|
login
|
31b7b49d8c
|
new: FAT32删除文件的功能 (#73)
* new: 将sys_rmdir更改为sys_unlink,.且完成删除文件操作的vfs部分
* new: fat32删除文件
*bugfix: 解决创建文件时的bug
|
2022-11-02 15:42:44 +08:00 |
|
login
|
d328bfce6b
|
bugfix: 修正潜在的错误路径 (#64)
* bugfix: 修正潜在的错误路径
* 修正格式
|
2022-10-22 20:17:40 +08:00 |
|
fslongjin
|
26eebaf03a
|
删除文件夹时回收dentry缓存
|
2022-09-13 16:17:35 +08:00 |
|
fslongjin
|
9f2b080cda
|
new: devfs删除文件夹
|
2022-09-12 23:56:31 +08:00 |
|
fslongjin
|
005b962f33
|
注释修改
|
2022-09-07 23:30:29 +08:00 |
|
fslongjin
|
ee9658b5d5
|
new:支持dev目录下的readdir
|
2022-09-07 23:25:39 +08:00 |
|
zzy666-hw
|
554b73ec99
|
add ipc pipe (#28)
|
2022-08-20 21:47:41 +08:00 |
|
fslongjin
|
7fd5330195
|
new: shell中的free命令
|
2022-08-07 21:17:02 +08:00 |
|
fslongjin
|
da4867d662
|
🆕 clock()函数
|
2022-07-12 13:20:01 +08:00 |
|
fslongjin
|
d32aa2d99c
|
增加touch到绝对路径的功能
|
2022-07-07 10:27:40 +08:00 |
|
fslongjin
|
8c8352e748
|
🆕 fat32_create
|
2022-07-07 00:55:33 +08:00 |
|
fslongjin
|
b79ba099df
|
bugfix: 修复了fat32_mkdir的bug(在非根目录下创建文件夹会出错)(在/dev中创建子文件夹,opendir时属性设置错误的bug)
|
2022-07-06 17:10:54 +08:00 |
|
fslongjin
|
52b5c2731d
|
🐛 解决cd到相对路径后,新路径字符串拼接错误的问题
|
2022-07-06 00:39:18 +08:00 |
|
fslongjin
|
2a47569473
|
bugfix: exec执行的文件不存在时,自动退出进程。
|
2022-06-09 21:56:32 +08:00 |
|
fslongjin
|
8f180254bc
|
🆕 输入about即可展示系统的“关于”信息
|
2022-06-08 00:19:08 +08:00 |
|
fslongjin
|
4e04ab9eee
|
🆕 在shell中启动另一个程序
|
2022-06-07 23:18:26 +08:00 |
|
fslongjin
|
e2a59dbd43
|
🆕 exec (存在bug
|
2022-05-31 21:55:06 +08:00 |
|
fslongjin
|
85707bd8cc
|
🆕 cat命令
|
2022-05-30 17:39:45 +08:00 |
|
fslongjin
|
9ee6d33318
|
🆕 完成了ls的功能
|
2022-05-29 14:36:46 +08:00 |
|
fslongjin
|
156c2c2389
|
bugfix: 修复shell中,用户可以删除多余的字符的bug,以及\b会被录入到参数字符串的bug
|
2022-05-25 23:18:30 +08:00 |
|
fslongjin
|
37669ebf87
|
🆕 cd命令
|
2022-05-25 22:50:32 +08:00 |
|
fslongjin
|
8bd7b64a0b
|
🆕 增加重启命令reboot
|
2022-05-25 14:38:15 +08:00 |
|
fslongjin
|
8246c1c9e2
|
🆕 pwd命令
|
2022-05-24 16:37:28 +08:00 |
|