generated from LearningOS/rCore-Tutorial-Code-2024S
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 18cfa14
Showing
32 changed files
with
1,853 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
*/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
name: Jobs | ||
|
||
on: [push] | ||
|
||
env: | ||
CARGO_TERM_COLOR: always | ||
rust_toolchain: nightly | ||
|
||
jobs: | ||
build-doc: | ||
if: github.repository == 'LearningOS/rCore-Tutorial-Code-2024S' | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Build doc | ||
run: | | ||
git clone https://github.com/LearningOS/rCore-Tutorial-Test-2024S.git user | ||
cd os | ||
make | ||
cargo doc --no-deps --verbose | ||
- name: Push to gh-pages | ||
uses: peaceiris/actions-gh-pages@v3 | ||
with: | ||
github_token: ${{ secrets.GITHUB_TOKEN }} | ||
publish_dir: ./os/target/riscv64gc-unknown-none-elf/doc | ||
destination_dir: ${{ github.ref_name }} | ||
gitlab-mirror: | ||
if: github.repository == 'LearningOS/rCore-Tutorial-Code-2024S' | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v1 | ||
- name: Mirror + trigger CI | ||
uses: tkf2019/gitlab-mirror-and-ci-action@master | ||
with: | ||
args: "https://git.tsinghua.edu.cn/os-lab/2024s/public/rcore-tutorial-code-2024s" | ||
env: | ||
GITLAB_HOSTNAME: "git.tsinghua.edu.cn" | ||
GITLAB_PROJECT_ID: "29091" | ||
GITLAB_PROJECT_NAME: "rcore-tutorial-code-2024s" | ||
GITLAB_PROJECT_TOKEN: ${{secrets.GITLAB_PROJECT_TOKEN}} | ||
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
.*/* | ||
!.github/* | ||
!.vscode/settings.json | ||
.idea | ||
Cargo.lock | ||
target | ||
os/src/link_app.S | ||
os/last-* | ||
os/Cargo.lock | ||
os/.gdb_history | ||
user/build | ||
user/target/* | ||
user/.idea/* | ||
user/Cargo.lock | ||
easy-fs/Cargo.lock | ||
easy-fs/target/* | ||
easy-fs-fuse/Cargo.lock | ||
easy-fs-fuse/target/* | ||
tools/ | ||
pushall.sh | ||
*.bak |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
{ | ||
// Prevent "can't find crate for `test`" error on no_std | ||
// Ref: https://github.com/rust-lang/vscode-rust/issues/729 | ||
// For vscode-rust plugin users: | ||
"rust.target": "riscv64gc-unknown-none-elf", | ||
"rust.all_targets": false, | ||
// For Rust Analyzer plugin users: | ||
"rust-analyzer.cargo.target": "riscv64gc-unknown-none-elf", | ||
"rust-analyzer.checkOnSave.allTargets": false, | ||
// "rust-analyzer.cargo.features": [ | ||
// "board_qemu" | ||
// ] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
# syntax=docker/dockerfile:1 | ||
# This Dockerfile is adapted from https://github.com/LearningOS/rCore-Tutorial-v3/blob/main/Dockerfile | ||
# with the following major updates: | ||
# - ubuntu 18.04 -> 20.04 | ||
# - qemu 5.0.0 -> 7.0.0 | ||
# - Extensive comments linking to relevant documentation | ||
FROM ubuntu:20.04 | ||
|
||
ARG QEMU_VERSION=7.0.0 | ||
ARG HOME=/root | ||
|
||
# 0. Install general tools | ||
ARG DEBIAN_FRONTEND=noninteractive | ||
RUN apt-get update && \ | ||
apt-get install -y \ | ||
curl \ | ||
git \ | ||
python3 \ | ||
wget | ||
|
||
# 1. Set up QEMU RISC-V | ||
# - https://learningos.github.io/rust-based-os-comp2022/0setup-devel-env.html#qemu | ||
# - https://www.qemu.org/download/ | ||
# - https://wiki.qemu.org/Documentation/Platforms/RISCV | ||
# - https://risc-v-getting-started-guide.readthedocs.io/en/latest/linux-qemu.html | ||
|
||
# 1.1. Download source | ||
WORKDIR ${HOME} | ||
RUN wget https://download.qemu.org/qemu-${QEMU_VERSION}.tar.xz && \ | ||
tar xvJf qemu-${QEMU_VERSION}.tar.xz | ||
|
||
# 1.2. Install dependencies | ||
# - https://risc-v-getting-started-guide.readthedocs.io/en/latest/linux-qemu.html#prerequisites | ||
RUN apt-get install -y \ | ||
autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev \ | ||
gawk build-essential bison flex texinfo gperf libtool patchutils bc \ | ||
zlib1g-dev libexpat-dev git \ | ||
ninja-build pkg-config libglib2.0-dev libpixman-1-dev libsdl2-dev | ||
|
||
# 1.3. Build and install from source | ||
WORKDIR ${HOME}/qemu-${QEMU_VERSION} | ||
RUN ./configure --target-list=riscv64-softmmu,riscv64-linux-user && \ | ||
make -j$(nproc) && \ | ||
make install | ||
|
||
# 1.4. Clean up | ||
WORKDIR ${HOME} | ||
RUN rm -rf qemu-${QEMU_VERSION} qemu-${QEMU_VERSION}.tar.xz | ||
|
||
# 1.5. Sanity checking | ||
RUN qemu-system-riscv64 --version && \ | ||
qemu-riscv64 --version | ||
|
||
# 2. Set up Rust | ||
# - https://learningos.github.io/rust-based-os-comp2022/0setup-devel-env.html#qemu | ||
# - https://www.rust-lang.org/tools/install | ||
# - https://github.com/rust-lang/docker-rust/blob/master/Dockerfile-debian.template | ||
|
||
# 2.1. Install | ||
ENV RUSTUP_HOME=/usr/local/rustup \ | ||
CARGO_HOME=/usr/local/cargo \ | ||
PATH=/usr/local/cargo/bin:$PATH \ | ||
RUST_VERSION=nightly | ||
RUN set -eux; \ | ||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -o rustup-init; \ | ||
chmod +x rustup-init; \ | ||
./rustup-init -y --no-modify-path --profile minimal --default-toolchain $RUST_VERSION; \ | ||
rm rustup-init; \ | ||
chmod -R a+w $RUSTUP_HOME $CARGO_HOME; | ||
|
||
# 2.2. Sanity checking | ||
RUN rustup --version && \ | ||
cargo --version && \ | ||
rustc --version | ||
|
||
# 3. Build env for labs | ||
# See os1/Makefile `env:` for example. | ||
# This avoids having to wait for these steps each time using a new container. | ||
RUN rustup target add riscv64gc-unknown-none-elf && \ | ||
cargo install cargo-binutils --vers ~0.2 && \ | ||
rustup component add rust-src && \ | ||
rustup component add llvm-tools-preview | ||
|
||
# Ready to go | ||
WORKDIR ${HOME} |
Oops, something went wrong.