74 Commits

Author SHA1 Message Date
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
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
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
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
LoGin
edaf015400
默认安装gnu tar到dragonos的/usr/bin目录下 (#442) 2023-11-15 17:17:56 +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
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
GnoCiYeH
2dbef7859f
命名管道系统调用以及文件系统兼容特殊文件类型的接口 (#397)
* 修复pipe2在读端或写端关闭后还阻塞问题。

* 实现命名管道机制,增加特殊文件类型兼容普通文件系统的接口。

* 普通文件系统能够适配特殊文件(命名管道等)
2023-10-09 00:28:08 +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
Chiichen
b087521e07
完善设备驱动模型&调试串口驱动 (#379)
* 完成了基本架构重构,正在进行兼容

* 重构了所有 Device Driver ,还没有接上具体设备

* 基本把 Uart 接上了,还没有测试

* 初步完成系统设备初始化

* 初步重构 BlockDevice ,使其兼容新的 Device 结构

* 修改文件系统内的部分函数调用以满足重构后的接口

* 测试完 Uart 设备的功能

* 移除了自动添加的文件

* 修复了 warning 和部分格式

* 解决warning,并且修正sysfs初始化的位置

* Patch fix

* 删除了 sysinfo 的默认实现

* 删除了字符设备读写的 offset 参数

* 修复了 warning 和一些小逻辑错误

---------

Co-authored-by: longjin <longjin@RinGoTek.cn>
2023-09-13 18:01:52 +08:00
LoGin
6d81180b3b
移植sqlite3,并修复一些bug (#323)
* bugfix: 程序加载器映射内存时,计算要映射的大小不正确的问题。

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

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

* 增加fcntl系统调用

* 移植sqlite3
2023-08-08 23:39:22 +08:00
houmkh
be63f3b2b6
实现系统调用Fstat (#295)
* fstat

* 修改syscall.rs中的verify_area
2023-08-05 18:52:46 +08:00
LoGin
d6fd9c1e80
设置内核、relibc的远程为dragonos的git镜像站,防止国内网络问题导致编译失败 (#318) 2023-08-05 15:04:08 +08:00
Xshine
821bb9a2dc
增加 ListenTable 来检测端口占用 (#291)
* 增加 ListenTable 来检测端口占用


* 使用Arc封装GlobalSocketHandle

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

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

* 实现 meatadata 相关逻辑

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

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

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

* 补充测试文件

* 修正 unbind_port 在逻辑错误

* 修正格式问题

---------

Co-authored-by: longjin <longjin@RinGoTek.cn>
2023-07-28 17:51:05 +08:00
houmkh
36fd013004
实现gettimeofday()系统调用和clocksource+timekeeping子模块 (#278)
- 实现gettimeofday()系统调用
- 实现clocksource+timekeeping子模块部分功能
- 实现了timespec转换成日期时间
2023-06-17 22:48:15 +08:00
login
660a04cef8
新增http server (#265)
* 1.修复了当传入ahci驱动的缓冲区地址为用户缓冲区时,产生的内存越界问题.(采用分配内核缓冲区的方式临时解决)
2.新增http server

* 把libssl-dev添加到bootstrap.sh

* http_server增加对父级相对路径的安全检查,防止访问系统内的其他文件

* 检查空指针情况

* 解决由于链接时,crt*.o未按照升序排列导致init段链接错误的问题
2023-05-13 21:17:12 +08:00
login
7285c927d9
添加dadk支持 (#263)
* 引入dadk,使用dadk0.1.1来编译test-relibc程序

* 由于gitee仓库体积限制导致无法继续使用gitee上的rust索引,因此更换为清华源

* github workflow的环境中,安装dadk

* Auto configure dragonos rust toolchain
2023-05-11 16:17:58 +08:00