hmt
|
06560afa2a
|
Patch feat robust futex (#682)
* feat: 实现robust lock机制
* 前面更改vscode,修改回来
* 修改dadk的路径
* 提交.gitnore和.cargo,删除LICENSE,修改README
* 修改一个warn
* 删除.rustc_info.json
* 删除target文件夹
* 恢复DragonOS的LICENSE,删除Cargo.lock
* 将校验用户空间地址的代码写入函数内;将部分match分支用ok_or代替
* 修改wakeup函数获取running queue时unwrap一个None值发生panic
* 测试程序使用syscalls库进行系统调用
|
2024-04-06 22:26:34 +08:00 |
|
GnoCiYeH
|
dfe53cf087
|
实现pty,附带测试程序 (#685)
* 实现pty,附带测试程序
* fmt ** clippy
* 将file层的锁粒度缩小,从而不使用no_preempt。更改pipe在sleep部分的bug
* 修复拼写错误
|
2024-04-05 00:21:55 +08:00 |
|
Donkey Kane
|
b8ed38251d
|
修复jiffy时钟过快问题,启用gettimeofday测试,修改mount测试 (#680)
1. 把clock tick rate与hpet频率关联起来
2. 修复墙上时间同步错误的问题
3. 启用时间watch dog.
4. 修复时间流逝速度异常
---------
Co-authored-by: longjin <longjin@DragonOS.org>
|
2024-04-05 00:06:26 +08:00 |
|
yuyi2439
|
9430523b46
|
使nproc可以正确获取到cpu核心数 (#689)
|
2024-04-04 12:41:19 +08:00 |
|
TTaq
|
597ecc08c2
|
新加结构体POSIXSTATFS与SuperBlock用于处理statfs系统调用 (#667)
* 新加结构体POSIXSTATFS与SuperBlock用于处理statfs系统调用
|
2024-03-26 18:28:26 +08:00 |
|
Val213
|
7c958c9ef0
|
移植dns查询工具dog的--tcp功能 (#652)
* add dog, modify user/Makefile and user.sysconfig
* add dog, modify user/Makefile and user.sysconfig
* fix tty unicode
* 修正无法正确编译dog的问题
---------
Co-authored-by: val213 <val213666@gmail.com>
Co-authored-by: GnoCiYeH <heyicong@dragonos.org>
Co-authored-by: longjin <longjin@DragonOS.org>
|
2024-03-25 13:04:53 +08:00 |
|
Donkey Kane
|
911132c4b8
|
修复clock_gettime返回类型错误,修复小时间间隔duration返回0问题 (#664)
* 修复clock_gettime返回类型错误,修正wtm初始化逻辑
* 修复duration在小时间间隔下为0的问题
* 临时修复时间流逝速度异常,在test-mount中加入运行时间检测
|
2024-03-25 13:04:32 +08:00 |
|
裕依
|
6046f77591
|
Patch socketpair (#576)
* 将sockets分成inet和unix域
- 添加File端点
- 添加SocketPair trait并将Socket trait中的pair相关方法移动
- 添加对SockAddrUn的处理
* 精简SocketHandleItem
* 重构socketpair相关逻辑
- 将File端点换成Inode端点
- 尝试使用SocketInode进行socketpair(未成功)
* 将SocketPair trait合并到Socket trait中,去除downcast
|
2024-03-23 15:56:49 +08:00 |
|
TTaq
|
b4eb05a17f
|
Statx (#632)
* 实现statx及测试的应用程序
|
2024-03-21 19:59:10 +08:00 |
|
Donkey Kane
|
1d37ca6d17
|
添加mount系统调用 (#561)
* Modify dadk config to switch NovaShell revision
* finish primary build of mount(2), usable now
* 使用read_from_cstr函数优化代码可读性 , 针对文件系统新增错误EUNSUPFS
* small changes
* 添加系统调用文档
* cargo fmt
* Revert "small changes"
This reverts commit e1991314ce687faa2d652479e8ef64f5bea25fa1.
* 修复用户程序参数传入错误
* Revert "small changes"
This reverts commit e1991314ce687faa2d652479e8ef64f5bea25fa1.
* 解决合并冲突,最终提交
* 将dadk_config切换为相对路径以修复依赖问题
* Update settings.json
* Delete user/apps/test-mount/LICENSE
* 换用更好的c字符串读取函数,优化系统调用函数注释,修复错误处理bug,删除无用文件,修改测试程序readme
* 修改用户程序readme
* 代码格式化,初级版本
* 初级版本,未实现文件系统管理器,未支持设备挂载
* 为文件系统添加name方法,返回文件系统名字字符串,为挂载查询服务
* mount系统调用:添加统一文件系统初始化管理器
* null
* 解除冲突
* 删除无用kdebug
|
2024-03-20 15:31:20 +08:00 |
|
LoGin
|
1cd9bb43f0
|
添加core utils到系统 (#624)
|
2024-03-19 21:31:02 +08:00 |
|
GnoCiYeH
|
e3b898316b
|
增加ChangeLog V0.1.9,更改about.c版本 (#600)
|
2024-03-13 22:36:31 +08:00 |
|
MemoryShore
|
af59116e1b
|
Update NovaShell version to c6454d3220 (#593)
|
2024-03-12 17:52:14 +08:00 |
|
GnoCiYeH
|
4374bd1d11
|
修复get_random一个问题,添加Held配置文件 (#583)
|
2024-03-11 19:40:52 +08:00 |
|
LoGin
|
f4a82aa55c
|
Update Novashell version to 473d5c403c (#574)
- fix: 用户输入不正确的;以及单独输入单引号和双引号造成系统重启
- 修改命令解析算法
- fix: 输出多余的光标和命令信息
|
2024-03-10 20:42:41 +08:00 |
|
裕依
|
bc6f0a967c
|
移除relibc和old libc以及旧的shell (#529)
移除relibc和old libc以及旧的shell
|
2024-03-04 14:20:01 +08:00 |
|
MContour
|
cf45dede2e
|
让 DragonOS 仓库管理 service 文件 (#548)
* feat: create `user/services` folder to store service files
|
2024-03-03 17:20:11 +08:00 |
|
Donkey Kane
|
44d051e586
|
Modify dadk config to switch NovaShell revision (#550)
|
2024-03-03 15:22:45 +08:00 |
|
GnoCiYeH
|
52da9a5937
|
完成与Linux兼容的Ntty (#517)
* 已经完成的功能:
- 写:printf能够正常在tty输出
- 读:与键盘驱动接上
- 信号: 能够正常通过ctrl向前台进程发送信号
* 支持目前的shell,改动printk使其与新版tty兼容。
* 删除原有tty文件夹,并更改新tty文件名
* 添加clear清屏程序
* 实现tty部分ioctl,更改部分问题
|
2024-02-26 15:27:19 +08:00 |
|
裕依
|
0e2c2e8b48
|
修正systemerror号 (#527)
修正systemerror号
|
2024-02-19 19:31:17 +08:00 |
|
LoGin
|
ca318c376b
|
update dragonreach to 3d99c3a9d9 (#519)
|
2024-02-17 01:51:10 +08:00 |
|
LoGin
|
472f0b3931
|
update dragonreach to 40362c48d6 (#516)
|
2024-02-13 12:14:12 +08:00 |
|
裕依2439
|
4ad52e57e6
|
添加socketpair (#505)
* 添加对socketpair系统调用的处理
---------
Co-authored-by: LoGin <longjin@DragonOS.org>
|
2024-02-07 18:06:15 +08:00 |
|
LoGin
|
fccbe87dca
|
删除关于zulip的表述,替换为社区论坛 (#508)
|
2024-02-05 14:50:15 +08:00 |
|
Jomo
|
8d72b68da9
|
实现内核日志系统 (#489)
* 实现写日志和读取日志,并且能够在用户态下执行dmesg命令查看日志
* 通过klogctl实现dmesg
* 改用ConstGenericRingBuffer作内核缓冲区
* 更改缓冲区容量
* 将能够输出到控制台的日志级别改为日志级别枚举类,使用SpinLock控制KMSG,使用枚举类定义SYSLOG_ACTION,将do_syslog系统调用接口放在syscall.rs
* fix warning
* 完善do_syslog注释
* 将KMSG接入kinfo、kdebug等
* fix warning
* 修复显示的秒数不正确,·以及无法通过CI的问题
|
2024-01-24 16:13:15 +08:00 |
|
LoGin
|
c566df451c
|
添加帧缓冲区抽象并实现vesafb的驱动 (#483)
- 添加bootparams对象
- 修正由于bus的driver、device强弱引用关系 不正确从而导致对象被释放的bug
- 添加vesafb的驱动
- 实现framebuffer抽象层
- 为通用帧缓冲区抽象实现sysfs的属性
- 修改设备号DeviceNumber的定义
- 仿照linux,添加initcall,并在第一个内核线程中,调用他们。
|
2024-01-01 11:46:51 +08:00 |
|
MemoryShore
|
cfd642e283
|
更新nova shell的revision为64ad1b282a (#477)
- 修复tab补全时始终基于根目录的问题
- 修复touch命令提示已存在文件的bug
|
2023-12-27 15:07:01 +08:00 |
|
LoGin
|
8612b6ce7a
|
bugfix: 修复无法sleep的问题以及进程处于block(true)状态时无法被信号唤醒&唤醒后不处理信号的问题 (#470)
|
2023-12-19 11:56:14 +08:00 |
|
LoGin
|
666cffedab
|
riscv: 映射内核到指定的虚拟地址,使得kinfo能正常工作 (#468)
* riscv: 映射内核到指定的虚拟地址,使得kinfo能正常工作
|
2023-12-16 22:26:26 +08:00 |
|
MemoryShore
|
6c7f966c2f
|
NovaShell替换为默认shell (#456)
* NovaShell替换为默认shell
* delete some envvar
* 自动从dragonos镜像站更新dadk
* 更新github ci环境
* 修复yml格式问题
* 更新novashell到95738b235f
---------
Co-authored-by: longjin <longjin@DragonOS.org>
|
2023-12-04 22:07:30 +08:00 |
|
LoGin
|
a1fd1cf1cb
|
把tar的二进制镜像源更换为国内源 (#458)
|
2023-11-23 21:12:16 +08:00 |
|
Jomo
|
cc5feaf67b
|
bugfix: 修复因rsdp v1 v2版本问题,导致ACPI无法正常初始化的bug (#454)
bugfix: 修复因rsdp v1 v2版本问题,导致ACPI无法正常初始化的bug
|
2023-11-23 21:04:32 +08:00 |
|
LoGin
|
edaf015400
|
默认安装gnu tar到dragonos的/usr/bin目录下 (#442)
|
2023-11-15 17:17:56 +08:00 |
|
LoGin
|
0d9b7d9240
|
添加prlimit64系统调用 (#438)
注意: 目前仅支持读取默认的rlimit值,尚不支持设置rlimit值.
|
2023-11-12 18:44:15 +08:00 |
|
LoGin
|
4a2d7191a3
|
bugfix: 解决shell在exec的时候传递的argv不正确的bug (#437)
|
2023-11-12 17:53:36 +08:00 |
|
LoGin
|
5eaf536d5b
|
添加初始化DragonOS的Rust-Musl工具链的脚本. (#426)
|
2023-11-08 19:41:08 +08:00 |
|
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 |
|
GnoCiYeH
|
1effcfe519
|
修复readdir以及读磁盘时buf传错问题 (#422)
* 修复readdir以及读磁盘时buf传错问题
* fix potential memory problem
---------
Co-authored-by: longjin <longjin@DragonOS.org>
|
2023-11-05 23:15:46 +08:00 |
|
GnoCiYeH
|
ad1d649edd
|
更新系统调用号 (#410)
* 更新系统调用号
* 更改DragonReach和relibc版本
* update
* update
* fix warning
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
|
2023-10-24 19:59:01 +08:00 |
|
LoGin
|
f4082b86b1
|
更改系统调用的寄存器传参顺序 (#409)
|
2023-10-24 16:40:49 +08:00 |
|
Xiaoye Zheng
|
40314b30ab
|
DragonOS虚拟化 (#389)
* try some ioctl flow & kvm device
* add sys ioctl
* 删掉一些debug信息
* 修改run-qemu.sh脚本,在QEMU中enable vmx
* 修改cr0,cr4,msr寄存器enable VMX operations
* enable vmx operation
* allocate memory for vmcs with bug
* allocate memory for vmcs
* cpu virt-50%
* single vcpu virt
* add vmcs fields
* CPU virt overall flow with bug
* run vmlaunch success
* run CPU virt with bug
* 成功运行non-root模式的guest
* 成功运行vmexit,进入vmx_return函数
* 成功运行vmlaunch, vmexit, vmresume
* vmexit handler with bug
* 完成vmexit cpuid handler
* fix vmresume guest状态恢复的bug
* 增加vm ioctl
* refactor kvm 50%
* refactor kvm 80%
* FIXME: kvm vmlaunch failed
* vmlaunch success
* FIXME: output error
* update guest_rsp
* cpu virt refactor
* add mmu related struct
* add usermemory region workflow
* add mem-virt workflow
* add mem-virt
* refactor code
* add vcpu ioctl set_regs
* rename hypervisor to vm & solve some deadlock bugs
* workout mem pipeline
* fix vmcs control setting bugs
* refactor segment regs initialization
* resovle conficts
* resovle conficts
* format code
|
2023-10-24 14:31:56 +08:00 |
|
Chiichen
|
3c82aa56d1
|
Signal refactor (#402)
* 初步完成对 signal_types 和 部分signal代码的初始化
* 重构了一部分架构相关代码进入 arch 中
* 基本修改完成,编译通过,后续补上系统调用
* signal基本完成,能实现 Sigaction 系统调用
* 增加了一组枚举抽象
* 进一步重构了一部分C风格的代码
* 继续重构了一部分C风格代码
* 继续完善了一部分逻辑
* 修改了部分代码逻辑
* 补充了 fork 中复制信号信息的逻辑
* 修复了 kallsysms 未转义引号的问题
* 修复了无法跳转到 sigreturn 的bug
* 调通了 signal
* 实现了 signal 架构抽象层的 trait
* 为信号提供了默认处理函数
* 基本完成了 signal 的大体逻辑
* 修复了 Sigreturn 的一个小错误,格式化
* 修复了一个编译器漏报错误
* 删除了多余的代码
* 修改测试程序为链接 relibc
* 修复了信号处理过程中浮点寄存器错误保存的问题
* 修复了一个结构体错误引起的无法在relibc下正确运行的错误
* 修复了链接 relibc 时无法正常从信号处理返回的 bug
* 修复了 signal 处理流程中 rsp 指针错误导致的浮点运算触发GP
* 修复了一个死锁问题,解决了默认处理函数无法进入调度导致的bug
* 修复了一些错误
* 修改了 relibc 依赖版本号
* 删除了多余的 imports
* 删除一些debug日志
* 删除内核 signal.h 文件
* 删除一个依赖项
* 删除了 binding 相关依赖项
|
2023-10-24 12:02:20 +08:00 |
|
LoGin
|
01bd5258cf
|
解决shell无法输入大写字母'P'的问题 (#404)
|
2023-10-22 12:22:41 +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 |
|
GnoCiYeH
|
2dbef7859f
|
命名管道系统调用以及文件系统兼容特殊文件类型的接口 (#397)
* 修复pipe2在读端或写端关闭后还阻塞问题。
* 实现命名管道机制,增加特殊文件类型兼容普通文件系统的接口。
* 普通文件系统能够适配特殊文件(命名管道等)
|
2023-10-09 00:28:08 +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 |
|
GnoCiYeH
|
bb0e4d4131
|
使用DragonReach启动shell,修改getdents (#391)
* 使用DragonReach启动shell,修改getdents
* 更改关闭pipe时断言报错问题,以及DragonReach启动shell阶段版本
* 修改目录结构
* update
* 解决小问题
* 调整dragon reach版本号
* 设置make clean的时候不清空应用程序的缓存。
指定relibc版本号
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
|
2023-09-30 16:36:06 +08:00 |
|
LoGin
|
1496ba7b24
|
进程管理模块重构完成 (#380)
* 添加新版pcb的数据结构 (#273)
* 将pcb中的内容分类,分别加锁 (#305)
* 进程管理重构:完成fork的主体逻辑 (#309)
1.完成fork的主体逻辑
2.将文件系统接到新的pcb上
3.经过思考,暂时弃用signal机制,待进程管理重构完成后,重写signal机制.原因是原本的signal机制太烂了
* chdir getcwd pid pgid ppid (#310)
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
* 删除旧的fork以及signal的代码,并调整fork/vfork/execve系统调用 (#325)
1.删除旧的fork
2.删除signal相关代码,等进程管理重构结束之后,再重新写.
3.调整了fork/vfork/execve系统调用
* 实现切换进程的代码 (#331)
* 实现切换进程的代码
* Patch modify preempt (#332)
* 修改设置preempt的代码
* 删除rust的list和refcount
* 为每个核心初始化idle进程 (#333)
* 为每个核心初始化idle进程
* 完成了新的内核线程机制 (#335)
* 调度器的pcb替换为新的Arc<ProcessControlBlock>,把调度器队列锁从 RwSpinLock 替换为了 SpinLock (#336)
* 把调度器的pcb替换为新的Arc<ProcessControlBlock>
* 把调度器队列锁从 RwSpinLock 替换为了 SpinLock ,修改了签名以通过编译
* 修正一些双重加锁、细节问题
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
* github workflow自动检查代码是否格式化
* cache toolchain yml
* 调整rust版本的waitqueue中的pcb为新版的pcb (#343)
* 解决设置rust workspace带来的“工具链不一致”的问题 (#344)
* 解决设置rust workspace带来的“工具链不一致”的问题
更改workflow
* 调整pcb的sched_info和rwlock,以避免调度器死锁问题 (#341)
* 调整pcb的sched_info和rwlock,以避免调度器死锁问题
* 修改为在 WriterGuard 中维护 Irq_guard
* 修正了 write_irqsave方法
* 优化了代码
* 把 set state 操作从 wakup 移动到 sched_enqueue 中
* 修正为在 wakeup 中设置 running ,以保留 set_state 的私有性
* 移除了 process_wakeup
* 实现进程退出的逻辑 (#340)
实现进程退出的逻辑
* 标志进程sleep
* 修复wakeup的问题
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
* rust 重构 completion (#350)
* 完成了completion的基本结构,待完善上级调用
* 用SpinLock保护结构体并发安全
* 修改原子变量为u32,修复符号错误
* irq guard
* 修改为具有内部可变性的结构体
* temp fix
* 修复了由于进程持有自旋锁导致的不被调度的问题
* 对 complete 系列方法上锁,保护 done 数据并发安全
* 移除了未使用的依赖
* 重写显示刷新驱动 (#363)
* 重构显示刷新驱动
* Patch refactor process management (#366)
* 维护进程树
* 维护进程树
* 更改代码结构
* 新建进程时,设置cwd
* 调整adopt childern函数,降低开销
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
* waitqueue兼容C部分 (#351)
* PATH
* safe init
* waitqueue兼容C部分
* waitqueue兼容C部分
* 删除semaphore.c,在ps2_keyboard中使用waitqueue
* 删除semaphore.c,在ps2_keyboard中使用waitqueue
* current_pcb的C兼容
* current_pcb的C兼容
* current_pcb的C兼容
* fmt
* current_pcb的兼容
* 针对修改
* 调整代码
* fmt
* 删除pcb的set flags
* 更改函数名
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
* merge master
* Patch debug process management refactor (#372)
* 能够调通,执行完textui_init
* 能跑到initial kernel thread
* fmt
* 能够正常初始化所有服务(尚未能切换到用户程序)
* 删除部分无用的extern
* 存在问题:ap处理器启动后,bsp的smp_init函数return之后就出错了,怀疑是栈损坏
* 解决smp启动由于未换栈导致的内存访问错误
* debug
* 1
* 1
* lock no preempt
* 调通
* 优化代码,删除一些调试日志
* fix
* 使用rust重写wait4 (#377)
* 维护进程树
* 维护进程树
* 更改代码结构
* 新建进程时,设置cwd
* 调整adopt childern函数,降低开销
* wait4
* 删除c_sys_wait4
* 使用userbuffer保护裸指针
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
* 消除warning
* 1. 修正未设置cpu executing的问题
* 修正kthread机制可能存在的内存泄露问题
* 删除pcb文档
* 删除C的tss struct
---------
Co-authored-by: Bullet <93781792+GP-Bullet@users.noreply.github.com>
Co-authored-by: Chiichen <39649411+Chiichen@users.noreply.github.com>
Co-authored-by: hanjiezhou <zhouhanjie@dragonos.org>
Co-authored-by: GnoCiYeH <118462160+GnoCiYeH@users.noreply.github.com>
Co-authored-by: houmkh <1119644616@qq.com>
|
2023-09-15 14:58:19 +08:00 |
|