commit 9b4bb304abd235c606cf4748abb621da2ff1cffb Author: Fábio Coutada Date: Mon Jul 6 17:54:22 2026 +0100 feat(repository): Initialize Universalisos repository with core documentation - Create Universalisos type-1 hypervisor repository structure - Add comprehensive README.md with project objectives - Add MIT license - Add .gitignore for build artifacts and temporary files - Create BUILD_ENVIRONMENT.md with toolchain setup instructions This establishes the foundation for importing the complete PikeOS ecosystem as the reference architecture for our safety-critical cyber-physical systems. Co-Authored-By: Claude diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..df4a3a812 --- /dev/null +++ b/.gitignore @@ -0,0 +1,76 @@ +# Build directories +build/ +cmake-build-*/ +out/ +target/ + +# Object files +*.o +*.obj +*.ko +*.elf +*.bin +*.hex +*.exe + +# Libraries +*.a +*.lib +*.so +*.dylib +*.dll + +# Debug files +*.dSYM/ +*.su +*.idb +*.pdb + +# Configuration files +.sdkconfig +sdkconfig.backup + +# Dependencies +.deps/ +.dependency/ + +# IDE files +.vscode/ +.idea/ +*.swp +*.swo +*~ + +# Generated files +*.generated +*.gen.c +*.gen.h + +# Documentation build +docs/_build/ +docs/.doctrees/ + +# Test artifacts +test/results/ +test/coverage/ +*.log + +# Temporary files +*.tmp +*.temp +tmp/ +temp/ + +# OS files +.DS_Store +Thumbs.db +*.bak + +# XSD processing +xsd/generated/ +xsd/compiled/ + +# Eclipse IDE +.metadata/ +.settings/ +.recommenders/ \ No newline at end of file diff --git a/BUILD_ENVIRONMENT.md b/BUILD_ENVIRONMENT.md new file mode 100644 index 000000000..98851f2f2 --- /dev/null +++ b/BUILD_ENVIRONMENT.md @@ -0,0 +1,395 @@ +# Universalisos Build Environment Setup + +This document provides comprehensive instructions for setting up the Universalisos development environment for compiling the PikeOS codebase and working with the XSD → C code generation pipeline. + +## Overview + +Universalisos requires a cross-compilation environment for building PikeOS source code, processing XSD schemas, and generating C code from XML definitions. This setup is designed for safety-critical embedded systems development with AUTOSAR C++ compliance. + +## Hardware Requirements + +**Minimum System Requirements**: +- CPU: 4 cores, x86_64 architecture +- RAM: 8GB (16GB recommended for large builds) +- Storage: 50GB free space (for source, build artifacts, and toolchains) +- Network: Internet access for package downloads and Nextcloud synchronization + +**Recommended System**: +- CPU: 8+ cores, x86_64 architecture +- RAM: 16GB+ +- Storage: 100GB+ SSD +- Network: High-speed connection for repository synchronization + +## Operating System + +**Supported Platforms**: +- Linux (Ubuntu 22.04 LTS or later recommended) +- Debian 12+ (Bookworm) +- Fedora 38+ + +**Development Environment**: +This setup assumes a Debian-based Linux distribution. Commands may need adjustment for other distributions. + +## Toolchain Installation + +### Core Build Tools + +```bash +# Update package manager +sudo apt update + +# Install core development tools +sudo apt install -y \ + build-essential \ + gcc \ + g++ \ + make \ + cmake \ + ninja-build \ + git \ + pkg-config \ + autoconf \ + automake \ + libtool +``` + +### Cross-Compilation Toolchains + +```bash +# ARM Cortex-M toolchain (for embedded targets) +sudo apt install -y \ + gcc-arm-none-eabi \ + libnewlib-arm-none-eabi \ + libstdc++-arm-none-eabi-newlib + +# ARM Cortex-A toolchain (for Linux targets) +sudo apt install -y \ + gcc-arm-linux-gnueabihf \ + g++-arm-linux-gnueabihf \ + libstdc++-arm-linux-gnueabihf-dev + +# RISC-V toolchain (emerging architectures) +sudo apt install -y \ + gcc-riscv64-unknown-elf \ + libnewlib-riscv64-unknown-elf +``` + +### AUTOSAR and Safety-Critical Tools + +```bash +# AUTOSAR build tools +sudo apt install -y \ + autosar \ + can-utils \ + python3-can + +# Safety-critical analysis tools +sudo apt install -y \ + cppcheck \ + clang-tidy \ + clang-format \ + vera++ \ + splint +``` + +### XSD Processing and Validation + +```bash +# XML schema processing +sudo apt install -y \ + libxml2-utils \ + libxslt1.1 \ + python3-lxml \ + python3-jinja2 \ + xsltproc + +# XSD validation tools +sudo apt install -y \ + xsd-tools \ + libxml2-dev +``` + +### Eclipse IDE for XSD Workflow Analysis + +```bash +# Install Eclipse IDE +wget https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/2023-12/R/eclipse-cpp-2023-12-R-linux-gtk-x86_64.tar.gz +tar -xzf eclipse-cpp-2023-12-R-linux-gtk-x86_64.tar.gz +sudo mv eclipse /opt/eclipse + +# Install Eclipse XSD plugins +/opt/eclipse/eclipse -application org.eclipse.equinox.p2.director \ + -repository https://download.eclipse.org/modeling/emf/emf/builds/release/2.29.0 \ + -installIU org.eclipse.xsd.feature.group + +# Create desktop shortcut +cat > ~/.local/share/applications/eclipse.desktop << EOF +[Desktop Entry] +Name=Eclipse IDE +Exec=/opt/eclipse/eclipse +Icon=eclipse +Type=Application +Categories=Development;IDE; +EOF +``` + +## Environment Configuration + +### Path Setup + +```bash +# Add toolchains to PATH +echo 'export PATH=/opt/gcc-arm-none-eabi/bin:$PATH' >> ~/.bashrc +echo 'export PATH=/opt/eclipse:$PATH' >> ~/.bashrc + +# Set environment variables for PikeOS compilation +echo 'export PIKEOS_ROOT=/home/fabiorafaelcoutada/portugalfuturista/universalisos' >> ~/.bashrc +echo 'export PIKEOS_BUILD_DIR=$PIKEOS_ROOT/build' >> ~/.bashrc +echo 'export PIKEOS_TOOLCHAIN_PREFIX=arm-none-eabi-' >> ~/.bashrc + +# Reload shell configuration +source ~/.bashrc +``` + +### CMake Configuration + +```bash +# Create CMake toolchain file +cat > ~/.cmake/arm-none-eabi.cmake << 'EOF' +set(CMAKE_SYSTEM_NAME Generic) +set(CMAKE_SYSTEM_PROCESSOR ARM) + +set(CMAKE_C_COMPILER arm-none-eabi-gcc) +set(CMAKE_CXX_COMPILER arm-none-eabi-g++) +set(CMAKE_ASM_COMPILER arm-none-eabi-gcc) +set(CMAKE_OBJCOPY arm-none-eabi-objcopy) +set(CMAKE_OBJDUMP arm-none-eabi-objdump) +set(CMAKE_SIZE arm-none-eabi-size) + +set(CMAKE_EXECUTABLE_SUFFIX_ASM .elf) +set(CMAKE_EXECUTABLE_SUFFIX_C .elf) +set(CMAKE_EXECUTABLE_SUFFIX_CXX .elf) + +set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) + +EOF +``` + +## Verification Steps + +### Toolchain Verification + +```bash +# Verify GCC cross-compiler installation +arm-none-eabi-gcc --version +arm-linux-gnueabihf-gcc --version + +# Verify CMake and Ninja +cmake --version +ninja --version + +# Verify XSD tools +xmllint --version +xsd --version + +# Verify Eclipse installation +/opt/eclipse/eclipse -version +``` + +### Build System Test + +```bash +# Create test project +cd /tmp +mkdir universalisos-test +cd universalisos-test + +# Create test C file +cat > main.c << 'EOF' +#include + +int main(void) { + printf("Universalisos build environment test\n"); + return 0; +} +EOF + +# Test cross-compilation +cmake -DCMAKE_TOOLCHAIN_FILE=~/.cmake/arm-none-eabi.cmake -G Ninja .. +ninja +``` + +## XSD → C Code Generation Workflow + +### XSD Schema Processing + +```bash +# Validate XSD schema +xmllint --schema universalisos/xsd/*.xsd \ + universalisos/xsd/test_config.xml + +# Generate C code from XSD +xsd cxx-tree --generate-serialization \ + --generate-polymorphic \ + --output-dir universalisos/src/generated \ + universalisos/xsd/pikoes_config.xsd +``` + +### Integration with Build System + +```bash +# Configure PikeOS build with code generation +cd universalisos/src +mkdir build && cd build + +cmake -DCMAKE_TOOLCHAIN_FILE=~/.cmake/arm-none-eabi.cmake \ + -G Ninja \ + -DGENERATE_FROM_XSD=ON \ + -DXSD_SCHEMA_DIR=$PIKEOS_ROOT/xsd \ + .. + +# Build with generated code +ninja +``` + +## Safety-Critical Build Configuration + +### MISRA C++ Compliance Checking + +```bash +# Configure cppcheck for MISRA compliance +cppcheck --enable=all \ + --std=c++17 \ + --suppressions-list=misra-suppressions.txt \ + --inline-suppr \ + --xml \ + --xml-version=2 \ + universalisos/src/ + +# Run clang-tidy for additional safety checks +clang-tidy universalisos/src/**/*.c \ + -checks=* \ + --config-file=.clang-tidy \ + -p universalisos/build/ +``` + +### AUTOSAR Build Verification + +```bash +# Verify AUTOSAR compliance +autosar-check --config=autosar-config.json \ + --source=universalisos/src/ \ + --output=autosar-report.xml + +# Generate compliance report +autosar-report --input=autosar-report.xml \ + --format=html \ + --output=autosar-compliance.html +``` + +## Troubleshooting + +### Common Issues + +**Issue**: Cross-compiler not found +```bash +# Solution: Verify PATH configuration +echo $PATH | grep arm-none-eabi +# Reinstall if missing: sudo apt install gcc-arm-none-eabi +``` + +**Issue**: CMake cannot find toolchain +```bash +# Solution: Specify toolchain explicitly +cmake -DCMAKE_TOOLCHAIN_FILE=~/.cmake/arm-none-eabi.cmake .. +``` + +**Issue**: XSD processing errors +```bash +# Solution: Verify XSD schema validity +xmllint --schema universalisos/xsd/schema.xsd test.xml +# Install missing dependencies: sudo apt install libxml2-dev +``` + +**Issue**: Build errors with generated code +```bash +# Solution: Clean build and regenerate +rm -rf build/ +mkdir build && cd build +cmake -DCMAKE_TOOLCHAIN_FILE=~/.cmake/arm-none-eabi.cmake .. +ninja clean +ninja +``` + +## Performance Optimization + +### Parallel Builds + +```bash +# Use all CPU cores for compilation +export NINJA_STATUS="[%p/%f] " +ninja -j$(nproc) + +# For specific targets +ninja -j8 kernel drivers +``` + +### CCache Configuration + +```bash +# Install ccache +sudo apt install ccache + +# Configure ccache for compilation cache +ccache -M 50G # Set 50GB cache limit +ccache -s # Show cache statistics + +# Use with CMake +cmake -DCMAKE_C_COMPILER_LAUNCHER=ccache \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -DCMAKE_TOOLCHAIN_FILE=~/.cmake/arm-none-eabi.cmake .. +``` + +## Continuous Integration Setup + +### CI/CD Pipeline Configuration + +```yaml +# .gitlab-ci.yml example +image: ubuntu:22.04 + +build: + script: + - apt update && apt install -y gcc-arm-none-eabi cmake ninja-build + - mkdir build && cd build + - cmake -DCMAKE_TOOLCHAIN_FILE=.cmake/arm-none-eabi.cmake .. + - ninja + - ctest --output-on-failure +``` + +## Maintenance and Updates + +### Toolchain Updates + +```bash +# Check for toolchain updates +apt list --upgradable | grep gcc-arm + +# Update cross-compilers +sudo apt update && sudo apt upgrade gcc-arm-none-eabi + +# Verify updates don't break builds +cd universalisos/src/build && ninja clean && ninja +``` + +### Documentation Updates + +Keep this document synchronized with: +- Toolchain version changes +- New dependency requirements +- Build system modifications +- Safety standard compliance updates + +--- + +**Next Steps**: After completing this setup, proceed to [XSD_WORKFLOW_ANALYSIS.md](XSD_WORKFLOW_ANALYSIS.md) for detailed XSD → C code generation workflow documentation. \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..2878fd1db --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Portugalfuturista + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF, CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 000000000..cc8f29794 --- /dev/null +++ b/README.md @@ -0,0 +1,86 @@ +# Universalisos - Type-1 Hypervisor Foundation + +Universalisos is our safety-critical type-1 hypervisor foundation for cyber-physical systems, created from zero based on PikeOS architecture. This project imports the complete PikeOS ecosystem to serve as the reference architecture and codebase for Aurelio cyber-physical brain development. + +## Strategic Objectives + +- **Type-1 Hypervisor**: Safety-critical embedded systems foundation +- **AUTOSAR C++ Compliance**: MISRA C++, MISRA C, DAL-B, DAL-A (avionics), ISO26262 +- **Aurelio Integration**: PikeOS codegen workflow → Aurelio implementation patterns +- **IP-XACT Architecture**: Agent components as IP Cores with standard interfaces +- **Airship Control Foundation**: Type-1 hypervisor for cyber-physical simulation control + +## Repository Structure + +``` +universalisos/ +├── src/ # PikeOS source code import +├── test/ # PikeOS test framework source code +├── docs/ # Complete PDF documentation +├── ide/ # Eclipse-based IDE source code (XSD → C generation) +├── xsd/ # XSD schema files for C/C++ code generation +└── README.md # This file +``` + +## Project Status + +**Current Phase**: Repository Creation and Environment Setup (Day 1-2) + +This repository is being populated with the complete PikeOS ecosystem from the Nextcloud source at `cloud.portugalfuturista.org/s/devmm-arch`. + +## Development Environment Setup + +See [BUILD_ENVIRONMENT.md](BUILD_ENVIRONMENT.md) for detailed setup instructions. + +**Required Toolchains**: +- GCC cross-compilers (ARM, target architectures) +- CMake and Ninja build systems +- AUTOSAR build tools and code generation utilities +- XSD processing tools and validators +- Eclipse IDE for XSD workflow analysis + +## Documentation + +- [BUILD_ENVIRONMENT.md](BUILD_ENVIRONMENT.md) - Development environment setup and build process +- [XSD_WORKFLOW_ANALYSIS.md](XSD_WORKFLOW_ANALYSIS.md) - XSD → C code generation workflow (planned) +- [AUTOSAR_CPP.md](AUTOSAR_CPP.md) - Safety-critical compliance documentation (planned) +- [COMPONENTS.md](COMPONENTS.md) - Component categorization and architecture (planned) +- [HYPERVISOR.md](HYPERVISOR.md) - Type-1 hypervisor design documentation (planned) +- [AURELIO_INTEGRATION.md](AURELIO_INTEGRATION.md) - PikeOS → Aurelio integration plan (planned) + +## Source Material + +**Source Location**: Nextcloud `cloud.portugalfuturista.org/s/devmm-arch` + +**Contents**: +- PikeOS source code +- Test frameworks +- PDF documentation +- Eclipse IDE source code (XSD → C generation) +- XSD schema files + +## Safety-Critical Standards + +Universalisos follows strict safety-critical coding standards: + +- **AUTOSAR C++**: Automotive software architecture compliance +- **MISRA C++**: Motor Industry Software Reliability Association guidelines +- **MISRA C**: C programming compliance +- **DAL-B**: Design Assurance Level B (avionics systems) +- **DAL-A**: Design Assurance Level A (critical avionics systems) +- **ISO26262**: Functional safety for road vehicles + +## License + +MIT License - See LICENSE file for details + +## Integration with Ecosystem + +Universalisos integrates with: +- **nervura-electrica**: Infrastructure platform and hosting +- **replica-omnisciente**: Agent orchestration and mega-brain foundation +- **Aurelio**: Compiler, gateway, and cyber-physical brain platform + +--- + +**Note**: This repository is actively being populated with PikeOS ecosystem content. Documentation and implementation details are being added incrementally during the import process. \ No newline at end of file