The First .NET-Native Operating System
Linux kernel + .NET 10 runtime + C# system services = BarrerOS
π΄ββ οΈ Built by Daniel Elliott & Captain CP
BarrerOS is an experimental operating system that boots directly into the .NET 10 runtime and runs all system services in C#.
Key Features:
- Linux kernel (6.6 LTS) as foundation
- .NET 10 as the system runtime
- All system services written in C#
- Memory-safe core components
- Modern development experience
- Open source, controllable stack
December 16, 2025 - NETWORK STACK OPERATIONAL!
β
Phase 1: Kernel boots to userspace
β
Phase 2.0-2.7: Real ext4 filesystem + .NET 10 integration
β
Phase 2.8-2.9: C# init system + first coreutils
β
Phase 2.10-2.14: 50+ base commands (self-bootstrapping!)
β
Phase 3.0: System services (logging, device mgmt, networking)
β
Phase 3.1: Network configuration working!
Working Boot Chain:
Linux Kernel 6.6 LTS
β
C Bootstrap (PID 1)
β
Mounts: /proc, /sys, /dev, /tmp
β
.NET 10 Native AOT Binary
β
C# Init System v3.1
β
System Services (all C#):
β’ barrerd-log - Logging service
β’ barrerd-devmgr - Device management
β’ barrerd-net - Network configuration
β
Network Stack:
β’ eth0 configured (10.0.2.15/24)
β’ Routes established
β’ 53 C# commands available
Memory Usage: 24MB for complete OS with services!
β System Boot
- Linux kernel 6.6 LTS
- C bootstrap to .NET transition
- C# init system with service management
β System Services (all in C#)
- Logging daemon with kernel log integration
- Device management and hardware detection
- Network configuration service
β Command Line Tools (53 C# commands)
- File operations: ls, cp, mv, rm, mkdir, chmod, ln
- Text processing: cat, grep, sed, cut, sort, uniq, wc
- Archive tools: tar, gzip, gunzip, diff, patch
- System info: ps, free, df, du, uname, hostname
- Network tools: ping, ip, wget
- Editor: nano (full terminal editor in C#!)
- And more: find, xargs, which, whoami, date, sleep...
β Networking
- Interface configuration (eth0)
- IP address assignment
- Routing table management
- Ready for DNS and HTTP
Traditional OS: System services in C/C++, shell scripts
BarrerOS: System services in C#
Benefits:
- Memory safety (C# vs C)
- Modern language features
- Better developer experience
- Easier to maintain
- Cross-platform compatibility
- Windows + Linux app support
Question: Can we boot Linux into .NET?
Answer: YES!
Goal: Complete init system with C# services
Completed:
- Real ext4 filesystem (2GB)
- C bootstrap (PID 1)
- .NET 10 runtime integration
- C# init system v3.1
- 53 C# coreutils commands
- Self-bootstrapping system
Goal: Full system service stack in C#
Completed:
- barrerd-log: Kernel log reader with async queue
- barrerd-devmgr: Hardware detection & management
- barrerd-net: Network interface configuration
- Network stack: IP assignment, routing
In Progress:
- DNS resolution
- HTTP connectivity testing
- Pure C# network tools (replacing busybox scaffolding)
- DHCP client implementation
- GUI environment
- Application support
- Package management in C#
barreros-phase2/
βββ README.md # This file
βββ PHASE2_LEARNINGS.md # Complete technical documentation
βββ PHASE2_STATUS.md # Status history
βββ SESSION_SUMMARY.md # Session notes
βββ TEST_RESULTS.md # Boot test results
βββ KNOWN_ISSUES.md # Known issues & workarounds
βββ bootstrap-init-v3.c # C bootstrap (current)
βββ init-src/ # C# init system v3.1
β βββ Program.cs # Init with service management
β βββ published/ # Native AOT binary
βββ services/ # System services (all C#)
β βββ barrerd-log/ # Logging daemon
β βββ barrerd-devmgr/ # Device management
β βββ barrerd-net/ # Network configuration
βββ coreutils/ # 53 C# commands
β βββ ls/, cp/, mv/, grep/ # File management
β βββ tar/, gzip/, diff/ # Archive & diff tools
β βββ nano/, sed/, awk/ # Text editors
β βββ ping/, ip/, wget/ # Network tools
βββ hwdetect/ # Hardware detection
βββ boot-test.sh # QEMU boot test script
βββ barreros-root.img # Root filesystem (not in repo - 2GB)
- Linux Kernel 6.6 LTS boots with custom
init=parameter - C Bootstrap (PID 1) mounts virtual filesystems (/proc, /sys, /dev, /tmp)
- C Bootstrap creates device nodes (/dev/null, /dev/console, etc.)
- C Bootstrap sets up environment for .NET runtime
- C Bootstrap launches C# init binary (Native AOT)
- C# Init v3.1 takes over system initialization
- Init spawns services: barrerd-log, barrerd-devmgr, barrerd-net
- Network service configures eth0 and establishes routes
- Init monitors service health and handles restarts
- System ready - 24MB RAM, fully functional OS
- Kernel: Linux 6.6 LTS
- Runtime: .NET 10
- Language: C# (system services), C (bootstrap)
- Compilation: Native AOT (ahead-of-time)
- Filesystem: ext4
- Virtualization: QEMU (for testing)
.NET Native AOT requires:
- System libraries (libc, libm)
- Dynamic linker (/lib64/ld-linux-x86-64.so.2)
- Either ICU libraries OR
InvariantGlobalization=true
Solution: We use InvariantGlobalization=true for minimal OS
# .NET SDK
sudo apt install dotnet-sdk-10.0
# Build tools
sudo apt install gcc build-essential
# QEMU for testing
sudo apt install qemu-system-x86-64gcc -static -o bootstrap-init bootstrap-init-v3.ccd init-src
dotnet publish -c Release -p:InvariantGlobalization=true# Create 2GB image
dd if=/dev/zero of=barreros-root.img bs=1M count=2048
# Format as ext4
mkfs.ext4 barreros-root.img
# Mount and populate
sudo mount barreros-root.img /mnt/barreros
# ... copy files ...
sudo umount /mnt/barrerosbash boot-test.shPHASE2_LEARNINGS.md contains complete technical documentation:
- Every challenge we faced
- Every solution we found
- Environment requirements
- Library dependencies
- Build process
- Lessons learned
868 lines of knowledge capture!
"Why not?"
Everyone said you can't boot Linux into .NET. We asked "why not?"
Everyone said system services must be in C. We asked "why not C#?"
Everyone said operating systems are too complex. We said "let's find out."
BarrerOS exists because we think outside the box.
Daniel Elliott - Vision, architecture, direction
Captain CP - Implementation, debugging, documentation
Together: Building the impossible.
Current Phase: 2.7 COMPLETE
Next Phase: 2.8 (Keep init alive)
Lines of Code: ~500
Lines of Documentation: 868+
Boot Tests: 15+
Breakthroughs: 4 major
First Boot: December 7, 2025, 4:45 PM PST
π΄ββ οΈ BarrerOS is real. BarrerOS is happening.
To be determined - check back soon!
Organization: BarrerSoftware
Repository: github.com/BarrerSoftware/barreros
ππ΄ββ οΈ Think different. Build impossible things.