Skip to content
Merged
Show file tree
Hide file tree
Changes from 183 commits
Commits
Show all changes
187 commits
Select commit Hold shift + click to select a range
0dfd957
parse dtb except gicc
coolyjg May 6, 2024
610e92e
Implemented various backoffs and per-CPU rng
Sssssaltyfish Jun 26, 2024
a66b4bb
Merge pull request #130 from Sssssaltyfish/rand
ken4647 Jul 18, 2024
e69756a
add implementation for rt_sigaction, sys_kill and sys_tkill
Jul 3, 2024
0d5ebe0
Merge pull request #131 from TheSayOL/sigaction
ken4647 Jul 26, 2024
6b0d753
add loopback
lhw2002426 Aug 21, 2024
200226f
temporily commit for test
Zen4647 Sep 17, 2024
a0a7529
fix bug of sys_rt_sigaction, sys_poll, add sys_clock_nanosleep, sys_g…
lhw2002426 Sep 17, 2024
76c0278
Merge pull request #139 from lhw2002426/dev
ken4647 Sep 19, 2024
c08acb7
fix problem for fs deadlock and context switch failds.
Zen4647 Sep 26, 2024
e0cbc0f
implement `sys_wait4` for multiprocess for aarch64.
Zen4647 Sep 27, 2024
2431ea7
drop lock of `process_map` before yielding to other tasks
Zen4647 Sep 27, 2024
fe90312
Merge pull request #142 from ken4647/multiprocess
ken4647 Oct 10, 2024
7380ca7
fix wrong aligned_size in .percpu and deadlock problem in fork_task().
Zen4647 Nov 11, 2024
443e9b6
Support for non-disruptive virt-console for all platforms, support fo…
ForeverYolo Oct 25, 2024
d5af9ce
Merge pull request #143 from syswonder/virtio_console
ken4647 Nov 14, 2024
ee23e4d
fix bugs for pipe's write end closure and exit group
Zen4647 Nov 14, 2024
698e1fa
Merge pull request #144 from ken4647/multiprocess
ken4647 Nov 14, 2024
2d79877
Merge branch 'loopback' into multiprocess-loopback
Nov 23, 2024
2dba7dc
fix sys_rt_sigaction
Nov 26, 2024
029a431
Merge pull request #146 from lhw2002426/multiprocess-loopback
ken4647 Nov 26, 2024
c6eced3
add unixsocket without real inode
Dec 2, 2024
4ab23d3
Merge pull request #145 from lhw2002426/dev
ken4647 Dec 2, 2024
c0ebec1
add unixsocket without real inode
Dec 2, 2024
a98992a
Merge pull request #150 from lhw2002426/multiprocess-loopback
ken4647 Dec 2, 2024
e149cde
fix bug for unexpected pagefault when nested fork.
ken4647 Dec 2, 2024
6bc5b32
Merge pull request #151 from ken4647/mp_el1
ken4647 Dec 2, 2024
bd02cdd
add unix socket drop
Dec 11, 2024
27bcc5d
Merge pull request #155 from lhw2002426/multiprocess-loopback
ken4647 Dec 15, 2024
6f4bf66
move signal handle into ruxtask and fix sys_rt_rigaction
Dec 15, 2024
19fa8e6
Merge remote-tracking branch 'upstream/multiprocess_el1' into multipr…
Dec 15, 2024
a67be9b
Merge pull request #158 from lhw2002426/multiprocess-loopback
ken4647 Dec 17, 2024
6936553
add poll state POLLHUP
Dec 21, 2024
42261fd
Merge pull request #159 from lhw2002426/multiprocess-loopback
ken4647 Dec 21, 2024
f4063b8
Merge branch 'mp4dev' of github.com:ken4647/ruxos into dev
ken4647 Dec 25, 2024
c75a5d9
remove `ruxlibc` from ulibc.
ken4647 Dec 26, 2024
c6c37ec
fix a mistask for swaped-oout memory
ken4647 Jan 15, 2025
06589bf
Merge pull request #160 from ken4647/dev
lhw2002426 Jan 15, 2025
555cfe0
feat: implement dgram for unix socket
HeartLinked Jan 21, 2025
d38806b
Fix null pointer dereference when wstatus is NULL in sys_wait4
ken4647 Jan 22, 2025
eb2cb0a
Merge pull request #164 from HeartLinked/dev_unix_dgram
lhw2002426 Jan 22, 2025
933ec44
Merge pull request #166 from ken4647/dev
lhw2002426 Jan 30, 2025
ea80780
Merge pull request #9 from syswonder/dev
lhw2002426 Jan 30, 2025
3526673
Merge pull request #10 from syswonder/dev
lhw2002426 Jan 31, 2025
c9a6885
slove httpclient dns fail problem
Jan 31, 2025
043c5c0
solve fmt check problem for lwip
Jan 31, 2025
767da69
fix(httpclient): remove 'Server: nginx' from expect_info
Stone749990226 Feb 7, 2025
81db7d5
Merge pull request #169 from syswonder/fix-httpclient
ken4647 Feb 7, 2025
5a46b43
Merge pull request #168 from lhw2002426/dev
ken4647 Feb 9, 2025
be0b3d3
feat(fdtable): add CLOEXEC flag
Stone749990226 Jan 16, 2025
3782d94
Fix the issues with sys_getsockopt
HeartLinked Feb 10, 2025
a87715e
Merge pull request #170 from HeartLinked/dev_fix
ken4647 Feb 10, 2025
154103c
Merge pull request #162 from Stone749990226/dev
ken4647 Feb 10, 2025
512e9d1
feat: impliment syscall sys_socketpair
Stone749990226 Feb 11, 2025
3d9ccf3
fix memory leaks in the network buffer pool
ken4647 Feb 11, 2025
7e11f17
fix(unixsocket): fix poll bug when peer closes connection
Stone749990226 Feb 11, 2025
429f506
Merge pull request #173 from ken4647/dev
lhw2002426 Feb 12, 2025
6685a68
Scheduling bug under non-preemptible lock from file drop order on close
ken4647 Feb 12, 2025
e35568a
Merge pull request #175 from ken4647/dev
Stone749990226 Feb 12, 2025
6fb4cef
detach signal handle from sigaction
Feb 12, 2025
5362715
Merge pull request #171 from Stone749990226/dev
ken4647 Feb 13, 2025
cfd3040
Merge pull request #167 from lhw2002426/multiprocess-loopback
ken4647 Feb 13, 2025
f1357fd
fix poll bug of dgram unix socket
HeartLinked Feb 17, 2025
ed8f021
add gicv3
Feb 17, 2025
0bdcab1
Merge branch 'gicv3' into DTB
lhw2002426 Feb 18, 2025
3839ee5
Merge pull request #13 from lhw2002426/DTB
lhw2002426 Feb 18, 2025
aaf7896
fix problem of time
HeartLinked Feb 18, 2025
62068cd
Merge pull request #177 from HeartLinked/dev_test_asyncgen
ken4647 Feb 19, 2025
480358c
Merge pull request #178 from lhw2002426/signal
ken4647 Feb 19, 2025
e4f67d1
fix: getdents
Oct 10, 2024
5baf6cb
test: add test harness
Oct 10, 2024
e01d516
fix: openat directory flag
Oct 16, 2024
8a18da3
fix: open with absolute path
Oct 16, 2024
d99b6c9
refactor: define AbsPath and RelPath type
Oct 16, 2024
ec5095e
refactor: devfs use new path defs
Oct 16, 2024
86a14b3
refactor: ramfs use new path defs
Oct 24, 2024
fc064b8
fix: ruxfs api and posix api
Oct 28, 2024
90128f8
refactor: implement simple ruxfs operations
Oct 29, 2024
f90c2ea
refacotr: fs posix api
Oct 31, 2024
07e55ce
fix: root directory lookup path
Oct 31, 2024
ff00a8b
feat: rmdir mkdirat unlink unlinkat api
Oct 31, 2024
8265722
fix: unlinkat with removedir
Nov 6, 2024
50977bb
test: use specific test dir
Nov 7, 2024
f5d3a63
feat: support fatfs and ext4 fs
Nov 14, 2024
d51a242
feat: make ext4 fs scripts
Nov 14, 2024
ed5d31c
fix: path canonicalization
Nov 18, 2024
840dbdd
feat: vfs add link and setattr fn
Nov 18, 2024
6acc1c3
fix: ramfs and devfs support new vfs trait
Nov 18, 2024
c9c8ee6
refactor: ruxfs and posix_api compats with new vfs
Nov 21, 2024
c392acc
feat: add inode number in vfsattr
Nov 21, 2024
8af1c3e
refactor: remove fops with relative path
Nov 25, 2024
e3e07e3
fix: path lifetime
Nov 27, 2024
abf3a6c
refactor: filelike path method
Nov 27, 2024
0e806a0
refactor: fs posix api with absolute path
Nov 27, 2024
0b37197
fix: FileLike stat
Nov 28, 2024
8cf6918
feat: directory check empty
Nov 28, 2024
2bef77f
fix: unlinkat
Nov 28, 2024
41879f9
Update ruxfs dependencies
Nov 28, 2024
0e58f4e
fix: blkfs features
Nov 28, 2024
52247a2
feat: ruxfs high-level api
Nov 28, 2024
b80d765
feat: fs arceos api
Nov 28, 2024
c9c0963
feat: axstd fs api
Nov 28, 2024
a98c3e7
fix: devfs and ramfs lookup
Nov 28, 2024
454bb3d
doc: axfs_vfs and ruxfs doc comments
Nov 28, 2024
01e9eee
fix: remove harness from workspace
Nov 28, 2024
4a99179
refactor: remove test harness
Feb 15, 2025
18bc4a9
fix: incompatible interfaces
Feb 19, 2025
3e55f9e
style: ruxos_posix_api fs syscalls
Feb 20, 2025
cdbb475
getsocknamev1
HeartLinked Feb 22, 2025
468755f
add force route
Feb 26, 2025
7e6d9fc
Merge branch 'dev' into loopback-multipoll
lhw2002426 Feb 26, 2025
c99c128
fix: make fs img
Feb 26, 2025
787bbad
Merge pull request #179 from lhw2002426/loopback-multipoll
ken4647 Feb 26, 2025
e8d90f6
fix: ruxruntime fs test
Feb 26, 2025
aa5895a
fix: unit test
Feb 27, 2025
3d8ce37
chore: minor tweaks for future sshd support
Stone749990226 Feb 17, 2025
790e423
fix: clippy
Feb 27, 2025
ee46070
fix: aarch64 & riscv64 openat
Feb 27, 2025
8c699bc
fix: build fs shell
Feb 27, 2025
9c9b775
fix: build iperf & redis
Feb 27, 2025
e3fdd09
fix: log dep version
Feb 27, 2025
1d0ca34
Merge pull request #180 from Stone749990226/dev
ken4647 Mar 1, 2025
e14b5fb
fix: temporarily remove lwext4_rust
Mar 4, 2025
287ed72
fix: update another_ext4 dep
Mar 4, 2025
c20a832
style: cargo format all
Mar 4, 2025
0f85878
fix: docs
Mar 4, 2025
f883f12
Merge branch 'dev'
Mar 4, 2025
b18325e
fix: getdents
Mar 5, 2025
c38cd58
Merge pull request #152 from PKTH-Jx/main
ken4647 Mar 5, 2025
1793360
refactor: Extract RingBuffer from PipeRingBuffer for better reusability
Stone749990226 Feb 24, 2025
a1281ba
fix unix send and local_addr
HeartLinked Mar 6, 2025
01c3402
Merge branch 'dev' into dev_getsockname
HeartLinked Mar 6, 2025
339c538
make fmt code
HeartLinked Mar 6, 2025
c98feaf
feat(tty): enhance TTY support with Termios implementation
Stone749990226 Mar 1, 2025
ceeca18
Merge pull request #181 from Stone749990226/dev
ken4647 Mar 11, 2025
b4c2546
Merge pull request #182 from HeartLinked/dev_getsockname
ken4647 Mar 11, 2025
2b6e9c0
add gicv3 and dtb, and chenge arm physical timer into virt timer
Mar 13, 2025
039d8f3
Merge branch 'dev' into gicv3
lhw2002426 Mar 13, 2025
70850c9
Merge pull request #183 from lhw2002426/gicv3
ken4647 Mar 13, 2025
ef01e43
fix: remove `percpu` out of `crates/` and solve the unittest problems.
ken4647 Mar 13, 2025
8783336
Merge pull request #184 from ken4647/dev
lhw2002426 Mar 16, 2025
4351038
chore: centralize shared dependency versions via workspace inheritance
Stone749990226 Mar 14, 2025
06ee7ba
refactor(fs): unify file/directory implementations and enhance flags
Stone749990226 Mar 16, 2025
df799bb
Merge pull request #186 from Stone749990226/dev
ken4647 Mar 18, 2025
fd8662d
Implement: implement the syscall `ftruncate` and fix the related file…
ken4647 Mar 23, 2025
3d14ad6
Merge pull request #187 from ken4647/dev
lhw2002426 Mar 26, 2025
8e2fa83
feat: add fifo support and sys_mknodat
HeartLinked Mar 23, 2025
d30d61c
Refactor FIFO/pipe implementations and fix sys_fcntl flags handling
Stone749990226 Mar 24, 2025
7a68911
Merge pull request #185 from HeartLinked/dev_new_fifo
ken4647 Mar 30, 2025
6ec4c74
feat(pty): support pty in devfs
Stone749990226 Apr 1, 2025
9e0fa7c
Merge pull request #189 from Stone749990226/dev
ken4647 Apr 9, 2025
f2ca673
feat(vfs): store file mode and add fchmodat syscalls
Stone749990226 Apr 27, 2025
45fc281
Merge pull request #190 from Stone749990226/dev
ken4647 May 7, 2025
b36f2f5
fix: update rust toolchain to `nightly-2025-05-07`
ken4647 May 23, 2025
01b0049
fix: riscv compilation error caused by incompatible asm
ZZJJWarth May 29, 2025
2a8a1a5
fix: some clippy errors and riscv abnormal exit
ken4647 May 31, 2025
a4651e2
fix: use github as musl source in CI
ken4647 Jun 16, 2025
672c380
Merge pull request #197 from ken4647/rustc_update
Stone749990226 Jun 18, 2025
6046958
feat(unix_socket): refactor UNIX socket impl and add new features
Stone749990226 May 15, 2025
1ed162e
fix: changed /etc/passwd and fix pty push_char function
Stone749990226 Jun 14, 2025
ee7eea0
fix: resolved some ambiguities in the license
ken4647 Jun 19, 2025
dd0a395
Merge pull request #195 from Stone749990226/dev
ken4647 Jun 19, 2025
aa72209
Merge pull request #200 from ken4647/license_update
lhw2002426 Jun 19, 2025
f3ec160
fix(rename): correctly handle rename in struct RootDirectory
Stone749990226 Jun 25, 2025
495bbbf
Merge pull request #202 from Stone749990226/dev
ken4647 Jun 25, 2025
51f6a33
feature(fuse): integrate fuse function
Jun 20, 2025
112bd2c
Merge pull request #201 from syswonder/new-fuse
ken4647 Jun 26, 2025
6e48027
refator: optimize implementation for fuse-fs
ken4647 Jun 30, 2025
bbf0afd
Merge pull request #204 from ken4647/warning-fix
lhw2002426 Jul 1, 2025
7a11820
fix: recorrect wrong fstat data layout for riscv and aarch64
ken4647 Jul 8, 2025
c5650c9
Merge pull request #194 from ken4647/lsl_fix
lhw2002426 Jul 9, 2025
3206f57
custom virtio-drivers
Jul 2, 2025
14a5bfd
Merge pull request #205 from lhw2002426/update_virtio
ken4647 Jul 20, 2025
0d21573
feat(arch): support mmap and process fork for riscv64
ZZJJWarth Mar 11, 2025
4a9ee63
Merge pull request #196 from ZZJJWarth/riscv_pagefault_fork
ken4647 Jul 21, 2025
60019c0
fix: remove warnings in clippy
ken4647 Jul 21, 2025
58e502e
Merge pull request #208 from ken4647/new-dev
lhw2002426 Jul 21, 2025
623601c
ci: add rule for pr commit message
ken4647 Jul 22, 2025
034ff28
Merge pull request #209 from ken4647/new-dev
lhw2002426 Jul 22, 2025
638d6e5
ci: add license header check
ken4647 Jul 22, 2025
644a4c7
Merge pull request #211 from ken4647/new-dev
lhw2002426 Jul 22, 2025
5ef84a1
chore(release): introduce CHANGELOG file
ken4647 Jul 22, 2025
19d2a4e
Merge pull request #212 from ken4647/new-dev
lhw2002426 Jul 22, 2025
f3aac75
ci: update time and words filter to avoid unreasonable check
ken4647 Jul 22, 2025
a8a7191
Merge pull request #215 from ken4647/new-dev
lhw2002426 Jul 23, 2025
5a98318
chore: add missing item for CHANGELOG
ken4647 Jul 23, 2025
a462570
Merge pull request #216 from ken4647/new-dev
lhw2002426 Jul 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .github/workflows/actions/setup-musl/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ runs:
shell: bash
run: |
MUSL_PATH=${{ inputs.arch }}-linux-musl-cross
wget https://musl.cc/${MUSL_PATH}.tgz
tar -xf ${MUSL_PATH}.tgz
git clone -b ${{ inputs.arch }} https://github.com/syswonder/ruxos-musl-toolchain.git
tar -xf ruxos-musl-toolchain/${MUSL_PATH}.tgz
- uses: actions/cache/save@v3
if: steps.cache-musl.outputs.cache-hit != 'true'
with:
Expand Down
16 changes: 8 additions & 8 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ name: Build CI
on: [push, pull_request]

env:
rust-toolchain: nightly-2023-09-01
rust-toolchain: nightly-2025-05-07

jobs:
clippy:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
strategy:
fail-fast: false
steps:
Expand Down Expand Up @@ -37,7 +37,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
os: [ubuntu-22.04]
arch: [x86_64, riscv64, aarch64]
steps:
- uses: actions/checkout@v3
Expand All @@ -51,7 +51,7 @@ jobs:
- uses: actions-rs/[email protected]
with:
crate: cargo-binutils
version: latest
version: 0.3.5
use-tool-cache: true
- name: Install gcc multilib
run: sudo apt update && sudo apt install -y gcc-multilib
Expand All @@ -66,7 +66,7 @@ jobs:
- name: Build display/draw_map
run: make ARCH=${{ matrix.arch }} A=apps/display/draw_map
- name: Build fs/shell
run: make ARCH=${{ matrix.arch }} A=apps/fs/shell
run: make ARCH=${{ matrix.arch }} A=apps/fs/shell FEATURES=fatfs

- name: Build c/helloworld
run: make ARCH=${{ matrix.arch }} A=apps/c/helloworld
Expand All @@ -83,18 +83,18 @@ jobs:
- name: Build c/iperf
run: |
git clone https://github.com/syswonder/rux-iperf ./apps/c/iperf/ \
&& make ARCH=${{ matrix.arch }} A=apps/c/iperf
&& make ARCH=${{ matrix.arch }} A=apps/c/iperf FEATURES=fatfs
- name: Build c/redis
run: |
git clone https://github.com/syswonder/rux-redis ./apps/c/redis/ \
&& make ARCH=${{ matrix.arch }} A=apps/c/redis SMP=4
&& make ARCH=${{ matrix.arch }} A=apps/c/redis SMP=4 FEATURES=fatfs

build-apps-for-std:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
os: [ubuntu-22.04]
arch: [x86_64]
steps:
- uses: actions/checkout@v3
Expand Down
104 changes: 104 additions & 0 deletions .github/workflows/commit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
name: Custom Commit Message Validator

on:
pull_request:
types: [opened, reopened, synchronize] # Triggers on PR open, reopen, or new commits pushed to the PR branch

jobs:
validate_commit_messages:
runs-on: ubuntu-latest # Specifies the runner environment

permissions:
contents: read # Needed for checkout
pull-requests: read # Needed to fetch PR details and commit SHAs

steps:
- name: Checkout Repository
uses: actions/checkout@v4 # Action to checkout your repository
with:
fetch-depth: 0 # Fetches the entire history for git log operations. Crucial for retrieving full commit messages.

- name: Get PR Commits SHAs
id: get_pr_commits
run: |
# Use GitHub CLI to get all commit SHAs associated with the current Pull Request.
# This robustly gets the commits that are part of the PR's changes.
# The jq filter extracts the 'oid' (Object ID, which is the SHA) of each commit.
PR_COMMIT_SHAS=$(gh pr view ${{ github.event.pull_request.number }} --json commits --jq '[.commits[].oid] | join(" ")')

# Output the SHAs as a space-separated string.
# This variable will be accessible via steps.get_pr_commits.outputs.PR_COMMITS_LIST
echo "PR_COMMITS_LIST=${PR_COMMIT_SHAS}" >> "$GITHUB_OUTPUT"
env:
# GITHUB_TOKEN is automatically provided by GitHub Actions with sufficient permissions.
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Validate Each Commit Message
run: |
# Read the space-separated list of commit SHAs into a Bash array.
# IFS (Internal Field Separator) is set to space to split the string correctly.
IFS=' ' read -r -a commit_shas <<< "${{ steps.get_pr_commits.outputs.PR_COMMITS_LIST }}"

# Initialize a flag to track if any commit fails validation.
has_validation_failed=false

# Loop through each commit SHA.
for commit_sha in "${commit_shas[@]}"; do
echo "--- Checking commit: ${commit_sha} ---"

# Get the full commit message (subject + body).
# --format=%B gets the raw body (subject and body).
# -n 1 limits to the latest commit for the given SHA.
commit_message=$(git log --format=%B -n 1 "${commit_sha}")
echo "Message content:"
echo "${commit_message}"
echo "" # Add a newline for readability

# --- Validation Logic ---

# 1. Check for Conventional Commit format (type(scope)!: subject)
# This regex allows for an optional scope and an optional breaking change marker (!).
# Common types: feat, fix, docs, chore, style, refactor, perf, test, build, ci, revert
if [[ ! "${commit_message}" =~ ^(feat|fix|docs|chore|style|refactor|perf|test|build|ci|revert)(\([a-zA-Z0-9_-]+\))?(!?): ]]; then
echo "::error file=COMMIT_MESSAGE::Commit ${commit_sha} does not start with a conventional commit type (e.g., 'feat:', 'fix:'). Message: '${commit_message}'"
has_validation_failed=true
continue # Move to the next commit
fi

# Extract the first line (subject) for further checks.
commit_subject=$(echo "${commit_message}" | head -n 1)

# 2. Check subject line length (e.g., max 72 characters)
if [[ ${#commit_subject} -gt 72 ]]; then
echo "::warning file=COMMIT_MESSAGE::Commit ${commit_sha} subject line exceeds 72 characters. Length: ${#commit_subject}. Subject: '${commit_subject}'"
# This is a warning, not a failure, adjust as needed.
fi

# 3. Check for empty line between subject and body (if body exists)
# Check if there's more than just the subject line.
if [[ $(echo "${commit_message}" | wc -l) -gt 1 ]]; then
# Check if the second line is empty.
# Use awk to get the second line and trim whitespace.
second_line=$(echo "${commit_message}" | awk 'NR==2 {print}' | xargs)
if [[ -n "${second_line}" ]]; then # If the second line is NOT empty
echo "::error file=COMMIT_MESSAGE::Commit ${commit_sha} is missing an empty line between the subject and body. Message: '${commit_message}'"
has_validation_failed=true
continue
fi
fi

# Add more custom validation rules here as needed:
# - Subject capitalization (e.g., must be lowercase)
# - Subject must not end with a period
# - Body line length limits
# - Required body content for certain types (e.g., 'fix:' requires a 'Fixes #ISSUE' line)

done # End of commit loop

# If any commit failed validation, exit with a non-zero status to fail the job.
if [ "$has_validation_failed" = true ]; then
echo "::error::One or more commit messages failed validation. Please review the errors above."
exit 1
fi

echo "All commit messages in the PR passed validation."
4 changes: 2 additions & 2 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ name: Build & Deploy docs
on: [push, pull_request]

env:
rust-toolchain: nightly-2023-09-01
rust-toolchain: nightly-2025-05-07

jobs:
doc:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
strategy:
fail-fast: false
permissions:
Expand Down
25 changes: 25 additions & 0 deletions .github/workflows/license.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: License Header Check

on:
pull_request:
types: [opened, reopened, synchronize] # Triggers on PR open, reopen, or new commits pushed to the PR branch

jobs:
check_license_headers:
runs-on: ubuntu-latest # Specifies the runner environment

permissions:
contents: read # Needed for checkout

steps:
- name: Checkout Repository
uses: actions/checkout@v4 # Action to checkout your repository
# with:
# fetch-depth: 0 is not strictly necessary for license check unless your script
# needs to read historical commits, which a basic license checker usually doesn't.
# Default fetch-depth is 1, which is usually sufficient.
# If your license checker needs to diff against a base branch, you might need fetch-depth: 0
# or a specific fetch-depth. For a simple "check all files" script, default is fine.

- name: Run License Checker Script
run: bash scripts/test/license_checker.sh # Path to your license checking script
8 changes: 4 additions & 4 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ on: [push, pull_request]

env:
qemu-version: 7.1.0
rust-toolchain: nightly-2023-09-01
rust-toolchain: nightly-2025-05-07

jobs:
unit-test:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
with:
Expand All @@ -26,7 +26,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
os: [ubuntu-22.04]
arch: [x86_64, riscv64, aarch64]
steps:
- uses: actions/checkout@v3
Expand All @@ -40,7 +40,7 @@ jobs:
- uses: actions-rs/[email protected]
with:
crate: cargo-binutils
version: latest
version: 0.3.5
use-tool-cache: true
- name: Install gcc multilib
run: sudo apt update && sudo apt install -y gcc-multilib
Expand Down
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,12 @@ compile_commands.json
/fw_dynamic.bin

*.asm
disk.img
*.img
actual.out
qemu.log
*.log
rusty-tags.vi
apps/c/redis/
apps/c/iperf/
apps/c/wamr/
apps/c/nginx/
apps/c/python3/
79 changes: 79 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
# CHANGELOG

## [v0.1.0] - 2025-07

### ✨ New Features
#### Architecture Support
- **RISC-V64** (#196)
- mmap & process fork implementation
- Toolchain compatibility fixes
- **ARM Enhancements** (#183)
- GICv3 interrupt controller
- Device Tree Blob (DTB) parsing

#### Core Systems
- **Filesystem & Storage**
- FUSE integration (#201)
- New syscalls: `fchmodat` (#190), `ftruncate` (#187)
- VFS refactoring with ext4/fatfs support (#152)
- Unified file/directory implementations (#186)
- FIFO/named pipes (#185) & PTY support (#189)
- **Networking & IPC**
- UNIX socket enhancements (#195)
- DGRAM support (#164) & `socketpair` (#171)
- Static routing with loopback support (#179)
- **Device Drivers**
- Virtio subsystem updates (#205)
- Virtio-console support (#143)
- TTY/Termios improvements (#181)
- **Process Management**
- Signal handling (#178) & `rt_sigaction` (#131)
- CLOEXEC flag support (#162)

### 🐛 Bug Fixes
- Fixed `rename` operations (#202)
- Resolved busybox page faults (#194)
- Fixed network buffer memory leaks (#173)
- Corrected page fault handling during nested forks (#151)
- Fixed `wait4` null pointer dereference (#166)
- Resolved file close scheduling deadlock (#175)
- Corrected `getsockopt` implementation (#170)
- Fixed percpu crate alignment (#184)

### ⚙️ Infrastructure
- Toolchain upgraded to `nightly-2025-05-07` (#197)

### 📦 Applications
- Support for sshd after PR #202

---

## [v0.0.3] - Initial Release

### 🚀 Core Capabilities
- **Architectures**: x86_64 • AArch64 • RiscV64
- **Platforms**: QEMU pc-q35 (x86) • virt (RiscV/ARM)
- **Schedulers**: FIFO • RR • CFS
- **Drivers**: VirtIO (net, blk, gpu, 9p)
- **Networking**: TCP/UDP stack (smoltcp/LwIP)
- **Filesystems**: fatfs • ramfs • 9pfs • devfs
- **Dynamic App Loading** (#97)

### 📦 Supported Applications
| Application | Functionality | Repository |
|-------------|---------------|------------|
| **Redis** | Server with `redis-cli` & benchmark | [syswonder/rux-redis](https://github.com/syswonder/rux-redis) |
| **Nginx** | HTTP/HTTPS web server | [syswonder/rux-nginx](https://github.com/syswonder/rux-nginx) |
| **Wamr** | WASM execution + wasi-nn | [syswonder/rux-wamr](https://github.com/syswonder/rux-wamr) |
| **Iperf** | Network performance testing | [syswonder/rux-iperf](https://github.com/syswonder/rux-iperf) |
| **Sqlite** | Embedded SQL database | |
| **Python** | Python 3 runtime | [syswonder/rux-python3](https://github.com/syswonder/rux-python3) |

### 🛠️ Development Ecosystem
- **Languages**: Rust • C/C++ (musl/ruxlibc) • Perl
- **Tools**: [RuxGo](https://github.com/syswonder/ruxgo)
- **Documentation**:
- [RuxOS-Book](https://ruxos.syswonder.org)
- [RuxGo-Book](https://ruxgo.syswonder.org)

> **Get Started**: We recommend beginning with the [RuxOS-Book](https://ruxos.syswonder.org)
Loading
Loading