History log of /DragonOS/kernel/src/arch/ (Results 76 – 100 of 137)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
4fda81ce25-Nov-2023 LoGin <longjin@DragonOS.org>

使得DragonOS kernel 能为riscv64编译通过(尚未能启动) (#457)

* 使得DragonOS kernel 能为riscv64编译通过(尚未能启动)

* 修正了系统调用号声明不正确的问题,同时添加了编译配置文档


/DragonOS/.vscode/settings.json
/DragonOS/Makefile
/DragonOS/build-scripts/kernel_build/src/bindgen/arch/mod.rs
/DragonOS/build-scripts/kernel_build/src/bindgen/arch/riscv64.rs
/DragonOS/build-scripts/kernel_build/src/cfiles/arch/mod.rs
/DragonOS/build-scripts/kernel_build/src/cfiles/arch/riscv64.rs
/DragonOS/build-scripts/kernel_build/src/cfiles/arch/x86_64.rs
/DragonOS/build-scripts/kernel_build/src/cfiles/mod.rs
/DragonOS/build-scripts/kernel_build/src/constant/mod.rs
/DragonOS/docs/index.rst
/DragonOS/docs/kernel/configuration/arch.md
/DragonOS/docs/kernel/configuration/index.rst
/DragonOS/env.mk
/DragonOS/kernel/.cargo/config.toml
/DragonOS/kernel/Cargo.toml
/DragonOS/kernel/Makefile
/DragonOS/kernel/src/Makefile
arch.h
mod.rs
riscv64/asm/bitops.rs
riscv64/asm/irqflags.h
riscv64/asm/mod.rs
riscv64/asm/spinlock.c
riscv64/boot/bootscript.cmd
riscv64/boot/head.S
riscv64/cpu.rs
riscv64/include/asm/asm.h
riscv64/include/asm/irqflags.h
riscv64/interrupt/ipi.rs
riscv64/interrupt/mod.rs
riscv64/ipc/mod.rs
riscv64/ipc/signal.rs
riscv64/kvm/mod.rs
riscv64/link.ld
riscv64/mm/bump.rs
riscv64/mm/mod.rs
riscv64/mod.rs
riscv64/msi.rs
riscv64/pci/mod.rs
riscv64/pio.rs
riscv64/process/kthread.rs
riscv64/process/mod.rs
riscv64/process/syscall.rs
riscv64/rand.rs
riscv64/sched.rs
riscv64/syscall/mod.rs
riscv64/syscall/nr.rs
riscv64/time.rs
x86_64/cpu.rs
x86_64/driver/apic/apic.h
x86_64/include/asm/asm.h
x86_64/link.lds
x86_64/mm/c_adapter.rs
x86_64/mm/mod.rs
x86_64/msi.rs
x86_64/process/c_adapter.rs
x86_64/process/mod.rs
x86_64/rand.rs
x86_64/syscall/mod.rs
x86_64/syscall/nr.rs
/DragonOS/kernel/src/common/asm.h
/DragonOS/kernel/src/common/atomic.h
/DragonOS/kernel/src/common/idr.h
/DragonOS/kernel/src/common/math.h
/DragonOS/kernel/src/common/stddef.h
/DragonOS/kernel/src/common/string.h
/DragonOS/kernel/src/driver/disk/ahci/ahcidisk.rs
/DragonOS/kernel/src/driver/pci/pci_irq.c
/DragonOS/kernel/src/driver/pci/pci_irq.rs
/DragonOS/kernel/src/driver/timers/rtc/rtc.rs
/DragonOS/kernel/src/exception/gate.h
/DragonOS/kernel/src/exception/irq.c
/DragonOS/kernel/src/exception/trap.c
/DragonOS/kernel/src/filesystem/procfs/mod.rs
/DragonOS/kernel/src/filesystem/vfs/file.rs
/DragonOS/kernel/src/filesystem/vfs/syscall.rs
/DragonOS/kernel/src/include/DragonOS/refcount.h
/DragonOS/kernel/src/include/bindings/wrapper.h
/DragonOS/kernel/src/ktest/test-idr.c
/DragonOS/kernel/src/lib.rs
/DragonOS/kernel/src/libs/cpu.c
/DragonOS/kernel/src/libs/elf.rs
/DragonOS/kernel/src/libs/idr.c
/DragonOS/kernel/src/libs/lock_free_flags.rs
/DragonOS/kernel/src/libs/lockref.c
/DragonOS/kernel/src/libs/lz4.c
/DragonOS/kernel/src/libs/mod.rs
/DragonOS/kernel/src/libs/rwlock.rs
/DragonOS/kernel/src/libs/string.c
/DragonOS/kernel/src/mm/c_adapter.rs
/DragonOS/kernel/src/mm/mm.h
/DragonOS/kernel/src/mm/mmio_buddy.rs
/DragonOS/kernel/src/mm/ucontext.rs
/DragonOS/kernel/src/net/syscall.rs
/DragonOS/kernel/src/process/c_adapter.rs
/DragonOS/kernel/src/process/fork.rs
/DragonOS/kernel/src/process/idle.rs
/DragonOS/kernel/src/process/kthread.rs
/DragonOS/kernel/src/process/mod.rs
/DragonOS/kernel/src/process/syscall.rs
/DragonOS/kernel/src/sched/syscall.rs
/DragonOS/kernel/src/smp/ipi.h
/DragonOS/kernel/src/smp/smp.c
/DragonOS/kernel/src/syscall/misc.rs
/DragonOS/kernel/src/syscall/mod.rs
/DragonOS/kernel/src/syscall/syscall.c
/DragonOS/kernel/src/time/sleep.rs
/DragonOS/kernel/src/virt/kvm/vm.rs
/DragonOS/tools/.gdbinit
/DragonOS/tools/bootstrap.sh
/DragonOS/tools/run-qemu.sh
/DragonOS/user/dadk/config/tar_1_35.dadk
cc5feaf623-Nov-2023 Jomo <2512364506@qq.com>

bugfix: 修复因rsdp v1 v2版本问题,导致ACPI无法正常初始化的bug (#454)

bugfix: 修复因rsdp v1 v2版本问题,导致ACPI无法正常初始化的bug

99dbf38d19-Nov-2023 LoGin <longjin@DragonOS.org>

bugfix: 当物理机具有多个memory area的时候,无法正确使用这些区域的问题.以及在内核代码处出现内存空洞而导致无法正常运行的问题. (#448)

* bugfix: 当物理机具有多个memory area的时候,无法正确使用这些区域的问题.以及在内核代码处出现内存空洞而导致无法正常运行的问题.

解决方案:
1. 分区域把空闲页添加到buddy
2. 将内核链接到16M的

bugfix: 当物理机具有多个memory area的时候,无法正确使用这些区域的问题.以及在内核代码处出现内存空洞而导致无法正常运行的问题. (#448)

* bugfix: 当物理机具有多个memory area的时候,无法正确使用这些区域的问题.以及在内核代码处出现内存空洞而导致无法正常运行的问题.

解决方案:
1. 分区域把空闲页添加到buddy
2. 将内核链接到16M的位置,以避免uefi带来的内存空洞.

这个值是因为我看到linux的救援内核也是在16M的地址,因此猜测厂商不会使用这块内存.
尽管uefi规范讲的是固件可以采用任何地址,内核需要使用内核重定位技术去避免遇到内存空洞,但我没有这么做.

show more ...

46e234ae17-Nov-2023 LoGin <longjin@DragonOS.org>

使用cargo管理一些C文件的编译,并且移动部分汇编到arch目录 (#447)

* 使用cargo管理main.c的编译

* 使用build-scripts编译架构相关的c代码

* 删除elf.h

11f78b7317-Nov-2023 LoGin <longjin@DragonOS.org>

使用kernel-build脚本来编译所有的asm文件 (#445)

0fb515b015-Nov-2023 LoGin <longjin@DragonOS.org>

完善pipe系统调用以及openat系统调用 (#441)

bf4a489913-Nov-2023 LoGin <longjin@DragonOS.org>

新增系统调用,并对照linux-6.1.9改写sys_wait4 (#440)

* 1. 新增以下系统调用
- SYS_LSTAT
- SYS_READV
- SYS_ACCESS
- SYS_UNLINK
- SYS_CHMOD
- SY

新增系统调用,并对照linux-6.1.9改写sys_wait4 (#440)

* 1. 新增以下系统调用
- SYS_LSTAT
- SYS_READV
- SYS_ACCESS
- SYS_UNLINK
- SYS_CHMOD
- SYS_FCHMOD
- SYS_UMASK
- SYS_SYSINFO
- SYS_CLOCK_GETTIME
- SYS_FCHMODAT
- SYS_FACCESSAT

2. 修改sys_wait4,使得其部分符合Linux的行为(还是有些地方不符合的,详情请对比linux-6.1.9的sys_wait4接口)

show more ...

9b0abe6d12-Nov-2023 LoGin <longjin@DragonOS.org>

添加access、faccessat、faccessat2 (#439)

0d9b7d9212-Nov-2023 LoGin <longjin@DragonOS.org>

添加prlimit64系统调用 (#438)

注意: 目前仅支持读取默认的rlimit值,尚不支持设置rlimit值.

be8cdf4b12-Nov-2023 LoGin <longjin@DragonOS.org>

增加getrusage,并把apic timer的频率调整为系统HZ (#435)

393f691509-Nov-2023 LoGin <longjin@DragonOS.org>

增加gettid以及线程组group leader相关的逻辑 (#430)

* 增加gettid以及线程组group leader相关的逻辑

7b32f50807-Nov-2023 LoGin <longjin@DragonOS.org>

增加内存分配日志监视器 (#424)

* 完成内存日志监视,并输出日志到文件
* 修复进程退出后,procfs查看进程status文件会崩溃的问题
* 修复signal唤醒进程的判断条件问题


/DragonOS/.gitignore
/DragonOS/.vscode/settings.json
/DragonOS/Makefile
/DragonOS/kernel/Cargo.toml
/DragonOS/kernel/build.rs
/DragonOS/kernel/crates/crc/src/lib.rs
/DragonOS/kernel/crates/kdepends/Cargo.toml
/DragonOS/kernel/crates/kdepends/src/lib.rs
/DragonOS/kernel/crates/klog_types/Cargo.toml
/DragonOS/kernel/crates/klog_types/src/lib.rs
x86_64/process/mod.rs
x86_64/smp/mod.rs
/DragonOS/kernel/src/debug/klog/mm.rs
/DragonOS/kernel/src/debug/klog/mod.rs
/DragonOS/kernel/src/debug/mod.rs
/DragonOS/kernel/src/driver/base/platform/platform_device.rs
/DragonOS/kernel/src/driver/tty/mod.rs
/DragonOS/kernel/src/filesystem/procfs/mod.rs
/DragonOS/kernel/src/ipc/signal.rs
/DragonOS/kernel/src/lib.rs
/DragonOS/kernel/src/libs/ida/src/lib.rs
/DragonOS/kernel/src/mm/allocator/kernel_allocator.rs
/DragonOS/kernel/src/process/mod.rs
/DragonOS/tools/Cargo.toml
/DragonOS/tools/Makefile
/DragonOS/tools/debugging/logmonitor/.gitignore
/DragonOS/tools/debugging/logmonitor/Cargo.toml
/DragonOS/tools/debugging/logmonitor/README.md
/DragonOS/tools/debugging/logmonitor/src/app.rs
/DragonOS/tools/debugging/logmonitor/src/backend/error.rs
/DragonOS/tools/debugging/logmonitor/src/backend/event.rs
/DragonOS/tools/debugging/logmonitor/src/backend/loader.rs
/DragonOS/tools/debugging/logmonitor/src/backend/mod.rs
/DragonOS/tools/debugging/logmonitor/src/backend/monitor/logset.rs
/DragonOS/tools/debugging/logmonitor/src/backend/monitor/mm.rs
/DragonOS/tools/debugging/logmonitor/src/backend/monitor/mod.rs
/DragonOS/tools/debugging/logmonitor/src/command.rs
/DragonOS/tools/debugging/logmonitor/src/constant/mod.rs
/DragonOS/tools/debugging/logmonitor/src/event.rs
/DragonOS/tools/debugging/logmonitor/src/handler.rs
/DragonOS/tools/debugging/logmonitor/src/lib.rs
/DragonOS/tools/debugging/logmonitor/src/logging.rs
/DragonOS/tools/debugging/logmonitor/src/main.rs
/DragonOS/tools/debugging/logmonitor/src/tui.rs
/DragonOS/tools/debugging/logmonitor/src/ui.rs
/DragonOS/tools/run-qemu.sh
70a4e55507-Nov-2023 LoGin <longjin@DragonOS.org>

使用rust重写了apic的驱动 (#425)

* 使用rust重写了apic的驱动。

* 修正signal和调度器的部分加锁逻辑,增加回退策略。

* 把pcb的flags字段替换为无锁的

* 使用cargo管理apic的编译

* 删除makefile中指定PIC的变量

---------

Co-authored-by: Gou Ngai <ymd7823@

使用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>

show more ...


/DragonOS/.vscode/settings.json
/DragonOS/kernel/Cargo.toml
/DragonOS/kernel/Makefile
/DragonOS/kernel/build.rs
/DragonOS/kernel/crates/crc/Cargo.toml
/DragonOS/kernel/crates/crc/src/crc64.rs
/DragonOS/kernel/crates/crc/src/lib.rs
/DragonOS/kernel/crates/crc/src/tables/crc64.rs
/DragonOS/kernel/crates/crc/src/tables/mod.rs
/DragonOS/kernel/src/Makefile
Makefile
x86_64/Makefile
x86_64/asm/Makefile
x86_64/driver/apic/apic.c
x86_64/driver/apic/apic.h
x86_64/driver/apic/apic_timer.c
x86_64/driver/apic/apic_timer.h
x86_64/driver/apic/apic_timer.rs
x86_64/driver/apic/c_adapter.rs
x86_64/driver/apic/ioapic.rs
x86_64/driver/apic/mod.rs
x86_64/driver/apic/x2apic.rs
x86_64/driver/apic/xapic.rs
x86_64/driver/hpet.c
x86_64/driver/mod.rs
x86_64/interrupt/c_adapter.rs
x86_64/interrupt/ipi.rs
x86_64/interrupt/mod.rs
x86_64/ipc/signal.rs
x86_64/x86_64_ipi.c
x86_64/x86_64_ipi.h
/DragonOS/kernel/src/common/Makefile
/DragonOS/kernel/src/driver/Makefile
/DragonOS/kernel/src/driver/base/block/block_device.rs
/DragonOS/kernel/src/driver/hid/Makefile
/DragonOS/kernel/src/driver/keyboard/ps2_keyboard.c
/DragonOS/kernel/src/driver/mouse/ps2_mouse.c
/DragonOS/kernel/src/exception/entry.S
/DragonOS/kernel/src/exception/irq.c
/DragonOS/kernel/src/exception/irq.h
/DragonOS/kernel/src/filesystem/fat/fs.rs
/DragonOS/kernel/src/filesystem/vfs/file.rs
/DragonOS/kernel/src/include/bindings/wrapper.h
/DragonOS/kernel/src/lib.rs
/DragonOS/kernel/src/libs/Makefile
/DragonOS/kernel/src/libs/lock_free_flags.rs
/DragonOS/kernel/src/libs/mod.rs
/DragonOS/kernel/src/libs/rwlock.rs
/DragonOS/kernel/src/main.c
/DragonOS/kernel/src/process/fork.rs
/DragonOS/kernel/src/process/kthread.rs
/DragonOS/kernel/src/process/mod.rs
/DragonOS/kernel/src/sched/cfs.rs
/DragonOS/kernel/src/sched/core.rs
/DragonOS/kernel/src/sched/sched.h
/DragonOS/kernel/src/smp/cpu/c_adapter.rs
/DragonOS/kernel/src/smp/cpu/mod.rs
/DragonOS/kernel/src/smp/mod.rs
/DragonOS/kernel/src/smp/smp.c
/DragonOS/kernel/src/syscall/mod.rs
/DragonOS/tools/run-qemu.sh
/DragonOS/user/apps/shell/cmd.c
/DragonOS/user/dadk/config/dragon_reach-0.1.0.dadk
/DragonOS/user/dadk/config/relibc-0.1.0.dadk
/DragonOS/user/libs/libc/src/Makefile
1603395104-Nov-2023 GnoCiYeH <heyicong@dragonos.org>

支持syscall快速系统调用指令 (#417)

* 支持syscall快速系统调用指令

---------

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

8b3d168801-Nov-2023 yuyi2439 <68320855+yuyi2439@users.noreply.github.com>

把pci驱动的读取acpi mcfg的代码,调整为从新的acpi驱动来读取 (#413)

* 把pci驱动的读取acpi mcfg的代码,调整为从新的acpi驱动来读取

971462be01-Nov-2023 GnoCiYeH <heyicong@dragonos.org>

添加thread和futex机制 (#411)

* 初步实现clone系统调用

* 实现了线程,初步实现futex机制,添加了几个小的系统调用

* 更改pcb引用计数问题

* 解决死锁bug

---------

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

fbe6becd26-Oct-2023 LoGin <longjin@DragonOS.org>

添加rust重构版本的HPET驱动和tsc驱动,并使用HPET校准tsc频率和cpu总线频率 (#412)

* 添加rust重构版本的HPET驱动和tsc驱动,并使用HPET校准tsc频率和cpu总线频率

* 把hpet.c移动到arch文件夹下

f4082b8624-Oct-2023 LoGin <longjin@DragonOS.org>

更改系统调用的寄存器传参顺序 (#409)

40314b3024-Oct-2023 Xiaoye Zheng <xiaoyez@zju.edu.cn>

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

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

show more ...


/DragonOS/kernel/Cargo.toml
x86_64/kvm/mod.rs
x86_64/kvm/vmx/ept.rs
x86_64/kvm/vmx/kvm_emulation.rs
x86_64/kvm/vmx/mmu.rs
x86_64/kvm/vmx/mod.rs
x86_64/kvm/vmx/seg.rs
x86_64/kvm/vmx/vcpu.rs
x86_64/kvm/vmx/vmcs.rs
x86_64/kvm/vmx/vmexit.rs
x86_64/kvm/vmx/vmx_asm_wrapper.rs
x86_64/mm/mod.rs
x86_64/mod.rs
/DragonOS/kernel/src/filesystem/devfs/mod.rs
/DragonOS/kernel/src/filesystem/vfs/file.rs
/DragonOS/kernel/src/filesystem/vfs/mod.rs
/DragonOS/kernel/src/filesystem/vfs/syscall.rs
/DragonOS/kernel/src/ktest/ktest.h
/DragonOS/kernel/src/ktest/test-kvm.c
/DragonOS/kernel/src/lib.rs
/DragonOS/kernel/src/main.c
/DragonOS/kernel/src/mm/allocator/kernel_allocator.rs
/DragonOS/kernel/src/mm/mod.rs
/DragonOS/kernel/src/syscall/mod.rs
/DragonOS/kernel/src/virt/kvm/host_mem.rs
/DragonOS/kernel/src/virt/kvm/kvm.h
/DragonOS/kernel/src/virt/kvm/kvm_dev.rs
/DragonOS/kernel/src/virt/kvm/mod.rs
/DragonOS/kernel/src/virt/kvm/vcpu.rs
/DragonOS/kernel/src/virt/kvm/vcpu_dev.rs
/DragonOS/kernel/src/virt/kvm/vm.rs
/DragonOS/kernel/src/virt/kvm/vm_dev.rs
/DragonOS/kernel/src/virt/mod.rs
/DragonOS/tools/.gdbinit
/DragonOS/tools/bootstrap.sh
/DragonOS/tools/run-qemu.sh
/DragonOS/tools/write_disk_image.sh
/DragonOS/user/apps/Makefile
/DragonOS/user/apps/test_kvm/Makefile
/DragonOS/user/apps/test_kvm/bootstrap/Makefile
/DragonOS/user/apps/test_kvm/bootstrap/boot.bin
/DragonOS/user/apps/test_kvm/bootstrap/boot.hex
/DragonOS/user/apps/test_kvm/link.lds
/DragonOS/user/apps/test_kvm/main.c
/DragonOS/user/libs/libc/src/fcntl.c
/DragonOS/user/libs/libc/src/include/export/fcntl.h
/DragonOS/user/libs/libsystem/syscall.h
3c82aa5624-Oct-2023 Chiichen <39649411+Chiichen@users.noreply.github.com>

Signal refactor (#402)

* 初步完成对 signal_types 和 部分signal代码的初始化

* 重构了一部分架构相关代码进入 arch 中

* 基本修改完成,编译通过,后续补上系统调用

* signal基本完成,能实现 Sigaction 系统调用

* 增加了一组枚举抽象

* 进一步重构了一部分C风格的代码

* 继续重构了一部分

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 相关依赖项

show more ...

d7f5742a23-Oct-2023 LoGin <longjin@DragonOS.org>

初步编写cpu信息获取的代码 (#406)

1. 启动时从acpi获取所有的cpu信息并存到SMP_BOOT_DATA
2. 注册cpu subsystem/bus到sysfs(暂时未添加内容)

todo:
1. build_cpu_map(在X86_64SmpManager中)
2. 实现cpu mask
3. 把cpu设备注册到sysfs

a03c4f9d20-Oct-2023 LoGin <longjin@DragonOS.org>

设备驱动模型:完善platform bus相关内容。并注册串口到sysfs (#403)

* 完成初始化platform bus
* 删除旧的sysfs
* 把uart驱动移动到tty/serial文件夹下
* 完成将串口挂载到sysfs
* 修复vfs系统调用未能follow symlink的问题
* 修复shell未能正确获取pwd的问题


/DragonOS/.github/workflows/cache-toolchain.yml
/DragonOS/.vscode/settings.json
/DragonOS/kernel/Cargo.toml
io.rs
mod.rs
x86_64/asm/mod.rs
x86_64/asm/pio.rs
x86_64/mm/mod.rs
x86_64/mod.rs
/DragonOS/kernel/src/driver/acpi/bus.rs
/DragonOS/kernel/src/driver/acpi/glue.rs
/DragonOS/kernel/src/driver/acpi/mod.rs
/DragonOS/kernel/src/driver/base/block/block_device.rs
/DragonOS/kernel/src/driver/base/c_adapter.rs
/DragonOS/kernel/src/driver/base/char/mod.rs
/DragonOS/kernel/src/driver/base/class.rs
/DragonOS/kernel/src/driver/base/device/bus.rs
/DragonOS/kernel/src/driver/base/device/dd.rs
/DragonOS/kernel/src/driver/base/device/driver.rs
/DragonOS/kernel/src/driver/base/device/init.rs
/DragonOS/kernel/src/driver/base/device/mod.rs
/DragonOS/kernel/src/driver/base/firmware.rs
/DragonOS/kernel/src/driver/base/hypervisor.rs
/DragonOS/kernel/src/driver/base/init.rs
/DragonOS/kernel/src/driver/base/kobject.rs
/DragonOS/kernel/src/driver/base/kset.rs
/DragonOS/kernel/src/driver/base/map/mod.rs
/DragonOS/kernel/src/driver/base/mod.rs
/DragonOS/kernel/src/driver/base/platform/mod.rs
/DragonOS/kernel/src/driver/base/platform/platform_device.rs
/DragonOS/kernel/src/driver/base/platform/platform_driver.rs
/DragonOS/kernel/src/driver/base/platform/subsys.rs
/DragonOS/kernel/src/driver/base/subsys.rs
/DragonOS/kernel/src/driver/base/swnode.rs
/DragonOS/kernel/src/driver/disk/ahci/ahcidisk.rs
/DragonOS/kernel/src/driver/interrupt/apic/apic.c
/DragonOS/kernel/src/driver/mod.rs
/DragonOS/kernel/src/driver/net/mod.rs
/DragonOS/kernel/src/driver/net/virtio_net.rs
/DragonOS/kernel/src/driver/tty/init.rs
/DragonOS/kernel/src/driver/tty/mod.rs
/DragonOS/kernel/src/driver/tty/serial/mod.rs
/DragonOS/kernel/src/driver/tty/serial/serial8250/mod.rs
/DragonOS/kernel/src/driver/tty/serial/serial8250/serial8250_pio.rs
/DragonOS/kernel/src/driver/tty/tty_device.rs
/DragonOS/kernel/src/driver/tty/tty_driver.rs
/DragonOS/kernel/src/driver/video/mod.rs
/DragonOS/kernel/src/filesystem/kernfs/callback.rs
/DragonOS/kernel/src/filesystem/kernfs/mod.rs
/DragonOS/kernel/src/filesystem/sysfs/dir.rs
/DragonOS/kernel/src/filesystem/sysfs/file.rs
/DragonOS/kernel/src/filesystem/sysfs/group.rs
/DragonOS/kernel/src/filesystem/sysfs/mod.rs
/DragonOS/kernel/src/filesystem/sysfs/symlink.rs
/DragonOS/kernel/src/filesystem/vfs/file.rs
/DragonOS/kernel/src/filesystem/vfs/mod.rs
/DragonOS/kernel/src/filesystem/vfs/syscall.rs
/DragonOS/kernel/src/init/c_adapter.rs
/DragonOS/kernel/src/init/mod.rs
/DragonOS/kernel/src/lib.rs
/DragonOS/kernel/src/libs/ida/Cargo.toml
/DragonOS/kernel/src/libs/ida/src/lib.rs
/DragonOS/kernel/src/libs/int_like.rs
/DragonOS/kernel/src/libs/lib_ui/screen_manager.h
/DragonOS/kernel/src/libs/lib_ui/screen_manager.rs
/DragonOS/kernel/src/libs/lib_ui/textui.rs
/DragonOS/kernel/src/libs/lib_ui/textui_no_alloc.rs
/DragonOS/kernel/src/libs/notifier.rs
/DragonOS/kernel/src/libs/wait_queue.rs
/DragonOS/kernel/src/main.c
/DragonOS/user/apps/shell/cmd.c
/DragonOS/user/libs/libc/src/include/export/unistd.h
/DragonOS/user/libs/libc/src/unistd.c
/DragonOS/user/libs/libsystem/syscall.h
9e9ffedf08-Oct-2023 Plucky923 <107762234+Plucky923@users.noreply.github.com>

syscall: 完善syscall代码 (#387)

* syscall: 完善syscall代码

修改代码使这段代码可以使用语法糖。修改SYS_READ和SYS_WRITE的安全检查为userbuffer

Signed-off-by: plucky <m202372036@hust.edu.cn>

* syscall: 修改SYS_READ和SYS_WRITE的权限检查为

syscall: 完善syscall代码 (#387)

* syscall: 完善syscall代码

修改代码使这段代码可以使用语法糖。修改SYS_READ和SYS_WRITE的安全检查为userbuffer

Signed-off-by: plucky <m202372036@hust.edu.cn>

* syscall: 修改SYS_READ和SYS_WRITE的权限检查为userbuffer

Signed-off-by: plucky <m202372036@hust.edu.cn>

* syscall: 有不知道如何修改的错误

Signed-off-by: plucky <m202372036@hust.edu.cn>

* syscall: 修改SYS_READ和SYS_WRITE并编译通过

Signed-off-by: plucky <m202372036@hust.edu.cn>

show more ...

34e6d6c808-Oct-2023 yuyi2439 <68320855+yuyi2439@users.noreply.github.com>

实现free指令+修复 mountfs的内存泄露问题(#394)

* 实现meminfo文件

* 成功实现free指令,添加了一些string有关函数,并进行一些无影响的小改动


* 解决内存泄露的问题:mountfs inode的wrap方法使用了Arc::into_raw而没有from_raw,导致inode始终无法释放

---------

Co-authored

实现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>

show more ...

876cb89e03-Oct-2023 GnoCiYeH <heyicong@dragonos.org>

修复pipe2在读端或写端关闭后还阻塞问题 (#396)

* 修复pipe2在读端或写端关闭后还阻塞问题。

* update

* update

* 修改cloexec

---------

Co-authored-by: longjin <longjin@RinGoTek.cn>


/DragonOS/.vscode/settings.json
/DragonOS/kernel/Cargo.toml
x86_64/process/syscall.rs
/DragonOS/kernel/src/driver/pci/pci_irq.rs
/DragonOS/kernel/src/driver/virtio/transport_pci.rs
/DragonOS/kernel/src/filesystem/vfs/file.rs
/DragonOS/kernel/src/init/c_adapter.rs
/DragonOS/kernel/src/init/mod.rs
/DragonOS/kernel/src/ipc/pipe.rs
/DragonOS/kernel/src/ipc/syscall.rs
/DragonOS/kernel/src/lib.rs
/DragonOS/kernel/src/libs/intertrait/.gitignore
/DragonOS/kernel/src/libs/intertrait/Cargo.toml
/DragonOS/kernel/src/libs/intertrait/LICENSE-MIT
/DragonOS/kernel/src/libs/intertrait/README.md
/DragonOS/kernel/src/libs/intertrait/macros/Cargo.toml
/DragonOS/kernel/src/libs/intertrait/macros/LICENSE-APACHE
/DragonOS/kernel/src/libs/intertrait/macros/LICENSE-MIT
/DragonOS/kernel/src/libs/intertrait/macros/src/args.rs
/DragonOS/kernel/src/libs/intertrait/macros/src/gen_caster.rs
/DragonOS/kernel/src/libs/intertrait/macros/src/item_impl.rs
/DragonOS/kernel/src/libs/intertrait/macros/src/item_type.rs
/DragonOS/kernel/src/libs/intertrait/macros/src/lib.rs
/DragonOS/kernel/src/libs/intertrait/src/cast.rs
/DragonOS/kernel/src/libs/intertrait/src/cast/cast_arc.rs
/DragonOS/kernel/src/libs/intertrait/src/cast/cast_box.rs
/DragonOS/kernel/src/libs/intertrait/src/cast/cast_mut.rs
/DragonOS/kernel/src/libs/intertrait/src/cast/cast_rc.rs
/DragonOS/kernel/src/libs/intertrait/src/cast/cast_ref.rs
/DragonOS/kernel/src/libs/intertrait/src/hasher.rs
/DragonOS/kernel/src/libs/intertrait/src/lib.rs
/DragonOS/kernel/src/libs/intertrait/tests/castable_to.rs
/DragonOS/kernel/src/libs/intertrait/tests/on-enum.rs
/DragonOS/kernel/src/libs/intertrait/tests/on-struct.rs
/DragonOS/kernel/src/libs/intertrait/tests/on-trait-impl-assoc-type1.rs
/DragonOS/kernel/src/libs/intertrait/tests/on-trait-impl-assoc-type2.rs
/DragonOS/kernel/src/libs/intertrait/tests/on-trait-impl-assoc-type3.rs
/DragonOS/kernel/src/libs/intertrait/tests/on-trait-impl.rs
/DragonOS/kernel/src/libs/intertrait/tests/on-type-multi-traits.rs
/DragonOS/kernel/src/libs/intertrait/tests/run.rs
/DragonOS/kernel/src/libs/intertrait/tests/ui/duplicate-flags.rs
/DragonOS/kernel/src/libs/intertrait/tests/ui/duplicate-flags.stderr
/DragonOS/kernel/src/libs/intertrait/tests/ui/on-generic-type.rs
/DragonOS/kernel/src/libs/intertrait/tests/ui/on-generic-type.stderr
/DragonOS/kernel/src/libs/intertrait/tests/ui/on-type-impl.rs
/DragonOS/kernel/src/libs/intertrait/tests/ui/on-type-impl.stderr
/DragonOS/kernel/src/libs/intertrait/tests/ui/unknown-flag.rs
/DragonOS/kernel/src/libs/intertrait/tests/ui/unknown-flag.stderr
/DragonOS/kernel/src/libs/mod.rs
/DragonOS/kernel/src/libs/rbtree.rs
/DragonOS/kernel/src/main.c
/DragonOS/kernel/src/mm/allocator/kernel_allocator.rs
/DragonOS/kernel/src/process/fork.rs
/DragonOS/kernel/src/process/init.rs
/DragonOS/kernel/src/process/syscall.rs
/DragonOS/user/Makefile
/DragonOS/user/dadk/config/dragon_reach-0.1.0.dadk
/DragonOS/user/dadk/config/relibc-0.1.0.dadk
/DragonOS/user/dadk/target/x86_64-unknown-dragonos.json

123456