Війна
🇺🇸 США
Ibuilt a tiny Unix‑like 'OS' with shell and filesystem for Arduino UNO (2KB RAM)
KernelUNO v1.0
A lightweight RAM-based shell for Arduino UNO with filesystem simulation, hardware control, and interactive shell.
Features
- Virtual Filesystem - Create files and directories in RAM (/dev, /home) - Hardware Control - GPIO management with pin mode configuration
- System Monitoring - Memory usage, uptime, kernel messages (dmesg)
- 22 Built-in Commands - From basic file operations to hardware control
- Interactive Shell - Real-time command execution with input buffering
- LED Disco Mode - Fun easter egg for testing GPIO
Hardware Requirements
- Arduino UNO (or compatible board with ATmega328P)
- USB cable for programming
- LEDs and resistors (optional, for GPIO testing)
Installation
- Clone or download this repository
- Open KernelUNO.ino in Arduino IDE
- Select Board: Tools → Board → Arduino UNO
- Select Port: Tools → Port → /dev/ttyUSB0 (or your port)
- Compile & Upload: Sketch → Upload
- Open Serial Monitor: Tools → Serial Monitor (115200 baud)
Alternative with arduino-cli:
arduino-cli compile --fqbn arduino:avr:uno . arduino-cli upload --fqbn arduino:avr:uno -p /dev/ttyUSB0 .Commands
Filesystem Commands
- ls - List files in current directory
- cd [dir] - Change directory
- pwd - Print working directory
- mkdir [name] - Create directory
- touch [name] - Create file
- cat [file] - Read file contents
- echo [text] > [file] - Write to file
- rm [name] - Remove file/directory
- info [name] - Display file information
Hardware Commands
- pinmode [pin] [in/out] - Set pin mode
- write [pin] [high/low] - Write to pin
- read [pin] - Read pin value
- gpio [pin] [on/off/toggle] - GPIO control
- gpio vixa [count] - LED disco mode (easter egg)
System Commands
- uptime - System uptime
- uname - System information
- dmesg - Kernel messages
- df / free - Free memory
- whoami - Current user (hardcoded root)
- clear - Clear screen
- reboot - Restart system
- help - Show all commands
Usage Examples
# Navigate filesystem cd home mkdir myproject cd myproject touch notes.txt echo Hello World > notes.txt cat notes.txt # Hardware control pinmode 13 out gpio 13 on gpio 13 toggle read 2 # System info uname uptime dmesg df # Fun mode gpio vixa 10Memory Usage
- Program: ~38% of 32KB flash
- RAM: ~85% of 2KB SRAM (optimized)
- Filesystem: 10 files/directories max
- DMESG buffer: 6 messages
Specifications
- Board: Arduino UNO (ATmega328P)
- Clock: 16 MHz
- Serial Baud: 115200
- Filesystem: RAM-based (no EEPROM)
- Storage: Volatile (resets on power cycle)
Technical Details
- Char-array based input buffer (32 bytes max)
- Safe path concatenation to prevent buffer overflow
- Kernel message logging with timestamps
- Real-time GPIO operations
- Efficient memory management
Limitations
- No persistent storage (EEPROM/SD)
- Limited file size (32 bytes content per file)
- Maximum 10 files/directories
- PATH limited to 16 characters
- Single user (root)
TODO / Future Enhancements
- EEPROM persistence
- PWM/analog control
- SD card support
- File size display
- More GPIO features
License
BSD 3-Clause License - See LICENSE file for details
Author
Arc1011 (Arc1011)
Created in 2026.
Contributing
Feel free to fork, modify, and improve! Send PRs for:
- Bug fixes
- Performance improvements
- New commands
- Code optimization
// The descriptive files (i.e., README and QUICKSTART) were written by Claude AI (with minor tweaks). Why? Because if I had done it myself, it would have ended up as a few lines of incoherent gibberish that wouldn't tell you anything.//
Джерело
Читати оригінал
Поділитися
Схожі новини
Війна
Війна
Війна
Japan-Ukraine drone tie-up sends first weapon onto battlefield
Japan Times
·
Війна
Ukraine says some Russian missiles fly near Chernobyl, risking major incident
Japan Times
·
Виманив у волонтерів 1,5 млн грн під виглядом придбання дронів для ЗСУ: затримано шахрая, - СБУ. ФОТО
Цензор.НЕТ
·
Погрузился в армейские будни. MONATIK провел несколько дней с десантниками и записал с ними совместную песню
НВ (NV.ua)
·