⚠ Status Notice
The networking stack is currently experimental and under active development. The TCP implementation is functional but unstable and may cause browsers to hang.
Aether WebOS is a bare-metal AArch64 operating system built from scratch in C, designed for deep systems research, custom networking stacks, and full hardware control without POSIX, Linux, or external TCP/IP libraries.
Aether WebOS is a clean-room, single-core, bare-metal OS targeting:
- Architecture: AArch64 (ARMv8)
- Platform: QEMU
virtmachine (primary), Raspberry Pi (planned) - Language: C (freestanding, no libc)
- Networking: Custom VirtIO-Net + ARP + IPv4 + TCP stack
- Goal: Build a production-grade network-capable OS kernel from first principles
Aether WebOS is designed as a structured operating system architecture project rather than a simple boot experiment.
- AArch64 exception vectors
- MMU initialization
- Page table setup
- Interrupt enabling
- PSCI shutdown support
- Custom linker script
- Freestanding compilation (
-ffreestanding -nostdlib)
- Custom
kmalloc/kfree - Kernel heap initialization
- Memory tracking
- No libc allocator
- No dynamic runtime dependencies
- GIC initialization
- System timer setup
- Uptime tracking (
get_system_uptime_ms) - Interrupt enabling
- Optional
wfilow-power idle support
- PL011 UART driver
uart_putcuart_puts- CR/LF handling
- ANSI screen clear support
- Boot banner rendering (linked binary asset)
- PCIe initialization
- Device enumeration
- VirtIO device detection
- MMIO register interaction
Aether WebOS includes a from-scratch TCP/IP stack designed for research and long-term extensibility.
- PCI-based VirtIO-Net device
- RX/TX descriptor ring management
- Poll-based packet reception
- Memory buffer recycling
- QEMU user-mode networking compatible
- Ethernet frame parsing
- MAC filtering
- EtherType demultiplexing
- Broadcast handling
- Frame construction for transmission
- ARP packet parsing
- ARP reply generation
- ARP request handling
- Static gateway resolution for QEMU
- Basic ARP cache logic
- Host-order IP handling policy
- IPv4 header parsing
- Version/IHL validation
- Header checksum verification
- Network-to-host byte order conversion
- Local delivery filtering
- Protocol demultiplexing:
- TCP
- UDP (stub)
- ICMP (stub)
- IPv4 packet construction
- No fragmentation support (drops fragments)
Aether WebOS implements a minimal but structured TCP stack:
- TCB (Transmission Control Block) structure
- 4-tuple connection identification
- TCP state tracking:
- LISTEN
- SYN_RECEIVED
- ESTABLISHED
- FIN handling
- Sequence number tracking:
snd_unasnd_nxtrcv_nxt
- ACK validation
- Sequence validation
- Payload delivery
- RST generation
- FIN/ACK handling
- Initial TCP handshake support (experimental)
- Support for multiple parallel connections
- Port 80 HTTP listener
- QEMU hostfwd integration (
9090 -> 80)
- Segment parsing
- Checksum validation
- TCB lookup
- State transition
- ACK update
- Payload extraction
- Socket dispatch
- Segment transmission
- Close handling
- Static HTML page serving
- HTTP GET detection
- HTTP/1.0 compliant response
- Content-Length header generation
- Proper CRLF termination
- Connection close after response
- Basic browser compatibility (still under testing)
The networking stack is still under active development and is not yet fully stable.
Current limitations:
- The TCP implementation is experimental and may exhibit handshake or connection stability issues.
- Some browsers may hang or buffer indefinitely when attempting to load the HTTP demo page.
- Retransmission logic and congestion handling are not yet implemented.
The stack currently exists as a research implementation intended for experimentation and improvement.
Contributions to improve the TCP layer are welcome.
- TCP retransmission and timeout handling
- Connection state stability
- HTTP response reliability
- Packet tracing and debugging tools
- Drivers
Aether includes a lightweight UART-driven interface:
MODE_PORTALMODE_NET_STATSMODE_CONFIRM_SHUTDOWN
- Live system status
- Memory usage
- Network state
- Traffic counters
- TCP listener status
- Active connection count
- ANSI-based screen rendering
- Function-key navigation (F7 shutdown, F10 network dashboard)
Displays:
- Interface status (VirtIO-Net-PCI)
- MAC address
- IPv4 address (10.0.2.15 default)
- IPv6 link-local
- RX/TX frame counters
- Collision/drop counters
- TCP listener state
- Active connections
aarch64-none-elf-gccaarch64-none-elf-ldaarch64-none-elf-objcopy
-mcpu=cortex-a72-ffreestanding-nostdlib-nostdinc- Custom include path handling
- Automatic source discovery (excluding backups)
Example:
qemu-system-aarch64 \
-M virt,gic-version=3,highmem=off \
-cpu max \
-m 1G \
-serial stdio \
-netdev user,id=net0,hostfwd=tcp::9090-:80 \
-device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:56 \
-display none \
-machine virtualization=off \
-kernel kernel8.imgOpen in browser:
http://127.0.0.1:9090
How To Build
- Clear:
make clean - Build:
make - Run:
make BOARD=VIRT run
- Build a fully independent TCP/IP stack
- Understand network state machines deeply
- Design long-term extensible kernel architecture
- Prepare for ARM-based physical hardware deployment
- Explore distributed compute nodes
- Eventually support AI workloads on ARM clusters
- No external networking stacks
- No borrowed kernel implementations
- Clean subsystem layering
- Hardware-aware design
- Long-term architectural maintainability
arch/ Architecture-specific code (AArch64)
src/ Kernel implementation
include/ Kernel headers
docs/ Documentation and diagrams
tools/ Development utilities
assets/ Runtime assets
legacy/ Archived experimental implementations
snapshots/ Historical release archives- Retransmission timer support
- TCP congestion control (minimal Reno-like)
- Improved ARP cache
- UDP implementation
- ICMP echo reply
- Filesystem integration
- SMP support
- ARM hardware deployment
- AI-optimized ARM node clustering
✔ Boots on QEMU
✔ MMU enabled
✔ PCIe initialized
✔ VirtIO-Net operational
✔ ARP functioning
✔ IPv4 validated
⚠ TCP stack experimental
⚠ HTTP serving pipeline unstable
Under active architectural refinement.
Aether WebOS is developed as part of a long-term systems research initiative focused on low-level architecture, networking, and ARM-based computing platforms.
- Aritrash Sarkar (Lead)
- Adrija Ghosh
- Ankana Debnath
- Pritam Mondal
- Roheet Purkayastha
Aether WebOS — Built from first principles.
