Skip to content
cllm

// faq

Questions engineers ask first.

Straight answers about what cllm is, what it ships today, and where the roadmap begins. We do not overstate the inference story.

+ What is cllm?

cllm is a bare-metal C unikernel for serving large language model inference over HTTP. It is Multiboot-compliant, boots in QEMU or on bare-metal x86, and exposes an HTTP/1.1 server with a llama.cpp-shaped REST API. There is no host operating system — the kernel and the application are one ELF binary.

+ What is actually running today?

A Multiboot ELF that boots, brings up serial and VGA, walks the PCI bus, drives an Intel e1000 NIC, and answers HTTP/1.1 requests through a llama.cpp-shaped v1 API. The inference engine itself is on the roadmap; the kernel and the network stack ship now.

+ Can cllm actually run a model yet?

Not end to end. The v1 endpoints exist, parse requests, and route to handlers, but inference returns a stub until the llama.cpp engine is integrated into the kernel. Treat cllm today as a working substrate that the inference path will land on.

+ Which models will cllm support?

The API surface mirrors llama.cpp, so the natural target is anything llama.cpp loads — GGUF-format weights for Llama-family architectures, Mistral, Qwen, Gemma, Phi, and so on. Until the llama.cpp inference path is wired in, no specific model has been benchmarked end to end.

+ Which hypervisors are supported?

QEMU is the development and primary supported target. The kernel is Multiboot-compliant, so any Multiboot loader will boot it — including GRUB on bare metal. Other hypervisors are unverified.

+ What about GPUs?

GPU support is roadmap, not shipped. The documentation includes an analysis of how a CUDA ggml backend could be integrated into a unikernel — PCIe access, PTX kernel embedding, host/device memory management — but that work is not yet in the build.

+ What is the network stack?

Raw Ethernet frames over the e1000 driver, with a minimal IPv4 + TCP implementation and an HTTP/1.1 subset on top — enough to route the v1 endpoints. There is no socket API in the traditional sense; the server is the packet-processing loop.

+ What architectures does cllm target?

Only x86 (i386, 32-bit Multiboot) is wired up today. The kernel boots as a 32-bit Multiboot ELF in QEMU or on bare-metal x86. x86_64, ARM64, and RISC-V are noted as future considerations but are not implemented.

+ How do I build and run it?

Install gcc with -m32 support, make, and qemu-system-i386. Clone the repo and run make run — serial output appears on your terminal in under a second. Ctrl-A X exits QEMU. There are debug, VGA, and GDB-attached variants as well.

+ Is it production-ready?

No. The infrastructure scaffolding — kernel, drivers, HTTP — is in place; the inference engine is not. cllm is a research-grade substrate, not a production serving stack.

+ Why a unikernel instead of just a small Linux?

A unikernel removes the kernel/userspace boundary, the scheduler, and every page of the host OS that is not part of the inference path. The target is a single tens-of-kilobytes ELF that boots in milliseconds and spends every cycle on math.

+ What license is cllm under?

cllm is open source under the GPL. The canonical source and LICENSE file live at github.com/cognisoc/cllm.

+ How does cllm relate to Cognisoc?

Cognisoc is the organization developing cllm. It is one of several open-source LLM inference projects under Cognisoc, each targeting a different language or device profile. The full portfolio and documentation live at cognisoc.com and docs.cognisoc.com.

Still have a question about the kernel, the driver, or the v1 API?