A simple educational operating system for my use that provides basic OS functionality implemented in Rust.
- Multi-boot support
- GDT/IDT configuration
- Initialize memory management
- Interrupt controller (PIC) configuration
- Keyboard driver
- VGA driver (text mode)
- Paging implementation
- Heap allocator
- Memory map management
- Basic command line processing
- Command History
- The following commands are implemented:
help
: display command listhelp
: display command listclear
: clear the screen.exit
: exit the system.ls
: display directory contents.pwd
: display current directorycd
: Move a directorymkdir
: Create a directorytouch
: Create a filetime
: Display current time (time zone support)
- In-memory file system
- Basic file operations
- Directory hierarchy
- Rust (nightly)
- QEMU
- cargo-bootimage
## Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Install nightly toolchain
rustup toolchain install nightly
rustup component add rust-src --toolchain nightly
rustup component add llvm-tools-preview
# Install QEMU
brew install qemu
build
cargo build
## run
cargo run
- Boot process
- Interrupt handling
- Keyboard Input
- Shell Basics
- Basic file system functions
- Time display with time zone support
- Shell Functions
- Tab completion
- Piping of commands
- Input/output redirection
- Editing input with cursor keys
- Alias setting for commands
- File system
- Reading file contents (cat command)
- Deleting files (rm command)
- Moving/renaming files (mv command)
- Managing file permissions
- File system persistence
- Process management
- Process Creation and Execution
- Interprocess Communication
- Background Execution
- Job Control
- Memory management
- Swap space management
- Memory fragmentation prevention
- Virtual memory expansion
- Device management
- Serial port communication
- Mouse drivers
- Network functions
- Sound functions
- System Management
- User Management
- Log function
- Save/Load system settings
- Improved shutdown handling
- Testing
- Expanded unit testing
- Additional integration testing
- Performance testing
- Security
- Access Control
- Memory Protection
- System Call Restrictions