mirror of
https://github.com/Leonmmcoset/cleonos.git
synced 2026-04-24 11:14:01 +00:00
68 lines
1.8 KiB
Markdown
68 lines
1.8 KiB
Markdown
# CLKS Kernel
|
|
|
|
[English](README.md) | [简体中文](README.zh-CN.md)
|
|
|
|
CLKS is the kernel component of the CLeonOS project.
|
|
It includes architecture startup code, interrupt handling, memory management, scheduler, syscall layer, storage, TTY/console, and core runtime services.
|
|
|
|
## Status
|
|
|
|
CLKS can be built in kernel-only mode from the current mono-repo, but it is not yet a fully independent repository build system.
|
|
|
|
- Kernel-only mode is available.
|
|
- Userland/ISO targets are optional and can be disabled.
|
|
- Some build scripts are still shared at repository root (`cmake/`, `configs/`, `scripts/`).
|
|
|
|
## Directory Layout
|
|
|
|
```text
|
|
clks/
|
|
|- arch/ # Architecture-specific startup and low-level code
|
|
|- include/ # Public kernel headers
|
|
|- kernel/ # Core kernel subsystems
|
|
|- rust/ # Rust staticlib used by kernel
|
|
|- third_party/ # Embedded third-party sources used by kernel
|
|
|- CMakeLists.txt # Kernel build rules
|
|
|- Makefile # Kernel-focused wrapper (delegates to root build)
|
|
```
|
|
|
|
## Build (Kernel-Only)
|
|
|
|
From repository root:
|
|
|
|
```bash
|
|
make kernel CLEONOS_ENABLE=OFF
|
|
```
|
|
|
|
or via CLKS wrapper:
|
|
|
|
```bash
|
|
make -C clks kernel
|
|
```
|
|
|
|
## Menuconfig (CLKS Scope)
|
|
|
|
```bash
|
|
make menuconfig-clks
|
|
```
|
|
|
|
or:
|
|
|
|
```bash
|
|
make -C clks menuconfig
|
|
```
|
|
|
|
This updates CLKS-focused config outputs under `configs/menuconfig/` (including `config.clks.cmake`).
|
|
|
|
## Notes for Future Split
|
|
|
|
To make CLKS a standalone repo, the next required step is moving shared build assets into `clks/` (or vendoring equivalents), especially:
|
|
|
|
- `cmake/` helper scripts (`log.cmake`, symbol generation, tool checks)
|
|
- boot config and image packaging pieces currently under `configs/`
|
|
- menuconfig launcher and feature metadata currently under `scripts/` and `configs/menuconfig/`
|
|
|
|
## License
|
|
|
|
Apache-2.0 (same as project root).
|