Operating Systems (OS) Foundations
An **Operating System (OS)** is the software that manages computer hardware and software resources and provides common services for computer programs. For a platform like Wikantik, the OS (typically Linux) provides the foundational environment for the JVM, storage, and networking.
Core Responsibilities
1. Process Management
The OS schedules and manages the execution of processes. In Wikantik, the entire application runs as a process (within a Tomcat container) on the Java Virtual Machine (JVM).
- **Concurrency:** The OS manages threads, which the JVM exposes to the application for parallel tasks like search indexing and KG projection.
- **Signals:** The OS sends signals (like `SIGTERM`) to the application to trigger a graceful shutdown.
2. Memory Management
The OS allocates and protects memory regions.
- **Heap vs. Native:** The JVM manages its own heap, but the OS manages the underlying virtual memory.
- **Page Cache:** Modern OSs use available RAM to cache frequently accessed files, which significantly improves the performance of Wikantik's Lucene search indexes.
3. File Systems
The OS provides the abstraction for persistent storage.
- **Page Storage:** Wikantik stores wiki pages as Markdown files. The OS manages the reading, writing, and locking of these files.
- **Permissions:** OS-level permissions (UID/GID) protect the `docs/wikantik-pages/` directory from unauthorized access.
4. Networking
The OS provides the TCP/IP stack that enables Wikantik to communicate with the world.
- **Sockets:** Every REST API call and MCP request arrives as a network socket managed by the OS.
- **Firewalls:** OS-level tools (like `iptables` or `ufw`) protect the application ports (e.g., 8080).
Wikantik's Target OS
Wikantik is designed to be cross-platform but is primary developed and tested on **Linux**. It leverages modern Linux features like `systemd` for service management and Docker for containerized deployment.
See Also
- [Linux for Windows Users](LinuxForWindowsUsers) — A guide to the OS most commonly used to host Wikantik.
- [Java Memory Management](JavaMemoryManagementHub) — How the JVM interacts with OS memory.
- [Wikantik on Docker](WikantikOnDocker) — Containerization as an OS-level abstraction.