Core System Services
WindowServer
The display server responsible for managing all graphical output and user interaction.Key Responsibilities
Key Responsibilities
- Window management and composition
- Input event distribution (mouse, keyboard, touch)
- Display output and rendering coordination
- Desktop environment and taskbar integration
- Window decorations and themes
- Cursor management
WindowServer runs with appropriate privileges and coordinates with the kernel’s graphics subsystem.
LoginServer
Manages user authentication and session initialization. Features:- User login and authentication
- Session creation and management
- Graphical login interface
- User switching capabilities
- Integration with the security subsystem
SystemServer
The init system responsible for starting and managing system services.- Service lifecycle management
- Dependency resolution
- Service socket management
- Automatic service respawning
- System startup orchestration
Audio & Multimedia Services
AudioServer
Audio Subsystem
Centralized audio mixing and playback service
- Multi-client audio mixing
- Sample rate conversion
- Volume control and normalization
- Multiple audio format support (WAV, MP3, FLAC)
- Per-application audio routing
- Low-latency audio processing
ImageDecoder
Sandboxed image decoding service for security and stability.Supported Formats
Supported Formats
- PNG (Portable Network Graphics)
- JPEG (Joint Photographic Experts Group)
- GIF (Graphics Interchange Format)
- BMP (Bitmap)
- ICO (Icon)
- PBM/PGM/PPM (Portable Anymap)
- QOI (Quite OK Image)
- TGA (Targa)
- And more
- Each decode operation runs in a fresh process
- Strong sandboxing with
pledge()andunveil() - Memory-safe decoding implementations
- Automatic cleanup on completion
Network Services
RequestServer
HTTP/HTTPS/Gemini request handling and network operations
LookupServer
DNS resolution and hostname lookup service
WebServer
Built-in HTTP server for local hosting
DHCPClient
Dynamic IP address configuration
RequestServer
Handles all outgoing network requests for web content and other applications. Supported Protocols:- HTTP/1.1
- HTTPS (TLS 1.2, 1.3)
- Gemini
- File protocol
- Connection pooling and reuse
- Cookie management
- Proxy support
- Content negotiation
- Download management
LookupServer
System-wide DNS resolver with caching capabilities.- DNS query handling (A, AAAA, CNAME, MX, etc.)
- Local hosts file resolution
- Query caching for performance
- Multiple nameserver support
- DNSSEC validation (in development)
TelnetServer
Provides telnet server functionality for remote terminal access.Network services are sandboxed and run with minimal privileges required for their operation.
Web Services
WebContent
Sandboxed web rendering process that powers the Browser application.Architecture Details
Architecture Details
Each browser tab runs in its own WebContent process for isolation:
- HTML/CSS rendering engine (LibWeb)
- JavaScript execution (LibJS)
- WebAssembly support
- DOM manipulation
- Canvas and SVG rendering
- RequestServer for network access
- ImageDecoder for image processing
- IPC with the Browser process
- Per-tab process isolation
- Unprivileged user execution
- Strict
pledge()andunveil()restrictions - No direct network or filesystem access
WebWorker
Handles Web Worker threads for background JavaScript execution in web pages.WebDriver
Implements the WebDriver protocol for automated browser testing.- Browser automation support
- Testing framework integration
- Selenium-compatible API
- Automated UI testing capabilities
Storage & Data Services
SQLServer
Embedded SQL database service for applications requiring structured data storage. Features:- SQL query execution
- Transaction support
- Multi-client access
- Data persistence
- Query optimization
FileSystemAccessServer
Mediates file system access with security controls.- File picker integration
- Permission management
- Sandboxed file access
- Secure file operations
- User consent workflows
ConfigServer
Centralized configuration management service.- System-wide settings storage
- Per-application configuration
- Configuration change notifications
- Atomic configuration updates
- Default value management
Desktop Services
Taskbar
Provides the system taskbar and task switching functionality.- Application launcher
- Running application indicators
- System tray integration
- Clock display
- Quick settings access
- Workspace switching
NotificationServer
System notification management and display.- Desktop notifications
- Notification queuing
- Priority management
- Action buttons support
- Do Not Disturb mode
- Notification history
Clipboard
System-wide clipboard management for cut, copy, and paste operations.- Text and image clipboard support
- Multiple MIME type handling
- Clipboard history (optional)
- Inter-application data transfer
Utility Services
CrashDaemon
Automatically handles application crashes.- Crash detection and logging
- Core dump generation
- Stack trace collection
- Crash reporter integration
- Debugging information preservation
LaunchServer
Application launcher and file association manager.- File type associations
- Default application handling
- URL protocol handlers
- Application spawning
- Desktop entry management
ChessEngine
Dedicated chess engine service for the Chess application.- Chess move calculation
- AI opponent logic
- Position evaluation
- Game state management
SpiceAgent
Integration with QEMU/SPICE for enhanced virtualization support.- Clipboard sharing with host
- Display resolution synchronization
- File transfer capabilities
- Enhanced input handling
DeviceMapper
Manages device node creation and device events.- Dynamic device node creation
- Device hotplug handling
- Permission management
- Device enumeration
NetworkServer
Network interface and routing management.- Network interface configuration
- Route table management
- Network status monitoring
- Connection state tracking
KeyboardPreferenceLoader
Loads and applies keyboard preferences at system startup.FileOperation
Handles long-running file operations in the background.- Copy/move operations
- Progress tracking
- Cancellation support
- Error handling
EchoServer
Simple echo server for testing and development purposes.Service Communication
Services communicate using SerenityOS’s IPC (Inter-Process Communication) system, which provides type-safe, efficient message passing between processes.
- Isolation: Each service runs in its own process
- Sandboxing: Services use
pledge()andunveil()for security - Privilege Separation: Services run with minimal required privileges
- Failure Isolation: Service crashes don’t affect other services
- Clean IPC: Type-safe communication through generated IPC interfaces
Service Management
Services are managed by SystemServer, which reads configuration from service definition files. Services can be:- Started automatically at boot
- Started on-demand via socket activation
- Configured with dependencies
- Automatically restarted on failure
- Monitored for health and performance
