This project provides a minimal Linux implementation using Rust Coreutils and the Linux Kernel. The setup script downloads the specified Linux Kernel and BusyBox, extracts them into designated directories, and prepares them for further development or usage.
- Linux Kernel: torvalds/linux
- Rust Coreutils: uutils/coreutils
By leveraging the power and efficiency of Rust, along with Linux kernel, I've created a lightweight linux.
- Downloads and extracts the Linux Kernel and BusyBox.
- Utilizes Rust Coreutils for enhanced performance.
- Using a script for automated setup and extraction.
-
Clone the repository:
git clone https://github.com/raghav-45/wave-linux.git cd wave-linux -
Install Required tools ( Ubuntu's Build Your Own Kernel guide ):
sudo apt-get install libncurses-dev flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf bc
-
Run the setup script:
python build-minimal.py
-
Clone the Rust Coreutils
-
Install Rust 🦀:
-
Build Rust Coreutils ( You can specify which utilities you want ):
cargo build --target x86_64-unknown-linux-musl --release -p uu_arch -p uu_base32 -p uu_base64 -p uu_basename -p uu_basenc -p uu_cat -p uu_chgrp -p uu_chmod -p uu_chown -p uu_chroot -p uu_cksum -p uu_comm -p uu_cp -p uu_csplit -p uu_cut -p uu_date -p uu_dd -p uu_df -p uu_dir -p uu_dircolors -p uu_dirname -p uu_du -p uu_echo -p uu_env -p uu_expand -p uu_expr -p uu_factor -p uu_false -p uu_fmt -p uu_fold -p uu_groups -p uu_hashsum -p uu_head -p uu_hostid -p uu_hostname -p uu_id -p uu_install -p uu_join -p uu_kill -p uu_link -p uu_ln -p uu_logname -p uu_ls -p uu_mkdir -p uu_mkfifo -p uu_mknod -p uu_mktemp -p uu_more -p uu_mv -p uu_nice -p uu_nl -p uu_nohup -p uu_nproc -p uu_numfmt -p uu_od -p uu_paste -p uu_pathchk -p uu_pinky -p uu_pr -p uu_printenv -p uu_printf -p uu_ptx -p uu_pwd -p uu_readlink -p uu_realpath -p uu_rm -p uu_rmdir -p uu_seq -p uu_shred -p uu_shuf -p uu_sleep -p uu_sort -p uu_split -p uu_stat -p uu_stdbuf -p uu_sum -p uu_sync -p uu_tac -p uu_tail -p uu_tee -p uu_test -p uu_timeout -p uu_touch -p uu_tr -p uu_true -p uu_truncate -p uu_tsort -p uu_tty -p uu_uname -p uu_unexpand -p uu_uniq -p uu_unlink -p uu_uptime -p uu_users -p uu_vdir -p uu_wc -p uu_who -p uu_whoami -p uu_yes