Commit Graph

171 Commits

Author SHA1 Message Date
Vitus 832c04a23f
feat(nix): 添加nix alias,formatter,以及更好的提示与原make命令集成 (#1661)
Build multiversion docs / build-multiversion (push) Waiting to run Details
Sync to CNB.cool / sync (push) Waiting to run Details
Test MM (Host) / Build slab_stress (host) (push) Waiting to run Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 128) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 255) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 256) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 64) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 128) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 255) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 256) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 64) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 128) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 255) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 256) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 64) (push) Blocked by required conditions Details
Test x86_64 / Integration Test (push) Waiting to run Details
Docs Translation / translate-and-pr (push) Has been cancelled Details
* - chore:加了一条一键启动的命令

* chore(nix): 添加nixfmt格式化器并整合devShell配置

  - 添加treefmt-nix和nixfmt-rfc-style作为项目formatter
  - 将tools/nix-dev-shell的devShell配置合并到根目录flake.nix
  - 新增rust-toolchain到devShell的buildInputs
  - 格式化所有.nix文件并排除.direnv目录
  - 移除已废弃的tools/nix-dev-shell目录

* fix

* fix

* fix:构建完后直接退出
fix:  qemu 参数分开写的不支持问题

* fix

* fix

* fix:delete result

* remove 快速启动 hint

* Update Makefile

---------

Co-authored-by: Samuel Dai <samuka007@dragonos.org>
2026-01-28 00:17:18 +08:00
LoGin a728b27356
feat(x86_64): 添加KVM时钟源支持 (#1683)
* feat(x86_64): 添加KVM时钟源支持

- 新增kvm_clock模块,支持在KVM虚拟化环境中使用pvclock作为时钟源
- 添加kvm_para和pvclock模块,提供KVM特性检测和pvclock数据结构
- 修改TSC管理器,添加从KVM设置TSC频率的方法
- 调整时钟源初始化顺序,优先使用KVM时钟源
- 修复时钟源选择和timekeeper初始化的相关问题

Signed-off-by: longjin <longjin@DragonOS.org>

---------

Signed-off-by: longjin <longjin@DragonOS.org>
Co-authored-by: kaleidoscope416 <jiangruizhi@DragonOS.org>
2026-01-22 15:23:40 +08:00
火花 d7eecdfd08
feat(sysfs): sysfs 支持挂载 (#1667)
Build multiversion docs / build-multiversion (push) Waiting to run Details
Sync to CNB.cool / sync (push) Waiting to run Details
Test MM (Host) / Build slab_stress (host) (push) Waiting to run Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 128) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 255) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 256) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 64) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 128) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 255) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 256) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 64) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 128) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 255) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 256) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 64) (push) Blocked by required conditions Details
Test x86_64 / Integration Test (push) Waiting to run Details
* feat(sysfs): sysfs支持挂载

   实现 FileSystem 和 MountableFileSystem trait,使 sysfs 成为可挂载文件系统。

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat(qemu): 将虚拟机内存调整至2G,避免OOM

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

---------

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
2026-01-15 13:22:58 +08:00
Samuel Dai dbb5a8346a
chore(nix/qemu): 添加动态端口分配和VM状态目录配置 (#1660) 2026-01-14 18:49:47 +08:00
LoGin 0f5163e5b2
feat: 改进VM状态管理和GDB调试支持 (#1638)
- 新增VM状态管理功能,支持获取网络端口、PID和GDB端口
- 改进GDB调试支持,自动分配端口并支持动态连接
- 优化QEMU启动脚本,使用数组参数提高可维护性
- 修复监控脚本的环境变量依赖问题

Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-13 13:44:01 +08:00
LoGin 4c13a59d28
feat(arch/x86_64): 添加AVX支持和XSAVE指令集优化 (#1569)
- 在启动代码中启用CR4.OSXSAVE位和XCR0寄存器以支持AVX指令集
- 重构FPU状态管理模块,支持XSAVE/XRSTOR指令并自动检测硬件能力
- 扩展信号处理框架以支持AVX寄存器状态的保存和恢复
- 修复进程切换时FPU状态恢复的时序问题,确保首次进入用户态前正确初始化
- 优化QEMU启动脚本,使用host CPU模式以支持更多现代指令集特性

Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-29 23:01:37 +08:00
Vitus 4101daa317
fix(doc), chore(nix): 文档nix run package名字不对应 更新qemu-system-data包使用deb snapshot archieve (#1570)
Docs Translation / translate-and-pr (push) Waiting to run Details
Build multiversion docs / build-multiversion (push) Waiting to run Details
Sync to CNB.cool / sync (push) Waiting to run Details
Test x86_64 / Integration Test (push) Waiting to run Details
* fix: 修复启动package名字不正确的问题

* chore(deps):更新qemu-system-data_10.1.3+ds-1_all.deb包链接
2025-12-29 14:51:04 +08:00
Samuel Dai f031e61716
feat(build): replace rootfs and user space app creation with nix base scripts (#1505)
Implement
- userland build in nix, with cross platform support and 
non-previleged disk gen
- qemu start command in nix
- nix develop envrionment for make kernel
- document build environment defined by nix

Next Steps
- 减小rootfs占用nix store的体积
- deb包的打包兼容用的函数
- 更加灵活的构建依赖注入
- 保留先前系统内修改的内容
- nix rootfs build与qemu启动适配 vnc模式
- 适配 riscv64 构建
- Arm MacOS上的开发兼容
2025-12-26 18:36:13 +08:00
LoGin 358cf6d3e8
feat(mm): 新增process_vm_readv和process_vm_writev系统调用 (#1535)
Docs Translation / translate-and-pr (push) Waiting to run Details
Build multiversion docs / build-multiversion (push) Waiting to run Details
Sync to CNB.cool / sync (push) Waiting to run Details
Test x86_64 / Integration Test (push) Waiting to run Details
* feat(mm): 新增process_vm_readv和process_vm_writev系统调用

- 实现跨进程内存读写系统调用process_vm_readv和process_vm_writev
- 在syscall/mod.rs中注册新的系统调用模块
- 修复fault.rs中的注释标点符号
- 将QEMU运行内存从512M增加到1024M

Signed-off-by: longjin <longjin@DragonOS.org>

* feat(mm): 添加进程间内存访问权限检查与RAII写保护守卫

- 新增KernelWpGuard RAII守卫,确保内核写保护在异常时正确恢复
- 实现check_process_vm_access函数,检查进程间内存访问权限
- 在process_vm_readv/writev系统调用中添加权限验证
- 改进total_iov_len函数,添加溢出检查

Signed-off-by: longjin <longjin@DragonOS.org>

---------

Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-23 00:18:54 +08:00
LoGin 6211826a7f
ci: Refactor nightly build workflow to separate build and publish steps (#1473)
- Updated the nightly build workflow to include distinct build and publish jobs.
- Added steps to compress build artifacts into a tarball and upload them for later use.
- Modified the Dockerfile to copy the compressed artifacts instead of individual files, enhancing efficiency and organization.
2025-12-15 15:19:42 +08:00
LoGin 200f6fdc35
ci: 新增夜间构建与发布工作流 (#1469)
Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-15 14:24:58 +08:00
LoGin f2cca87d2b
refactor(wait_queue): 重构等待队列机制,引入Waiter/Waker模式 (#1452)
* refactor(wait_queue): 重构等待队列机制,引入Waiter/Waker模式

- 重构WaitQueue,引入Waiter/Waker模式避免唤醒丢失
- 统一等待接口,提供wait_event_interruptible/uninterruptible方法
- 重构futex、epoll、eventfd、semaphore、completion等模块使用新等待队列
- 优化进程等待子进程退出逻辑,使用新等待队列接口
- 添加等待队列设计文档说明新机制

Signed-off-by: longjin <longjin@DragonOS.org>

* feat: 添加SKIP_GRUB选项以支持在CI或无图形界面环境中跳过GRUB安装

Signed-off-by: longjin <longjin@DragonOS.org>

* fix: 修复信号处理和futex唤醒的错误码

- 在sys_rt_sigtimedwait中消费信号后及时刷新HAS_PENDING_SIGNAL状态,避免后续等待路
径误判
- 将futex可中断唤醒的错误码从ERESTARTSYS改为EINTR,以符合Linux语义

Signed-off-by: longjin <longjin@DragonOS.org>

* ci: Update Docker image source in test-x86 workflow

- Changed the Docker image source from `docker.cnb.cool/dragonos-community/dragonos/dragonos-dev:v1.19` to `dragonos/dragonos-dev:v1.19` for consistency in CI workflows.

Signed-off-by: longjin <longjin@DragonOS.org>

---------

Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-10 14:04:05 +08:00
Samuel Dai c989c6b13b
feat(ci): Bump build container to v1.19 and CI fixes (#1442)
Build multiversion docs / build-multiversion (push) Waiting to run Details
Sync to CNB.cool / sync (push) Waiting to run Details
Test x86_64 / Integration Test (push) Waiting to run Details
Publish Docker images / docker (push) Has been cancelled Details
* Bump build container to v1.18 and CI fixes

Add --ci install mode and APT_FLAG (--no-install-recommends) to
bootstrap.sh, skip grub/docs on CI, and remove legacy RUST_VERSION_OLD
install steps. Use --no-install-recommends in Dockerfile, adjust build
scripts and BUILD_CONTAINER_VERSION, and apply minor whitespace and echo
message updates.

* chore: 更新DADK版本至v0.5.1并调整构建脚本

- 将DADK安装版本从v0.5.0升级至v0.5.1
- 调整bootstrap.sh中install_python_pkg的调用位置,确保在CI和非CI环境下都能正确执行
- 更新DragonReach的git修订版本号

Signed-off-by: longjin <longjin@DragonOS.org>

* ci: 更新CI工作流中的Docker镜像源

- 将所有工作流中的容器镜像源从
``dragonos/dragonos-dev:v1.18``更改为
``docker.cnb.cool/dragonos-community/dragonos/dragonos-dev:v1.18``

Signed-off-by: longjin <longjin@DragonOS.org>

* ci: Bump build container to v1.19 and add riscv64 libc

Add linux-libc-dev-riscv64-cross to the Ubuntu/Debian bootstrap install
list to provide riscv64 cross libc headers for cross-compilation.

* ci: 更新CI工作流中的Docker镜像仓库地址

Signed-off-by: longjin <longjin@DragonOS.org>

---------

Signed-off-by: longjin <longjin@DragonOS.org>
Co-authored-by: longjin <longjin@DragonOS.org>
2025-12-09 13:59:57 +08:00
LoGin 91f4d93106
fix(ipc): 修复kill进程组的bug (#1424)
使得KillTest.ProcessGroups 通过

Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-02 14:15:28 +08:00
LoGin b0a7948372
feat(klog): Implement kernel log level management and procfs interface (#1415)
- Introduced a new module for managing kernel log levels, mimicking Linux behavior.
- Added support for dynamic log level configuration via command line and procfs interface.
- Created a new `/proc/sys/kernel/printk` file for reading and writing log level settings.
- Updated existing logging mechanisms to utilize the new log level management system.
- Enhanced the QEMU startup script to allow setting log levels through environment variables.

This implementation improves logging flexibility and aligns with expected Linux functionality.

Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-01 18:08:57 +08:00
Yuming Jiang 9420fe09cd
fix(gvisor): 修复自动化开启/关闭 gvisor syscall测例打包的脚本 (#1405)
* fix(tools): 修复缺失 /tmp 目录导致 gvisor 测例运行错误的问题

- 在 `write_disk_image.sh` 中添加创建 /tmp 目录的命令。

Signed-off-by: yuming <mingjiangyu1@qq.com>

* ci: 优化启用/关闭gvisor测试的脚本

Signed-off-by: longjin <longjin@DragonOS.org>


---------

Signed-off-by: yuming <mingjiangyu1@qq.com>
Signed-off-by: longjin <longjin@DragonOS.org>
Co-authored-by: longjin <longjin@DragonOS.org>
2025-11-26 00:00:04 +08:00
LoGin 1e6ccecc17
fix(ci): 修复CI流程中测试失败但返回成功状态的问题 (#1403)
- 移除syscall测试的continue-on-error配置,确保测试失败时CI流程正确失败
- 优化上传步骤的条件判断,使用always()确保上传步骤始终执行
- 改进dry-run模式输出,添加verbose选项显示详细信息
- 修复API密钥检查逻辑,在密钥不存在时使用dry-run模式继续执行

Signed-off-by: longjin <longjin@DragonOS.org>
2025-11-24 13:32:02 +08:00
linfeng a9576e3b9c
feat: support ssh app(dropbear). (#1392)
* feat: support ssh app(dropbear).

fix tty errors.
fix socket errors.
fix select syscall errors.
update some init configs.
add docs.

Signed-off-by: Godones <chenlinfeng25@outlook.com>

* remove bad code

Signed-off-by: Godones <chenlinfeng25@outlook.com>

* fix: drop lockguard

Signed-off-by: Godones <chenlinfeng25@outlook.com>

---------

Signed-off-by: Godones <chenlinfeng25@outlook.com>
Co-authored-by: longjin <longjin@DragonOS.org>
2025-11-22 14:49:12 +08:00
LoGin 48c2be0c5e
fix: 修复getdents系统调用实现 (#1397)
- 修复目录项缓存逻辑,避免动态目录读取时丢失条目
- 添加O_PATH文件描述符和文件类型检查
- 支持getdents和getdents64两种格式
- 改进用户缓冲区写入安全性和错误处理
- 修复/proc/self/fd目录列表包含"."和".."

Signed-off-by: longjin <longjin@DragonOS.org>
2025-11-22 00:46:30 +08:00
LoGin 690602368c
ci: 更新构建容器版本至v1.17 (#1399)
将容器内的镜像源改为crates.io

Signed-off-by: longjin <longjin@DragonOS.org>
2025-11-22 00:43:23 +08:00
LoGin 1596425060
ci: 升级构建容器版本至v1.16 (#1381)
- 更新所有CI工作流文件中的容器镜像版本
- 修改构建脚本中的容器版本引用
- 更新构建容器版本配置文件
- 移除fork测试中的COWSegment测例

Signed-off-by: longjin <longjin@DragonOS.org>
2025-11-18 00:27:02 +08:00
LoGin 0874383697
feat(ci): 添加测试结果上传功能并优化构建流程 (#1380)
- 新增测试结果解析和上传工具,支持多种测试框架格式
- 在CI工作流中添加测试结果上传步骤
- 引入磁盘节省模式,优化构建缓存管理
- 更新DADK版本要求至0.5.1

Signed-off-by: longjin <longjin@DragonOS.org>
2025-11-17 22:01:13 +08:00
LoGin fbcc00ab39
chore: 将构建容器版本从v1.14升级到v1.15 (#1353)
Signed-off-by: longjin <longjin@DragonOS.org>
2025-11-10 17:31:06 +08:00
Vitus 4060371676
feat:nix-shell rust version (#1331) 2025-11-03 13:44:21 +08:00
Shenjie Yang 8d5ae2f9c6
fix: 更新Makefile指定的Rust工具链为nightly-2025-08-10 (#1328)
* fix: 更新一些makefile中指定的工具链

* fix: 添加novashell到app-blocklist.toml

* fix: 修改nix-dev-shell指定的rust工具链版本号为2025-08-10

* fix: 更新enable_compile_gvisor.sh,避免对其他blocked_app的意外注释

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

---------

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
Co-authored-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
2025-11-01 15:39:46 +08:00
火花 50a70e9424
feat(net): 桥接网络支持 (#1287)
* feat: 新增veth和bridge结构体,尚未详细测试

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat(net): 完善一下已有的bridge以及veth设备,增加一些调试信息

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat(net): 完善veth网卡驱动,能通过测例;简单修改vridge设备,尚未测试

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat(routing): 简单添加路由子系统,尚未完成

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat(veth): 增加veth默认对端路由

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat(socket): 恢复udp socket中的wait_queue等待

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat(net): 补充bridge的实现

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat(bridge): 更改测试程序

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat: 重命名测试程序

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat: 更改veth&beidge测试程序的toml

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat: 暂时添加route_iface以及route_table

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat: draft router

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat: 实现简单的路由功能,未详细测试

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat: 添加netlink框架,内核相应的处理逻辑以及读取写入用户空间尚未完成

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat(netlink): 完善netlink的读写部分,增加addr的内核处理逻辑

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat: 移动routing的位置

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat: 补充netlink的阻塞等待逻辑&&fmt

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat(netns): 添加网络命名空间

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat(netns): 删除全局路由,使用当前netns下的路由

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat(netlink): 将netlink socket移入netns中

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat: 完成netlink addr消息的支持,增加测试程序

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat(netlink): 消除一些warning

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* fix: 新建netns时插入loopback网卡到设备列表

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat: 将veth和bridge测试程序改用C完成

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat(gdb): 增加gdb debug可选项

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* fix: 修复SockAddrIn结构体中的sin_addr字节序问题,确保正确处理IPv4地址

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat: 手糊实现路由功能,后续需要更改事件驱动

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat(netlink): 补充getlink方法以及相关结构体

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* Refactor network driver interfaces and introduce NAPI support

- Removed the default_iface parameter.
- Introduced a new NAPI module to manage network polling and scheduling.
- Updated the Iface trait to include a napi_struct method for NAPI support.
- Modified Veth network interfaces to integrate with the new NAPI structure.
- Refactored the Router implementation to remove unnecessary polling threads and wait queues.
- Updated NetNamespace to manage a list of bridge devices.
- Cleaned up various unused methods and comments across network-related files.

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat: 将virtio网卡的处理逻辑移动进ksoftirqd中

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat(netlink): 暂时为多播消息添加allow unused,消除warning

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat(nat): 实现SNAT和DNAT

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat(epoll): 更改epoll唤醒判断的逻辑,支持socket加入epoll

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat: 修改test_bind,防止爆内存

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat: 添加一个路由todo信息

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* fix: rebase主线之后修改冲突

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat: fmt

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat: 清除无用日志

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat: 补充一个panic信息

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat: 将kernel文件夹重命名为kern

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat: 删除netlink测试程序中的linux/netlink.h头文件

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

---------

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
2025-10-30 01:55:04 +08:00
黄铭涛 625abda35e
feat(misc/reboot): 进一步完善reboot系统调用 (#1157)
* feat(misc/reboot): 进一步完善reboot系统调用

* 删除多余的注释

* fix: 添加riscv, loongarch的reboot占位函数

* format: 格式化代码

https://github.com/DragonOS-Community/DragonOS/pull/1157

* Update kernel/src/debug/sysfs/mod.rs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* refactor(reboot): modify reboot syscall from match to syscall table

* 添加restart模式的重启测试用例

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-09 22:45:18 +08:00
黄铭涛 b74420f48e
feat(test): 增加系统启动后执行syscall集成测试的make命令并将其加入流水线中 (#1306)
* feat(test): 增加系统启动后执行syscall集成测试的make命令并将其加入流水线中
2025-10-09 22:34:51 +08:00
Bruce.carrot93 093388bd9a
chore: add freebsd support to tools/bootstrap.sh (#1278)
* bootstrap.sh support freebsd

* fix patch for freebsd
2025-09-12 00:41:16 +08:00
LoGin 40e92db370
chore: Upgrade kernel toolchain to 250810 (#1257)
chore: 升级Rust工具链至nightly-2025-08-10

- 更新工作流容器版本至v1.14
- 升级Rust工具链至nightly-2025-08-10
- 更新多个依赖库版本(bitflags、gimli、itertools等)
- 修复代码格式和文档注释
- 优化内存对齐检查使用is_multiple_of()
- 改进错误处理和日志输出
- 移除过时的特性标记和代码

Signed-off-by: longjin <longjin@DragonOS.org>
2025-08-18 13:25:19 +08:00
LoGin a6404b52b8
refactor(bitmap): 重构静态位图实现,移除incomplete_features依赖 (#1256)
* refactor(bitmap): 重构静态位图实现,移除incomplete_features依赖

- 移除generic_const_exprs特性依赖
- 引入static_bitmap_size常量函数和static_bitmap!宏
- 修改StaticBitmap结构体定义
- 更新相关测试和使用代码

Signed-off-by: longjin <longjin@DragonOS.org>
2025-08-12 01:06:05 +08:00
chiichen dcd79b408b
feat: basic support build kernel rust codes with nix (#1213) 2025-07-28 23:18:01 +08:00
LoGin 7ea0781b79
Fix mountable fs doc (#1224)
* docs: 更新可挂载文件系统文档格式和内容

- 调整markdown格式和排版

Signed-off-by: longjin <longjin@DragonOS.org>

* fix(doc_translator): 修正代码块正则表达式匹配逻辑

优化多行代码块和内联代码块的正则表达式匹配,确保正确处理代码块格式

Signed-off-by: longjin <longjin@DragonOS.org>

---------

Signed-off-by: longjin <longjin@DragonOS.org>
2025-06-29 17:57:32 +08:00
火花 1e574d89fa
feat(fs): 补充mount系统调用,增加对硬盘挂载 & ext4文件系统的支持 (#1182)
主要变更:
* 实现完整的mount系统调用,支持从块设备挂载文件系统
* 新增ext4文件系统支持,基于another_ext4库实现
* 引入MountableFileSystem trait和文件系统工厂模式,提升VFS架构
* 完善块设备管理,自动将磁盘和分区注册到devfs(/dev)
* 支持virtio块设备的分区检测和挂载
* 新增umount2系统调用支持文件系统卸载
* 重构symlink相关系统调用,提升代码组织
* 提供硬盘镜像制作脚本和测试程序

技术细节:
- 支持ext4和vfat文件系统的挂载
- 实现MBR分区表解析和GenDisk管理
- 集成页面缓存支持提升文件系统性能
- 完善错误处理和设备号管理
- 新增详细的VFS挂载机制文档

测试验证:
- 新增test-mount-ext4和test-mount-fat测试程序
- 提供make_fs_image.sh脚本创建测试镜像
- 验证挂载、读写、卸载完整流程

Co-authored-by: Samuka007 <samuka007@dragon-os.org>
Co-authored-by: oeasy1412 <oeasy1412@gmail.com>
Co-authored-by: fslongjin <longjin@DragonOS.org>
2025-06-29 17:05:06 +08:00
LoGin 2532cb74fb
feat: 添加翻译文件清理功能并优化错误处理 (#1219)
- 新增cleanup_deleted_source_files方法用于清理源文件已删除的翻译文件
- 为_remove_thinking和_translate_chunk方法添加Optional类型支持
- 改进错误日志输出格式
- 添加命令行参数支持清理操作和预览模式

Signed-off-by: longjin <longjin@DragonOS.org>
2025-06-28 21:19:53 +08:00
LoGin ae987c6f9a
doc: Add Q&A docs (#1174)
* docs: 添加常见问题解答文档并更新工作流配置

- 新增questions目录及构建错误FAQ文档
- 更新文档翻译工作流触发分支为master和doc-*
- 优化PR创建时的提交信息格式

Signed-off-by: longjin <longjin@DragonOS.org>

* ci: 改进文档翻译工作流并添加失败处理

- 添加获取短SHA步骤用于PR标题
- 在翻译脚本中添加失败退出逻辑

Signed-off-by: longjin <longjin@DragonOS.org>

* docs: Translation update [b7b5ea2c] (#1173)

* Update translated documentation
---------

Co-authored-by: dragonosbot <bot@dragonos.org>

* 1

* 1

---------

Signed-off-by: longjin <longjin@DragonOS.org>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: dragonosbot <bot@dragonos.org>
2025-05-23 02:02:48 +08:00
LoGin 880720250e
doc: Add ai doc translate tool and add English doc. (#1168)
- add tools/doc_translator.py
- translated docs into English

Signed-off-by: longjin <longjin@DragonOS.org>
2025-05-20 10:44:28 +08:00
chiichen fccfa6f7ff
feat: 支持动态链接 (#910)
* feat: 支持动态链接

Authored-By: chiichen <chiichen@qq.com>
Co-authored-by: longjin <longjin@DragonOS.org>
Signed-off-by: longjin <longjin@DragonOS.org>

* build: 更新构建容器版本至v1.12并指定DADK安装版本

- 将BUILD_CONTAINER_VERSION从v1.11升级到v1.12
- 修改bootstrap.sh和user/Makefile中DADK的安装方式,明确指定版本v0.4.0

Signed-off-by: longjin <longjin@DragonOS.org>

---------

Signed-off-by: longjin <longjin@dragonos.org>
Co-authored-by: chiichen <chiichen@qq.com>
Co-authored-by: longjin <longjin@dragonos.org>
Co-authored-by: Jomo <xuzihao@dragonos.org>
Co-authored-by: MemoryShore <1353318529@qq.com>
2025-05-19 14:29:55 +08:00
火花 0bc74e16e0
fix:修改busybox编译选项,启用busybox作为初始引导程序以及shell程序 (#1161) 2025-05-10 20:56:36 +08:00
火花 5422256d63
fix: 修复无法执行当前目录下程序的bug (#1154)
* 更改pcb中的fs以及fNsSet结构体,以便从fs中获取pwd inode

* fmt

* 更改run-qemu.sh,为x86_64传入KERNEL_CMDLINE参数

* 提取FsStruct中的root和pwd信息

* chore(run-qemu.sh): 重构内核启动参数处理逻辑

- 优化KERNEL_CMDLINE拼接逻辑,确保参数顺序正确
- 统一使用sh -c执行QEMU命令

Signed-off-by: longjin <longjin@DragonOS.org>

* refactor(mnt_namespace): 重构FsStruct使用ModeType并移除Arc包装

- 将umask类型从u32改为ModeType
- 移除path_context的Arc包装,改为直接使用RwLock
- 实现Clone trait替代自动derive
- 更新默认umask值为ModeType::S_IWUGO

Signed-off-by: longjin <longjin@DragonOS.org>

* fix(run-qemu): 修改x86_64架构的init程序路径

将x86_64架构的init程序从/bin/busybox改为/bin/dragonreach

Signed-off-by: longjin <longjin@DragonOS.org>

---------

Signed-off-by: longjin <longjin@DragonOS.org>
Co-authored-by: longjin <longjin@DragonOS.org>
2025-05-09 15:16:10 +08:00
LoGin ed0561424e
fix(tools): 调整bootstrap.sh脚本中的banner和依赖安装顺序 (#1144)
- 修改bootstrap.sh的成功的banner: `make run`为`make run-nographic`以适应新需求。
- 优化rust组件安装逻辑,调整`cargo-binutils`和`bpf-linker`的安装位置,确保工具链配置正确。

Signed-off-by: longjin <longjin@dragonos.org>
2025-04-29 01:27:44 +08:00
LoGin 2c81a9760e
fix: la64 ci (#1134)
Signed-off-by: longjin <longjin@DragonOS.org>
2025-04-22 01:35:30 +08:00
LoGin e80796eb82
feat: la64 boot (#1132)
* la64能够进入到kernel_main
* ci: 添加为ubuntu编译qemu-loongarch64的脚本
* feat: la64能输出hello world
* la64 安装gcc && 配置github ci
* chore: 更新CI工作流和构建脚本中的Docker镜像版本至v1.10

Signed-off-by: longjin <longjin@DragonOS.org>
2025-04-20 18:51:45 +08:00
LoGin 03015e2559
feat: 支持在rv64下,运行rust编写的helloworld程序 (#1125)
* 添加 riscv_rust_init 这个helloworld程序

Signed-off-by: longjin <longjin@DragonOS.org>

* feat: 支持在riscv下启动rust编写的hello world程序

TODO: 支持sys ppoll

Signed-off-by: longjin <longjin@DragonOS.org>

* chore: 更新构建容器版本至v1.9

Signed-off-by: longjin <longjin@DragonOS.org>

* 1

---------

Signed-off-by: longjin <longjin@DragonOS.org>
2025-03-30 01:28:41 +08:00
LoGin b6db20c072
feature: virtio console support (#1113)
feat(virtio): add virtio console driver support

- Implement virtio console driver with TTY interface
- Add HVC device support for console output
- Update devfs to handle HVC devices
- Fix virtio driver registration and initialization
- Improve virtio net driver interrupt handling
- Clean up block device naming implementation
- Add clippy lint checks to multiple crates
- Fix slab allocator alignment issues
- Update QEMU run script for virtio consoleagonOS.org>

---------

Signed-off-by: longjin <longjin@DragonOS.org>
2025-03-27 20:48:40 +08:00
LoGin 8b8f2f7981
chore: 将cargo.lock恢复提交到git (#1114)
Signed-off-by: longjin <longjin@DragonOS.org>
2025-03-25 11:27:50 +08:00
LoGin 65f6119c9f
chore: 删除package-lock.json并恢复.gdbinit配置文件 (#1100)
撤销 [#1073](https://github.com/DragonOS-Community/DragonOS/pull/1073) 错误操作的两个文件

Signed-off-by: longjin <longjin@DragonOS.org>
2025-03-12 00:23:08 +08:00
Z Fan 597315b04d
feat(virtualization): 内核虚拟化支持 (#1073)
* 几个结构体

* 通过vmx_init以及create_vm,create_vcpu部分TODO

* kvm_run完成一半

* 能够成功vmlaunch,但是在vmexit时候还有些问题未排查出来

* 解决了vmlaunch导致的cpu_reset的问题

* 整理代码

* 暂时性push到hyc仓库

* 修改内存虚拟化部分参数传入,解决死锁问题

* 初步完成ept映射.但不停EPT_VIOLATION

* 初步完成了EPT映射,但是读写内存还是有点问题

* fixme

* 更新了一些truncate到from_bits_unchecked的实现

* 完成内存虚拟化EPT_VIOLATION的映射

* fmt

* Remove /fixme from .gitignore

* Remove /fixme file

* Update kernel/src/init/init.rs

Co-authored-by: Samuel Dai <samuka007@dragonos.org>

* Update kernel/src/init/init.rs

Co-authored-by: Samuel Dai <samuka007@dragonos.org>

* 修改了注释格式,删除了附带的一些文件操作

* feat(syscall): 实现syscall restart (#1075)

能够在系统调用返回ERESTARTSYS时,信号处理结束后,自动重启系统调用.

TODO: 实现wait等需要restart_block的系统调用的重启

Signed-off-by: longjin <longjin@DragonOS.org>

* chore: update docker image version in script && update doc (#1076)

* chore: update docker image version in script

* chore: replace lots of spaces with newline in doc

* fix: 修复wait4系统调用部分语义与Linux不一致的问题 (#1080)

* fix: 修复wait4系统调用部分语义与Linux不一致的问题

解决wait不住/wait之后卡死的bug

---------

Signed-off-by: longjin <longjin@DragonOS.org>

* feat(fs/syscall): 实现fchdir系统调用 (#1081)

Signed-off-by: longjin <longjin@DragonOS.org>

* fix(mm): 修复fat文件系统的PageCache同步问题 (#1005)


---------

Co-authored-by: longjin <longjin@DragonOS.org>

* fix: 修正nographic启动时,控制台日志未能输出到文件的问题 (#1082)

Signed-off-by: longjin <longjin@DragonOS.org>

* fix(process): 修复copy_process的一些bug & 支持默认init进程传参 (#1083)

- 修复`copy_process`函数对标志位处理不正确的bug
- init进程搜索列表中,支持为默认init程序传入参数

Signed-off-by: longjin <longjin@DragonOS.org>

* feat: 完善sys_reboot (#1084)

* fix(process): 修复copy_process的一些bug & 支持默认init进程传参

- 修复`copy_process`函数对标志位处理不正确的bug
- init进程搜索列表中,支持为默认init程序传入参数

Signed-off-by: longjin <longjin@DragonOS.org>

* feat: 完善sys_reboot

- 校验magic number
- 支持多个cmd (具体内容未实现)

Signed-off-by: longjin <longjin@DragonOS.org>

---------

Signed-off-by: longjin <longjin@DragonOS.org>

* fix: 修复do_wait函数在wait所有子进程时,忘了释放锁就sleep的bug (#1089)

Signed-off-by: longjin <longjin@DragonOS.org>

* pull主线并且fmt

---------

Signed-off-by: longjin <longjin@DragonOS.org>
Co-authored-by: GnoCiYeH <heyicong@dragonos.org>
Co-authored-by: Samuel Dai <samuka007@dragonos.org>
Co-authored-by: LoGin <longjin@DragonOS.org>
Co-authored-by: LIU Yuwei <22045841+Marsman1996@users.noreply.github.com>
Co-authored-by: MemoryShore <1353318529@qq.com>
2025-03-04 10:56:20 +08:00
LoGin a05738e7cc
fix: 修正nographic启动时,控制台日志未能输出到文件的问题 (#1082)
Signed-off-by: longjin <longjin@DragonOS.org>
2025-01-01 23:38:43 +08:00
LIU Yuwei 57b20d2326
chore: update docker image version in script && update doc (#1076)
* chore: update docker image version in script

* chore: replace lots of spaces with newline in doc
2024-12-16 01:48:46 +08:00