๐ A modern, secure programming environment for the Rune language, integrated with GhostC OS.
- ๐จ Rune Language Support: Full support for the Rune programming language with syntax highlighting and code completion
- ๐ GhostC OS Integration: Seamless integration with GhostC OS security features and system calls
- ๐พ Memory Management: Secure memory allocation and deallocation with built-in safety checks
- โก Process Management: Advanced process control and monitoring capabilities
- ๐ File System Operations: Secure file operations with encryption support
- ๐ System Monitoring: Real-time system metrics and performance monitoring
โ ๏ธ Error Handling: Comprehensive error handling and logging system
Requirement | Version |
---|---|
๐ป C++ Compiler | C++17 compatible |
๐๏ธ CMake | >= 3.18 |
๐ป GhostC OS | Latest |
# Clone the repository
git clone https://github.com/yourusername/rune-editor.git
# Navigate to the build directory
cd rune-lang
mkdir build && cd build
# Build the project
cmake ..
make
cd build
./rune_test
๐ฆ rune-editor
โฃ ๐ docs # ๐ Documentation
โฃ ๐ examples # ๐ก Example programs
โฃ ๐ rune-lang # ๐ง Core implementation
โ โฃ ๐ include # ๐ Header files
โ โฃ ๐ src # ๐ป Source files
โ โ ๐ tests # ๐งช Test suite
โ ๐ build # ๐๏ธ Build artifacts
Check out our example programs in /examples
:
File | Description |
---|---|
๐ฅ๏ธ system_info.rune |
System metrics and info |
โก process_management.rune |
Process control |
๐พ memory_management.rune |
Memory safety |
๐ file_operations.rune |
File operations |
Contributions are welcome! Please feel free to submit pull requests.
This project is licensed under the MIT License - see the LICENSE file for details.
The Rune Editor is built with security at its core:
- ๐ก๏ธ Secure memory management
- ๐ Process isolation
- ๐ Encrypted file operations
- ๐ Comprehensive logging
GhostC is now integrated into the kernel, providing a lightweight scripting language for system automation and customization. Key features include:
- Basic type system (int, float, string, bool, array, struct)
- Built-in functions for I/O operations
- Stack-based execution model
- Heap memory management
- Symbol table for variable storage
To use GhostC in your programs:
- Include the GhostC header:
#include <ghostc.h>
- Initialize the runtime:
GhostCRuntime* runtime = ghostc_init(1024, 4096); // Stack size: 1024, Heap size: 4096
- Execute GhostC code:
const char* source = "print('Hello from GhostC!')";
GhostCCompiler compiler = {0};
ghostc_compile(source, &compiler);
ghostc_execute(runtime, compiler.bytecode, compiler.bytecode_size);
- Clean up:
ghostc_cleanup(runtime);
The GhostC OS is optimized for the Raspberry Pi Zero W with the following specifications:
- 1GHz single-core CPU
- 512MB RAM
- Built-in WiFi and Bluetooth
- Mini HDMI port
- Micro USB ports
- Use a good quality power supply (5V 2.5A recommended)
- Connect via mini HDMI (requires mini HDMI to HDMI adapter)
- For keyboard, use a micro USB OTG adapter
- WiFi is enabled but Bluetooth is disabled by default to save resources
- Display resolution set to 640x480 for better performance
- GPU memory limited to 32MB
- Bluetooth disabled by default
- Audio disabled by default
- USB power consumption optimized
- Initial CPU turbo boost enabled for 30 seconds at boot
For other Raspberry Pi models (3B+, 4, etc.), edit kernel/config.txt
and uncomment the following lines:
#hdmi_mode=16 # 1080p 60Hz
#gpu_mem=128
#dtparam=audio=on
#max_usb_current=1
- A micro SD card (minimum 4GB recommended)
- SD card reader
- For Zero W:
- Mini HDMI to HDMI adapter
- Micro USB OTG adapter for keyboard
- 5V 2.5A power supply
- First, build the kernel:
cd kernel
./build-os.sh
- Insert your SD card into your computer
- Identify your SD card device (you can use
lsblk
command) - Run the preparation script as root:
sudo ./prepare-sd.sh /dev/sdX # Replace X with your SD card device letter
- Insert the prepared SD card into your Raspberry Pi
- Connect a monitor via HDMI
- Connect a USB keyboard
- Power on the Raspberry Pi
The GhostC OS will boot automatically and you'll see the GhostTerminal interface.
The default config.txt
settings are optimized for:
- HDMI output at 1080p
- USB keyboard support
- Basic GPIO functionality
You can modify these settings by editing the config.txt
file before running the preparation script.
If you encounter boot issues:
- Ensure the SD card is properly formatted
- Verify all files were copied correctly
- Check your power supply is adequate (recommended: 5V 2.5A)
- Ensure your HDMI cable is connected before powering on
Need help? Open an issue in our issue tracker!
Special thanks to:
- Raspberry Pi Foundation for their incredible work on bare metal programming resources and documentation
- The open source community for their continuous support and contributions