DragonOS icon indicating copy to clipboard operation
DragonOS copied to clipboard

使用Rust从0自研内核,具有Linux兼容性的操作系统,面向云计算轻量化场景而设计。DragonOS is an operating system developed from scratch using Rust, with Linux compatibility. It is designed for lightweight...

Results 195 DragonOS issues
Sort by recently updated
recently updated
newest added

为了能在riscv64的qemu上获取到realtime,需要实现goldfish rtc驱动,并接入设备驱动模型。 参考: https://code.dragonos.org.cn/xref/linux-6.6.21/drivers/rtc/rtc-goldfish.c

enhancement
A-driver
O-riscv64

## 需求 优化AHCI驱动程序,使得: 1. 接入sysfs 2. 支持中断,而不是现在的忙等 3. 支持同时发起多个读或者写的请求 ## 一些可能的建议 - 为了实现上面的第一点功能,也许需要先把PCI接入sysfs。 - 为了实现上面第2、3点的功能,也许需要对磁盘的读写请求包进行合理抽象,以便复用于之后的其他磁盘驱动。

enhancement
In-progress
A-driver
A-sched
A-fs

## 需求 尝试使用go编写一个hello world应用程序,并将其运行在dragonos上. 同时编写相应的指南,写到应用程序开发文档之中.

documentation

## Feat 为visionfive2开发板实现riscv的mmc card的驱动,使得能够读取到要加载的程序。

enhancement
A-driver

## 需求 为腾讯云打包磁盘镜像,使得DragonOS能在CVM上运行pid1的内核线程。 也就是,正常运行到这一行: https://code.dragonos.org.cn/xref/DragonOS/kernel/src/init/initial_kthread.rs?r=b5b571e02693d91eb6918d3b7561e088c3e7ee81#44 (由于尚不支持virtio disk,因此可以暂时注释掉 ``` ahci_init().expect("Failed to initialize AHCI"); mount_root_fs().expect("Failed to mount root fs"); ```

enhancement
In-progress

**问题描述** 在某些情况下系统无法加载HPET驱动而导致系统panic **解决方案** 在系统无法加载HPET驱动时,实现对PIT的支持作为备用方案

enhancement
A-driver
O-x86_64

在网络子系统中添加对Link level socket的支持。

enhancement
In-progress
A-network

### 【任务发布】检查``__schedule``函数与Linux行为不一致的地方 在[#766](https://github.com/DragonOS-Community/DragonOS/pull/766) 实现的``sched_yield``系统调用中,实现与Linux一致,但是在DragonOS中行为可能与Linux不一致,猜测为``__schedule``函数逻辑部分与Linux不太一致。 ![image](https://github.com/DragonOS-Community/DragonOS/assets/118462160/acdbfce3-2989-4ade-968d-40335ce00cad)

question
A-sched

**描述错误** 在某些情况下,epoll无法正确唤醒目标进程。 - 比如仓库内的test-backlog这个程序,使用了actix-web,但是无法返回任何内容到调用方。 - `ring`这个程序在第一次发送icmp并收到响应后,后续无法再发送icmp包。 **请填写您的电脑的信息:** - 操作系统及版本:Ubuntu 22.04 - DragonOS版本:[c719ddc](https://github.com/DragonOS-Community/DragonOS/commit/c719ddc6312acd7976e0f6fd449a94ff9abad5a6) - DADK版本:0.1.10 - Rust版本:1.68 **重现步骤** 重现行为的步骤: 1. 运行dragonos 2. 输入`test-backlog`命令 3. 在宿主机上,用浏览器访问虚拟机的12580端口。(如果是wsl/远程虚拟机,请使用vscode的端口转发) 4. 浏览器无法收到任何响应,会一直转圈。(由于backlog机制,因此多次刷新都不会connection reset的,只会一直等待) **期望行为** 能够返回`hello world`

In-progress
A-network
bug-report

## 简介 | Brief Introduction 现有的启动流程中,无法便捷的进行系统的自定义,比如在未来可能引入的测试框架中,选择是否开启某些测试、选择默认加载哪些用户程序、选择启动模式、是否开启gdb等等。现在这些都是要通过一些手动配置,或者通过make参数指定。这里我希望可以通过一种结构化的配置文件(toml会是一个不错的选择,后文会描述优点),来完整描述系统的启动行为 ## 想法 | Ideas 以下是目前设想的一套启动流程,欢迎大家在issue下讨论,基本想法是,把现有的dadk从一个用户程序加载工具,变成启动配置加载+启动命令生成+用户程序加载+测试套件(可选),把现有的`make run`系列命令,迁移为`cargo dadk run` ### 工作 | Jobs 1. 将现有dadk改写为cargo插件的形式便于集成 2. 将现有dadk 用户程序配置从json迁移为toml配置(可选) 3. 在dadk中集成启动模块,可以用dadk作为入口进入,简单理解就是把启动流程中的 make 命令替换成 cargo dadk 命令...

enhancement
Request for Comments