feat: add userspace system logging, rename klog to syslog, rename relevant syscalls and API functions

This commit is contained in:
2026-08-14 18:37:27 +02:00
parent 8e45d43116
commit 724029cacb
26 changed files with 139 additions and 52 deletions
+32 -7
View File
@@ -21,6 +21,15 @@
#define C_CYAN "\033[36m"
#define C_WHITE "\033[37m"
// ---- Process scan ----
static bool system_already_initialized() {
/* A valid init will always be PID 0 */
if (montauk::getpid() != 0) return true;
return false;
}
// ---- Logging ----
static void log_timestamp(char* buf, int size) {
@@ -39,16 +48,16 @@ static void log(LogLevel level, const char* msg) {
const char* tag;
const char* color;
switch (level) {
case LOG_OK: tag = " OK "; color = C_GREEN; break;
case LOG_INFO: tag = " INFO "; color = C_CYAN; break;
case LOG_WARN: tag = " WARN "; color = C_YELLOW; break;
case LOG_ERR: tag = " FAIL "; color = C_RED; break;
case LOG_OK: tag = "OK:"; color = C_GREEN; break;
case LOG_INFO: tag = "INFO:"; color = C_CYAN; break;
case LOG_WARN: tag = "WARN:"; color = C_YELLOW; break;
case LOG_ERR: tag = "FAIL:"; color = C_RED; break;
}
snprintf(line, sizeof(line),
C_DIM "%s" C_RESET " %s%s" C_RESET " " C_BOLD "init" C_RESET " %s\n",
C_DIM "%s" C_RESET " %s%s" C_RESET " %s",
ts, color, tag, msg);
montauk::print(line);
montauk::write_log("init", line);
}
static void log_ok(const char* msg) { log(LOG_OK, msg); }
@@ -178,11 +187,27 @@ static bool run_configured_service(const montauk::toml::Doc& doc,
return run_configured_service(doc, fallback_service, fallback_depth + 1);
}
const char* getReleaseString(char* buffer, int n) {
montauk::abi::SysInfo info;
montauk::get_info(&info);
snprintf(buffer, n, "The Montauk Operating System, version %s (build %u)",
info.osVersion, info.buildNumber);
return buffer;
}
// ---- Main ----
extern "C" void _start() {
if (system_already_initialized()) {
montauk::exit(1);
}
log_info("The Montauk Operating System");
char releaseString[128] = "";
getReleaseString(releaseString, 128);
log_info(releaseString);
auto config = montauk::config::load("init");
int discovered = 0;