Giter Club home page Giter Club logo

xv6-rust's People

Contributors

chyyuu avatar feng-jay avatar jaic1 avatar kuangjux avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

xv6-rust's Issues

第一个用户进程

当内核完成初始化进入调度后,初始化第一个用户进程并进入 fork_ret 读入 super block 并进入 usertrap_ret ,随后进行返回用户态的上下文切换,随后进入跳板页返回用户态,但在进入跳板页后内核崩溃,在 usertrap 处使用 gdb 调试阻塞住。

trapframe kernel_trap 设置错误

在从用户态通过 syscall 返回到内核态的时候,其中 kernel_trap 应当存在 trapframe 顶部,但是在加载的时候为0,导致错误

关于使用的一个疑问

显示到first user process init.....后就直接shutdown了,是因为在rust_main.rs里面注释掉的代码吗

重构系统调用与文件系统

  • 将系统调用放在 Process 下面,建立 Syscall struct
  • 关于文件比较混乱,应该统一 close. dup, Arc 之间的关系

switch.S

global_asm!(include_str!("asm/entry.S")); global_asm!(include_str!("asm/kernelvec.S")); global_asm!(include_str!("asm/trampoline.S")); global_asm!(include_str!("asm/switch.S"));
master分支下没有switch.S文件

Cannot build xv6-rust: failed to get `allocator` as a dependency of package

I'm on MacOS Big Sur with the latest nightly Rust installed:

$ rustc --version
rustc 1.60.0-nightly (bfe156467 2022-01-22)

I also already had another tools installed:

$ rustup target add riscv64gc-unknown-none-elf
$ cargo install cargo-binutils
$ rustup component add llvm-tools-preview

Now let's run make:

$ cd xv6-rust/kernel
make
...
...
error: failed to get allocator as a dependency of package kernel v0.1.0 (/Users/andre/Lab/OSDev/xv6-rust/kernel)

Caused by:
failed to load source for dependency allocator

Caused by:
Unable to update /Users/andre/Lab/OSDev/xv6-rust/allocator

Caused by:
failed to read /Users/andre/Lab/OSDev/xv6-rust/allocator/Cargo.toml

Caused by:
No such file or directory (os error 2)
make: *** [kernel] Error 101

设备中断

不知道为什么设备中断出问题了,从终端输入不能检测到UART中断。

创建设备文件时出错

在文件系统为设备分配了 inum 号之后,再通过 dev 和 inum 取出 inode 发现取出的 inode 是错的

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.